bitrise-io/bitrise

Bitrise runner CLI - run your automations on your Mac or Linux machine -

See the code

README

Bitrise CLI

Bitrise CLI is the workflow runner that powers Bitrise builds. It's the component that runs inside build machines and execute steps defined in bitrise.yml.

It's also useful as a standalone dev tool in your local environment. You can:

  • quickly validate your bitrise.yml changes before pushing a commit (bitrise yml validate)
  • run CI workflows locally (bitrise local run workflow_name)
  • run the workflow editor in localhost and edit your configs and pipelines visually (bitrise :workflow-editor)
  • perform various other tasks (for a full list run bitrise help)

Install

Packaging status

There are multiple ways to install Bitrise CLI:

  • Homebrew: brew install bitrise
  • Nix: available as bitrise in nixpkgs, run nix-shell -p bitrise or your preferred configuration method.
  • Download a pre-built binary from the releases page
  • There might be other community-maintained packages

You can enable shell completion for the bitrise local run command: https://blog.bitrise.io/workflow-id-completion

Building from source

Set up the right Go version indicated by the go.mod file, then run go install .

Documentation

CLI documentation is part of the main Bitrise docs. Relevant sections:

Tutorials and Examples

You can find examples in the _examples folder.

If you're getting started you should start with _examples/tutorials, this should guide you through the basics, while you'll already use bitrise (requires installed bitrise).

You can find a complete iOS sample project at: https://github.com/bitrise-io/sample-apps-ios-with-bitrise-yml

Commands

app — List, inspect, and manage apps.

CommandDescription
app createRegister a new app on Bitrise
app listList apps the authenticated user can access
app viewShow details of a single app

auth — Manage the Bitrise access token

CommandDescription
auth loginSave a Bitrise access token
auth logoutRemove the saved access token
auth statusShow whether an access token is configured and where it came from

build — Trigger, list, and inspect builds.

CommandDescription
build abortAbort a running or queued build
build listList builds for an app
build logPrint the build log
build triggerStart a new build
build viewShow details of a single build
build watchStream logs for a running build
build ymlPrint the bitrise.yml a specific build ran with

config — Manage CLI configuration (defaults persisted to a YAML file).

CommandDescription
config getPrint the value of a single config key
config listList the values currently saved in the global config file
config pathPrint the absolute path of the global config file
config setSet a config key and save the global config file
config unsetRemove a config key and save the global config file

local — Run and manage Bitrise workflows on the local host.

CommandDescription
local initInit bitrise config.
local runRuns a specified Workflow.
local setupSetup the current host. Install every required tool to run Workflows.
local tools catalogList officially supported tools
local tools infoShow information about installed or active tools.
local tools installInstall a specific tool version
local tools latestQuery the latest version of a tool
local tools setupInstall tools from version files or bitrise.yml
local tools versionsList available versions for a supported tool
local workflowsList of available workflows in config.

plugin — Plugin handling.

CommandDescription
plugin deleteDelete bitrise plugin.
plugin infoInstalled bitrise plugin's info
plugin installInstall bitrise plugin.
plugin listList installed bitrise plugins.
plugin updateUpdate bitrise plugin. If <plugin_name> not specified, every plugin will be updated.

rde — Manage Bitrise Remote Dev Environments (sessions, templates, …)

CommandDescription
rde claudeCreate an RDE session and attach to Claude Code
rde machine-type listList machine types compatible with a given stack
rde saved-input createCreate a new saved input
rde saved-input deleteDelete a saved input
rde saved-input listList saved inputs for the authenticated user
rde saved-input updateUpdate a saved input's value and/or secret flag
rde saved-input viewShow details of a single saved input
rde session createCreate a new RDE session
rde session deletePermanently delete a session in any state (running sessions are stopped and discarded)
rde session delete-terminatedPermanently delete every terminated session in the workspace
rde session diffCompare a session's template snapshot with the current template
rde session downloadDownload a file or directory from a session
rde session execRun a command on a session over SSH
rde session listList RDE sessions in the workspace
rde session logsPrint a session's warmup or startup logs
rde session notificationsList notifications emitted by a session
rde session open-vncOpen a session's VNC endpoint in the OS-default viewer
rde session restoreRestore a terminated session (re-provisions its VM from the persistent disk)
rde session terminateTerminate a running session but keep it for a later restore
rde session updateUpdate a session's name, description, auto-terminate duration, or labels
rde session uploadUpload a local file or directory into a session
rde session viewShow details of a single session
rde session vncPrint VNC connection details, or forward the endpoint to a local port
rde stack listList machine stacks
rde template createCreate a new RDE template from a JSON spec file
rde template deleteDelete an RDE template
rde template listList RDE templates in the workspace
rde template updateUpdate an existing RDE template from a JSON spec file
rde template viewShow details of a single template
rde usageShow the workspace's active session and resource usage

stack — Manage build stacks.

CommandDescription
stack listList available stacks and their machine configurations

step — Manage steps.

CommandDescription
step inputsList inputs of a step version
step list-cachedList all the cached steps
step preloadMakes sure that Bitrise CLI can be used in offline mode by preloading Bitrise maintaned Steps.
step searchFind steps by name, description, or tags
step share auditValidates the step collection.
step share createCreate your change - add it to your own copy of the collection.
step share finishFinish up.
step share startPreparations for publishing.

user — Create and manage your Bitrise account.

CommandDescription
user createCreate a new Bitrise account
user meShow the currently authenticated user

yml — Work with bitrise.yml files.

CommandDescription
yml getPrint the bitrise.yml stored on Bitrise
yml mergeResolves includes in a modular bitrise.yml and merges included config modules into a single bitrise.yml file.
yml updateUpload a new bitrise.yml to Bitrise
yml validateValidates a specified bitrise config.

Other commands

CommandDescription
apiMake an authenticated request to the Bitrise API
envmanRuns an envman command.
updateUpdates the Bitrise CLI.
versionPrints the version

Tooling support & JSON output format

bitrise CLI commands support a --format=[format] parameter. This is intended mainly for tooling support, by adding --format=json you'll get a JSON formatted output on Standard Output.

Every error, warning etc. message will go to StdErr; and on the StdOut you should only get the valid JSON output.

An example calling the version command:

$ bitrise version --format=json

Will print {"version":"1.2.4"} to the Standard Output (StdOut).

Share your Step

You can use your own Step as you can see in the _examples, even if it's not yet committed into a repository, or from a repository directly.

If you would like to share your awesome Step with others you can do so by calling bitrise step share and then following the guide it prints.

bitrise
cli
production-code

Significant stargazers

Philippe Bernery

42 followers · starred Aug 2017

Harrison Hogg

50 followers · starred Mar 2019

scott lewis

115 followers · starred Sep 2025

bitrise-io/bitrise

Bitrise runner CLI - run your automations on your Mac or Linux machine -

See the code

README

Bitrise CLI

Bitrise CLI is the workflow runner that powers Bitrise builds. It's the component that runs inside build machines and execute steps defined in bitrise.yml.

It's also useful as a standalone dev tool in your local environment. You can:

  • quickly validate your bitrise.yml changes before pushing a commit (bitrise yml validate)
  • run CI workflows locally (bitrise local run workflow_name)
  • run the workflow editor in localhost and edit your configs and pipelines visually (bitrise :workflow-editor)
  • perform various other tasks (for a full list run bitrise help)

Install

Packaging status

There are multiple ways to install Bitrise CLI:

  • Homebrew: brew install bitrise
  • Nix: available as bitrise in nixpkgs, run nix-shell -p bitrise or your preferred configuration method.
  • Download a pre-built binary from the releases page
  • There might be other community-maintained packages

You can enable shell completion for the bitrise local run command: https://blog.bitrise.io/workflow-id-completion

Building from source

Set up the right Go version indicated by the go.mod file, then run go install .

Documentation

CLI documentation is part of the main Bitrise docs. Relevant sections:

Tutorials and Examples

You can find examples in the _examples folder.

If you're getting started you should start with _examples/tutorials, this should guide you through the basics, while you'll already use bitrise (requires installed bitrise).

You can find a complete iOS sample project at: https://github.com/bitrise-io/sample-apps-ios-with-bitrise-yml

Commands

app — List, inspect, and manage apps.

CommandDescription
app createRegister a new app on Bitrise
app listList apps the authenticated user can access
app viewShow details of a single app

auth — Manage the Bitrise access token

CommandDescription
auth loginSave a Bitrise access token
auth logoutRemove the saved access token
auth statusShow whether an access token is configured and where it came from

build — Trigger, list, and inspect builds.

CommandDescription
build abortAbort a running or queued build
build listList builds for an app
build logPrint the build log
build triggerStart a new build
build viewShow details of a single build
build watchStream logs for a running build
build ymlPrint the bitrise.yml a specific build ran with

config — Manage CLI configuration (defaults persisted to a YAML file).

CommandDescription
config getPrint the value of a single config key
config listList the values currently saved in the global config file
config pathPrint the absolute path of the global config file
config setSet a config key and save the global config file
config unsetRemove a config key and save the global config file

local — Run and manage Bitrise workflows on the local host.

CommandDescription
local initInit bitrise config.
local runRuns a specified Workflow.
local setupSetup the current host. Install every required tool to run Workflows.
local tools catalogList officially supported tools
local tools infoShow information about installed or active tools.
local tools installInstall a specific tool version
local tools latestQuery the latest version of a tool
local tools setupInstall tools from version files or bitrise.yml
local tools versionsList available versions for a supported tool
local workflowsList of available workflows in config.

plugin — Plugin handling.

CommandDescription
plugin deleteDelete bitrise plugin.
plugin infoInstalled bitrise plugin's info
plugin installInstall bitrise plugin.
plugin listList installed bitrise plugins.
plugin updateUpdate bitrise plugin. If <plugin_name> not specified, every plugin will be updated.

rde — Manage Bitrise Remote Dev Environments (sessions, templates, …)

CommandDescription
rde claudeCreate an RDE session and attach to Claude Code
rde machine-type listList machine types compatible with a given stack
rde saved-input createCreate a new saved input
rde saved-input deleteDelete a saved input
rde saved-input listList saved inputs for the authenticated user
rde saved-input updateUpdate a saved input's value and/or secret flag
rde saved-input viewShow details of a single saved input
rde session createCreate a new RDE session
rde session deletePermanently delete a session in any state (running sessions are stopped and discarded)
rde session delete-terminatedPermanently delete every terminated session in the workspace
rde session diffCompare a session's template snapshot with the current template
rde session downloadDownload a file or directory from a session
rde session execRun a command on a session over SSH
rde session listList RDE sessions in the workspace
rde session logsPrint a session's warmup or startup logs
rde session notificationsList notifications emitted by a session
rde session open-vncOpen a session's VNC endpoint in the OS-default viewer
rde session restoreRestore a terminated session (re-provisions its VM from the persistent disk)
rde session terminateTerminate a running session but keep it for a later restore
rde session updateUpdate a session's name, description, auto-terminate duration, or labels
rde session uploadUpload a local file or directory into a session
rde session viewShow details of a single session
rde session vncPrint VNC connection details, or forward the endpoint to a local port
rde stack listList machine stacks
rde template createCreate a new RDE template from a JSON spec file
rde template deleteDelete an RDE template
rde template listList RDE templates in the workspace
rde template updateUpdate an existing RDE template from a JSON spec file
rde template viewShow details of a single template
rde usageShow the workspace's active session and resource usage

stack — Manage build stacks.

CommandDescription
stack listList available stacks and their machine configurations

step — Manage steps.

CommandDescription
step inputsList inputs of a step version
step list-cachedList all the cached steps
step preloadMakes sure that Bitrise CLI can be used in offline mode by preloading Bitrise maintaned Steps.
step searchFind steps by name, description, or tags
step share auditValidates the step collection.
step share createCreate your change - add it to your own copy of the collection.
step share finishFinish up.
step share startPreparations for publishing.

user — Create and manage your Bitrise account.

CommandDescription
user createCreate a new Bitrise account
user meShow the currently authenticated user

yml — Work with bitrise.yml files.

CommandDescription
yml getPrint the bitrise.yml stored on Bitrise
yml mergeResolves includes in a modular bitrise.yml and merges included config modules into a single bitrise.yml file.
yml updateUpload a new bitrise.yml to Bitrise
yml validateValidates a specified bitrise config.

Other commands

CommandDescription
apiMake an authenticated request to the Bitrise API
envmanRuns an envman command.
updateUpdates the Bitrise CLI.
versionPrints the version

Tooling support & JSON output format

bitrise CLI commands support a --format=[format] parameter. This is intended mainly for tooling support, by adding --format=json you'll get a JSON formatted output on Standard Output.

Every error, warning etc. message will go to StdErr; and on the StdOut you should only get the valid JSON output.

An example calling the version command:

$ bitrise version --format=json

Will print {"version":"1.2.4"} to the Standard Output (StdOut).

Share your Step

You can use your own Step as you can see in the _examples, even if it's not yet committed into a repository, or from a repository directly.

If you would like to share your awesome Step with others you can do so by calling bitrise step share and then following the guide it prints.

bitrise
cli
production-code

Significant stargazers

Philippe Bernery

42 followers · starred Aug 2017

Harrison Hogg

50 followers · starred Mar 2019

scott lewis

115 followers · starred Sep 2025

Languages

Go

99.8%