By ndom91
Draft concrete task plans by analyzing the codebase—listing files to modify, assumptions, and questions—then interactively review, strikethrough, comment, and approve them in a fully local UI before implementation. Hooks automate this on PermissionRequest events for ExitPlanMode.
npx claudepluginhub ndom91/open-plan-annotator --plugin open-plan-annotator
A fully local agentic coding plugin that intercepts plan mode and opens an annotation UI in your browser. Mark up the plan, send structured feedback to the agent, and receive a revised version — iterate as many times as you need until you're ready to approve.
Select text to strikethrough, replace, insert, or comment — then approve the plan or request changes
Everything runs locally. Nothing leaves your machine.

open-plan-annotator is package-managed: the plugin package installs the local platform runtime it needs. There is no first-run binary download and no in-app updater.
Install from inside Claude Code:
/plugin marketplace add ndom91/open-plan-annotator
/plugin install open-plan-annotator@ndom91-open-plan-annotator
What you get:
ExitPlanMode hook: opens the annotation UI whenever Claude submits a plan/open-plan-annotator [task description]: asks Claude to draft a plan and send it to the UIopen-plan-annotator: runtime command invoked by the hookThird-party marketplace auto-update is disabled by default in Claude Code. Enable auto-update for the ndom91-open-plan-annotator marketplace in the Marketplace UI if you want updates automatically.
Add the plugin to your OpenCode config (opencode.json or .opencode/config.json):
{
"plugin": ["open-plan-annotator@latest"]
}
What you get:
submit_plan: tool the agent calls after drafting a markdown planopen-plan-annotator: runtime command spawned by the pluginRestart OpenCode after installing or updating so it reloads the package-managed runtime.
Install the Pi extension:
pi install npm:@open-plan-annotator/pi-extension
What you get:
submit_plan: tool the agent calls after drafting a markdown plan/annotate-plan [plan markdown]: command for manually reviewing supplied text or the latest assistant messageopen-plan-annotator: runtime command used by the extensionManual review examples:
/annotate-plan
/annotate-plan # Plan\n\n1. Do the thing
Install globally if you want to run the CLI directly:
bun add -g open-plan-annotator
npm install -g open-plan-annotator
This adds the open-plan-annotator command. To verify the resolved runtime:
open-plan-annotator doctor
open-plan-annotator.| Action | Shortcut | Description |
|---|---|---|
| Delete | d | Strikethrough selected text |
| Replace | r | Replace selected text with new content |
| Insert | s | Insert text after the selection |
| Comment | c | Attach a comment to selected text |
| Approve | Cmd+Enter | Approve the plan and proceed |
| Request Changes | Cmd+Shift+Enter | Send annotations back to the agent |
bun run dev
Starts the Bun server on port 3847 with a test plan and the Vite dev server on port 5173 with HMR.
bun run lint # check
bun run lint:fix # auto-fix
bun run format # format
docs/architecture.mddocs/operations.mddocs/release.mdMIT
Interactive Plan Review: Mark up and refine your plans using a UI, easily share for team collaboration, automatically integrates with plan mode hooks.
Share bugs, ideas, or general feedback.
Structured implementation planning, interactive annotation review, and autonomous plan execution
Autonomous Claude + Codex review loop. Plan a feature with adversarial pushback, or audit code, all in one window.
Codex, Gemini, Claude の3つの AI で Plan ファイルを並列レビュー。実装計画の妥当性、抜け漏れ、リスクを分析する
Humanize - An iterative development plugin that uses Codex to review Claude's work. Creates a feedback loop where Claude implements plans and Codex independently reviews progress, ensuring quality through continuous refinement.
For easy problems, start here. For harder problems, do this after Explore.