> ## Documentation Index
> Fetch the complete documentation index at: https://docs.trunk.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Chrome Extension

> Submit, cancel, and track Trunk Merge Queue pull requests directly from GitHub with the Trunk Chrome Extension.

The Trunk Chrome Extension overlays merge queue controls and status onto your normal GitHub experience, so you can submit a PR to the queue, cancel it, and watch its testing progress without leaving the pull request page.

<br />

<Frame>
  <img src="https://mintcdn.com/trunk-4cab4936/YNhE_W_yrwUVMSY9/assets/merge-queue/chrome-extension-overlay.png?fit=max&auto=format&n=YNhE_W_yrwUVMSY9&q=85&s=78a56c5baf5a4f064c51675c6f326456" alt="Trunk Merge Queue panel on a GitHub pull request" width="878" height="337" data-path="assets/merge-queue/chrome-extension-overlay.png" />
</Frame>

<Info>
  The extension is a companion to Trunk Merge Queue — you still need a configured queue for your repository. The extension only surfaces controls and status for queues your Trunk organization already owns.
</Info>

**Install the extension**

1. Open the [Trunk for GitHub](https://chromewebstore.google.com/detail/liggeliamkammmieidmmfmmdnjilabgn?utm_source=item-share-cb) listing in the Chrome Web Store.
2. Click **Add to Chrome** and approve the requested permissions.
3. Pin the Trunk icon to your toolbar so the popup is one click away.
4. Click the Trunk icon and sign in. The extension uses your existing browser session at [app.trunk.io](https://app.trunk.io/) - if you're already logged in, no additional sign-in is needed.

**Signed-out indicator**

When you are not signed in to Trunk, the extension toolbar icon shows a lock badge. On any pull request page in a queue-enabled repository, a **Sign in to Trunk** row appears in place of the normal merge queue panel, reminding you to sign in before queue controls become available.

## Submit a pull request to the queue

On any pull request in a queue-enabled repository, the extension adds a **Merge Queue** panel replacing GitHub's native merge controls.

1. Open the pull request on GitHub.
2. In the Trunk panel, click **Add to Merge Queue**.
3. Optionally choose a [priority](./optimizations/priority-merging) before submitting.
4. If batching is enabled for the repository, you can toggle **Skip batching** to enqueue this PR without grouping it into a batch — useful for hotfixes or PRs that need to merge without waiting for a batch window.

Submission goes through the same backend as the `/trunk merge` comment and the Trunk web app, so behavior is identical. See [Submit and cancel pull requests](./using-the-queue/reference) for the full lifecycle.

## Remove a pull request from the queue

If a PR is already in the queue, the panel shows a **Cancel** action.

1. Click **Cancel** in the Trunk panel on the PR page.
2. The PR is removed from the queue immediately, the same as running `/trunk cancel`.

## Track testing progress

Once a PR is in the queue, the extension panel updates in real time as it moves through each state:

* **Queued** - waiting for prerequisites such as branch protection or mergeability
* **Pending** - admitted to the queue, waiting for capacity
* **Waiting to Batch** - admitted to the queue and waiting for additional PRs to form a batch before testing begins (shown when batching is enabled and the queue is accumulating PRs)
* **Testing** - actively running required status checks against a merge candidate
* **Tests Passed** - waiting for upstream PRs before merging
* **Merged** - the PR merged successfully; the panel shows a success state and stops polling
* **Failed** - one or more required checks did not pass; the panel lists the failed checks by name with links to their run logs
* **Cancelled** - the PR was removed from the queue; the panel shows who cancelled it (for example, "Cancelled by alice") when that information is available

## Resubmit after failure or cancellation

When a PR leaves the queue in a **Failed** or **Cancelled** state, the extension panel shows a **Resubmit** button that re-enqueues the PR in one click. You do not need to switch to the Trunk web app or post a `/trunk merge` comment.

Failed check details come from the most recent testing attempt only. If a PR was re-enqueued after an earlier failure and then cancelled, the panel shows the cancellation state rather than check failures from the earlier run.

## Configuring row hiding

On pull requests managed by Trunk, the extension can hide parts of GitHub's native UI that its own panel makes redundant. Two toggles hide status rows in GitHub's **merge box** (the panel at the bottom of a pull request that shows whether it can be merged); a third hides Trunk's own merge-queue bot comments. Each toggle defaults to on and is saved per browser profile. To configure them, click the Trunk toolbar icon, open **Settings**, and find the **Hide rows** card.

<Frame>
  <img src="https://mintcdn.com/trunk-4cab4936/uxU6nNgNFKzkdKAm/assets/merge-queue/chrome-extension-hide-rows.png?fit=max&auto=format&n=uxU6nNgNFKzkdKAm&q=85&s=b94ead7d0286db0adb89c697628dabfd" alt="The Hide rows settings card in the Trunk extension popup, with toggles for Merging is blocked, Branch out of date, and Trunk (bot) GitHub Comments" width="626" height="398" data-path="assets/merge-queue/chrome-extension-hide-rows.png" />
</Frame>

| Toggle                          | What it hides                                                                                                                                                                                        | Default |
| ------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- |
| **Merging is blocked**          | GitHub's "Merging is blocked" merge-box status row, replaced by the Trunk panel                                                                                                                      | On      |
| **Branch out of date**          | GitHub's informational Conflicts row when there are no actionable conflicts. Rows with "This branch has conflicts that must be resolved" or a **Resolve conflicts** control are always left visible. | On      |
| **Trunk (bot) GitHub Comments** | Trunk bot comments that prompt you to submit a PR to the merge queue (for example, "To merge this pull request, check the box" or a comment containing a `/merge-queue/` link)                       | On      |

Only Trunk's own merge-queue prompt comments (from the `trunk-io` bot account) are hidden. Comments from other bots and Trunk's non-merge-queue comments are left untouched. All submit, cancel, and status actions remain available through the extension panel regardless of these settings. Hiding is applied only on PR pages where the Trunk overlay is active.

## Rolling the Extension out to an entire Org

Chrome admins can install the Trunk extension for everyone in a Google Workspace organization using the [Chrome Web Store ID](https://chromewebstore.google.com/detail/liggeliamkammmieidmmfmmdnjilabgn) `liggeliamkammmieidmmfmmdnjilabgn`. See Google's [Automatically install apps and extensions](https://support.google.com/chrome/a/answer/6306504?hl=en) guide for the admin console steps.

## Authentication and security

The extension does **not** ask you for credentials, API tokens, or a separate password. It authenticates by reusing your existing browser session at [app.trunk.io](https://app.trunk.io/) — the same session you already use for the Trunk web app.

* **Session-based auth.** When you take an action in the extension, the request is sent to the Trunk API with the cookies your browser already holds for `app.trunk.io`. If you aren't signed in, the extension prompts you to sign in once via the normal Trunk login flow; from then on it piggybacks on that session.
* **No new credentials are stored.** The extension does not generate, store, or transmit a long-lived token. Signing out of [app.trunk.io](https://app.trunk.io/) signs the extension out as well.
* **Permissions are unchanged.** The extension can only see queues and act on PRs that your Trunk user already has access to - it cannot escalate permissions. Every action is recorded against your Trunk user, just as it would be from the web app or CLI.
* **Scoped to GitHub PR pages.** The content script runs on `github.com` pull request URLs so it can render the overlay; it does not read or transmit page contents beyond the repository and PR identifiers needed to query the Trunk API.
* **Same transport guarantees as the rest of Trunk.** All extension traffic to Trunk uses TLS, and your data is handled per the [Trunk Security policy](../setup-and-administration/security).

## Frequently asked questions

<AccordionGroup>
  <Accordion title="Do I need to setup anything besides the extension?" defaultOpen>
    Yes - the extension is an add-on on top of Trunk Merge Queue. Your repository must have the [Trunk GitHub App installed and a queue configured](./getting-started/) before the overlay does anything useful.
  </Accordion>

  <Accordion title="Why don't I see the overlay on a PR?" defaultOpen>
    The overlay only appears on pull requests in repositories that your Trunk organization has configured a queue for. If you're signed in and still don't see it, confirm the repository in **Settings** → **Repositories** in the Trunk web app.
  </Accordion>

  <Accordion title="Does the extension work in other Chromium browsers?" defaultOpen>
    The extension targets Chrome. Chromium-based browsers (Edge, Brave, Arc) generally work via the Chrome Web Store, but only Chrome is officially supported.
  </Accordion>

  <Accordion title="How does the extension differ from the `/trunk merge` comment?" defaultOpen>
    Both go through the same Trunk Merge Queue backend. The extension is a faster, in-page surface for the same actions and adds live status without polling the PR comments.
  </Accordion>

  <Accordion title="How do I configure extension settings?" defaultOpen>
    Click the Trunk toolbar icon and open **Settings** in the popup to access the in-popup settings panel. Settings are organized into cards:

    | Card                   | Settings                                                                                                                                                                      |
    | ---------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
    | **Hide rows**          | Three toggles for hiding GitHub rows the Trunk overlay replaces. See [Configuring row hiding](#configuring-row-hiding) above.                                                 |
    | **Verbose logging**    | Enable detailed debug logging; the title shows the current log size. Disabling stops new writes but does not clear buffered logs. Use **Review** or **Clear** to manage them. |
    | **Keyboard shortcuts** | Shortcut configuration.                                                                                                                                                       |

    For **Celebration Mode**, right-click the Trunk toolbar icon and choose **Options** (or click the icon and choose **Options**) to open the full-page options view.

    | Setting         | Description                                                                               | Default |
    | --------------- | ----------------------------------------------------------------------------------------- | ------- |
    | **Celebration** | When enabled, a confetti burst plays each time you add a pull request to the merge queue. | Off     |

    The celebration effect respects your operating system's reduced motion preference. If you have **Reduce motion** enabled in your system accessibility settings, no animation plays regardless of this toggle.
  </Accordion>
</AccordionGroup>
