Plannotator
在浏览器中可视化标注 AI 编码代理的计划与代码差异,一键把反馈发回代理。
- Star 数
- ★ 9.6k
- 最近更新
- 今天
- License
- Apache-2.0
- 主语言
- TypeScript
- FA 评分
- 78/100 · 表现良好
30 秒速览
- 运行形态
- 可在哪里用
- 通用 · 跨平台Codex · Claude Code
- 费用
- 有免费版,另有付费云服务
- 上手难度
- 低 · 几分钟可跑通
- 开始前需要
- 典型场景
- 使用 Claude Code 的开发者想在实施前用内联标注审阅代理的实施方案
- 不适合
- 需要完全离线、不能有任何外部网络请求的团队
- 希望开源链接共享长期受支持的团队
- 需要 Droid 计划拦截的团队(目前仅支持命令)
- 源码审查
- 78/100 · 表现良好
这个 Agent 能做什么,适合哪些场景?
Plannotator 是一个本地运行的浏览器审阅界面,适用于 Claude Code、Codex、Copilot CLI、Gemini CLI、OpenCode、Kiro、Droid、Amp 和 Pi 等 AI 编码代理。它通过各代理的钩子(hooks)与斜杠命令接入:当代理提出计划、生成 HTML 或完成代码时,内容会自动在浏览器中打开,供你标注、评论并一键把结构化反馈发回代理。它同时支持本地变更和 GitHub/GitLab PR/MR 的代码差异审阅,兼容 Git、GitButler、Jujutsu 和 Perforce。数据(计划、差异、标注、历史)默认保存在本地,不收集遥测。团队分享通过链接(加密或不加密)或托管的 Workspaces 产品完成,官方还提供终端版 Herdr Annotate/TUI 和 VS Code 扩展。
通过各代理的 PermissionRequest/Stop 等钩子拦截代理的计划或代码产出,读取后启动本地服务器并在浏览器打开审阅界面。核心命令包括 /plannotator-annotate(标注本地 Markdown、文件夹、URL 或渲染 HTML)、/plannotator-review(审阅未提交变更、GitHub PR 或 GitLab MR,支持 GitButler 工作区)、/plannotator-last(标注代理上一条回复),以及 CLI 子命令 plannotator sessions 和 plannotator archive。计划审阅流程:代理调用 ExitPlanMode → 钩子触发 → 浏览器打开审阅 UI → 用户标注并批准/拒绝 → 批准则代理继续,拒绝则把结构化反馈发回代理。代码审阅流程:git diff 或按 URL 拉取 PR/MR → 浏览器差异查看器 → 逐行评论、暂存/取消暂存文件 → 反馈返回代理会话。集成包括 VS Code 扩展、Obsidian 计划归档和 Bear 笔记导出。
- 使用 Claude Code 的开发者想在实施前用内联标注审阅代理的实施方案
如何安装或部署这个 Agent?
运行一键安装脚本:curl -fsSL https://plannotator.ai/install.sh | bash(macOS/Linux/WSL)或 irm https://plannotator.ai/install.ps1 | iex(Windows PowerShell)。安装器会安装 plannotator 二进制并自动配置已检测到的代理。各代理还需一步:Claude Code 执行 /plugin marketplace add backnotprop/plannotator 再 /plugin install plannotator@plannotator;Pi 则跳过安装器直接 pi install npm:@plannotator/pi-extension;OpenCode 在 opencode.json 中添加 "plugin": ["@plannotator/opencode@latest"]。可用 --minimal 仅装二进制,--version 锁定版本。卸载用 plannotator uninstall 或 --purge。
如何使用这个 Agent?
安装后无需命令即可用计划审阅:代理下次提出计划时审阅界面自动在浏览器打开。手动调用:/plannotator-annotate README.md 标注本地文件,/plannotator-annotate https://... 标注 URL,/plannotator-review 审阅未提交变更,/plannotator-review <PR URL> 审阅 PR/MR,/plannotator-last 标注代理上一条回复。CLI:plannotator sessions --open 1 重新打开会话,plannotator archive 浏览历史决定。配置通过环境变量(PLANNOTATOR_REMOTE、PLANNOTATOR_PORT、PLANNOTATOR_SHARE 等)或 ~/.plannotator/config.json。SSH/远程场景设置 PLANNOTATOR_REMOTE=1 并转发端口(远程默认 19432)。
这个 Agent 有哪些优点和局限?
- 同时覆盖计划审阅和代码差异审阅,反馈一键返回代理会话形成闭环
- 支持九种代理(Claude Code、Codex、Gemini CLI、Pi 等),一套安装器自动配置钩子与命令
- 数据默认完全本地化,不收集遥测;分享采用 AES-256-GCM 加密的 PrivateBin 式粘贴模型
- 发布带 SHA256 校验、SLSA 溯源证明和 CycloneDX SBOM,可验证供应链
- 部分网络功能会把内容送出本地:Ask AI 发送上下文到配置的提供商,URL 标注默认经 Jina Reader 抓取
- 应用启动时默认检查 GitHub 最新版本,目前无退出选项
- 开源的链接分享正在被弃用,团队协作主推托管的 Workspaces(数据本地模型不适用)
- 插件/钩子按各代理分别配置,某些代理功能受限(如 Droid 仅有命令、无计划拦截)
这个 Agent 与同类方案有什么区别?
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| Plannotator 当前 | 78 · 表现良好 | 命令行工具免费版 + 付费版 | ★ 9.6k | 今天 | TypeScript | Codex · Claude Code |
| multi 多模型评审 | 41 · 缺口较多 | — | ★ 23 | 3 天前 | Shell | Codex · Claude Code · Claude API |
| Maestro 编排平台 | 75 · 存在缺口 | Agent 插件 / 技能免费 + 模型费 | ★ 484 | 5 天前 | JavaScript | Codex · Claude Code |
| Ordewell | 67 · 存在缺口 | 命令行工具免费 + 模型费 | ★ 205 | 今天 | TypeScript | Codex · Claude Code · OpenAI API · Claude API |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
证据显示最小权限处理较好:钩子仅拦截计划/审批流程,卸载路径含根目录/主目录拒绝、符号链接防护、dry-run;用户确认是产品核心(计划批准/拒绝、purge 需输入 'purge');隐私与网络行为章节极为详尽(本地默认、更新检查发 GitHub、分享加密 AES-256-GCM);依赖安全有 SBOM、Grype 门禁、SLSA 证明、CI 镜像摘要固定。扣分:发布更新检查无退出选项;来源归属仅 'backnotprop' 且发布者未验证,无团队/实体信息,故 source_attribution 仅 1。
README 与 package.(v0.27.13)、工作流、测试路径相互一致,多代理版本要求(Gemini 0.36.0+)已注明。扣分:install.sh 的部署说明承认 repo 与线上脚本需手工同步且仅校验 md5,存在漂移风险;源码中未见错误消息设计的直接证据,failure_messages 仅依赖卸载段落描述,评 1。
覆盖九种代理、macOS/Linux/WSL/Windows、SSH/devcontainer 远程模式、Git/GitButler/Jujutsu/Perforce/GitHub/GitLab,场景划分清晰。扣分:能力边界部分仅在代理表格中以只言片语给出('no plan interception yet'、Codex hooks 实验性),缺系统性边界说明;钩子自动触发在配置外不可调,trigger_precision 为 2。
信息架构、安装说明、命名(plannotator-*、PLANNOTATOR_*)高度一致且详尽。扣分:证据中未见 CHANGELOG 文件,版本仅出现在 package.;license 声明 'MIT OR Apache-2.0' 与外部元数据 Apache-2.0 存在不一致且未见 LICENSE 文件本体;FAQ 缺失,已知限制零散(SBOM 局限、sharing 弃用、Codex 实验性),各评 1-2。
浏览器端批注 UI、计划 diff、结构化反馈回传代理是明确可用的输出形态,细分市场(代理计划/差异的可视化批注)边际价值清晰。扣分:单文件包约 20MB、安装器全量写入多个代理配置,成本收益一般,评 2。
提供 SLSA/CycloneDX 证明校验命令、sha256 sidecar、安装时 --verify-attestation,可追溯性强;DAST 工作流、测试与 README 声明部分互证。扣分:隐私声明('无遥测')为自述,无独立佐证;README 同时含事实(命令)与营销性推断,混合度中等,各评 2。
- 安装采用 curl | bash 管道且证明校验默认关闭,企业环境应改用 --minimal 或手动验证 SLSA 证明后再安装。
- 发布更新检查无退出设置,每次打开界面都会向 GitHub 发请求;对网络出口受限环境需提前评估。
- 分享功能默认可上传内容至外部 paste 服务,建议在敏感代码库中设置 PLANNOTATOR_SHARE=disabled。
- license 元数据为 Apache-2.0 而 package. 声明 MIT OR Apache-2.0,合规采购前应确认实际授权条款。
- README 所述隐私与安全行为均为项目自述,本次为静态评审,未经执行验证。
最近版本
来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。
-
发布说明摘录
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 | …在 GitHub 查看 ↗ -
发布说明摘录
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 | …在 GitHub 查看 ↗ -
发布说明摘录
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 | …在 GitHub 查看 ↗