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
gh auth token automatically; override with
env vars or flags when scripting.--json output on read
commands, and stable exit codes for scripts and runbooks.brew install mergifyio/tap/mergify-cli
The 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 | sh
Installs 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:
mergify-<version>-x86_64-pc-windows-msvc.zip,
extract it, and put mergify.exe anywhere on your PATH.mergify-<version>-<target>.tar.gz (e.g.
mergify-2026.4.23.1-aarch64-apple-darwin.tar.gz), extract with tar -xzf,
and put the resulting mergify binary anywhere on your PATH.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 schema
Run 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 events — Browse the events Mergify recorded for the
repository or one pull request, as a timeline or JSON.mergify 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.fish
These 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-cli
Install as a Claude Code plugin:
/plugin install mergify@claude-plugins-official
Full 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.
Rust
98.8%
Shell
1.2%
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
gh auth token automatically; override with
env vars or flags when scripting.--json output on read
commands, and stable exit codes for scripts and runbooks.brew install mergifyio/tap/mergify-cli
The 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 | sh
Installs 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:
mergify-<version>-x86_64-pc-windows-msvc.zip,
extract it, and put mergify.exe anywhere on your PATH.mergify-<version>-<target>.tar.gz (e.g.
mergify-2026.4.23.1-aarch64-apple-darwin.tar.gz), extract with tar -xzf,
and put the resulting mergify binary anywhere on your PATH.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 schema
Run 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 events — Browse the events Mergify recorded for the
repository or one pull request, as a timeline or JSON.mergify 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.fish
These 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-cli
Install as a Claude Code plugin:
/plugin install mergify@claude-plugins-official
Full 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.
Rust
98.8%
Shell
1.2%