Bitrise CLI
May 23, 2025 ยท View on GitHub
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.ymlchanges before pushing a commit (bitrise validate) - run CI workflows locally (
bitrise run workflow_name) - run the workflow editor in
localhostand edit your configs and pipelines visually (bitrise :workflow-editor) - perform various other tasks (for a full list run
bitrise help)
Install
There are multiple ways to install Bitrise CLI:
- Homebrew:
brew install bitrise - Nix: available as
bitrisein nixpkgs, runnix-shell -p bitriseor 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 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
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 stepman share and then following the
guide it prints.