Everything you need to annotate and stay in the loop with your agents
Markdown Review • Code Review • HTML Artifacts
Annotate plans, specs, markdown, and HTML before implementation. Review diffs and PRs. Send feedback to your agent.
Watch the og demo · Installation guide · Official site · Visual HTML Skills · Herdr Annotate
Plannotator
Plannotator is a local, browser-based review surface for AI coding agents: Claude Code, Codex, Copilot CLI, Gemini CLI, OpenCode, Kiro, Droid, Amp, and Pi.
It plugs directly into your agent through its hooks and commands. When the agent proposes a plan, html, or finishes writing code, the work opens in your browser and you mark it up, comment, and send feedback directly to the agent for it to act on it.
Review documents, plans, and agent messagesAnnotate plans, specs, messages, html, then send the feedback to your agent. Demo: Plan review with Pi |
![]() |
Code ReviewReview local changes or remote PRs. Comment on diffs, suggest code. Your comments go back to the agent. Works with Git, GitButler, Jujutsu ( |
![]() |
AI built in: ask AI about anything you're reviewing,
or launch AI reviews that post comments to the diff.
Annotate HTML Artifacts
Herdr Annotate: Plannotator in the Terminal
Herdr Annotate brings Plannotator-style review to the terminal: annotate terminal text, review whole Markdown documents and your coding agent's replies inside Herdr, and send the feedback straight back to the agent as its next message. Works with Claude Code, Codex, Pi, Copilot CLI, and Droid replies. Annotations are saved in the Plannotator data directory, so terminal reviews and app reviews compound.
herdr plugin install plannotator/herdr-annotate
Prefer it standalone? Plannotator TUI powers the document review and runs without Herdr: brew install plannotator/tap/plannotator-tui.
Commands
On Codex, swap the slash commands for !plannotator … (e.g. !plannotator review) or the $plannotator-* skills.
Annotate
/plannotator-annotate README.md # Local markdown file
/plannotator-annotate src/ # Browse and annotate files in a folder
/plannotator-annotate https://docs.rs/… # Fetch and annotate any URL
/plannotator-annotate report.html --render-html # Render HTML as-is instead of converting
/plannotator-last # Annotate the agent's last message
Need a realistic document to try? Copy the product requirements document template and filled example as Markdown.
Code review
/plannotator-review # Review uncommitted changes
/plannotator-review <github-pr-url> # Review a GitHub pull request
/plannotator-review <gitlab-mr-url> # Review a GitLab merge request
plannotator review --gitbutler # Review an active GitButler workspace
GitButler users can review the whole workspace, one stack, or one branch layer. See the GitButler workflow guide.
Plan mode
No command needed. Plan mode is wired in through each harness's hooks. Any time your agent creates a plan, the markdown review surface opens for you.
CLI
plannotator sessions # List active Plannotator sessions
plannotator sessions --open 1 # Reopen a session in the browser
plannotator archive # Browse saved plan decisions read-only
Privacy and network behavior
Plannotator does not collect usage telemetry or analytics. Plans, diffs, annotations, drafts, history, and configuration stay local by default.
Each plan review, annotate, archive, share-portal, and code-review app surface checks GitHub for the latest Plannotator release when it loads. This sends no plan or review content and gives the Plannotator project owner no usage analytics, although GitHub receives an ordinary request. There is currently no opt-out setting. Local Git code review can also query the configured origin with git ls-remote to detect the default branch and a stale baseline; it does not send the local diff.
Content leaves the local workflow only when a network feature needs it:
- URL annotation fetches the requested site, through Jina Reader by default for public pages or directly when Jina is disabled or unavailable.
- GitHub and GitLab review uses your authenticated CLI and Git remote to retrieve PR or MR data.
- Ask AI and review agents send the selected question and relevant plan, document, repository, or diff context to your configured provider.
- Sharing sends the complete link to whoever or whatever service you use to deliver it. Encrypted short links upload ciphertext to the paste service.
- Workspaces is a separate hosted product, so the open source app's local-storage model does not apply to content placed there.
The privacy policy documents these boundaries and the hosted website and waitlist data.
Link sharing
Open source asynchronous link sharing remains available for compatibility but is moving to deprecated support. Workspaces is the primary direction for team sharing. No removal date has been announced.
Legacy link-sharing demo: room.plannotator.ai
Share a plan with a teammate and they can annotate it themselves. Import their feedback and send it straight back to your agent.
Small markdown shares are compressed into the URL fragment. The fragment is not included in the browser's request to the share por

