Skip to main content
The Trunk browser 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. It ships for Chrome and Firefox from the same codebase, so the panel and its controls work the same in both.
Trunk Merge Queue panel on a GitHub pull request
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.

Install the extension

Install it from your browser’s store:

Chrome Web Store

Chrome, plus Chromium browsers like Edge, Brave, and Arc.

Firefox Add-ons

Firefox 140+ on desktop, Firefox 142+ on Android.
Once it’s added:
  1. Approve the requested permissions when your browser prompts you.
  2. Pin the Trunk icon to your toolbar so the popup is one click away.
  3. Click the Trunk icon and sign in. The extension uses your existing browser session at 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 an amber ! badge on any GitHub tab. The extension does not modify GitHub’s UI while signed out, so no merge queue panel or sign-in prompt appears on pull request pages. Click the Trunk toolbar icon and sign in to activate the extension. Disabled-repository behavior If the extension is disabled for a repository’s queue, the extension leaves GitHub’s UI untouched for that repository’s pull requests, the same as when signed out.

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 before submitting. The dropdown includes Normal (default), Low, High, and Urgent. Urgent forces the PR to the front of the queue and restarts any in-progress testing; use it only for production incidents.
  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 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 checks that genuinely failed by name with links to their run logs. GitHub Actions cancels other required jobs the moment any single job fails, so the panel shows only the jobs that actually failed. Cancelled jobs appear only when no genuine failure is present (for example, when an entire run was cancelled)
  • 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. 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) and 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.
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
ToggleWhat it hidesDefault
Merging is blockedGitHub’s “Merging is blocked” merge-box status row, replaced by the Trunk panelOn
Branch out of dateGitHub’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
Unable to merge as stackGitHub’s “Unable to merge as stack” section in the merge box. GitHub’s native stack UI is still preserved below the hidden section.On
Trunk (bot) GitHub CommentsTrunk 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.

Test details panel

When enabled for your organization, the extension shows a Test Details panel on GitHub pull request pages for repositories that have Flaky Tests uploads configured. The panel surfaces test run results without leaving the PR page.
The Test Details panel is available to organizations with Trunk Flaky Tests. Contact Trunk support to enable it for your account.
The panel shows:
  • Overall result — passed, failed, running, or in-progress counts for the PR head commit.
  • Per-status counts — passed, failed, quarantined, and flaky totals.
  • Commit history — a dropdown listing recent commits with their test run status, so you can compare a new failure against the previous commit’s baseline.
  • Deep links — counts link directly into the Trunk Flaky Tests dashboard for detailed investigation.
The panel only appears on PR pages where the repository has test uploads in Trunk. Repositories without uploads do not show the panel. The extension popup also gains a Tests tab (alongside Merge Queues) when the feature is active. The tab lists repositories that have test uploads and provides a direct link to the Flaky Tests app for each.

Disabling the extension for a queue

Organization admins can disable the browser extension for a specific merge queue branch from the queue’s Settings page. Navigate to Merge Queue, select the queue, click Settings, then find the Browser Extension toggle under the GitHub section. When the toggle is off, the extension behaves as though no merge queue is configured for that branch. GitHub’s native merge controls reappear in the merge box, and the Trunk overlay does not render. The setting affects only the selected queue; other queues in the same repository are not affected. Only organization admins can change this setting. Non-admins see the toggle in a disabled state with a tooltip explaining the restriction. The toggle is on by default for all queues.

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 liggeliamkammmieidmmfmmdnjilabgn. See Google’s Automatically install apps and extensions 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 — 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 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.

Frequently asked questions

Do I need to set up anything besides the extension?

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 before the overlay does anything useful.

Why don't I see the overlay on a PR?

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 SettingsRepositories in the Trunk web app.

Does the extension work in other Chromium browsers?

The Chrome build also runs on Chromium-based browsers (Edge, Brave, Arc) via the Chrome Web Store, but Chrome and Firefox are the only officially supported browsers.

Does the extension work in Firefox?

Yes. Install it from the Firefox Add-ons listing. The Firefox build has full feature parity with Chrome and supports Firefox 140+ on desktop and Firefox 142+ on Android.

How does the extension differ from the `/trunk merge` comment?

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.

How do I configure extension settings?

Click the Trunk toolbar icon and open Settings in the popup to access the in-popup settings panel. Settings are organized into cards:
CardSettings
Hide rowsThree toggles for hiding GitHub rows the Trunk overlay replaces. See Configuring row hiding above.
Verbose loggingEnable 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 shortcutsShortcut configuration.
For Celebration Mode, right-click the Trunk toolbar icon and select Options (or click the icon and select Options) to open the full-page options view.
SettingDescriptionDefault
CelebrationWhen 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.