Plannotator

Interactive Plan & Code Review for AI Coding Agents

1 — 概要

Plannotator は、AI コーディングエージェントが作ったプラン、現在の git diff、Markdown や URL 由来の資料をブラウザで選択・注釈し、そのフィードバックをエージェントの次アクションへ戻すツール群。

ターミナル上の「承認する / しない」だけでは粗い。Plannotator は「この行は削る」「ここに条件を足す」「この実装順を変える」を視覚的に残し、Plan Diff やコードレビュー UI で人間の判断を細かく渡せる。

backnotprop/plannotator version 0.19.6 MIT OR Apache-2.0
6対応エージェント
3レビュー面
96h既定レビュー待機
7日共有ペースト保持
2 — レビュー面

Visual Plan Review

Claude Code、Copilot CLI、Gemini CLI、OpenCode、Pi のプラン提出をフックし、ブラウザで承認・却下・注釈できる。再提出時は Plan Diff で変更点を確認。

Code Review

/plannotator-review や !plannotator review で git diff や PR を開く。行単位コメント、差分ビュー切替、AI への質問をレビュー中に扱える。

Annotate Anything

/plannotator-annotate は Markdown、HTML、URL、フォルダを対象にできる。/plannotator-last は直近のエージェント応答を注釈して戻す。

3 — 動作フロー

Plannotator の芯は「エージェントの計画・差分・成果物を、人間が読める粒度に分解し、構造化フィードバックとして戻す」こと。プランモードでは次の流れになる。

1 Plan created エージェントがプランを作成し、各ホストの plan 終了イベントを出す。
2 Hook intercepts Hook、plugin、extension が Plannotator UI をブラウザで開く。
3 Annotate 削除、挿入、置換、コメントなどを対象範囲つきで残す。
4 Approve or deny 承認なら実装へ進む。却下なら注釈がフィードバックになる。
5 Diff loop 再提出されたプランは Plan Diff で変更だけ追える。
4 — 対応エージェント
ホストプランレビューコード / 注釈連携方式
Claude CodeExitPlanMode hook/plannotator-review, /plannotator-annotate, /plannotator-lastPlugin marketplace or manual hook
Copilot CLIpreToolUse hookreview / annotate / last slash commandsPlugin install + session state parsing
Gemini CLIBeforeTool hook for exit_plan_modereview / annotate slash commandsInstaller writes policy, hook, commands
OpenCodesubmit_plan toolreview / annotate / last commands@plannotator/opencode plugin
Piplannotator_submit_planreview / annotate / last / archive@plannotator/pi-extension
Codex未対応!plannotator review, annotate, lastCLI stdout feedback loop
設計上の違い: Codex は現時点でプラン提出を横取りする hook を公開していないため、プランモードではなくコードレビューと Markdown 注釈が中心。
5 — 導入

多くの連携では、まず plannotator コマンドを PATH に入れる。

# macOS / Linux / WSL
curl -fsSL https://plannotator.ai/install.sh | bash

# Windows PowerShell
irm https://plannotator.ai/install.ps1 | iex

リリースバイナリは SHA256 sidecar を持ち、v0.17.2 以降は SLSA provenance 検証にも対応。

Claude/plugin marketplace add backnotprop/plannotator
/plugin install plannotator@plannotator
Copilot/plugin install plannotator-copilot@plannotator
Geminiinstaller が policy / hook / commands を自動構成
OpenCode"plugin": ["@plannotator/opencode@latest"]
Pipi install npm:@plannotator/pi-extension
Codex!plannotator review から利用
6 — 共有とプライバシー

Plannotator はチームレビューも想定している。小さいプランは URL ハッシュだけに詰めるため、サーバ不要。大きいプランはブラウザ側で暗号化してから短縮リンクサービスへ送る。

Small plan

圧縮済みデータを URL ハッシュへ格納。ブラウザ外へ保存しない。

or

Large plan

AES-256-GCM で暗号化。サーバは暗号文のみ保持し、復号鍵は共有URL側に残る。

運用メモ: 共有ポータルはアカウント、トラッキング、Cookie を前提にしない。PLANNOTATOR_SHARE_URL や paste service URL でセルフホスト先へ差し替え可能。
7 — 実装の形
  • apps/hook
    Claude Code hook server と slash command 群。
  • apps/opencode-plugin
    OpenCode plugin。workflow は plan-agent、manual、all-agents。
  • apps/pi-extension
    Pi の plan / execution phase と共有イベント API。
  • packages/server
    レビュー、annotation、PR、VCS、storage などのバックエンド処理。
  • packages/ui
    Markdown parser、Plan Diff、annotation highlighter、sharing utils。

Pi extension では plannotator:request event channel を公開し、他 extension も同じブラウザレビュー体験を再利用できる。

plan-review   -> { planContent, planFilePath? }
code-review   -> { cwd?, defaultBranch?, diffType? }
annotate      -> { filePath, markdown?, mode?, folderPath? }
annotate-last -> { markdown? }
archive       -> { customPlanPath? }

プランレビューは非同期。開始時に reviewId を返し、承認・却下後に plannotator:review-result を emit する。