
GitHub PR Review UI for Claude Code Plans
title: Building a Local GitHub-style Review Interface for Claude Code Plans published: true description: GitHub PR Review UI for Claude Code Plans tags: #claudecode #ai #programming
Plan mode in Claude Code feels like reviewing a pull request with no comments, no diff, and no history.
Claude thinks for a moment (well much longer than a "moment"), then dumps a wall of text into your terminal - It then asks for approval with many variations of "Yes, ...."
Then I open the Markdown file, start taking notes while reading through it. After doing this for a while I felt there should be a better way.
So I built IPE.

IPE intercepts Claude Code's ExitPlanMode hook and opens a browser tab showing the plan in a GitHub-style code review interface. You can:
`src/index.ts`) to pop open a syntax-highlighted side drawer showing the actual file contentsYou can't annotate. If step 3 looks wrong and step 8 is fine but needs a tweak, you're writing one blob of feedback hoping Claude parses it all correctly.
You lose context across revisions. Claude revises the plan based on your feedback - but there's no diff. Did it actually address your concern? You're re-reading the whole thing from scratch.
IPE registers itself as a Claude Code hook on PermissionRequest with the ExitPlanMode matcher. When Claude finishes planning and tries to proceed, the hook fires.
The binary spins up a local HTTP server, opens your browser, and blocks - Claude is sitting there waiting for your response. You review at your own pace (the timeout is 4 days, so no rush). When you approve or request changes, the server sends the response back to the hook and the browser tab closes automatically.
The whole thing is a self-contained binary built with Bun.
macOS / Linux:
curl -fsSL https://raw.githubusercontent.com/eduardmaghakyan/ipe/main/install.sh | bash
Windows (PowerShell):
irm https://raw.githubusercontent.com/eduardmaghakyan/ipe/main/install.ps1 | iex
That's it. The script downloads the binary and registers the hook in your Claude Code settings automatically. Run it again to update.
Verify it's wired up by running /hooks inside Claude Code — you should see the ExitPlanMode hook listed.
ExitPlanModeThe project is open source: github.com/EduardMaghakyan/ipe
If you use Claude Code in plan mode regularly, give it a spin and let me know what you think. Issues and PRs welcome - there's a lot of room to grow this (comment threads, keyboard shortcuts, plan history persistence...).
gemmaI ported the whole Gemma-4 family — E2B, E4B, 12B, 31B, and the 26B-A4B MoE — to run on...
communityHey DEV, I'm Tobore. Let's actually connect. I've been on here for a while now, mostly writing and...
ai(yep, kinda clickbait, just for the funsies 😊) At the beginning of the year, I relaunched my...
aiMy laptop was sitting idle with the fan at full tilt. Nothing was running that I knew of. The culprit...
githubactionsI Built a Thing! TL;DR — Google Gemini-based Pull Request reviews and Issue Triaging for...
aiI've been hearing the word "harness" thrown around a lot lately. I assumed it just meant "the IDE" or...
Workflows from the Neura Market marketplace related to this DeepSeek resource