# 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>

<figure><img src="/files/f4msAnyUfD5ibwQdsrQ8" alt=""><figcaption></figcaption></figure>

{% hint style="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.
{% endhint %}

**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](/merge-queue/optimizations/priority-merging.md) 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](/merge-queue/using-the-queue/reference.md) 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
* **Testing** - actively running required status checks against a merge candidate
* **Tests Passed** - waiting for upstream PRs before merging
* **Merged**, **Failed** - terminal states

### Stacked pull requests

{% hint style="info" %}
Stacked PR queue support requires the [Trunk Sudo GitHub App](/setup-and-administration/trunk-sudo-app.md) and the `/trunk stack` workflow. Stacks submitted one PR at a time with `/trunk merge` are tracked individually, not as a group.
{% endhint %}

When a stack is queued with [`/trunk stack`](/merge-queue/using-the-queue/stacked-pull-requests.md#merge-the-stack-as-one-unit), the extension shows a stack-aware view on every member PR page.

**What the panel shows:**

* **Stack path** — the full list of PRs in the stack from tip to base, so you can see where your PR sits within the group.
* **Stacked PR chip** — a link to the combined test PR Trunk creates for the stack (labeled **Stacked PR #N**). Click it to open the stacked PR on GitHub and inspect its CI status.

**Actions:**

* **Add stack to queue** — enqueues the entire stack as one unit. Clicking it on any member PR page submits the same stack.
* **Remove** — removes the whole stack from the queue.

Re-enqueueing after a remove works the same way: click **Add stack to queue** on any member PR page to resubmit the stack.

### 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.md).

### Frequently asked questions

<details open>

<summary><strong>Do I need to setup anything besides the extension?</strong></summary>

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](/merge-queue/getting-started.md) before the overlay does anything useful.

</details>

<details open>

<summary><strong>Why don't I see the overlay on a PR?</strong></summary>

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.

</details>

<details open>

<summary><strong>Does the extension work in other Chromium browsers?</strong></summary>

The extension targets Chrome. Chromium-based browsers (Edge, Brave, Arc) generally work via the Chrome Web Store, but only Chrome is officially supported.

</details>

<details open>

<summary><strong>How does the extension differ from the `/trunk merge` comment?</strong></summary>

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.

</details>

<details>

<summary><strong>How do I enable Celebration Mode?</strong></summary>

Click the Trunk extension icon and open **Options** (or right-click the icon and choose **Options**) to access the extension settings page.

| 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.

</details>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.trunk.io/merge-queue/chrome-extension.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
