---
title: pulumi package publish | CLI commands
url: /docs/iac/cli/commands/pulumi_package_publish/
---

Publish a package to the Private Registry

## Synopsis

Publish a package to the Private Registry.

This command publishes a package to the Private Registry. The package can be a provider or a schema.

When  is specified as a PLUGIN[@VERSION] reference, Pulumi attempts to resolve a resource plugin first, installing it on-demand, similarly to:

  pulumi plugin install resource PLUGIN [VERSION]

When  is specified as a local path, Pulumi executes the provider binary to extract its package schema.

For parameterized providers, parameters may be specified as additional arguments. The exact format of parameters is provider-specific; consult the provider's documentation for more information. If the parameters include flags that begin with dashes, you may need to use '--' to separate the provider name from the parameters, as in:

  pulumi package publish  --readme ./README.md -- --provider-parameter-flag value

When <schema> is a path to a local file with a '.json', '.yml' or '.yaml' extension, Pulumi package schema is read from it directly:

  pulumi package publish ./my/schema.json --readme ./README.md

```
pulumi package publish  [flags] [--] [provider-parameter]...
```

## Options

```
  -h, --help                                help for publish
      --installation-configuration string   Path to the installation configuration markdown file
      --publisher string                    The publisher of the package (e.g., 'pulumi'). Defaults to the publisher set in the package schema or the default organization in your pulumi config.
      --readme string                       Path to the package readme/index markdown file
```

## Options inherited from parent commands

```
      --color string                 Colorize output. Choices are: always, never, raw, auto (default "auto")
  -C, --cwd string                   Run pulumi as if it had been started in another directory
      --disable-integrity-checking   Disable integrity checking of checkpoint files
  -e, --emoji                        Enable emojis in the output
  -Q, --fully-qualify-stack-names    Show fully-qualified stack names
      --logflow                      Flow log settings to child processes (like plugins)
      --logtostderr                  Log to stderr instead of to files
      --memprofilerate int           Enable more precise (and expensive) memory allocation profiles by setting runtime.MemProfileRate
      --non-interactive              Disable interactive mode for all commands
      --otel-traces string           Export OpenTelemetry traces to the specified endpoint. Use file:// for local JSON files, grpc:// for remote collectors
      --profiling string             Emit CPU and memory profiles and an execution trace to '[filename].[pid].{cpu,mem,trace}', respectively
      --tracing file:                Emit tracing to the specified endpoint. Use the file: scheme to write tracing data to a local file
  -v, --verbose int                  Enable verbose logging (e.g., v=3); anything >3 is very verbose
```

## SEE ALSO

* [pulumi package](/docs/iac/cli/commands/pulumi_package/)	 - Work with Pulumi packages


