Plannotator — AIエージェントの計画や差分をブラウザで確認・指示できるレビュー基盤
backnotprop/plannotator
★ 10,466 ・ TypeScript ・ Apache-2.0
概要
近年、Claude CodeやCodexをはじめとするAIコーディングエージェントが自律的にタスクをこなす場面が増えています。しかし、エージェントが立てた作業計画の確認や、生成されたコード・差分のチェック、途中の質問への回答など、人間が介入して判断を下す場面(Human-in-the-loop)におけるインターフェースの整備は大きな課題となっています。
Plannotator は、そうしたAIコーディングエージェントと人間とのやり取りを円滑にするために開発された、ローカル動作のブラウザベースのレビューワークスペースです。エージェントが作業計画(Plan)を立てた際や成果物を作成した際にブラウザ上に専用のレビュー画面が立ち上がり、ユーザーはドキュメントやコード差分、HTML成果物に注釈(アノテーション)やコメントを付け、ワンクリックでエージェントに次の指示としてフィードバックを戻すことができます。
AIエージェントに丸投げするのではなく、要所要所で的確なレビューや軌道修正を行いたい開発者やチームに適したツールです。
主な特徴
-
幅広いAIエージェント・アシスタントとの連携 Claude Code、Codex、Copilot CLI、Gemini CLI、OpenCode、Kiro、Droid、Amp、DeepSeek Harness、Pi といった多様なコーディングエージェントに対応しています。さらに、Plannotator Inbox を介して Grok Bot、Muse、Hermes、OpenClaw などのパーソナルアシスタントとも連携可能です。
-
計画(Plan)や各種ドキュメントへのアノテーション エージェントが作成した計画書(Markdown)や仕様書、直前の返答メッセージをブラウザ上で閲覧し、ピンポイントで修正指示やコメントを書き込めます。コメント内容はそのままエージェントへの入力として送信されます。
-
多彩なVCS・PRに対応したコードレビュー機能 コミット前のローカル変更やGit差分だけでなく、GitHubのPull Request、GitLabのMerge Requestをブラウザからレビューできます。さらに、標準的なGitに加えて GitButler、Jujutsu(jj)、Perforce(p4)といったバージョン管理システムにも対応しています。
-
非同期対応の「Plannotator Inbox」とMCPサポート 複数のエージェントからの質問や確認待ちタスクを1つのローカルウィンドウに集約する「Inbox」機能を備えています。エージェント側のセッションを維持したまま待たせることなく、ユーザーが都合の良いタイミングで回答やレビューを返すことができます。MCP(Model Context Protocol)経由の接続(
plannotator inbox mcp)にも対応しています。 -
ターミナルUI(TUI)環境での利用 ブラウザだけでなく、ターミナル内で完結させたいユーザー向けに
Herdr Annotateや単体バイナリとして動作するPlannotator TUIも提供されており、CLI環境から直接レビューやフィードバックが行えます。 -
プライバシーを意識したローカルファースト設計 利用状況のテレメトリやアナリティクスは収集されず、計画や差分、アノテーションデータは基本的にローカル環境に保存されます。
使い方
Plannotator は各エージェントのプラグインやフック、CLIコマンド経由で呼び出して使用します。Codex を使用している場合はスラッシュコマンドの代わりに !plannotator 形式や $plannotator-* スキルを利用します。
ドキュメントや成果物のアノテーション
ローカルのMarkdownファイルやディレクトリ、Webページ、直前のメッセージなどを指定してレビュー画面を開きます。
# ローカルのMarkdownファイルを指定してアノテーション
/plannotator-annotate README.md
# フォルダ内のファイルをブラウズしてアノテーション
/plannotator-annotate src/
# 指定URLを取得してアノテーション
/plannotator-annotate https://docs.rs/...
# HTMLファイルを変換せずそのまま描画してレビュー
/plannotator-annotate report.html --render-html
# エージェントの直前のメッセージに対してアノテーション
/plannotator-last
コードレビューの実行
ローカルの変更差分や、リモートのプルリクエスト/マージリクエストを対象にレビュー画面を起動します。
# 未コミットの変更差分をレビュー
/plannotator-review
# GitHub PR をレビュー
/plannotator-review <github-pr-url>
# GitLab MR をレビュー
/plannotator-review <gitlab-mr-url>
# GitButler ワークスペースをレビュー
plannotator review --gitbutler
# 指定した unified diff パッチファイルをレビュー
plannotator review --patch-file reading.diff
セッション管理と Inbox
バックグラウンドで動くエージェントからの問い合わせやタスクを一覧で処理したい場合は、Inbox を起動します。
# Inbox 画面の起動
plannotator inbox
# MCP サーバーとして起動
plannotator inbox mcp
# アクティブなセッションを一覧表示
plannotator sessions
# 特定のセッションをブラウザで再度開く
plannotator sessions --open 1
# 保存された計画の決定履歴を読み取り専用で閲覧
plannotator archive
なお、各エージェントのフックが設定されている場合、「Plan mode」は自動的に起動するため、特別なコマンドを入力しなくてもエージェントが計画を立案した時点でレビュー画面が開きます。
技術的なポイント
- 実装言語とエコシステム 主要部分は TypeScript で実装されており、ブラウザベースのWebアプリケーションとローカルCLIツールが統合された構成になっています。
- 外部プロトコル・ツール連携
エージェントとの通信プロトコルとして、独自プラグイン・フックに加えて MCP(Model Context Protocol)をサポートしています。また、ターミナル環境向けには専用の TUI(
plannotator-tui)や、Herdr エコシステムと連携するプラグイン(herdr-annotate)が用意されています。 - 通信と暗号化の仕組み チームメンバーへのリンク共有機能では、小さなMarkdownであればURLフラグメントに圧縮データを保持します。大きなファイルやHTML共有時にはペーストサービスへアップロードされますが、アップロード前にブラウザ側で AES-256-GCM による暗号化が行われ、復号キーはURLフラグメントに含まれるためサーバーには渡らない設計(PrivateBinと同様のモデル)が採用されています。
注意点
- ライセンス 本プロジェクトは Apache License 2.0 で公開されています。
- ネットワーク通信の挙動
テレメトリは送信されませんが、起動時に最新リリースの有無を調べるため GitHub へのリクエストが自動で発生します(このチェックを無効化する設定は現状ありません)。また、ローカルGitレビュー時にデフォルトブランチ検出等のためリモートへ
git ls-remoteを実行する挙動があります。この通信を遮断したい場合は、plannotator review --no-git-remote-checkオプションを付与するか、環境変数PLANNOTATOR_GIT_REMOTE_CHECK=0または設定ファイルで無効化する必要があります。 - 外部サービス連携時の送信内容 URLアノテーション時には対象ページの取得(デフォルトで Jina Reader 経由)、Ask AI 機能利用時には設定されたAIプロバイダへのコンテキスト送信が発生します。
- リンク共有機能の変更
OSS版の非同期リンク共有機能は将来的な非推奨化が進められており、チーム共有の主軸は「Workspaces」(ホスト型プロダクト)へと移行する方針が示されています。共有機能自体を完全に切りたい場合は、環境変数
PLANNOTATOR_SHARE=disabledを指定可能です。
まとめ
Plannotator は、AIコーディングエージェントが作成する計画やコード変更、HTMLアーティファクトに対して、人間が直感的にブラウザ上でレビューや指示を出せるツールです。ローカルファーストの安心感を保ちながら、MCP対応や各種VCSとの連携により、エージェントとの協業プロセスを効率化してくれます。





