Plannotator
Visually annotate your coding agent's plans and diffs in the browser and send feedback back with one click.
- Source repo
- backnotprop/plannotator
- Stars
- ★ 9.6k
- Last updated
- today
- License
- Apache-2.0
- Primary language
- TypeScript
- FA score
- 78/100 · Good
At a glance
- How it runs
- Works with
- Universal · cross-platformCodex · Claude Code
- Cost
- Free tier plus a paid hosted plan
- Setup effort
- Low · running in minutes
- You'll need
- Typical use
- A Claude Code developer who wants to mark up an agent's implementation plan inline before it executes
- Not a fit if
- Teams that need zero outbound network requests
- Teams wanting long-term support for open-source link sharing
- Droid users needing plan interception, not just commands
- Source review
- 78/100 · Good
What does this agent do, and when should you use it?
Plannotator is a local, browser-based review surface for AI coding agents including Claude Code, Codex, Copilot CLI, Gemini CLI, OpenCode, Kiro, Droid, Amp, and Pi. It plugs into each agent through hooks and slash commands: when the agent proposes a plan, writes HTML, or finishes code, the work opens in your browser where you annotate, comment, and send structured feedback directly to the agent. It also reviews code diffs from local changes or remote GitHub/GitLab PRs and MRs, working with Git, GitButler, Jujutsu, and Perforce. Plans, diffs, annotations, and history stay local by default with no telemetry collection. Team sharing works via links (encrypted or not) or the hosted Workspaces product, and terminal-based Herdr Annotate/TUI and a VS Code extension extend the workflow.
Through hooks like PermissionRequest and Stop, it intercepts agent plans or code output, starts a local server, and opens a review UI in the browser. Core commands include /plannotator-annotate (annotate local Markdown, folders, URLs, or rendered HTML), /plannotator-review (review uncommitted changes, GitHub PRs, or GitLab MRs, with GitButler workspace support), /plannotator-last (annotate the agent's last reply), plus CLI subcommands plannotator sessions and plannotator archive. Plan review flow: agent calls ExitPlanMode → hook fires → browser opens review UI → you annotate and approve/deny → approve lets the agent proceed, deny sends structured feedback back. Code review flow: git diff or PR/MR fetched by URL → browser diff viewer → line comments, stage/unstage files → feedback returned to the agent session. Integrations include a VS Code extension, Obsidian plan archiving, and Bear note export.
- A Claude Code developer who wants to mark up an agent's implementation plan inline before it executes
How do you install or deploy this agent?
Run the one-line installer: curl -fsSL https://plannotator.ai/install.sh | bash (macOS/Linux/WSL) or irm https://plannotator.ai/install.ps1 | iex (Windows PowerShell). It installs the plannotator binary and auto-configures detected agents. Per-agent step: for Claude Code run /plugin marketplace add backnotprop/plannotator then /plugin install plannotator@plannotator; for Pi skip the installer and run pi install npm:@plannotator/pi-extension; for OpenCode add "plugin": ["@plannotator/opencode@latest"] to opencode.. Use --minimal for binary-only, --version to pin. Uninstall with plannotator uninstall or --purge.
How do you use this agent?
Plan review needs no command: the review UI opens in your browser automatically whenever your agent proposes a plan. Manual invocation: /plannotator-annotate README.md to annotate a local file, /plannotator-annotate https://... for a URL, /plannotator-review for uncommitted changes, /plannotator-review <PR URL> for a PR/MR, /plannotator-last to annotate the agent's last reply. CLI: plannotator sessions --open 1 to reopen a session, plannotator archive to browse past decisions. Configure via environment variables (PLANNOTATOR_REMOTE, PLANNOTATOR_PORT, PLANNOTATOR_SHARE, etc.) or ~/.plannotator/config.. For SSH/remote use, set PLANNOTATOR_REMOTE=1 and forward the port (remote default 19432).
What are this agent's strengths and limitations?
- Covers both plan review and code diff review with one-click feedback back into the agent session
- Supports nine agents (Claude Code, Codex, Gemini CLI, Pi, etc.) with one installer configuring hooks and commands
- Fully local by default with no telemetry; sharing uses a PrivateBin-style AES-256-GCM encrypted paste model
- Releases ship SHA256 sidecars, SLSA provenance attestations, and CycloneDX SBOMs for supply-chain verification
- Some network features send content off-device: Ask AI sends context to your configured provider, and URL annotation fetches pages via Jina Reader by default
- The app checks GitHub for the latest release on load with no opt-out setting currently
- Open-source link sharing is moving to deprecated support; team collaboration is steered toward hosted Workspaces where the local-data model doesn't apply
- Hooks/plugins are configured per agent, and support depth varies (e.g., Droid gets commands only, no plan interception)
How does this agent compare with similar options?
Key facts side by side with the most closely related agents.
| Agent | Source review | Form / cost | Stars | Updated | Language | Full support on |
|---|---|---|---|---|---|---|
| Plannotator This agent | 78 · Good | CLIFreemium | ★ 9.6k | today | TypeScript | Codex · Claude Code |
| multi | 41 · Major gaps | — | ★ 23 | 3d ago | Shell | Codex · Claude Code · Claude API |
| Maestro Orchestration Platform | 75 · Some gaps | Agent plugin / skillFree + model costs | ★ 484 | 5d ago | JavaScript | Codex · Claude Code |
| Ordewell | 67 · Some gaps | CLIFree + model costs | ★ 205 | today | TypeScript | Codex · Claude Code · OpenAI API · Claude API |
How does FollowAgents rate this agent?
Why each dimension lost points
Least privilege is well handled: hooks intercept only plan/approval flows; uninstall includes root/home refusals, symlink guards, dry-run; user confirmation is the product's core (approve/deny plans; purge requires typing 'purge'); the privacy section is unusually detailed (local-by-default, GitHub update checks, AES-256-GCM encrypted shares); dependency security has SBOM, Grype gating, SLSA attestations, digest-pinned CI images. Deductions: no opt-out for release checks; attribution is only 'backnotprop' with unverified publisher and no entity/team info, so source_attribution is 1.
README is consistent with package. (v0.27.13), workflows, and test paths; per-agent version requirements are noted. Deductions: the deploy notes admit install scripts on the CDN must be hand-synced with only md5 verification, a drift risk; no direct evidence of error-message design in the sampled sources, so failure_messages is 1, resting only on uninstall prose.
Covers nine agents, macOS/Linux/WSL/Windows, SSH/devcontainer remote mode, Git/GitButler/Jujutsu/Perforce/GitHub/GitLab, with clear scenario separation. Deductions: capability boundaries appear only as scattered notes ('no plan interception yet', experimental Codex hooks) rather than a systematic statement; hooks auto-fire outside user configuration control, so trigger_precision is 2.
Information architecture, install notes, and naming (plannotator-*, PLANNOTATOR_*) are highly consistent and thorough. Deductions: no CHANGELOG file in evidence; license declared 'MIT OR Apache-2.0' in package., inconsistent with external Apache-2.0 metadata and no LICENSE file shown; no FAQ; known limitations are scattered (SBOM caveat, deprecated sharing, experimental Codex), scoring 1-2.
Browser-based annotation UI, plan diffs, and structured feedback back to the agent are concrete usable outputs; the niche (visual annotation of agent plans/diffs) shows clear marginal value. Deductions: ~20MB single-file bundles and an installer that writes into many agent configs make cost/benefit merely average, 2.
SLSA/CycloneDX verification commands, sha256 sidecars, and --verify-attestation give strong traceability; DAST workflow and tests partially corroborate README claims. Deductions: privacy claims ('no telemetry') are self-asserted without independent corroboration; README mixes facts (commands) with promotional inference moderately, each 2.
- Installation is curl | bash with attestation verification opt-in; enterprises should prefer --minimal or verify SLSA attestations manually before install.
- The release check has no opt-out and contacts GitHub on every app-surface load; evaluate for egress-restricted environments.
- Sharing uploads content to an external paste service by default; consider PLANNOTATOR_SHARE=disabled for sensitive repos.
- License metadata says Apache-2.0 while package. declares 'MIT OR Apache-2.0'; confirm actual terms before procurement.
- Privacy and security claims are self-asserted; this was a static review with no executed verification.
Recent releases
Latest entries from the project's GitHub Releases. Notes are quoted from upstream as written, not rewritten or tested by FollowAgents.
-
Release notes excerpt
Follow [@plannotator](https://x.com/plannotator) on X for updates <details> <summary><strong>Missed recent releases?</strong></summary> | Release | Highlights | |---|---| | [v0.28.29](https://github.com/backnotprop/plannotator/releases/tag/v0.28.29) | Plan review opens on OpenCode 2, a DOMPurify security update, closing a review stops the agent everywhere | | [v0.28.27](https://github.com/backnotprop/plannotator/releases/tag/v0.28.27) | Jump to open questions, files side by side or full screen, image zoom in the Inbox, empty To field, text size for plan review and annotate | …View on GitHub ↗ -
Release notes excerpt
Follow [@plannotator](https://x.com/plannotator) on X for updates <details> <summary><strong>Missed recent releases?</strong></summary> | Release | Highlights | |---|---| | [v0.28.27](https://github.com/backnotprop/plannotator/releases/tag/v0.28.27) | Jump to open questions, files side by side or full screen, image zoom in the Inbox, empty To field, text size for plan review and annotate | …View on GitHub ↗ -
Release notes excerpt
Follow [@plannotator](https://x.com/plannotator) on X for updates <details> <summary><strong>Missed recent releases?</strong></summary> | Release | Highlights | |---|---| | [v0.28.26](https://github.com/backnotprop/plannotator/releases/tag/v0.28.26) | Action items and reply drafts in the Inbox, one decision button for plan review, Enter to save a comment, a custom code font | | [v0.28.25](https://github.com/backnotprop/plannotator/releases/tag/v0.28.25) | Re-ask open questions, delivery ticks on the list, a count of new messages on the tab, right-click a thread, click Inbox to refresh | …View on GitHub ↗