The Octopus Command Line (CLI)
The Octopus CLI is a command line tool that builds on top of the Octopus Deploy REST API. With the Octopus CLI you can package your applications for deployment as either Zip or NuGet packages, and manage your environments, deployments, channels, projects, and workers.
The Octopus CLI can be used on Windows, Mac, Linux, Docker, and as a .NET Core global tool. For installation options and direct downloads, visit Download Octopus CLI.
The Octopus CLI is built and maintained by the Octopus Deploy team, but it is also open source. You can view the Octopus CLI project on GitHub, which leans heavily on the Octopus Clients library.
octo supports the following commands:
- allow-releaseprogression: Allows a release to progress to the next phase.
- build-information: Pushes build information to Octopus Server.
- clean-environment: Cleans all Offline Machines from an Environment.
- clean-workerpool: Cleans all Offline Workers from a WorkerPool.
- complete: Supports command line auto completion.
- create-autodeployoverride: Overrides the release that auto deploy will use.
- create-channel: Creates a channel for a project.
- create-environment: Creates a deployment environment.
- create-project: Creates a project.
- create-release: Creates (and, optionally, deploys) a release.
- create-workerpool: Creates a pool for workers.
- delete-autodeployoverride: Deletes auto deploy release overrides.
- delete-package: Deletes a package from the built-in NuGet repository in an Octopus Server.
- delete-releases: Deletes a range of releases.
- deploy-release: Deploys a release.
- dump-deployments: Writes deployments to an XML file that can be imported in Excel.
- export: Exports an object to a JSON file. Deprecated. Please see https://g.octopushq.com/DataMigration for alternative options.
- import: Imports an Octopus object from an export file. Deprecated. Please see https://g.octopushq.com/DataMigration for alternative options.
- install-autocomplete: Install a shell auto-complete script into your shell profile, if they aren't already there. Supports pwsh, zsh, bash & powershell.
- list-deployments: Lists a number of deployments by project, environment or by tenant.
- list-environments: Lists environments.
- list-latestdeployments: Lists the releases last-deployed in each environment.
- list-machines: Lists all machines.
- list-projects: Lists all projects.
- list-releases: Lists releases by project.
- list-tenants: Lists tenants.
- list-workerpools: Lists worker pools.
- list-workers: Lists all workers.
- pack: Creates a package (.nupkg or .zip) from files on disk, without needing a .nuspec or .csproj.
- prevent-releaseprogression: Prevents a release from progressing to the next phase.
- promote-release: Promotes a release.
- push: Pushes a package (.nupkg, .zip, .tar.gz, .jar, .war, etc.) package to the built-in NuGet repository in an Octopus Server.
- push-metadata: Pushes package metadata to Octopus Server. Deprecated. Please use the build-information command for Octopus Server 2019.10.0 and above.
- run-runbook: Runs a Runbook.
- version: Outputs Octopus CLI version.
All commands take the form of:
octo <command> [<options>]
You can see a list of commands using:
And you can get help for a specific command using:
octo help <command> octo <command> --help
Arguments are not case sensitive and can take the following forms:
--project OctoFX # Space between argument name and value --project=OctoFX # Equal sign between argument name and value --project "OctoFX Web Site" # Argument values with spaces need to be quoted "--project=OctoFX Web Site" # If using equals, quote both the name and value, not just the value
All commands require you to pass the URL of the Octopus Server's API endpoint, and an API key which is used to authenticate you.
octo ... --server http://your-octopus-server/ --apiKey API-ABCDEF123456
Most commands also support JSON formatted output.
Create an API key
Learn about how to create an API key.
The server URL, API key, username and password can be set as the environment variables
OCTOPUS_CLI_PASSWORD respectively. Values set via command line arguments take precedence over environment variables.
Tab completion for commands and options
Tab completion is available for the following shell environments:
pwsh (PowerShell Core),
zsh. This feature requires that
Octo is available from your $PATH, which is the default state if installed via a package manager or Chocolatey. If you've manually installed the CLI, please ensure your $PATH is also updated if you wish to use this feature. This is an optional feature that requires additional installation steps on a per user basis, since this feature relies on built-in shell auto completion facilities.
Additional installation steps for tab completion.
- Check that
octois available on your path:
This should return a valid location on your path like
- Install tab completion scripts into your profile, choosing from
octo install-autocomplete --shell zsh
- If you're using PowerShell on Windows use
powershell. If you're using PowerShell Core on Windows, Mac or Linux, use
- You can review changes to your profile without writing to disk by using the
octo install-autocomplete --shell powershell --dryRun
- Either restart your shell environment or 'dot source' your profile:
- You can now discover sub-commands by typing
octo [searchterm]and hitting the [tab] key. If you don't provide a search term, the full list of available sub-commands will be shown.
Need support? We're here to help.