This is CircleCI's command-line application.
CircleCI CLI is available on the following package managers:
brew install circleci
sudo snap install circleci
choco install circleci-cli -y
You can also install the CLI binary by running our install script on most Unix platforms:
curl -fLSs https://raw.githubusercontent.com/CircleCI-Public/circleci-cli/master/install.sh | bash
By default, the
circleci app will be installed to the
/usr/local/bin directory. If you do not have write permissions to
/usr/local/bin, you may need to run the above command with
curl -fLSs https://raw.githubusercontent.com/CircleCI-Public/circleci-cli/master/install.sh | sudo bash
Alternatively, you can install to an alternate location by defining the
DESTDIR environment variable when invoking
curl -fLSs https://raw.githubusercontent.com/CircleCI-Public/circleci-cli/master/install.sh | DESTDIR=/opt/bin bash
You can also set a specific version of the CLI to install with the
VERSION environment variable:
curl -fLSs https://raw.githubusercontent.com/CircleCI-Public/circleci-cli/master/install.sh | VERSION=0.1.5222 sudo bash
If you installed the CLI without a package manager, you can use its built-in update command to check for pending updates and download them:
circleci update check circleci update install
Configure the CLI
After installing the CLI, you must run setup to configure the tool.
$ circleci setup
You should be prompted to enter the CircleCI API Token you generated from the Personal API Token tab
✔ CircleCI API Token: API token has been set. ✔ CircleCI Host: https://circleci.com CircleCI host has been set. Setup complete. Your configuration has been saved.
If you are using this tool on
circleci.com. accept the provided default
Server users will have to change the default value to your custom address (i.e.
Note: Server does not yet support config processing and orbs, you will only be able to use
circleci local execute (previously
circleci build) for now.
Validate A Build Config
To ensure that the tool is installed, you can use it to validate a build config file.
$ circleci config validate Config file at .circleci/config.yml is valid
The CLI may also be used without installation by using Docker.
docker run --rm -v $(pwd):/data circleci/circleci-cli:alpine config validate /data/.circleci/config.yml --token $TOKEN
In order to maintain backwards compatibility with the
circleci binary present in builds, some commands are proxied to a program called
This program must exist in your
$PATH as is the case inside of a job.
The following commands are affected:
circleci tests split
circleci step halt
circleci config migrate
Platforms, Deployment and Package Managers
The tool is deployed through a number of channels. The primary release channel is through GitHub Releases. Green builds on the
master branch will publish a new GitHub release. These releases contain binaries for macOS, Linux and Windows. These releases are published from (CircleCI)[https://app.circleci.com/pipelines/github/CircleCI-Public/circleci-cli] using (GoReleaser)[https://goreleaser.com/].
We publish the tool to Homebrew. The tool is part of
homebrew-core, and therefore the maintainers of the tool are obligated to follow the guidelines for acceptable Homebrew formulae. You should familairise yourself with the guidelines before making changes to the Homebrew deployment system.
The particular considerations that we make are:
- Since Homebrew doesn't "like tools that upgrade themselves", we disable the
circleci updatecommand when the tool is released through homebrew. We do this by defining the PackageManager constant to
homebrew, which allows us to disable the
updatecommand at runtime.
- We want to avoid every push to
masterfrom creating a Pull Request to the
circleciformula on Homebrew. We want to avoid overloading the Homebrew team with pull requests to update our formula for small changes (changes to docs or other files that don't change functionality in the tool).
We publish Linux builds of the tool to the Snap package manager.
Development instructions for the CircleCI CLI can be found in HACKING.md.
Please see the documentation or
circleci help for more.