Drive Mergify from your terminal and CI pipelines:
stacked pull requests, the merge queue, CI Insights, scheduled freezes, and
configuration — all from a single self-contained binary that reuses your
existing GitHub (gh) login.
mergify stack push # turn your local commits into stacked PRs
mergify queue status # inspect the merge queue
mergify ci junit-process report.xml # upload test results to CI Insights- One static binary. No runtime, no dependencies — drop it on a developer laptop or a CI runner and go.
- Zero-config auth. Picks up
gh auth tokenautomatically; override with env vars or flags when scripting. - Built for pipelines. Logs to stderr, structured
--jsonoutput on read commands, and stable exit codes for scripts and runbooks. - Cross-platform. Linux, macOS (x86_64 + aarch64), and Windows.
brew install mergifyio/tap/mergify-cliThe fully-qualified name taps and installs in one step. Upgrade with
brew upgrade mergify-cli — not mergify self-update, which overwrites the
Homebrew-managed binary. See the tap
for tap-trust and short-name details.
curl -fsSL https://raw.githubusercontent.com/Mergifyio/mergify-cli/main/install.sh | shInstalls to ~/.local/bin/mergify. Override with MERGIFY_INSTALL_DIR=/usr/local/bin
or pin a version with MERGIFY_VERSION=<version>. Upgrade with mergify self-update.
Grab the matching archive from the latest release:
- Windows — download
mergify-<version>-x86_64-pc-windows-msvc.zip, extract it, and putmergify.exeanywhere on yourPATH. - Linux / macOS — download
mergify-<version>-<target>.tar.gz(e.g.mergify-2026.4.23.1-aarch64-apple-darwin.tar.gz), extract withtar -xzf, and put the resultingmergifybinary anywhere on yourPATH.
Verify against SHA256SUMS from the same release if you care.
Most commands talk to the Mergify and GitHub APIs and need a token. The CLI
resolves credentials and target repository in this order, so an authenticated
gh is usually all you need:
| What | --flag |
then env | then |
|---|---|---|---|
| Token | --token / -t |
MERGIFY_TOKEN, GITHUB_TOKEN |
gh auth token |
| Repository | --repository / -r |
GITHUB_REPOSITORY |
git remote (origin) |
| API URL | --api-url / -u |
MERGIFY_API_URL |
https://api.mergify.com |
See the authentication guide for details.
# Stacked pull requests — one PR per commit, kept in sync
mergify stack setup # once per repo: install the git hooks the stack needs
mergify stack push # push commits and create/update their PRs
mergify stack list # show the stack and its PR status
mergify stack sync # rebase the stack onto its trunk
# Merge queue
mergify queue status # current queue state for the repo
mergify queue status --json # same, as machine-readable JSON
# CI Insights — from inside your pipeline
mergify ci junit-process report.xml --test-language python
# Configuration
mergify config validate # check .mergify.yml against the schemaRun mergify --help for the full command list and mergify <command> --help
for any command's flags.
Every command group maps to a section of the CLI reference.
mergify stack— Create and maintain stacked pull requests. Docsmergify queue— Inspect and control the merge queue. Docsmergify ci— Send JUnit results and pull request scopes from any CI provider. Docsmergify tests— Look up test health and manage the flaky-test quarantine. Docsmergify freeze— Schedule merge freezes for release windows and maintenance. Docsmergify config— Validate your configuration and simulate actions before you merge. Docsmergify self-update— Update the CLI to the latest release.mergify completions <shell>— Print a shell completion script (see below).
Run mergify <command> --help for a group's subcommands and flags.
Generate a completion script for your shell — bash, zsh, fish,
elvish, or powershell:
# zsh — write to a directory on your $fpath
mergify completions zsh > ~/.zfunc/_mergify
# bash — load in your current session (add to ~/.bashrc to persist)
source <(mergify completions bash)
# fish
mergify completions fish > ~/.config/fish/completions/mergify.fishThese are accepted on every command:
| Flag | Description |
|---|---|
-v, --verbose |
Increase log verbosity: -v info, -vv debug, -vvv trace. Logs go to stderr so stdout stays pipeable. |
--debug |
Shorthand for at least debug-level logging (like -vv). |
--color <auto|always|never> |
When to colorize terminal output. |
| Variable | Effect |
|---|---|
MERGIFY_TOKEN, GITHUB_TOKEN |
API token (falls back to gh auth token). |
GITHUB_REPOSITORY |
Default owner/repo when --repository is omitted. |
MERGIFY_API_URL |
API base URL (default https://api.mergify.com). |
RUST_LOG |
Fine-grained log filtering; overrides --verbose. |
NO_COLOR |
Disable colored output. |
MERGIFY_INSTALL_DIR, MERGIFY_VERSION |
Install-script target directory / pinned version. |
Commands return stable exit codes so scripts and runbooks can branch on them:
| Code | Meaning |
|---|---|
0 |
Success. |
1 |
Unclassified runtime failure (I/O error, bug, or captured panic). |
2 |
Argument parsing / usage error. |
3 |
Stack, branch, or commit not found. |
4 |
Rebase or merge conflict. |
5 |
GitHub API request failed. |
6 |
Mergify API request failed. |
7 |
CLI invariant violated (e.g. run outside a valid context). |
8 |
Configuration missing, unparseable, or failing validation. |
Mergify CLI provides AI skills for managing stacked PRs and Git workflows, compatible with Claude Code, Cursor, and many other AI agents.
Install via npx (all agents):
npx skills add Mergifyio/mergify-cliInstall as a Claude Code plugin:
/plugin marketplace add Mergifyio/mergify-cli
/plugin install mergifyFull reference and guides live at docs.mergify.com/cli.
Contributions are welcome — open an issue or a pull request. The workspace is a Rust monorepo; see AGENTS.md for the crate layout, build, and test workflow.
Apache License 2.0 — see LICENSE.