{"id":20490746,"url":"https://github.com/circleci-public/circleci-cli","last_synced_at":"2026-02-27T01:00:57.202Z","repository":{"id":33361022,"uuid":"137903064","full_name":"CircleCI-Public/circleci-cli","owner":"CircleCI-Public","description":"Use CircleCI from the command line","archived":false,"fork":false,"pushed_at":"2026-02-26T23:05:10.000Z","size":21860,"stargazers_count":432,"open_issues_count":139,"forks_count":244,"subscribers_count":56,"default_branch":"main","last_synced_at":"2026-02-26T23:49:48.280Z","etag":null,"topics":["circle-ci","circleci","cli","command-line-tool","continuous-delivery","continuous-integration","developer-tools","devops","golang","graphql","tool"],"latest_commit_sha":null,"homepage":"https://circleci-public.github.io/circleci-cli/","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CircleCI-Public.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2018-06-19T14:30:01.000Z","updated_at":"2026-02-26T22:55:40.000Z","dependencies_parsed_at":"2023-10-16T18:38:10.020Z","dependency_job_id":"7a721cb0-66ef-4429-a4f8-a5b862c9f72c","html_url":"https://github.com/CircleCI-Public/circleci-cli","commit_stats":{"total_commits":1167,"total_committers":126,"mean_commits":9.261904761904763,"dds":0.6006855184233076,"last_synced_commit":"08776cb19f2b61226d84be29e0d00b9b51840149"},"previous_names":["circleci-public/cli"],"tags_count":490,"template":false,"template_full_name":null,"purl":"pkg:github/CircleCI-Public/circleci-cli","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CircleCI-Public%2Fcircleci-cli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CircleCI-Public%2Fcircleci-cli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CircleCI-Public%2Fcircleci-cli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CircleCI-Public%2Fcircleci-cli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CircleCI-Public","download_url":"https://codeload.github.com/CircleCI-Public/circleci-cli/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CircleCI-Public%2Fcircleci-cli/sbom","scorecard":{"id":30131,"data":{"date":"2025-08-11","repo":{"name":"github.com/CircleCI-Public/circleci-cli","commit":"59214039bc2a05e7a5903857718e93f80f80be75"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":5,"checks":[{"name":"Code-Review","score":10,"reason":"all changesets reviewed","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Maintained","score":10,"reason":"30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: containerImage not pinned by hash: Dockerfile:1: pin your Docker image by updating cimg/go:1.20 to cimg/go:1.20@sha256:bd1abc34d5deb0c8f55e9f9c8071210e3a5ba9ce874f48a61a390175c2be0da6","Warn: containerImage not pinned by hash: Dockerfile.alpine:1: pin your Docker image by updating alpine:3.8 to alpine:3.8@sha256:2bb501e6173d9d006e56de5bce2720eb06396803300fe1687b58a7ff32bf4c14","Info:   0 out of   2 containerImage dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact v0.1.32638 not signed: https://api.github.com/repos/CircleCI-Public/circleci-cli/releases/227453008","Warn: release artifact v0.1.32580 not signed: https://api.github.com/repos/CircleCI-Public/circleci-cli/releases/227131696","Warn: release artifact v0.1.32367 not signed: https://api.github.com/repos/CircleCI-Public/circleci-cli/releases/223799811","Warn: release artifact v0.1.32323 not signed: https://api.github.com/repos/CircleCI-Public/circleci-cli/releases/223689726","Warn: release artifact v0.1.32219 not signed: https://api.github.com/repos/CircleCI-Public/circleci-cli/releases/223104771","Warn: release artifact v0.1.32638 does not have provenance: https://api.github.com/repos/CircleCI-Public/circleci-cli/releases/227453008","Warn: release artifact v0.1.32580 does not have provenance: https://api.github.com/repos/CircleCI-Public/circleci-cli/releases/227131696","Warn: release artifact v0.1.32367 does not have provenance: https://api.github.com/repos/CircleCI-Public/circleci-cli/releases/223799811","Warn: release artifact v0.1.32323 does not have provenance: https://api.github.com/repos/CircleCI-Public/circleci-cli/releases/223689726","Warn: release artifact v0.1.32219 does not have provenance: https://api.github.com/repos/CircleCI-Public/circleci-cli/releases/223104771"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":5,"reason":"branch protection is not maximal on development and all release branches","details":["Info: 'allow deletion' disabled on branch 'main'","Info: 'force pushes' disabled on branch 'main'","Warn: 'branch protection settings apply to administrators' is disabled on branch 'main'","Warn: 'stale review dismissal' is disabled on branch 'main'","Warn: required approving review count is 1 on branch 'main'","Info: codeowner review is required on branch 'main'","Warn: 'last push approval' is disabled on branch 'main'","Info: status check found to merge onto on branch 'main'","Info: PRs are required in order to make changes on branch 'main'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":8,"reason":"2 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GO-2025-3488 / GHSA-6v2p-p543-phr9","Warn: Project is vulnerable to: GHSA-mqcp-p2hv-vw6x"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-14T18:51:58.796Z","repository_id":33361022,"created_at":"2025-08-14T18:51:58.796Z","updated_at":"2025-08-14T18:51:58.796Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29879896,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-26T23:51:21.483Z","status":"ssl_error","status_checked_at":"2026-02-26T23:50:46.793Z","response_time":89,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["circle-ci","circleci","cli","command-line-tool","continuous-delivery","continuous-integration","developer-tools","devops","golang","graphql","tool"],"created_at":"2024-11-15T17:18:23.599Z","updated_at":"2026-02-27T01:00:57.150Z","avatar_url":"https://github.com/CircleCI-Public.png","language":"Go","readme":"# circleci-cli\n\nThis is CircleCI's command-line application.\n\n[Documentation](https://circleci-public.github.io/circleci-cli) |\n[Code of Conduct](./CODE_OF_CONDUCT.md) |\n[Contribution Guidelines](./CONTRIBUTING.md) |\n[Hacking](./HACKING.md)\n\n[![CircleCI](https://circleci.com/gh/CircleCI-Public/circleci-cli.svg?style=shield)](https://circleci.com/gh/CircleCI-Public/circleci-cli)\n[![GitHub release](https://img.shields.io/github/tag/CircleCI-Public/circleci-cli.svg?label=latest)](https://github.com/CircleCI-Public/circleci-cli/releases)\n[![GoDoc](https://img.shields.io/badge/godoc-reference-blue.svg)](https://godoc.org/github.com/CircleCI-Public/circleci-cli)\n[![License](https://img.shields.io/badge/license-MIT-red.svg)](./LICENSE)\n\n## Getting Started\n\n### Installation\n\nCircleCI CLI is available on the following package managers:\n\n#### Homebrew\n\n```\nbrew install circleci\n```\n\n#### Snap\n\n```\nsudo snap install circleci\n```\n\n#### Chocolatey\n\n```\nchoco install circleci-cli -y\n```\n\n### Install script\n\nYou can also install the CLI binary by running our install script on most Unix platforms:\n\n```\ncurl -fLSs https://raw.githubusercontent.com/CircleCI-Public/circleci-cli/main/install.sh | bash\n```\n\nBy 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 `sudo`:\n\n```\ncurl -fLSs https://raw.githubusercontent.com/CircleCI-Public/circleci-cli/main/install.sh | sudo bash\n```\n\nAlternatively, you can install to an alternate location by defining the `DESTDIR` environment variable when invoking `bash`:\n\n```\ncurl -fLSs https://raw.githubusercontent.com/CircleCI-Public/circleci-cli/main/install.sh | DESTDIR=/opt/bin bash\n```\n\nYou can also set a specific version of the CLI to install with the `VERSION` environment variable:\n\n```\ncurl -fLSs https://raw.githubusercontent.com/CircleCI-Public/circleci-cli/main/install.sh | sudo VERSION=0.1.5222 bash\n```\n\nTake note that additional environment variables should be passed between sudo and invoking bash.\n\n#### Checksum verification\n\nIf you would like to verify the checksum yourself, you can download the checksum file from the [GitHub releases page](https://github.com/CircleCI-Public/circleci-cli/releases) and verify the checksum of the archive using the `circleci-cli_\u003cversion\u003e_checksums.txt` inside the assets of the release you'd like to install:\n\nOn macOS and Linux:\n```sh\nshasum -a 256 circleci-cli_\u003cversion\u003e_\u003cos\u003e.tar.gz\n```\n\nand on Windows:\n```powershell\nGet-FileHash .\\circleci-cli_\u003cversion\u003e_\u003cos\u003e.tar.gz -Algorithm SHA256 | Format-List\n```\n\nAnd compare it to the right checksum depending on the downloaded version in the `circleci-cli_\u003cversion\u003e_checksums.txt` file.\n\n### Updating\n\nIf you installed the CLI without a package manager, you can use its built-in update command to check for pending updates and download them:\n\n```\ncircleci update check\ncircleci update install\n```\n\n## Configure the CLI\n\nAfter installing the CLI, you must run setup to configure the tool.\n\n```\n$ circleci setup\n```\n\nYou should be prompted to enter the _CircleCI API Token_ you generated from the [Personal API Token tab](https://circleci.com/account/api)\n\n\n```\n✔ CircleCI API Token:\n\nAPI token has been set.\n\n✔ CircleCI Host: https://circleci.com\n\nCircleCI host has been set.\n\nSetup complete. Your configuration has been saved.\n```\n\nIf you are using this tool on `circleci.com`, accept the provided default `CircleCI Host`.\n\nServer users will have to change the default value to your custom address (e.g., `circleci.my-org.com`).\n\n**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.\n\n\n## Validate A Build Config\n\nTo ensure that the tool is installed, you can use it to validate a build config file.\n\n```\n$ circleci config validate\n\nConfig file at .circleci/config.yml is valid\n```\n\n\n## Docker\n\nThe CLI may also be used without installation by using Docker.\n\n```\ndocker run --rm -v $(pwd):/data -w /data circleci/circleci-cli:alpine config validate /data/.circleci/config.yml --token $TOKEN\n```\n\n## circleci-agent\n\nIn order to maintain backwards compatibility with the `circleci` binary present in builds, some commands are proxied to a program called `circleci-agent`.\n\nThis program must exist in your `$PATH` as is the case inside of a job.\n\nThe following commands are affected:\n\n* `circleci tests split`\n* `circleci step halt`\n* `circleci config migrate`\n\n## Platforms, Deployment and Package Managers\n\nThe tool is deployed through a number of channels. The primary release channel is through [GitHub Releases](https://github.com/CircleCI-Public/circleci-cli/releases). Green builds on the `main` 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/).\n\n### Homebrew\n\nWe publish the tool to [Homebrew](https://brew.sh/). The tool is [part of `homebrew-core`](https://github.com/Homebrew/homebrew-core/blob/main/Formula/circleci.rb), and therefore the maintainers of the tool are obligated to follow the guidelines for acceptable Homebrew formulae. You should [familiarize yourself with the guidelines](https://docs.brew.sh/Acceptable-Formulae#we-dont-like-tools-that-upgrade-themselves) before making changes to the Homebrew deployment system.\n\nThe particular considerations that we make are:\n\n1. Since Homebrew [doesn't \"like tools that upgrade themselves\"](https://docs.brew.sh/Acceptable-Formulae#we-dont-like-tools-that-upgrade-themselves), we disable the `circleci update` command when the tool is released through homebrew. We do this by [defining the PackageManager](https://github.com/Homebrew/homebrew-core/blob/eb1fdb84e2924289bcc8c85ee45081bf83dc024d/Formula/circleci.rb#L28) constant to `homebrew`, which allows us to [disable the `update` command at runtime](https://github.com/CircleCI-Public/circleci-cli/blob/67c7d52bace63846f87a1ed79f67f257c94a55b4/cmd/root.go#L119-L123).\n\n#### Releasing to Homebrew\n\nThis project is on Homebrew's special [autobump list](https://github.com/Homebrew/homebrew-core/blob/master/.github/autobump.txt) which effectively means that it will check our `main` branch every 3 hours for updates and create a PR automagically if there are any changes. This is great, but you do have to monitor the generated PRs to ensure they pass and do get merged in successfully. The PRs will be raised in this repo: [github.com/Homebrew/homebrew-core](https://github.com/Homebrew/homebrew-core) and you can search the Pull requests for `circleci` to see the generated PRs. \n\nUpon successful merge, you'll be able to upgrade the tool by running `brew upgrade circleci` and then you can validate any changes you may have made.\n\n### Snap\n\nWe publish Linux builds of the tool to the Snap package manager.\n\nFurther [package information is available on Snap website](https://snapcraft.io/circleci).\n\n## Contributing\n\nDevelopment instructions for the CircleCI CLI can be found in [HACKING.md](HACKING.md).\n\n## More\n\nPlease see the [documentation](https://circleci-public.github.io/circleci-cli) or `circleci help` for more.\n\n## Server compatibility\n\n| Functionality | Impacted commands | Change description | Compatibility with Server |\n| --- | --- | --- | --- |\n| Config compilation and validation | \u003cul\u003e\u003cli\u003e`circleci config validate`\u003c/li\u003e\u003cli\u003e`circleci config process`\u003c/li\u003e\u003cli\u003e`circleci local execute`\u003c/li\u003e | The config validation has been moved from the GraphQL API to a specific API endpoint | \u003cul\u003e\u003cli\u003e**Server v4.0.5, v4.1.3, v4.2.0 and above**: Commands use the new specific endpoint\u003c/li\u003e\u003cli\u003e**Previous version**: Commands use the GraphQL API\u003c/li\u003e\u003c/ul\u003e |\n| Orb compilation and validation of orb using private orbs | \u003cul\u003e\u003cli\u003e`circleci orb process`\u003c/li\u003e\u003cli\u003e`circleci orb validate`\u003c/li\u003e\u003c/ul\u003e | To support the validation of orbs requesting private orbs (see [issue](https://github.com/CircleCI-Public/circleci-cli/issues/751)). A field `ownerId` has been added to the GraphQL orb validation endpoint. Thus allowing the `Impacted commands` to use the `--org-id` parameter to enable the orb compilation / validation  | \u003cul\u003e\u003cli\u003e**Server v4.2.0 and above**: The field is accessible so you can use the parameter\u003c/li\u003e\u003cli\u003e**Previous versions**: The field does not exist making the functionality unavailable\u003c/li\u003e\u003c/ul\u003e |\n\n## Telemetry\n\nThe CircleCI CLI includes a telemetry feature that collects basic errors and feature usage data in order to help us improve the experience for everyone.\n\nTelemetry works on an opt-in basis: when running a command for the first time, you will be asked for consent to enable telemetry. For non-TTY STDIN, telemetry is disabled by default, ensuring that scripts that use the CLI run smoothly.\n\nYou can disable or enable telemetry anytime in one of the following ways:\n\n* Run the commands `circleci telemetry enable` or `circleci telemetry disable`\n\n* Set the `CIRCLECI_CLI_TELEMETRY_OPTOUT` environment variable to `1` or `true` to disable it\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcircleci-public%2Fcircleci-cli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcircleci-public%2Fcircleci-cli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcircleci-public%2Fcircleci-cli/lists"}