cd /news/developer-tools/show-hn-open-plan-annotator-local-an… · home topics developer-tools article
[ARTICLE · art-74523] src=github.com ↗ pub= topic=developer-tools verified=true sentiment=· neutral

Show HN: Open-plan-annotator – local annotation UI for working with agent plans

Developer ndom91 released open-plan-annotator, a fully local annotation UI plugin for coding agents including Claude Code, OpenCode, and Pi, that intercepts plan mode and lets users mark up plans with strikethrough, replace, insert, or comment actions before approving or requesting changes. The plugin runs an ephemeral HTTP server and React UI in the browser, sending structured feedback back to the agent for iterative revision, and is available via package managers for each agent harness.

read3 min views1 publishedJul 26, 2026
Show HN: Open-plan-annotator – local annotation UI for working with agent plans
Image: source

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

  • Your coding agent (Claude Code, OpenCode, and pi) finishes writing a plan
  • The plugin launches an ephemeral HTTP server and opens a React UI in your browser
  • You review the plan and annotate it — strikethrough, replace, insert, or comment on any section Approve to let the agent proceed, orRequest Changes to send your annotations back as structured feedback- The agent revises the plan and the cycle repeats until you're satisfied

Everything runs locally.

open-plan-annotator

is package-managed as a plugin within your harness of choice. The main plugin package then installs the specific local platform runtime it needs for your host (linux

/darwin

, x86_64

/arm64

, etc). After installing the plugin, your agent will call open-plan-annotator

autonomously when you ask it to "make a plan" or any similar such comment, including in claude-code specifically as a hook when exiting PlanMode

. Alternatively, you can call it yourself explicitly via the exposed command. See below for more details.

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/annotate-plan [task description]

: asks Claude to draft a plan and send it to the UIopen-plan-annotator

: runtime command invoked by the hook

Third-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@1.8.7"]
}

What you get:

annotate_plan

: tool the agent calls after drafting a markdown planopen-plan-annotator

: runtime command spawned by the plugin- optional implementation-agent handoff after approval

Restart 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:

annotate_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 extension

Manual 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

You can also review a Markdown plan directly from disk, which is useful for agents without a native plugin:

open-plan-annotator review /absolute/path/to/plan.md

The command opens the same local review UI and blocks until approval or requested changes. It prints review result JSON to stdout when the user is done.

Generic agent setup instructions are available with:

open-plan-annotator agent-setup
open-plan-annotator help agent

Claude Code: navigate to the/plugin

-> "Installed" ->open-plan-annotator

entry and select "Update", then restart Claude Code.OpenCode: bump the version number in youropencode.jsonc

plugins

open-plan-annotator

entry, then restart OpenCode.Pi: update the Pi extension, then restart Pi.** Manual/global install**: update the npm package, then rerunopen-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
  • Architecture: docs/architecture.md

  • Operations: docs/operations.md

  • Release process: docs/release.md

MIT

── more in #developer-tools 4 stories · sorted by recency
── more on @ndom91 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
Live at https://your-agent.zahid.host
Get free account → Pricing
from €0/mo · no card required
LIVE [news/show-hn-open-plan-an…] indexed:0 read:3min 2026-07-26 ·