Tools: Building a Local PR Review Interface for Claude Code Plans

Tools: Building a Local PR Review Interface for Claude Code Plans

Source: Dev.to

What is IPE? ## The Problems I wanted to fix ## How It Works ## Install in One Line ## The Workflow in Practice ## Try It Out 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. IPE intercepts Claude Code's ExitPlanMode hook and opens a browser tab showing the plan in a GitHub-style code review interface. You can: You 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. Windows (PowerShell): 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. The 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...). Templates let you quickly answer FAQs or store snippets for re-use. Are you sure you want to hide this comment? It will become hidden in your post, but will still be visible via the comment's permalink. Hide child comments as well For further actions, you may consider blocking this person and/or reporting abuse COMMAND_BLOCK: curl -fsSL https://raw.githubusercontent.com/eduardmaghakyan/ipe/main/install.sh | bash Enter fullscreen mode Exit fullscreen mode COMMAND_BLOCK: curl -fsSL https://raw.githubusercontent.com/eduardmaghakyan/ipe/main/install.sh | bash COMMAND_BLOCK: curl -fsSL https://raw.githubusercontent.com/eduardmaghakyan/ipe/main/install.sh | bash CODE_BLOCK: irm https://raw.githubusercontent.com/eduardmaghakyan/ipe/main/install.ps1 | iex Enter fullscreen mode Exit fullscreen mode CODE_BLOCK: irm https://raw.githubusercontent.com/eduardmaghakyan/ipe/main/install.ps1 | iex CODE_BLOCK: irm https://raw.githubusercontent.com/eduardmaghakyan/ipe/main/install.ps1 | iex - Add inline comments on any block or text selection — just like leaving a review comment on a PR - Click any file reference (e.g. `src/index.ts`) to pop open a syntax-highlighted side drawer showing the actual file contents - Compare plan versions side-by-side when Claude revises after your feedback - Switch between sessions if you're running multiple Claude Code instances at once - Approve or request changes — clicking "Request Changes" bundles your inline comments and sends them back to Claude - Work with Claude Code as normal - Claude generates a plan and calls ExitPlanMode - Your browser opens with the plan displayed - Read through it, click file references to inspect code, leave inline comments where needed - Hit Accept → Claude proceeds - Hit Request Changes → your comments go back to Claude, it revises, you review the diff