The Octo CLI has been replaced by the new Octopus CLI. We will no longer provide feature or security updates to the Octo CLI and we recommend making the swap to the new Octopus CLI as soon as it’s practical to do so.
The Octo CLI is a command line tool that builds on top of the Octopus Deploy REST API. With the Octo CLI you can package your applications for deployment as either Zip or NuGet packages, and manage your environments, deployments, channels, projects, and workers.
The Octo CLI, which leans heavily on the Octopus Clients library, is built and maintained by the Octopus Deploy team, but it is also open source. The Octo CLI can be used on Windows, Mac, Linux, Docker, and as a .NET Core global tool. For installation options and direct downloads, visit the Octopus CLI Project on GitHub.
Commands
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-project: Deletes a project.
- delete-releases: Deletes a range of releases.
- deploy-release: Deploys a release.
- disable-project: Disables a project.
- 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.
General usage
All commands take the form of:
octo <command> [<options>]
You can see a list of commands using:
octo help
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 https://your-octopus-url --apiKey API-YOUR-KEY
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_SERVER
, OCTOPUS_CLI_API_KEY
, OCTOPUS_CLI_USERNAME
and 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: powershell
, pwsh
(PowerShell Core), bash
& zsh
. This feature requires that octo
or 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
octo
is available on your path:
which octo
This should return a valid location on your path like /usr/bin/octo
.
- Install tab completion scripts into your profile, choosing from
powershell
,pwsh
,bash
orzsh
:
octo install-autocomplete --shell zsh
Tips:
- If you’re using PowerShell on Windows use
powershell
. If you’re using PowerShell Core on Windows, Mac or Linux, usepwsh
. - You can review changes to your profile without writing to disk by using the
--dryRun
option:
octo install-autocomplete --shell powershell --dryRun
- Either restart your shell environment or ‘dot source’ your profile:
Bash
. ~/.bashrc
Zsh
. ~/.zshrc
PowerShell
. $PROFILE
- You can now discover sub-commands by typing
octo [search-term]
and hitting the [tab] key. If you don’t provide a search term, the full list of available sub-commands will be shown.
Help us continuously improve
Please let us know if you have any feedback about this page.
Page updated on Tuesday, March 5, 2024