Skip to main content

Mergify CLI

CI Latest release Documentation

Drive Mergify from your terminal and CI pipelines: stacked pull requests, the merge queue, Test Engine, 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 Test Engine
  • One static binary. No runtime, no dependencies — drop it on a developer laptop or a CI runner and go.
  • One command to sign in. mergify auth login approves the CLI in your browser and keeps the credential in your OS keychain; MERGIFY_TOKEN or --token for scripting.
  • Built for pipelines. Logs to stderr, structured --json output on read commands, and stable exit codes for scripts and runbooks.
  • Cross-platform. Linux, macOS (x86_64 + aarch64), and Windows.

Installation

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.

Manual download (Windows, or to bypass the script)

Grab the matching archive from the latest release:

  • Windows — download mergify-<version>-x86_64-pc-windows-msvc.zip, extract it, and put mergify.exe anywhere on your PATH.
  • Linux / macOS — download mergify-<version>-<target>.tar.gz (e.g. mergify-2026.10.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.

Authentication

Sign in once:

mergify auth login

It opens the approval page in your browser, and prints the URL and the code as well: pass --no-browser, or run it where there is no browser to open, and the printed pair is all you need. Once you approve, the credential lands in your OS keychain — or, on a machine with none (a container, an unattended agent, a headless box with no D-Bus session), in a restricted file under your configuration directory. mergify auth status says which account you are signed in as, and mergify auth logout asks the Mergify API to revoke the credential rather than only deleting the local copy.

The approval page labels the new token Mergify CLI on <hostname>. Pass --device-name "work laptop" to name the machine yourself, or --device-name= to keep the hostname from leaving the machine at all.

The commands that talk to the Mergify API resolve a credential in this order:

# Credential
1 --token / -t
2 MERGIFY_TOKEN
3 the credential stored by mergify auth login keyed by API URL
4 GITHUB_TOKEN deprecated
5 gh auth token deprecated

A GitHub token still authenticates against the Mergify API and prints a deprecation warning once per run. It will stop working in a future release; run mergify auth login instead. In CI, set MERGIFY_TOKEN — nothing about that changes.

mergify ci skips step 3. Those endpoints require an organization application key, which is what MERGIFY_TOKEN holds in a CI job; the per-user credential mergify auth login mints is refused there by design.

mergify stack also calls the GitHub API directly, and resolves that token separately (--token, MERGIFY_TOKEN, GITHUB_TOKEN, gh auth token). It is unaffected by the deprecation above: stack needs a GitHub credential and Mergify never issues one. A Mergify-issued token (mut_…) is skipped there rather than sent to GitHub, which would only answer 401 Bad credentials — in MERGIFY_TOKEN, in GITHUB_TOKEN, and in what gh auth token returns, since it echoes GITHUB_TOKEN when that is set. Only an explicit --token is sent as given.

The repository and API URL resolve as before:

What --flag then env then
Repository --repository / -r GITHUB_REPOSITORY git remote (origin)
API URL --api-url / -u MERGIFY_API_URL https://api.mergify.com

Credentials are stored per API URL, so one machine can hold a credential for the hosted service and one for an on-premise install.

Mergify application keys come in two classes, each reaching its own set of endpoints rather than one being a subset of the other. A ci key is scoped to what a CI job does — trace upload, ci scopes-send, quarantine evaluation and the quarantine list. Trace upload and ci scopes-send take a ci key only, and answer an admin key or a user credential with 403 Forbidden. Reading test health (mergify tests show) and changing the quarantine (mergify tests quarantines add / remove) need an admin key or a user credential — the one mergify auth login stores, or a GitHub PAT — and answer a ci key with 403 Forbidden. Note that GITHUB_TOKEN inside GitHub Actions is the ephemeral installation token, not a PAT, and does not reach the Mergify API.

See the authentication guide for details.

Quick start

# 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

# Test Engine — 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.

Commands

Every command group maps to a section of the CLI reference.

  • mergify auth — Sign in to Mergify and manage the stored credential (login, logout, status).
  • mergify stack — Create and maintain stacked pull requests. Docs
  • mergify queue — Inspect and control the merge queue. Docs
  • mergify 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. Docs
  • mergify tests — Look up test health and manage the flaky-test quarantine. Docs
  • mergify freeze — Schedule merge freezes for release windows and maintenance. Docs
  • mergify config — Validate your configuration and simulate actions before you merge. Docs
  • mergify 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.

Shell completions

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

Global options

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.

Environment variables

Variable Effect
MERGIFY_TOKEN API token. Takes precedence over a stored mergify auth login credential.
GITHUB_TOKEN Deprecated as a Mergify API credential (falls back to gh auth token); still the GitHub token mergify stack uses.
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. Must be set to a non-empty value; exported-but-empty counts as unset.
FORCE_COLOR, CLICOLOR_FORCE Force colored output when it would otherwise be off. Same non-empty rule, and NO_COLOR wins over both. All three apply to --color auto only.
MERGIFY_INSTALL_DIR, MERGIFY_VERSION Install-script target directory / pinned version.

Exit codes

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 or credentials missing, unparseable, or failing validation (including "not logged in").

AI Agent Skills

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

Documentation

Full reference and guides live at docs.mergify.com/cli.

Contributing

Bug reports and feature requests are welcome: open an issue. The CLI is developed by Mergify; this repository publishes it: the releases, the installer, the agent skills and this README, all updated with each release. Suggestions to install.sh, skills/ or the documentation are welcome as issues too. See AGENTS.md for what lives where.

License

Proprietary — see LICENSE. Use is governed by the Mergify Terms of Service.

Metadata

Release files for mergify-cli 2026.10.7

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for mergify-cli 2026.10.7
File Actions
mergify_cli-2026.10.7-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details for mergify_cli-2026.10.7-py3-none-win_amd64.whl
mergify_cli-2026.10.7-py3-none-musllinux_1_2_x86_64.whl Python 3 none Linux musl 1.2+ x86-64 Details for mergify_cli-2026.10.7-py3-none-musllinux_1_2_x86_64.whl
mergify_cli-2026.10.7-py3-none-musllinux_1_2_aarch64.whl Python 3 none Linux musl 1.2+ ARM64 Details for mergify_cli-2026.10.7-py3-none-musllinux_1_2_aarch64.whl
mergify_cli-2026.10.7-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl Python 3 none Linux glibc 2.17+ x86-64 Details for mergify_cli-2026.10.7-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
mergify_cli-2026.10.7-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl Python 3 none Linux glibc 2.17+ ARM64 Details for mergify_cli-2026.10.7-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
mergify_cli-2026.10.7-py3-none-macosx_11_0_arm64.whl Python 3 none macOS 11.0+ ARM64 Details for mergify_cli-2026.10.7-py3-none-macosx_11_0_arm64.whl
mergify_cli-2026.10.7-py3-none-macosx_10_12_x86_64.whl Python 3 none macOS 10.12+ x86-64 Details for mergify_cli-2026.10.7-py3-none-macosx_10_12_x86_64.whl

Total release size: 56.6 MB

Release files / mergify_cli-2026.10.7-py3-none-win_amd64.whl

Download URL mergify_cli-2026.10.7-py3-none-win_amd64.whl
Size 7.8 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
5f2b1778df32560c6a01ce0b8cb531129fc036992eca05eb4641595281bb1a2a
BLAKE2b-256 checksum
How to use checksums
1d089f1afd5f648a838666b77d30efa62e5258243f4d10fe7b7cf2bdf70d70bc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.

Transparency log

Release files / mergify_cli-2026.10.7-py3-none-musllinux_1_2_x86_64.whl

Download URL mergify_cli-2026.10.7-py3-none-musllinux_1_2_x86_64.whl
Size 8.9 MB
Tags Linux musl 1.2+ x86-64 Python 3
SHA-256 checksum
How to use checksums
7bfa360f9abd41cb0df2c76a94726ec057626e21895d6802818c18d7a8a6d55b
BLAKE2b-256 checksum
How to use checksums
f347a9f80de624d846c9ecb16c6a37b27aba421da679bb5f8229697f08f5327b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.

Transparency log

Release files / mergify_cli-2026.10.7-py3-none-musllinux_1_2_aarch64.whl

Download URL mergify_cli-2026.10.7-py3-none-musllinux_1_2_aarch64.whl
Size 8.2 MB
Tags Linux musl 1.2+ ARM64 Python 3
SHA-256 checksum
How to use checksums
9413933d5ec61134d2ba8fb9274abf60091f13dd28b6c5632d621fdd600e3ca1
BLAKE2b-256 checksum
How to use checksums
38310b84a659e54ff7003ed3b2bf6985d944b03498e3ee1e44b64775ccd8115d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.

Transparency log

Release files / mergify_cli-2026.10.7-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL mergify_cli-2026.10.7-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 8.8 MB
Tags Linux glibc 2.17+ x86-64 Python 3
SHA-256 checksum
How to use checksums
758a4618006f9b5597fc2ff092d4826c435bb51d55d9e0712219f1582140af24
BLAKE2b-256 checksum
How to use checksums
2b3910a9e2875b1b118545e8f22dd8d9f7bfe3764104fa4808eadde094573b46
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.

Transparency log

Release files / mergify_cli-2026.10.7-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL mergify_cli-2026.10.7-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 8.2 MB
Tags Linux glibc 2.17+ ARM64 Python 3
SHA-256 checksum
How to use checksums
860df9a62d507de17318537af0d212143d301253cc53f1a7ae0c1fbbefbcf5bb
BLAKE2b-256 checksum
How to use checksums
e4cceb469ab3e43ab01901ad665dc326016f2a94492d1a75eeb531868324a96a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.

Transparency log

Release files / mergify_cli-2026.10.7-py3-none-macosx_11_0_arm64.whl

Download URL mergify_cli-2026.10.7-py3-none-macosx_11_0_arm64.whl
Size 7.1 MB
Tags Python 3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
35c79d7759bedba3e90ae1f0c0a0242672d1690cd9d9cb8247e2947ca3c38b6b
BLAKE2b-256 checksum
How to use checksums
ef9bf0debe7de946663b669783d2892196c4bca0556f8e04010356f0f4e81656
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.

Transparency log

Release files / mergify_cli-2026.10.7-py3-none-macosx_10_12_x86_64.whl

Download URL mergify_cli-2026.10.7-py3-none-macosx_10_12_x86_64.whl
Size 7.6 MB
Tags Python 3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
e70d4d23e5bb50ea4bcf02f883be87244e83e8ad81d9be728a7ecd43e04960fd
BLAKE2b-256 checksum
How to use checksums
3287d42b123c85f48a297093adb9accc78d32215d10d7b04b457072ec84bfc2e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.

Transparency log

Security for mergify-cli 2026.10.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 7 files in this release have been uploaded with provenance metadata.

Select from 7 files

Attestation for mergify_cli-2026.10.7-py3-none-win_amd64.whl

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

2026.10.7 This release

7 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page