A Claude Code mod · MIT

See your PRs go green without asking.

pr-watch keeps a live pane of every GitHub pull request your Claude Code session touches: CI as it runs, reviews as they land, conflicts the moment they appear. When something fails, one button drafts the fix for Claude. When it's ready, merge it from the pane.

> /plugin install pr-watch --marketplace ElirazKed/claude-code-pr-watch

Claude Code 2.1.287 or later, and the GitHub CLI logged in. No restart.

Install What it does
⎇ Pull requests 2 open
▅▆▆▇▇▇▇▇▆▆▅▄▄▃▃▂▂▂▃▃▃▄▄▄▅▅▅▄▄▃▃▂▂▂▂▂▂▂▃▃▄▅▅▆▆▇▇▇▆▆▅▅▄▄▄▃▃▃
#12 Retry uploads with exponential backoff ● CI RUNNING
acme/app · feat/retry → main +120 −14 @octocat
⠋ Queued · 5 checks 0/5
▌
open #12 ↗ · checked just now
#13 Cache the thumbnail renders ✗ CI FAILED
acme/app · perf/thumbs → main +48 −9 ▋ @octocat
Failing: build · 1 check failing ▋ 4/5
▌
[ Fix with Claude ]
open #13 ↗ · checked 20s ago
r: Refresh d: Dismiss x: Close
gh octocat ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ 94% ↻42m ?
hubot ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ 41% ↻9m
The pane in the tide theme, cell for cell as your terminal draws it. Watch #12 go from its first check to merged: the glass fills as CI passes, then review, approval and the merge.

What it does

Everything a PR needs from you, in one glance.

Each card leads with what matters most: merge conflicts first, then failing or running CI by name, then review, then whether GitHub will let it merge. A toast tells you when that changes.

Live CI, by name

Which checks run, which wait, which failed, counted by the latest run of each job. The card animates while anything moves.

Fix with Claude

Failing logs, trimmed to the error, drafted in your prompt box for Claude. Nothing is sent until you press Enter.

Address with Claude

Unresolved review threads by file and line, with replies and who wrote them, drafted the same way.

Merge from the pane

Squash, rebase or merge in your default method, always confirmed first. Auto-merge while checks are still running.

Reviews at a glance

Who approved, who asked for changes, how many threads are open and outdated. One toast per new review.

Conflicts first

A merge conflict outranks everything else on the card, so the thing blocking you is the first thing you read. Resolve with Claude drafts the ask to merge the base in.

Finds PRs by itself

PRs Claude opens, pushes to, reviews or merges are picked up on their own. Paste any PR link or use /pr-watch for the rest.

Pane or band

Docked beside the conversation in a wide terminal, or a few lines above the prompt when space is tight.

Tells you about updates

A quiet line and one toast per new version, checked on the poll it already makes, so it costs no extra request.

Fix · Address · Resolve with Claude

CI failed? The fix is one press away.

Press Fix with Claude on a failing card and pr-watch collects the failing checks and the failed steps' logs, trims them to the part that matters, and drafts the ask in your prompt box. Address with Claude does the same for unresolved review threads, by file and line, and Resolve with Claude for a branch that conflicts with its base: merge the base in, keep what both sides meant.

It's a draft: read it, change it, and nothing reaches Claude until you press Enter. It never asks Claude to push, merge or reply on GitHub for you.

Try it: press Fix with Claude on the card.

#13 Cache the thumbnail renders ✗ CI FAILED
acme/app · perf/thumbs → main +48 −9 ▊@octocat
Failing: build · 1 check failing ▉ 4/5
▋
open #13 ↗ · checked 20s ago
❯ prompt boxempty
Nothing is sent to Claude: the draft waits for your Enter.
#7 Paginate the audit log endpoint ✓ READY
acme/api · feat/audit-pages → main +120 −14
Ready to merge · ✓ hubot approved 6/6
⇄ rebaseopen #7 ↗ · checked just now
The method is your GitHub default, or the first the repo allows.

Merge from the pane

Green and approved? Merge it where you are.

Once GitHub would merge the PR and your account can write to the repo, the card offers the merge, in your default method or the first the repo allows. It always asks first. Still waiting on checks? Turn on auto-merge instead, and GitHub merges it the moment everything passes.

Try it: press Squash & merge.

How it polls

One poller for every session on the machine.

Thirty sessions watching thirty PRs cost about one GitHub call every 20 to 60 seconds, not thirty. Sessions announce what they watch; one of them takes a short lease, asks GitHub for all of it in batched GraphQL, and every session reads the shared result.

session A · #12
session B · #13 #7
…up to 30+
sessions/*.json each lists its PRs; the file's age is its heartbeat
one lease holder a 30 s lease; batches of 20 PRs, one query each, per gh login
results.json every session folds it into its cards
1 poller shared by every session on the machine
20 PRs per GraphQL query, 1 point of 5,000 an hour
20s · 60s while CI runs, and when nothing moves; both in /config
2 min of GitHub hiccups ridden out before a card shows an error

Your GitHub budget, in plain sight.

The gh meter under the pane shows how much of the hourly budget each of your gh logins has left, GraphQL on top and REST below, with the time until it refills. Running low, pr-watch backs off that login on its own. Press ? for what it all means.

gh octocat ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ 94% ↻42m?
hubot ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ 18% ↻9m

Themes

Seven looks, light and dark.

Switch with /pr-watch theme tide and every session follows. Each theme has a light and a dark variant that follows Claude Code's own.

classic · round borders by state
solid · tiles tinted by state
minimal · no boxes, quiet colour
neon · bold borders that glow
retro · double lines, 16 colours
tide · fills like a glass as CI runs
aurora · northern lights by state
Short on room? Set layout: band for a few lines above the prompt instead of a pane.

Install

Running in under a minute.

Needs Claude Code 2.1.287 or later and the GitHub CLI logged in (gh auth login). In Claude Code, run:

/plugin install pr-watch --marketplace ElirazKed/claude-code-pr-watch

Answer y to add the marketplace and press Enter for user scope. It's active at once. Then open a PR as usual, or watch any PR with:

/pr-watch https://github.com/owner/repo/pull/123

Settings in /config

SettingWhat it doesDefault
themeclassic, solid, minimal, neon, retro, tide or auroraclassic
layoutpane beside the conversation, or a band above the promptpane
poll_active_secondshow often GitHub is asked while CI runs20
poll_idle_secondshow often when nothing is moving60
update_noticesay when a new version is outon