Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions public/_redirects
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
/merge-queue/intro /merge-queue 301
/merge-queue/multi /merge-queue 301
/merge-queue/browser-extensions /browser-extensions 301
/merge-queue/browser-extensions/ /browser-extensions 301
/configuration /configuration/file-format 301
/configuration/ /configuration/file-format 301
/conditions /configuration/conditions 301
Expand Down
Original file line number Diff line number Diff line change
@@ -1,23 +1,25 @@
---
title: 'Browser Extensions'
description: 'Install the Chrome or Firefox helpers that surface queue controls directly inside GitHub pull requests.'
description: 'Install the Chrome or Firefox extension to surface Mergify Merge Queue and stack controls directly inside GitHub pull requests.'
---

import { Image } from "astro:assets";
import extensionListScreen from "../../images/merge-queue/browser-extensions/list.png";
import extensionPrScreen from "../../images/merge-queue/browser-extensions/pr.png";
import extensionListScreen from "../images/browser-extensions/list.png";
import extensionPrScreen from "../images/browser-extensions/pr.png";
import stacksPanel from "../images/stacks-revision-history.png";

## Why use the browser extensions?
## Why Use the Browser Extensions?

The Chrome and Firefox extensions inject a small Mergify toolbar into every GitHub pull request you
open. The toolbar exposes the most common merge queue actions (such as queueing a pull request)
without having to type [commands](/commands). Use it when you want to:
The Chrome and Firefox extensions inject a small Mergify panel into every GitHub pull request you
open. The panel surfaces the most common actions without typing [commands](/commands) and shows
Mergify context (queue state, stack position) directly in the pull request. Use them when you want to:

- Enqueue a pull request as soon as you review it.
- Quickly dequeue without context switching.
- See at a glance whether the pull request is already in one of your queues.
- See a [stack's](/stacks) chain and revision history without opening the CLI.

## Locate the official download links
## Locate the Official Download Links

The dashboard keeps the canonical links to the Chrome Web Store and Firefox Add-ons listing so you
always grab the signed builds.
Expand All @@ -43,7 +45,7 @@ always grab the signed builds.
1. Click **Add to Firefox** from the dashboard page.
2. Approve the requested permissions in the Firefox Add-ons prompt.

## Use the queue controls inside GitHub
## Merge Queue Controls

After installation, reload any pull request on GitHub. A Mergify toolbar appears near the GitHub
merge box and displays queue-specific controls:
Expand All @@ -56,4 +58,16 @@ merge box and displays queue-specific controls:
<Image
src={extensionPrScreen}
alt="Mergify browser extension toolbar injected into a GitHub pull request"
/>
/>

## Stacks Panel

For repositories using [Stacks](/stacks), the extension renders the Mergify Stacks panel inside the
pull request. It shows the full chain of stacked PRs, highlights where the current PR sits, and
includes the [revision-history](/stacks/reviewing#revision-history) timeline so you can see how each
commit evolved across pushes without leaving GitHub.

<Image
src={stacksPanel}
alt="Mergify Stacks panel with the stack and its revision history timeline on a pull request"
/>
20 changes: 10 additions & 10 deletions src/content/docs/cli.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -8,25 +8,25 @@ terminal.

## Installation

Install the CLI using [uv](https://docs.astral.sh/uv/):
Install the CLI with the install script:

```bash
uv tool install mergify-cli
curl -fsSL https://raw.githubusercontent.com/Mergifyio/mergify-cli/main/install.sh | sh
```

Or using [pipx](https://pipx.pypa.io/):
## Updating

```bash
pipx install mergify-cli
```

On macOS, you can install these tools via Homebrew:
Update an existing install to the latest release in place:

```bash
brew install uv
uv tool install mergify-cli
mergify self-update
```

This downloads the latest binary, verifies it against the published
`SHA256SUMS`, and swaps it in. Pass `--check` to print your current and the
latest version without changing anything, or `--force` to reinstall the current
version (useful for repairing a broken install).

## Authentication

The CLI needs an authentication token to interact with your repositories.
Expand Down
9 changes: 3 additions & 6 deletions src/content/docs/stacks.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import Button from '~/components/Button.astro';
import DocsetGrid from '~/components/DocsetGrid/DocsetGrid.astro';
import Docset from '~/components/DocsetGrid/Docset.astro';
import GitGraph from '~/components/GitGraph.astro';
import Quickstart from './stacks/_quickstart.mdx';

AI can write 1,000 lines of code in minutes, but nobody wants to review a
1,000-line pull request. Reviewers skim instead of reading, bugs slip through,
Expand Down Expand Up @@ -61,7 +62,7 @@ reviewers see the logical progression of your work.
- One local branch (no juggling N branches for N PRs)
- Automatic PR chaining with dependency tracking
- Smart updates that only touch PRs that changed
- Standard Git, no new commands to learn
- Everyday Git for daily work: the commit and rebase commands you already use
- Ships with skills for Claude Code, Cursor, and any agent supporting [skills.sh](https://skills.sh)
- Complements [Merge Queue](/merge-queue) for safe, fast landing

Expand All @@ -77,11 +78,7 @@ Your agent installs the CLI and the Stacks skill itself, then you prompt it as u

**For yourself:**

```bash
uv tool install mergify-cli
mergify stack setup
mergify stack push
```
<Quickstart />

See the [setup guide](/stacks/setup) for the full walkthrough.

Expand Down
4 changes: 4 additions & 0 deletions src/content/docs/stacks/_install-setup.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
```bash
curl -fsSL https://raw.githubusercontent.com/Mergifyio/mergify-cli/main/install.sh | sh
mergify stack setup
```
3 changes: 3 additions & 0 deletions src/content/docs/stacks/_install.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
```bash
curl -fsSL https://raw.githubusercontent.com/Mergifyio/mergify-cli/main/install.sh | sh
```
5 changes: 5 additions & 0 deletions src/content/docs/stacks/_quickstart.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
```bash
curl -fsSL https://raw.githubusercontent.com/Mergifyio/mergify-cli/main/install.sh | sh
mergify stack setup
mergify stack push
```
12 changes: 4 additions & 8 deletions src/content/docs/stacks/agents.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,13 @@ You are an AI coding agent. Follow these three steps to enable stacked pull
request support. After step 2, your skill system will contain the full Stacks
workflow. Consult it for any stack-related task.

## 1. Install the Mergify CLI
import Install from './_install.mdx';

Install `mergify-cli` with `uv` (preferred) or `pipx`:
## 1. Install the Mergify CLI

```bash
uv tool install mergify-cli
```
Install `mergify-cli` with the install script:

```bash
pipx install mergify-cli
```
<Install />

Verify:

Expand Down
4 changes: 4 additions & 0 deletions src/content/docs/stacks/compare.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,10 @@ These pages give you an honest look at how Mergify Stacks compares so you can
pick what fits your team.

<DocsetGrid>
<Docset title="Plain Git (rebase + gh)" path="/stacks/compare/plain-git" icon="simple-icons:git">
Stacking by hand with `git rebase` and `gh pr create`. The baseline every
other tool is measured against.
</Docset>
<Docset title="gh-stack (GitHub)" path="/stacks/compare/gh-stack" icon="simple-icons:github">
GitHub's native stacking CLI. Multi-branch model with GitHub UI integration.
</Docset>
Expand Down
20 changes: 10 additions & 10 deletions src/content/docs/stacks/compare/gh-stack.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ description: An honest comparison of Mergify Stacks and GitHub's gh-stack CLI fo
import GitGraph from '~/components/GitGraph.astro';
import StacksLocalModel from '~/components/StacksLocalModel.astro';
import ComparisonLogo from '~/components/ComparisonLogo.astro';
import InstallSetup from '../_install-setup.mdx';

<ComparisonLogo icon="simple-icons:github" alt="GitHub logo" />

Expand Down Expand Up @@ -73,17 +74,17 @@ between them with `gh stack up` and `gh stack down`.
| Push changes | `mergify stack push` | `gh stack push` |
| Create PRs | Included in `mergify stack push` | Separate `gh stack submit` command |
| View the stack | `mergify stack list` | `gh stack view` |
| Edit mid-stack | `mergify stack edit` (interactive rebase) | Checkout the branch, edit, rebase |
| Edit mid-stack | `mergify stack edit <commit>` (targeted pause) | Checkout the branch, edit, rebase |
| Reorder changes | `mergify stack reorder` or `mergify stack move` | Manual rebase + `gh stack rebase` |
| Squash changes | `mergify stack edit` (squash/fixup) | Manual |
| Squash changes | `mergify stack squash` or `mergify stack fixup` | Manual |
| Cascading rebase | Automatic on push | `gh stack rebase --upstack` / `--downstack` |
| Sync after merge | `mergify stack sync` | `gh stack sync` |
| Open PR in browser | `mergify stack open` (interactive picker) | Links from `gh stack view` |
| Collaboration | `mergify stack checkout` | Difficult (force-push based) |
| Draft PRs | `mergify stack push --draft` | `gh stack submit --draft` |
| Merge Queue | [Native Mergify integration](/merge-queue) | GitHub's built-in merge queue |
| Merge a stack | Bottom-up via Merge Queue | `gh stack merge` (not yet implemented) |
| Stack visualization | Stack comment on each PR | Native GitHub UI stack map |
| Stack visualization | Stack comment + browser-extension panel | Native GitHub UI stack map |
| Branch naming | Auto-generated ([configurable](/stacks/concepts#branch-mapping)) | Developer-chosen or auto-numbered |
| Navigate between PRs | N/A (single branch) | `gh stack up` / `down` / `top` / `bottom` |
| Unstack | Not needed (standard Git branches) | `gh stack unstack` |
Expand Down Expand Up @@ -121,8 +122,10 @@ yet implemented.
## Where gh-stack Is Stronger

**Native GitHub UI.** gh-stack gets a stack map rendered directly in the PR
interface. Mergify posts a stack comment on each PR, which works well but is
a comment rather than a native UI element.
interface. Mergify posts a stack comment on each PR and, with the
[browser extension](/browser-extensions) installed, renders the
stack and its revision history as an in-PR panel. Both work well, but neither
is a built-in GitHub UI element.

## Other Considerations

Expand All @@ -132,7 +135,7 @@ platform.

**Distribution.** gh-stack ships as a `gh` CLI extension and will likely get
deeper GitHub integration over time. Mergify CLI is a standalone install
(`uv tool install mergify-cli`).
(a one-line `curl … | sh`).

**Pricing.** Both are free. Mergify Stacks is a standalone CLI that doesn't
require a Mergify subscription.
Expand All @@ -145,10 +148,7 @@ commit per PR on a single branch."

### Install and setup

```bash
uv tool install mergify-cli
mergify stack setup
```
<InstallSetup />

This installs the CLI and adds a `commit-msg` hook that generates
[Change-Ids](/stacks/concepts#change-id) for your commits. See the
Expand Down
16 changes: 7 additions & 9 deletions src/content/docs/stacks/compare/graphite.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ description: An honest comparison of Mergify Stacks and Graphite's stacking work
import GitGraph from '~/components/GitGraph.astro';
import StacksLocalModel from '~/components/StacksLocalModel.astro';
import ComparisonLogo from '~/components/ComparisonLogo.astro';
import InstallSetup from '../_install-setup.mdx';

<ComparisonLogo icon="simple-icons:graphite" alt="Graphite logo" />

Expand Down Expand Up @@ -78,11 +79,11 @@ between them with `gt up`, `gt down`, `gt top`, and `gt bottom`.
| Create a stack | `mergify stack new` + commits | `gt create [name]` per branch |
| Push changes | `mergify stack push` (rebase + push + PRs) | `gt submit` (force-push + PRs) |
| View the stack | `mergify stack list` | `gt log` |
| Edit mid-stack | `mergify stack edit` (interactive rebase) | `gt modify` (auto-restacks) |
| Edit mid-stack | `mergify stack edit <commit>` (targeted pause) | `gt modify` (auto-restacks) |
| Absorb fixups | Not supported | `gt absorb` (auto-routes staged hunks) |
| Split a commit | Not supported | `gt split` (by commit, hunk, or file) |
| Reorder changes | `mergify stack edit` (rebase -i) | `gt reorder` (interactive) |
| Squash / fold | `mergify stack edit` (squash/fixup) | `gt squash` / `gt fold` |
| Reorder changes | `mergify stack reorder` or `mergify stack move` | `gt reorder` (interactive) |
| Squash / fold | `mergify stack squash` or `mergify stack fixup` | `gt squash` / `gt fold` |
| Undo | Git reflog | `gt undo` (reverts recent `gt` operations) |
| Sync after merge | `mergify stack sync` | `gt sync` |
| Navigate between PRs | N/A (single branch) | `gt up` / `down` / `top` / `bottom` |
Expand Down Expand Up @@ -201,10 +202,7 @@ is moving from "one branch per PR" to "one commit per PR on a single branch."

### Install and setup

```bash
uv tool install mergify-cli
mergify stack setup
```
<InstallSetup />

This installs the CLI and adds a `commit-msg` hook that generates
[Change-Ids](/stacks/concepts#change-id) for your commits. See the
Expand All @@ -215,13 +213,13 @@ This installs the CLI and adds a `commit-msg` hook that generates
| Graphite | Mergify Stacks |
|---|---|
| `gt create` (create a branch) | `git commit` (create a commit) |
| `gt modify` | `git commit --amend` or `mergify stack edit` |
| `gt modify` | `git commit --amend` or `mergify stack edit <commit>` |
| `gt submit` | `mergify stack push` |
| `gt up` / `down` / `top` / `bottom` | Not needed (single branch) |
| `gt restack` | Automatic on `mergify stack push` |
| `gt sync` | `mergify stack sync` |
| `gt log` | `mergify stack list` |
| `gt absorb` | `git commit --fixup` + `mergify stack edit` |
| `gt absorb` | No direct equivalent (amend each commit by hand) |

### Workflow before and after

Expand Down
Loading
Loading