Getting started

circleci is a command-line interface to CircleCI for use in your terminal or your scripts.

Installation

Installation instructions are in the README

Configuration

Run circleci auth login to authenticate with your CircleCI account. You can also set the CIRCLE_TOKEN environment variable.

Model Context Protocol

The CLI supports the MCP protocol. To enable it, run:

Claude:

circleci mcp claude enable # Enable in Claude desktop
claude mcp add-from-claude-desktop -s user # Add with current user scope

Cursor:

circleci mcp cursor enable

VS Code:

circleci mcp vscode enable

Support

Report bugs or search for existing feature requests in our issue tracker

Reference

Work with CircleCI from the command line.

Global Flags

FlagDescription
-c, --config stringpath to config file (default: ~/.config/circleci/config.yml)
--debugenable debug logging
-q, --quietsuppress informational output; data on stdout is unaffected

CI Commands

circleci artifact <job-id> [flags]

List and download a job’s artifact files

FlagDescription
--jq stringProcess values from the response using jq syntax
--jsonOutput as JSON
-o, --output stringDownload artifacts into this directory

Arguments:

is the UUID of the job whose artifacts you want to list or download, e.g. 5034460f-c7c4-4c43-9457-de07e2029e7b.

circleci config <command>

Generate, validate, process and pack config YAML

circleci config generate [path]

Generate .circleci/config.yml from a repository scan

circleci config pack <path>

Bundle split config files into a single YAML document

Arguments:

is the path to a split config directory to pack, e.g. “.circleci” or “src/ci”. The directory structure is mapped to YAML keys in the merged document.

circleci config process <path> [flags]

Compile and expand a pipeline config file

FlagDescription
-n, --nextEnable config next which previews upcoming potentially breaking config changes
--org stringOrganization slug (e.g. gh/myorg) or UUID for private orb resolution
--pipeline-parameters stringPipeline parameters as a YAML map or path to a YAML file

Arguments:

is the path to a pipeline config file to compile, e.g. “.circleci/config.yml”. Pass “-” to read the config from stdin.

circleci config validate [flags]

Validate a pipeline config file

FlagDescription
-c, --config stringPath to config file (use “-” for stdin) (default “.circleci/config.yml”)
--jsonOutput as JSON
-n, --nextEnable config next which previews upcoming potentially breaking config changes
--org stringOrganization slug (e.g. gh/myorg) or UUID for private orb resolution

circleci job <command>

Inspect a job’s details, output and artifacts

circleci job artifact <job-id> [flags]

List or download artifacts for a job

FlagDescription
--jq stringProcess values from the response using jq syntax
--jsonOutput as JSON
-o, --output stringDownload artifacts into this directory

Arguments:

is the UUID of the job whose artifacts to list or download. Job UUIDs are shown in the output of “circleci workflow get” and “circleci run get –json”.

circleci job get <job-id> [flags]

Get job details

FlagDescription
--jq stringProcess values from the response using jq syntax
--jsonOutput as JSON

Arguments:

is the UUID of the job to look up. Job UUIDs are shown in the output of “circleci workflow get” and “circleci run get –json”.

circleci job output <command>

Work with job step output

circleci job output get <job-id> [flags]

Get the output of a job step

FlagDescription
--execution intParallel execution index to read output from
--step-num intStep number whose output to fetch (required)
--strip-ansiForce (or with =false, disable) ANSI stripping; defaults to stripping only when not a terminal

Arguments:

is the UUID of the job whose step output to fetch. Job UUIDs are shown in the output of “circleci workflow get” and “circleci job get”. Use –step-num to select which step’s output to read.

circleci job output list <job-id> [flags]

List a job’s steps with their output

FlagDescription
--execution intParallel execution index to list output from
--jq stringProcess values from the response using jq syntax
--jsonOutput as JSON

Arguments:

is the UUID of the job whose steps and output to list. Job UUIDs are shown in the output of “circleci workflow get” and “circleci job get”.

circleci pipeline <command>

Define what will happen in a run

circleci pipeline create [flags]

Create a pipeline definition

FlagDescription
--checkout-provider stringCheckout source provider (one of: github_app, github_server)
--checkout-repo-id stringCheckout source repo external ID
--config-file stringConfig file path (e.g. .circleci/config.yml)
--config-provider stringConfig source provider (one of: github_app, github_server, circleci)
--config-repo-id stringConfig source repo external ID (required for github_app, github_server)
--description stringPipeline definition description
--jq stringProcess values from the response using jq syntax
--jsonOutput as JSON
--name stringPipeline definition name (required)
--project stringProject slug (e.g. gh/org/repo); defaults to git remote
--project-id stringProject UUID (overrides –project)

circleci pipeline list [flags]

List pipeline definitions for a project

FlagDescription
--jq stringProcess values from the response using jq syntax
--jsonOutput as JSON
--project stringProject slug (e.g. gh/org/repo); defaults to git remote
--project-id stringProject UUID (overrides –project)

Aliases:

circleci pipeline ls

circleci pipeline run [flags]

Trigger a new pipeline run

FlagDescription
-b, --branch stringBranch for config fetch and checkout (mutually exclusive with –tag)
--definition-id stringPipeline definition UUID to run (prompted interactively if omitted)
--jq stringProcess values from the response using jq syntax
--jsonOutput as JSON
--param stringArrayPipeline parameter as key=value (repeatable)
--project stringProject slug (e.g. gh/org/repo); defaults to git remote
-t, --tag stringTag for config fetch and checkout (mutually exclusive with –branch)

circleci run <command>

Trigger, watch and cancel CI runs

circleci run cancel <run-number-or-id> [flags]

Cancel a run

FlagDescription
-f, --forceskip confirmation prompt
--project stringProject slug (e.g. gh/org/repo); used when cancelling by number

Arguments:

identifies the run to cancel. It can be:

  • a run UUID (shown in “circleci run list –json”)
  • a run number (shown in “circleci run list”); the project is inferred from the git remote unless overridden with –project

circleci run get [<run-id>] [flags]

Get a run’s status

FlagDescription
-b, --branch stringBranch name (defaults to current branch)
--jq stringProcess values from the response using jq syntax
--jsonOutput as JSON
--project stringProject slug (e.g. gh/org/repo); used for latest-run lookup

Arguments:

is optional and is the UUID of the run to look up. When omitted, the latest run is resolved from the project and branch inferred from the current git repository’s remote and checked-out branch (override with –project and –branch).

circleci run list [flags]

List recent runs for a project

FlagDescription
-b, --branch stringFilter by branch
-B, --current-branchFilter by the currently checked-out branch
--jq stringProcess values from the response using jq syntax
--jsonOutput as JSON
--limit intMaximum number of runs to show [default: 10] (default 10)
--project stringProject slug (e.g. gh/org/repo); defaults to git remote

Aliases:

circleci run ls

circleci run open [flags]

Open the current project’s runs page in the browser

FlagDescription
-b, --branch stringFilter runs to a specific branch
--current-branchFilter runs to the current git branch

circleci run trigger [flags]

Trigger a new run

FlagDescription
-b, --branch stringBranch to trigger (defaults to current branch)
--jq stringProcess values from the response using jq syntax
--jsonOutput as JSON
--parameter stringArrayRun parameter as key=value (repeatable)
--project stringProject slug (e.g. gh/org/repo); defaults to git remote

circleci run watch [<run-id>] [flags]

Watch a run until it completes

FlagDescription
-b, --branch stringBranch to watch (defaults to current branch)
--failfastExit as soon as any job fails, without waiting for the rest of the run
--project stringProject slug (e.g. gh/org/repo); defaults to git remote
--sha stringWatch run for this commit SHA; polls up to 2m if not yet created
--timeout durationMaximum time to wait for run completion (default 30m0s)

Arguments:

is optional and selects the run to watch. It can be:

  • a run UUID (shown in “circleci run list –json”)
  • a run number (shown in “circleci run list”); the project is inferred from the git remote unless overridden with –project

When omitted, the latest run for the current branch is watched (override the branch with –branch, or match a commit with –sha).

circleci workflow <command>

Inspect, rerun and cancel workflows (job graphs)

circleci workflow cancel <workflow-id> [flags]

Cancel a running workflow

FlagDescription
-f, --forceskip confirmation prompt

Arguments:

is the UUID of the workflow to cancel. Workflow IDs are shown in the output of “circleci run get”.

circleci workflow get <workflow-id> [flags]

Get workflow details

FlagDescription
--jq stringProcess values from the response using jq syntax
--jsonOutput as JSON

Arguments:

is the UUID of the workflow to look up. Workflow IDs are shown in the output of “circleci run get”.

circleci workflow list [<run-id>] [flags]

List workflows for a run or recent runs

FlagDescription
-b, --branch stringFilter by branch (recent-runs mode)
--jq stringProcess values from the response using jq syntax
--jsonOutput as JSON
--limit intNumber of recent runs to show (recent-runs mode) (default 10)
--project stringProject slug (e.g. gh/org/repo); defaults to git remote

Arguments:

is optional and selects a single run. It can be:

  • a run UUID (shown in “circleci run list –json”)
  • a run number (shown in “circleci run list”); the project is inferred from the git remote unless overridden with –project

When omitted, workflows for recent runs in the current project are listed, grouped by run.

Aliases:

circleci workflow ls

circleci workflow rerun <workflow-id> [flags]

Rerun a workflow

FlagDescription
--from-failedRerun only failed jobs

Arguments:

is the UUID of the workflow to rerun. Workflow IDs are shown in the output of “circleci run get”.

Management Commands

circleci certificate <command>

Manage iOS code signing certificates

circleci certificate delete <cert-id> [flags]

Delete an iOS certificate

FlagDescription
-f, --forceskip confirmation prompt

Arguments:

is the ID of the certificate to delete (see: circleci certificate list).

Aliases:

circleci certificate rm

circleci certificate list [flags]

List uploaded iOS certificates

FlagDescription
--jq stringProcess values from the response using jq syntax
--jsonOutput as JSON
--org stringOrganization slug (e.g. gh/myorg) or UUID; defaults to git remote

Aliases:

circleci certificate ls

circleci certificate upload [flags]

Upload a .p12 certificate

FlagDescription
--cert-file stringPath to the .p12 certificate file
--jq stringProcess values from the response using jq syntax
--jsonOutput as JSON
--org stringOrganization slug (e.g. gh/myorg) or UUID; defaults to git remote
--password stringPassword for the .p12 file. Pass - to read from stdin. Prompted if omitted in a terminal.

circleci context <command>

Manage secret env vars shared across pipelines

circleci context create <name> [flags]

Create a new context

FlagDescription
--jq stringProcess values from the response using jq syntax
--jsonOutput as JSON
--org stringOrganization slug (e.g. gh/myorg); defaults to git remote

Arguments:

The name for the new context, e.g. “build-secrets”.

circleci context delete <context-id|context-name> [flags]

Delete a context

FlagDescription
-f, --forceskip confirmation prompt
--org stringOrganization slug (e.g. gh/myorg); used when resolving name to ID

Arguments:

A context can be specified in the form:

  • “context-name”
  • by ID, e.g. 849e7902-802f-4082-8a70-da77dcd084e3

Aliases:

circleci context rm

circleci context get <context-id|context-name> [flags]

Get details of a context

FlagDescription
--jq stringProcess values from the response using jq syntax
--jsonOutput as JSON
--org stringOrganization slug (e.g. gh/myorg); used when resolving name to ID

Arguments:

A context can be specified in the form:

  • “context-name”
  • by ID, e.g. 849e7902-802f-4082-8a70-da77dcd084e3

circleci context list [flags]

List contexts for an organization

FlagDescription
--jq stringProcess values from the response using jq syntax
--jsonOutput as JSON
--name stringFind contexts by name (partial match)
--org stringOrganization slug (e.g. gh/myorg); defaults to git remote

Aliases:

circleci context ls

circleci context open [flags]

Open the contexts settings page in the browser

FlagDescription
--org stringOrganization slug (e.g. gh/myorg); defaults to git remote

circleci context restriction <command>

Manage context restrictions

circleci context restriction create <context-id|context-name> [flags]

Add a restriction to a context

FlagDescription
--jq stringProcess values from the response using jq syntax
--jsonOutput as JSON
--org stringOrganization slug (e.g. gh/myorg); used when resolving name to ID
--type stringRestriction type: project, expression, or group
--value stringValue of the restriction

Arguments:

A context can be specified in the form:

  • “context-name”
  • by ID, e.g. 849e7902-802f-4082-8a70-da77dcd084e3
circleci context restriction delete <context-id|context-name> [flags]

Delete a restriction from a context

FlagDescription
-f, --forceSkip confirmation prompt
--org stringOrganization slug (e.g. gh/myorg); used when resolving name to ID
--restriction-id stringUUID of the restriction to delete

Arguments:

A context can be specified in the form:

  • “context-name”
  • by ID, e.g. 849e7902-802f-4082-8a70-da77dcd084e3

Aliases:

circleci context restriction rm

circleci context secret <command>

Manage context environment variables

circleci context secret delete <context-id|context-name> [flags]

Delete an environment variable from a context

FlagDescription
-f, --forceskip confirmation prompt
--name stringName of the environment variable to delete
--org stringOrganization slug (e.g. gh/myorg); used when resolving name to ID

Arguments:

A context can be specified in the form:

  • “context-name”
  • by ID, e.g. 849e7902-802f-4082-8a70-da77dcd084e3

Aliases:

circleci context secret rm

circleci context secret list <context-id|context-name> [flags]

List environment variables in a context

FlagDescription
--jq stringProcess values from the response using jq syntax
--jsonOutput as JSON
--org stringOrganization slug (e.g. gh/myorg); used when resolving name to ID

Arguments:

A context can be specified in the form:

  • “context-name”
  • by ID, e.g. 849e7902-802f-4082-8a70-da77dcd084e3

Aliases:

circleci context secret ls

circleci context secret set <context-id|context-name> [flags]

Set an environment variable in a context

FlagDescription
--name stringName of the environment variable
--org stringOrganization slug (e.g. gh/myorg); used when resolving name to ID
--value stringValue of the environment variable (prompted if omitted in a terminal)

Arguments:

A context can be specified in the form:

  • “context-name”
  • by ID, e.g. 849e7902-802f-4082-8a70-da77dcd084e3

circleci deploy <command>

Track released components and versions

circleci deploy init [flags]

Instrument your config for deploy tracking

FlagDescription
--component stringService/component name (skips prompt)
--environment stringDefault environment for jobs whose target can’t be inferred (skips prompt)
--pipeline-config stringPath to CircleCI pipeline config file (default “.circleci/config.yml”)

circleci deploy list [flags]

List recent deploys

FlagDescription
--jq stringProcess values from the response using jq syntax
--jsonOutput as JSON
--project stringProject slug (e.g. gh/org/repo); defaults to git remote

Aliases:

circleci deploy ls

circleci deploy open [flags]

Open the deploys page in the browser

FlagDescription
--project stringProject slug (e.g. gh/org/repo); defaults to git remote

circleci dlc <command>

Purge a project’s Docker layer cache (DLC)

circleci dlc purge --project <slug> [flags]

Purge the Docker Layer Cache for a project

FlagDescription
--jsonOutput as JSON
--project stringProject slug (e.g. gh/org/repo); defaults to git remote

circleci envvar <command>

List, set and delete a project’s environment variables

circleci envvar delete <name> [flags]

Delete a project environment variable

FlagDescription
-f, --forceskip confirmation prompt
--project stringProject slug (e.g. gh/org/repo); defaults to git remote

Arguments:

is the name of the environment variable to delete from the project. This action is irreversible.

Aliases:

circleci envvar rm

circleci envvar list [flags]

List project environment variables

FlagDescription
--jq stringProcess values from the response using jq syntax
--jsonOutput as JSON
--project stringProject slug (e.g. gh/org/repo); defaults to git remote

Aliases:

circleci envvar ls

circleci envvar set <name> <value> [flags]

Set a project environment variable

FlagDescription
--project stringProject slug (e.g. gh/org/repo); defaults to git remote

Arguments:

is the name of the environment variable to create or update. is the value to store; it is never retrievable after being set and is masked in all subsequent list output.

circleci namespace <command>

Manage the org namespace orbs publish under

circleci namespace create <name> --org <org> [flags]

Create a namespace

FlagDescription
--jq stringProcess values from the response using jq syntax
--jsonOutput as JSON
--org stringOrganization slug (e.g. gh/myorg) or UUID to claim the namespace for (required)

Arguments:

is the namespace name to create. It must be globally unique across CircleCI, e.g. “myorg”.

circleci namespace delete <name> [flags]

Delete a namespace and all its orbs

FlagDescription
-n, --dry-runprint what would be deleted without deleting
-f, --forceskip confirmation prompt

Arguments:

is the name of the namespace to delete, e.g. “myorg”.

Aliases:

circleci namespace rm

circleci namespace get <name> [flags]

Get details of a namespace

FlagDescription
--jq stringProcess values from the response using jq syntax
--jsonOutput as JSON

Arguments:

is the name of the namespace to look up, e.g. “myorg”.

circleci namespace rename <name> <new-name> [flags]

Rename a namespace

FlagDescription
--jq stringProcess values from the response using jq syntax
--jsonOutput as JSON

Arguments:

  • is the current name of the namespace, e.g. “oldname”.
  • is the new name to assign, e.g. “newname”.

circleci orb <command>

Create, publish and inspect orbs (reusable config)

circleci orb add-to-category <ns>/<orb> <category>

Add an orb to a registry category

Arguments:

  • /: the orb to add, as “namespace/orb-name”
  • : the registry category name, e.g. “Testing”

circleci orb create <namespace>/<orb> [flags]

Reserve an orb name in a namespace

FlagDescription
--jq stringProcess values from the response using jq syntax
--jsonOutput as JSON
--privatecreate as a private orb

Arguments:

  • /: the orb name to reserve, as “namespace/orb-name”. The namespace must already exist.

circleci orb diff <ns>/<orb> --from <v1> --to <v2> [flags]

Show a unified diff between two orb versions

FlagDescription
--from stringthe first version (semver e.g. 1.0.0, or a dev label e.g. dev:my-branch)
--to stringthe second version, in the same form as –from

Arguments:

  • /: the orb to diff, as “namespace/orb-name”

circleci orb get <ns>/<orb>[@<version>]/<orb-id> [flags]

Get orb metadata and statistics

FlagDescription
--jq stringProcess values from the response using jq syntax
--jsonOutput as JSON

Arguments:

An orb can be specified in the form:

  • “namespace/orb-name”, optionally with a version, e.g. “namespace/orb-name@1.2.3
  • by orb ID (UUID), e.g. 849e7902-802f-4082-8a70-da77dcd084e3

circleci orb list [<namespace>] [flags]

List orbs in the registry

FlagDescription
--jq stringProcess values from the response using jq syntax
--jsonOutput as JSON
--privateonly list private orbs (requires namespace)
--uncertifiedinclude uncertified orbs

Arguments:

  • : optional. When given, lists all orbs in that namespace. When omitted, lists certified orbs globally.

Aliases:

circleci orb ls

circleci orb list-categories [flags]

List orb registry categories

FlagDescription
--jq stringProcess values from the response using jq syntax
--jsonOutput as JSON

circleci orb pack <path>

Pack a multi-file orb directory into a single YAML

Arguments:

  • : path to an orb source directory or a single orb YAML file.

circleci orb process <path> [flags]

Validate and print expanded orb YAML

FlagDescription
--org stringOrganization slug (e.g. gh/myorg) or UUID for private orb dependencies

Arguments:

  • : path to an orb YAML file. Pass ‘-’ to read from stdin.

circleci orb publish <command>

Publish orb versions

circleci orb publish increment <path> <ns>/<orb> --bump major|minor|patch [flags]

Increment and publish a new orb version

FlagDescription
--bump stringwhich version segment to increment: major, minor, or patch

Arguments:

  • : path to the orb YAML to publish. Pass ‘-’ to read from stdin.
  • /: the orb to publish, as “namespace/orb-name”
circleci orb publish promote <ns>/<orb>@dev:<label> --bump major|minor|patch [flags]

Promote a dev orb version to a stable semver

FlagDescription
--bump stringwhich version segment to increment: major, minor, or patch

Arguments:

  • /@dev:

circleci orb remove-from-category <ns>/<orb> <category>

Remove an orb from a registry category

Arguments:

  • /: the orb to remove, as “namespace/orb-name”
  • : the registry category name, e.g. “Testing”

circleci orb source <ns>/<orb>[@<version>]

Print the YAML source of an orb version

Arguments:

  • /[@]: the orb to print, as “namespace/orb-name”. Optionally append @ (e.g. @1.2.3, @volatile, or @dev:my-branch). When omitted, the latest published version is shown.

circleci orb unlist <ns>/<orb> [flags]

Hide or restore an orb in the registry

FlagDescription
--restorerestore the orb’s visibility instead of hiding it

Arguments:

  • /: the orb to update, as “namespace/orb-name”

circleci orb validate <path> [flags]

Validate an orb YAML file

FlagDescription
--org stringOrganization slug (e.g. gh/myorg) or UUID for private orb dependencies

Arguments:

  • : path to an orb YAML file. Pass ‘-’ to read from stdin.

circleci policy <command>

Govern config with Rego security policies

circleci policy decide [flags]

Evaluate a config against remote policies

FlagDescription
--input stringPath to input file (e.g. .circleci/config.yml) (required)
--jq stringProcess values from the response using jq syntax
--jsonOutput as JSON
--meta stringDecision metadata as a JSON string
--metafile stringPath to decision metadata file (YAML or JSON)
--org stringOrganization slug (e.g. gh/myorg) or UUID (required)
--policy-context stringPolicy context (default “config”)
--strictExit non-zero for HARD_FAIL or ERROR decisions

circleci policy diff <path> [flags]

Show diff between local and remote policy bundles

FlagDescription
--jq stringProcess values from the response using jq syntax
--jsonOutput as JSON
--org stringOrganization slug (e.g. gh/myorg) or UUID (required)
--policy-context stringPolicy context (default “config”)

Arguments:

is the path to a local directory of .rego policy files, e.g. “./policies”. Its contents are compared against the remote policy bundle.

circleci policy fetch [policy-name] [flags]

Download the remote policy bundle

FlagDescription
--jq stringProcess values from the response using jq syntax
--jsonOutput as JSON
--org stringOrganization slug (e.g. gh/myorg) or UUID (required)
--policy-context stringPolicy context (default “config”)

circleci policy logs [decision-id] [flags]

Get policy decision logs

FlagDescription
--after stringReturn logs created after this time (RFC3339 or YYYY-MM-DD)
--before stringReturn logs created before this time (RFC3339 or YYYY-MM-DD)
--branch stringFilter by branch name
--jq stringProcess values from the response using jq syntax
--jsonOutput as JSON
--org stringOrganization slug (e.g. gh/myorg) or UUID (required)
--out stringWrite output to this file instead of stdout
--policy-bundleRetrieve the policy bundle snapshot for the given decision ID
--policy-context stringPolicy context (default “config”)
--project-id stringFilter by project ID
--status stringFilter by decision status (PASS, SOFT_FAIL, HARD_FAIL, ERROR)

circleci policy push <path> [flags]

Push a policy bundle to CircleCI

FlagDescription
--jq stringProcess values from the response using jq syntax
--jsonOutput as JSON
--no-promptSkip confirmation prompt
--org stringOrganization slug (e.g. gh/myorg) or UUID (required)
--policy-context stringPolicy context (default “config”)

Arguments:

is the path to a local directory of .rego policy files, e.g. “./policies”. Its contents are uploaded as the policy bundle, replacing the existing bundle.

circleci policy settings <command>

Manage policy enforcement settings

circleci policy settings get [flags]

Get policy enforcement settings

FlagDescription
--jq stringProcess values from the response using jq syntax
--jsonOutput as JSON
--org stringOrganization slug (e.g. gh/myorg) or UUID (required)
--policy-context stringPolicy context (default “config”)
circleci policy settings set [flags]

Update policy enforcement settings

FlagDescription
--enabledEnable policy enforcement
--jq stringProcess values from the response using jq syntax
--jsonOutput as JSON
--org stringOrganization slug (e.g. gh/myorg) or UUID (required)
--policy-context stringPolicy context (default “config”)

circleci project <command>

List, follow and configure CircleCI projects

circleci project create [project-name] --org <vcs/org-slug> [flags]

Create a new project

FlagDescription
--jsonOutput as JSON
--org stringorganization slug (e.g. gh/myorg)

Arguments:

[project-name] is the name for the new project and is optional. When omitted, the current git repository’s name is used: in a terminal you are prompted with it as the default, and in non-interactive mode it is used automatically.

circleci project dlc <command>

Purge a project’s Docker layer cache (DLC)

circleci project dlc purge --project <slug> [flags]

Purge the Docker Layer Cache for a project

FlagDescription
--jsonOutput as JSON
--project stringProject slug (e.g. gh/org/repo); defaults to git remote

circleci project envvar <command>

List, set and delete a project’s environment variables

circleci project envvar delete <name> [flags]

Delete a project environment variable

FlagDescription
-f, --forceskip confirmation prompt
--project stringProject slug (e.g. gh/org/repo); defaults to git remote

Arguments:

is the name of the environment variable to delete from the project. This action is irreversible.

Aliases:

circleci project envvar rm

circleci project envvar list [flags]

List project environment variables

FlagDescription
--jq stringProcess values from the response using jq syntax
--jsonOutput as JSON
--project stringProject slug (e.g. gh/org/repo); defaults to git remote

Aliases:

circleci project envvar ls

circleci project envvar set <name> <value> [flags]

Set a project environment variable

FlagDescription
--project stringProject slug (e.g. gh/org/repo); defaults to git remote

Arguments:

is the name of the environment variable to create or update. is the value to store; it is never retrievable after being set and is masked in all subsequent list output.

circleci project follow [flags]

Follow a project

FlagDescription
--project stringProject slug (e.g. gh/org/repo); defaults to git remote

circleci project get [flags]

Show project details

FlagDescription
--jsonOutput as JSON
--project stringProject slug (e.g. gh/org/repo); defaults to git remote

Bind this checkout to a CircleCI project

FlagDescription
-f, --forceOverwrite an existing .circleci/info.yml
--project stringProject slug (e.g. gh/org/repo or circleci//)

circleci project list [flags]

List followed projects

FlagDescription
--jq stringProcess values from the response using jq syntax
--jsonOutput as JSON

Aliases:

circleci project ls

circleci project open [flags]

Open the project page in the browser

FlagDescription
--project stringProject slug (e.g. gh/org/repo); defaults to git remote

circleci project trigger <command>

Manage project triggers

circleci project trigger create [flags]

Create a new project trigger

FlagDescription
--checkout-ref stringGit ref for checking out code (only needed when checkout repo differs from event source repo)
--config-ref stringGit ref for fetching config (only needed when config repo differs from event source repo)
--event-preset stringEvent preset for filtering trigger events (one of: all-pushes, only-tags, default-branch-pushes, only-build-prs, only-open-prs, only-labeled-prs, only-merged-prs, only-ready-for-review-prs, only-branch-delete, only-build-pushes-to-non-draft-prs, only-merged-or-closed-prs, pr-comment-equals-run-ci, non-draft-pr-opened, pushes-to-merge-queues)
--jq stringProcess values from the response using jq syntax
--jsonOutput as JSON
--pipeline-definition-id stringPipeline definition ID (required)
--project stringProject slug (e.g. gh/org/repo); defaults to git remote
--project-id stringProject UUID (overrides –project)
--provider stringEvent source provider (one of: github_app, github_server, github_oauth, webhook, schedule) (default “github_app”)
--repo-id stringRepository external ID (required for github_app, github_server, github_oauth)
circleci project trigger list [flags]

List triggers for a pipeline definition

FlagDescription
--jq stringProcess values from the response using jq syntax
--jsonOutput as JSON
--pipeline-definition-id stringPipeline definition ID (required)
--project stringProject slug (e.g. gh/org/repo); defaults to git remote
--project-id stringProject UUID (overrides –project)

Aliases:

circleci project trigger ls

circleci runner <command>

Manage self-hosted runners

circleci runner config <resource-class> [flags]

Generate a runner agent configuration file

FlagDescription
--nickname stringNickname for the new token
-o, --output stringWrite config to this file instead of stdout
--token stringUse an existing token value instead of creating a new one

Arguments:

is the runner resource class to generate config for, in the form “namespace/name” (e.g. my-org/my-runner).

circleci runner instance <command>

Manage runner instances

circleci runner instance list [flags]

List connected runner instances

FlagDescription
--jq stringProcess values from the response using jq syntax
--jsonOutput as JSON
--namespace stringFilter by namespace (organization)
--org stringOrganization slug (e.g. gh/myorg) or UUID; defaults to git remote
--resource-class stringFilter by resource class (namespace/name)

Aliases:

circleci runner instance ls

circleci runner open [flags]

Open the runners inventory page in the browser

FlagDescription
--org stringOrganization slug (e.g. gh/myorg); defaults to git remote

circleci runner resource-class <command>

Manage runner resource classes

circleci runner resource-class create <namespace>/<name> [flags]

Create a runner resource class

FlagDescription
--description stringHuman-readable description of the resource class
--jq stringProcess values from the response using jq syntax
--jsonOutput as JSON

Arguments:

The resource class name must be given in the form “namespace/name”, where namespace is your organization name (e.g. my-org/my-runner).

circleci runner resource-class delete <namespace>/<name> [flags]

Delete a runner resource class

FlagDescription
-f, --forceskip confirmation prompt

Arguments:

The resource class to delete, given in the form “namespace/name”, where namespace is your organization name (e.g. my-org/my-runner).

Aliases:

circleci runner resource-class rm

circleci runner resource-class list [flags]

List runner resource classes

FlagDescription
--jq stringProcess values from the response using jq syntax
--jsonOutput as JSON
--namespace stringFilter by namespace (organization)
--org stringOrganization slug (e.g. gh/myorg) or UUID; defaults to git remote

Aliases:

circleci runner resource-class ls

circleci runner task [flags]

Show task counts for a runner resource class

FlagDescription
--jq stringProcess values from the response using jq syntax
--jsonOutput as JSON
--resource-class stringResource class to query (namespace/name)

circleci runner token <command>

Manage runner tokens

circleci runner token create <resource-class> [flags]

Create a token for a resource class

FlagDescription
--jq stringProcess values from the response using jq syntax
--jsonOutput as JSON
--nickname stringHuman-readable nickname for the token

Arguments:

is the runner resource class to create a token for, in the form “namespace/name” (e.g. my-org/my-runner).

circleci runner token delete <token-id> [flags]

Delete a runner token

FlagDescription
-f, --forceskip confirmation prompt

Arguments:

is the ID of the token to delete (a UUID). Find token IDs with: circleci runner token list –resource-class <namespace/name>

Aliases:

circleci runner token rm

circleci runner token list [flags]

List tokens for a resource class

FlagDescription
--jq stringProcess values from the response using jq syntax
--jsonOutput as JSON
--resource-class stringFilter by resource class (namespace/name)

Aliases:

circleci runner token ls

circleci signing-config <command>

Manage iOS signing configs

circleci signing-config create [flags]

Create an iOS signing config

FlagDescription
--cert-id stringID of an uploaded certificate (see: circleci certificate list)
--jq stringProcess values from the response using jq syntax
--jsonOutput as JSON
--name stringName for the signing config (referenced in pipeline config)
--org stringOrganization slug (e.g. gh/myorg) or UUID; defaults to git remote
--profile stringArrayPath to a provisioning profile file (repeatable)

circleci signing-config delete <signing-config-id> [flags]

Delete an iOS signing config

FlagDescription
-f, --forceskip confirmation prompt

Arguments:

is the ID of the signing config to delete (see: circleci signing-config list).

Aliases:

circleci signing-config rm

circleci signing-config list [flags]

List iOS signing configs

FlagDescription
--jq stringProcess values from the response using jq syntax
--jsonOutput as JSON
--org stringOrganization slug (e.g. gh/myorg) or UUID; defaults to git remote

Aliases:

circleci signing-config ls

User Commands

circleci auth <command>

Log in, sign up and check your CircleCI identity

circleci auth id [flags]

Show the device ID for this CLI installation

FlagDescription
--jsonOutput as JSON

circleci auth login [flags]

Log in to a CircleCI account

FlagDescription
--no-browserPrint the authorize URL instead of opening a browser

circleci auth logout [flags]

Log out of a CircleCI account

FlagDescription
--jq stringProcess values from the response using jq syntax
--jsonOutput as JSON

circleci auth me [flags]

Display active account information

FlagDescription
--jq stringProcess values from the response using jq syntax
--jsonOutput as JSON

circleci auth signup [flags]

Sign-up for a new CircleCI account

FlagDescription
--no-browserPrint the authorize URL instead of opening a browser

circleci completion <command>

Install, remove or print shell completions

circleci completion install

Install shell completion into your shell profile

circleci completion uninstall

Remove shell completion from your shell profile

circleci mcp

Run the CLI as an MCP server for AI tools

circleci mcp claude

Manage Claude Desktop MCP servers

circleci mcp claude disable [flags]

Remove server from Claude config

FlagDescription
--config-path stringPath to Claude config file
--server-name stringName of the MCP server to remove (default: derived from executable name)
circleci mcp claude enable [flags]

Add server to Claude config

FlagDescription
--config-path stringPath to Claude config file
-e, --env stringToStringEnvironment variables (e.g., –env KEY1=value1 –env KEY2=value2) (default [])
--log-level stringLog level (debug, info, warn, error)
--server-name stringName for the MCP server (default: derived from executable name)
circleci mcp claude list [flags]

Show Claude MCP servers

FlagDescription
--config-path stringPath to Claude config file

circleci mcp cursor

Manage Cursor MCP servers

circleci mcp cursor disable [flags]

Remove server from Cursor config

FlagDescription
--config-path stringPath to Cursor config file
--server-name stringName of the MCP server to remove (default: derived from executable name)
--workspaceRemove from workspace settings (.cursor/mcp.json) instead of user settings
circleci mcp cursor enable [flags]

Add server to Cursor config

FlagDescription
--config-path stringPath to Cursor config file
-e, --env stringToStringEnvironment variables (e.g., –env KEY1=value1 –env KEY2=value2) (default [])
--log-level stringLog level (debug, info, warn, error)
--server-name stringName for the MCP server (default: derived from executable name)
--workspaceAdd to workspace settings (.cursor/mcp.json) instead of user settings
circleci mcp cursor list [flags]

Show Cursor MCP servers

FlagDescription
--config-path stringPath to Cursor config file
--workspaceList from workspace settings (.cursor/mcp.json) instead of user settings

circleci mcp start [flags]

Start the MCP server

FlagDescription
--log-level stringLog level (debug, info, warn, error)

circleci mcp stream [flags]

Stream the MCP server over HTTP

FlagDescription
--host stringhost to listen on
--log-level stringLog level (debug, info, warn, error)
--port intport number to listen on (default 8080)

circleci mcp tools [flags]

Export tools as JSON

FlagDescription
--log-level stringLog level (debug, info, warn, error)

circleci mcp vscode

Manage VSCode MCP servers

circleci mcp vscode disable [flags]

Remove server from VSCode config

FlagDescription
--config-path stringPath to VSCode config file
--server-name stringName of the MCP server to remove (default: derived from executable name)
--workspaceRemove from workspace settings (.vscode/mcp.json) instead of user settings
circleci mcp vscode enable [flags]

Add server to VSCode config

FlagDescription
--config-path stringPath to VSCode config file
-e, --env stringToStringEnvironment variables (e.g., –env KEY1=value1 –env KEY2=value2) (default [])
--log-level stringLog level (debug, info, warn, error)
--server-name stringName for the MCP server (default: derived from executable name)
--workspaceAdd to workspace settings (.vscode/mcp.json) instead of user settings
circleci mcp vscode list [flags]

Show VSCode MCP servers

FlagDescription
--config-path stringPath to VSCode config file
--workspaceList from workspace settings (.vscode/mcp.json) instead of user settings

circleci my <command>

Show resources for the authenticated user

circleci my runs [flags]

List your recent runs grouped by project

FlagDescription
--jq stringProcess values from the response using jq syntax
--jsonOutput as JSON
--limit intMaximum number of runs to fetch [default: 20] (default 20)

Aliases:

circleci my run

circleci onboard [path] [flags]

Guided onboarding: scan, test, generate config, sign up

FlagDescription
--no-browserPrint the signup URL instead of opening a browser

circleci setting <command>

Configure the CLI itself (token, host, defaults)

circleci setting list [flags]

List current CLI settings

FlagDescription
--jq stringProcess values from the response using jq syntax
--jsonOutput as JSON

Aliases:

circleci setting ls

circleci setting set <key> <value>

Set a CLI setting

Arguments:

  • is the setting to change: token, host, telemetry, or theme.
  • is the value to store. Pass “-” to read it from stdin. May be omitted for “theme” to pick interactively.

circleci setting unset <key>

Remove a stored CLI setting

Arguments:

is the setting to remove. Currently only “token” is supported.

Extension Commands

circleci agent

Extension (circleci-agent)

Additional Commands

circleci api <path> [flags]

Call the CircleCI REST API directly

FlagDescription
-d, --data stringRaw request body sent verbatim; @file reads from a file, @- from stdin
-f, --field stringArrayAdd a field: key=value (query param for GET/DELETE, JSON body for POST/PUT/PATCH)
-H, --header stringArrayAdd a request header: “Key: Value”
--jq stringProcess values from the response using jq syntax
-X, --method stringHTTP method (default: GET, or POST when -f or -d is used)

Arguments:

is the request path. It is relative to /api/v3 by default (e.g. “projects/{project-id}”). To target a different version prefix, include it explicitly, e.g. “api/v2/me”.

circleci version [flags]

Print version information

FlagDescription
--jsonoutput as JSON (fields: version, commit, modified)