You are already working in Claude Code, with the repository, local diff, and your review tools available in the same coding environment. But review requests arrive asynchronously, often while your attention is elsewhere, and preparing a thoughtful review still means noticing the event and reconstructing its context.
Glean catches the GitHub review event and sends it to Claude Code Monitor where you are already coding. Claude runs your local review skill against the real diff and prepares an initial round of findings before you jump in manually. You verify and refine the review, then decide what gets submitted.
Scaffold the receiver and plugin
npx -y tiged@2.12.8 --mode=git gleanwork/glean-cookbook/recipes/github-pr-review-monitor github-pr-review-monitorVerify the local path with no credentials
Verifies the signed receiver, event queue, and draft-review flow using recorded events.
cd github-pr-review-monitor && npm run verify:fixtureSign in to Glean
Discovers your tenant and writes GLEAN_SERVER_URL and GLEAN_API_TOKEN to an ignored .env. An exported GLEAN_API_TOKEN outranks .env, and the scripts warn when it does.
cd github-pr-review-monitor && npm run login -- --email "<work-email>"Run the receiver
Keep this running. It binds to loopback, verifies signatures, and queues each webhook id once.
cd github-pr-review-monitor && npm startExpose the receiver over HTTPS
Append /webhook to the printed origin and set GLEAN_WEBHOOK_URL before registering. Leave the tunnel running — the triggers outlive it, so a closed tunnel means deliveries to a dead address.
cd github-pr-review-monitor && cloudflared tunnel --url http://127.0.0.1:8787Register the review triggers
Set GLEAN_TRIGGER_DATASOURCE and the preset ids you want to register. With no ids configured, setup lists the presets your deployment serves and stops. Presets that require inputs read them from GLEAN_TRIGGER_INPUT_<FIELD>.
cd github-pr-review-monitor && npm run setupAttach Claude Code Monitor
Validate the plugin, then restart Claude Code from the repository being reviewed so Monitor starts with the session. Where Monitor is unavailable, run npm run stream to receive the same events in the terminal.
cd github-pr-review-monitor && claude plugin validate . --strictVerify a real review request
Request a review from yourself on a real pull request. Expect one queued event and one draft grounded in the current diff, with no GitHub write until you ask for one.
The monitor may prepare a local draft. A GitHub pending review requires explicit approval, and submission always remains manual.
Review the current local repository and GitHub head SHA; never infer findings from the thin trigger payload alone.
Monitor requires a supported interactive Claude Code session. Where Monitor is unavailable, use the terminal stream to receive the same events.
- Teach the local review skill your repository's conventions and test commands, so the first pass reflects how your team already reviews.
- Notify the reviewer when the first-pass draft is ready, so the queue is not something anyone has to remember to check.
- Add inline pending-review comments once the body-only flow is reliable — line-level findings are what a reviewer acts on first.
Request a review from the configured user on a pull request in the open local repository
One signed event reaches the receiver and Claude drafts a review of the current diff. Nothing is posted to GitHub.
Explicitly approve copying the finished local draft to GitHub
The helper creates or updates a pending review and reports that it remains unsubmitted.