Plannotator
在浏览器中可视化标注 AI 编码代理的计划与代码差异,一键把反馈发回代理。
证据显示最小权限处理较好:钩子仅拦截计划/审批流程,卸载路径含根目录/主目录拒绝、符号链接防护、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 所述隐私与安全行为均为项目自述,本次为静态评审,未经执行验证。
这个 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 有哪些优点和局限?
- 同时覆盖计划审阅和代码差异审阅,反馈一键返回代理会话形成闭环
- 支持九种代理(Claude Code、Codex、Gemini CLI、Pi 等),一套安装器自动配置钩子与命令
- 数据默认完全本地化,不收集遥测;分享采用 AES-256-GCM 加密的 PrivateBin 式粘贴模型
- 发布带 SHA256 校验、SLSA 溯源证明和 CycloneDX SBOM,可验证供应链
- 部分网络功能会把内容送出本地:Ask AI 发送上下文到配置的提供商,URL 标注默认经 Jina Reader 抓取
- 应用启动时默认检查 GitHub 最新版本,目前无退出选项
- 开源的链接分享正在被弃用,团队协作主推托管的 Workspaces(数据本地模型不适用)
- 插件/钩子按各代理分别配置,某些代理功能受限(如 Droid 仅有命令、无计划拦截)
如何安装或部署这个 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. 中添加 "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.。SSH/远程场景设置 PLANNOTATOR_REMOTE=1 并转发端口(远程默认 19432)。