Annotate and review coding agent plans and code diffs visually, share with your team, send feedback to agents with one click.
Plannotator is a browser-based review interface for AI coding agent plans and code diffs, supporting Claude Code, Copilot CLI, Gemini CLI, OpenCode, Codex, Pi, Droid, and Amp. It installs into Claude Code as a plugin via the marketplace and adds a built-in hook that automatically opens agent plans in the browser during plan mode, where reviewers can approve or deny proposals, add inline annotations, and consult an Ask AI side chat. Slash commands handle additional workflows: `/plannotator-review` renders git diffs or GitHub pull requests with annotation support, and `/plannotator-annotate` opens any markdown file, folder, or URL for annotated feedback that is sent back to the agent in one click. Team collaboration works through shareable encrypted links where small plans encode entirely in the URL hash, while larger plans use AES-256-GCM zero-knowledge storage with auto-deletion after seven days. The tool is self-hostable and ships with SHA256 verification plus SLSA provenance support from version 0.17.2 onward. It primarily benefits developers and teams who want human review checkpoints built into agentic coding workflows.
- ✓Open-source license (Apache-2.0)
- ✓Actively maintained (<30d)
- ✓Healthy fork ratio
- ✓Clear description
- ✓Topics declared
- ✓Documented (README)
git clone https://github.com/backnotprop/plannotator10 items in this repository
Guard against breaking the @pierre/diffs integration in Plannotator's code review UI. Use this skill whenever modifying DiffViewer.tsx, upgrading the @pierre/diffs package, changing unsafeCSS injection, adding new props to FileDiff, or touching shadow DOM selectors or CSS variables that cross into Pierre's shadow boundary. Also trigger when someone asks "will this break the diff viewer", "is this safe to change", or when reviewing PRs that touch the review-editor package.
Prepare and execute a Plannotator release — draft release notes with full contributor credit, bump versions across all package files, build in dependency order, and kick off the tag-driven release pipeline. Use this skill whenever the user mentions preparing a release, bumping versions, writing release notes, tagging a release, or publishing. Also trigger when the user says things like "let's ship", "prep a release", "what's changed since last release", or "time to cut a new version".
Review Renovate bot PRs that update GitHub Actions dependencies. Verifies supply chain integrity by checking pinned commit SHAs against upstream tagged releases, reviews changelogs for breaking changes, and confirms compatibility with existing workflow configurations. Use when a Renovate PR updates GitHub Actions in .github/workflows/.
Audit and update npm/Bun dependencies with supply chain integrity checks — verifies maintainers, publish age, tarball diffs, and provenance before bumping. Defers risky packages to ~/.supply-chain/notes/.
Open Plannotator's annotation UI for a markdown file, converted HTML file, URL, or folder and then respond to the returned annotations.
Open Plannotator's browser-based code review UI for the current worktree or a pull request URL, then act on the feedback that comes back.
Open Plannotator on the latest rendered assistant message and use the returned annotations to revise that message or continue.
Turn an idea or objective into a goal package for /goal. Interviews the user, builds a reviewed fact sheet via Plannotator, then explores the codebase to produce an execution plan.
Tools overview
<p align="center">
<img src=".github/assets/banner.webp" alt="Plannotator" width="640" />
</p>
<p align="center">
<strong>Everything you need to annotate and stay in the loop with your agents</strong><br/>
<strong>Markdown Review • Code Review • HTML Artifacts</strong><br/>
<sub>Annotate plans, specs, markdown, and HTML before implementation. Review diffs and PRs. Send feedback to your agent.</sub>
</p>
<p align="center">
<img src=".github/assets/icons/amp.svg" alt="Amp" title="Amp" height="28" />
<img src=".github/assets/icons/claude.svg" alt="Claude Code" title="Claude Code" height="28" />
<img src=".github/assets/icons/codex.png" alt="Codex" title="Codex" height="28" />
<picture>
<source media="(prefers-color-scheme: dark)" srcset=".github/assets/icons/copilot-dark.svg" />
<img src=".github/assets/icons/copilot-light.svg" alt="Copilot CLI" title="Copilot CLI" height="28" />
</picture>
<img src=".github/assets/icons/droid.png" alt="Droid" title="Droid" height="28" />
<img src=".github/assets/icons/gemini.png" alt="Gemini CLI" title="Gemini CLI" height="28" />
<img src=".github/assets/icons/kiro.svg" alt="Kiro" title="Kiro" height="28" />
<picture>
<source media="(prefers-color-scheme: dark)" srcset=".github/assets/icons/opencode-dark.svg" />
<img src=".github/assets/icons/opencode-light.svg" alt="OpenCode" title="OpenCode" height="28" />
</picture>
<picture>
<source media="(prefers-color-scheme: dark)" srcset=".github/assets/icons/pi-dark.svg" />
<img src=".github/assets/icons/pi-light.svg" alt="Pi" title="Pi" height="28" />
</picture>
</p>
<p align="center">
<a href="https://www.youtube.com/watch?v=a_AT7cEN_9I">Watch the og demo</a> · <a href="https://plannotator.ai/docs/getting-started/installation/">Installation guide</a> · <a href="https://plannotator.ai/">Official site</a>
</p>
# 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.
<table>
<tr>
<td width="40%" valign="middle">
### Review documents, plans, and agent messages
Annotate plans, specs, messages, html, then send the feedback to your agent.
<p><strong>Demo:</strong> <a href="https://youtu.be/XqFun9XCXPw">Plan review with Pi</a></p>
</td>
<td width="60%">
<img src=".github/assets/annotate.webp" alt="Annotate UI with inline annotations" width="100%" />
</td>
</tr>
<tr>
<td width="40%" valign="middle">
### Code Review
Review local changes or remote PRs. Comment on diffs, suggest code. Your comments go back to the agent. Works with git, jj, p4, GitHub, and GitLab.
</td>
<td width="60%">
<img src=".github/assets/review.webp" alt="Code review with file tree and side-by-side diff" width="100%" />
</td>
</tr>
</table>
<p align="center">
<sub><strong>AI built in:</strong> ask AI about anything you're reviewing,<br/>or launch AI reviews that post comments to the diff.</sub>
</p>
## Annotate HTML Artifacts
<p align="center">
<img src=".github/assets/html.webp" alt="Annotating a rendered HTML artifact" width="720" />
</p>
---
## Commands
<sub>On Codex, swap the slash commands for `!plannotator …` (e.g. `!plannotator review`) or the `$plannotator-*` skills.</sub>
### 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
```
### 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
```
### 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
```
---
## Sharing & Multiplayer
<p align="center">
<a href="https://room.plannotator.ai/">
<img src=".github/assets/sharing.png" alt="Sharing portal with upload options" width="720" />
</a>
</p>
<p align="center">
<sub>Beta: <a href="https://room.plannotator.ai/">room.plannotator.ai</a></sub>
</p>
<p align="center">
<a href="https://plannotator.ai/workspaces">
<img src=".github/assets/workspaces-cta.svg" alt="Beta is ending. Sign up for Workspaces." height="44" />
</a>
</p>
Share a plan with a teammate and they can annotate it themselves. Import their feedback and send it straight back to your agent.
**Small plans** are encoded entirely in the URL hash. No server involved. The data lives in the link itself.
**Large plans** go through a short-link service, encrypted in your browser with AES-256-GCM. The server stores only ciphertext, and the key never leaves the URL fragment. Pastes auto-delete after 7 days.
Same model as [PrivateBin](https://privatebin.info/). The paste service is [self-hostable](https://plannotator.ai/docs/guides/sharing-and-collaboration/).
Sharing can be disabled entirely with `PLANNOTATOR_SHARE=disabled`.
**Coming next:** live collaboration. Teammates and their agents working through the same plan or review together, in real time. It arrives in Workspaces once the room beta wraps. [Sign up here](https://plannotator.ai/workspaces).
---
## Install
One installer covers almost every agent. It installs the `plannotator` binary, auto-detects your installed agents, and configures hooks, skills, and slash commands for each:
```bash
# macOS / Linux / WSL
curl -fsSL https://plannotator.ai/install.sh | bash
```
```powershell
# Windows PowerShell
irm https://plannotator.ai/install.ps1 | iex
```
Then finish the step for your agent:
| Agent | After the installer | Details |
|---|---|---|
| **Amp** | Copy [`plannotator.ts`](apps/amp-plugin/plannotator.ts) into `~/.config/amp/plugins/`, then `plugins: reload`. Workflows live in the command palette. | [README](apps/amp-plugin/README.md) |
| **Claude Code** | `/plugin marketplace add backnotprop/plannotator`, then `/plugin install plannotator@plannotator`. Restart Claude Code. | [README](apps/hook/README.md) |
| **Codex** | Nothing. Plan review is enabled automatically via Codex's experimental `Stop` hook (macOS/Linux/WSL; Codex hooks are disabled on Windows). `$plannotator-review`, `$plannotator-annotate`, and `$plannotator-last` skills included. | [README](apps/codex/README.md) |
| **Copilot CLI** | `/plugin marketplace add backnotprop/plannotator`, then `/plugin install plannotator-copilot@plannotator`. Restart. Plan review activates in plan mode (`Shift+Tab`). | [README](apps/copilot/README.md) |
| **Droid** | `droid plugin marketplace add https://github.com/backnotprop/plannotator`, then `droid plugin install plannotator@plannotator`. Commands only, no plan interception yet. | [README](apps/droid-plugin/README.md) |
| **Gemini CLI** | Nothing. The hook, policy, and slash commands are configured automatically. Requires Gemini CLI 0.36.0+. | [README](apps/gemini/README.md) |
| **Kiro CLI** | Nothing. Skills and an example agent are installed automatically. Try `kiro-cli chat --agent plannotator`. | [README](apps/kiro-cli/README.md) |
| **OpenCode** | Add `"plugin": ["@plannotator/opencode@latest"]` to `opencode.json`. Restart OpenCode. | [README](apps/opencode-plugin/README.md) |
| **Pi** | Skip the installer. Just `pi install npm:@plannotator/pi-extension`. Start Pi with `--plan`, or toggle with `/plannotator`. | [README](apps/pi-extension/README.md) |
Full walkthroughs live in the [installation docs](https://plannotator.ai/docs/getting-started/installation/).
<details>
<summary>Claude Code: manual hook setup (without the plugin system)</summary>
Add to `~/.claude/settings.json`:
```json
{
"hooks": {
"PermissionRequest": [
{
"matcher": "ExitPlanMode",
"hooks": [
{
"type": "command",
"command": "plannotator",
"timeout": 345600
}
]
}
]
}
}
```
</details>
<details>
<summary>Pin a specific version</summary>
```bash
curl -fsSL https://plannotator.ai/install.sh | bash -s -- --version vX.Y.Z
```
```powershell
& ([scriptblock]::Create((irm https://plannotator.ai/install.ps1))) -Version vX.Y.Z
```
</details>
### Try it
The fastest way to see what Plannotator does is to invoke it yourself, right now, from your agent:
```
/plannotator-last # annotate the agent's last reply
/plannotator-review # review your current diff, PR-style
/plannotator-annotate report.html # annotate any file, folder, or URL
```
(Slash commands in most agents; `$plannotator-*` skills in Codex, command palette in Amp.)
Plan review needs no command at all. The next time your agent proposes a plan, it opens in your browser automatically.
---
## How it works
### Plan review
```
Agent calls ExitPlanMode
-> PermissionRequest hook fires
-> Local server reads plan from hook input
-> Browser opens with review UI
-> You annotate and approve/deny
-> Approve: agent proceeds
-> Deny: structured feedback sent to agent
-> Agent revises, plan diff shows what changed
```
### Code reWhat people ask about plannotator
What is backnotprop/plannotator?
+
backnotprop/plannotator is tools for the Claude AI ecosystem. Annotate and review coding agent plans and code diffs visually, share with your team, send feedback to agents with one click. It has 6.1k GitHub stars and was last updated today.
How do I install plannotator?
+
You can install plannotator by cloning the repository (https://github.com/backnotprop/plannotator) or following the README instructions on GitHub. ClaudeWave also provides quick install blocks on this page.
Is backnotprop/plannotator safe to use?
+
Our security agent has analyzed backnotprop/plannotator and assigned a Trust Score of 100/100 (tier: Verified). See the full breakdown of passed checks and flags on this page.
Who maintains backnotprop/plannotator?
+
backnotprop/plannotator is maintained by backnotprop. The last recorded GitHub activity is from today, with 133 open issues.
Are there alternatives to plannotator?
+
Yes. On ClaudeWave you can browse similar tools at /categories/tools, sorted by popularity or recent activity.
Deploy plannotator to your cloud
Ship this repo to production in minutes. Each platform spins up its own environment with editable env vars.
Maintain this repo? Add a badge to your README
Drop the badge into your GitHub README to show it's tracked on ClaudeWave. Each badge links back to this page and reflects the live Trust Score.
[](https://claudewave.com/repo/backnotprop-plannotator)<a href="https://claudewave.com/repo/backnotprop-plannotator"><img src="https://claudewave.com/api/badge/backnotprop-plannotator" alt="Featured on ClaudeWave: backnotprop/plannotator" width="320" height="64" /></a>More Tools
A single CLAUDE.md file to improve Claude Code behavior, derived from Andrej Karpathy's observations on LLM coding pitfalls.
An AI SKILL that provide design intelligence for building professional UI/UX multiple platforms
🪨 why use many token when few token do trick — Claude Code skill that cuts 65% of tokens by talking like caveman
AI coding assistant skill (Claude Code, Codex, OpenCode, Cursor, Gemini CLI, and more). Turn any folder of code, SQL schemas, R scripts, shell scripts, docs, papers, images, or videos into a queryable knowledge graph. App code + database schema + infrastructure in one graph.
A light-weight and powerful meta-prompting, context engineering and spec-driven development system for Claude Code by TÂCHES.
CLI proxy that reduces LLM token consumption by 60-90% on common dev commands. Single Rust binary, zero dependencies