Crit:把 AI 代理的文本输出变成可批注的审查界面
您与代理的反馈循环。与您的代理 Claude Code 集成:Crit 还可以与 Cursor、GitHub Copilot、OpenCode、Codex、Gemini、Qwen、Hermes、Windsurf、Cline、Grok、Aider 和 Pi 以及任何可以读取文件和运行命令的代理配合使用。
秒懂
- 它是什么?
- Crit 是一个 Go 编写的本地工具,为 Claude Code 等 AI 代理生成的计划、代码 diff 和网页提供带注释的审查界面,并支持将反馈直接送回代理。本文基于其 README 和仓库结构,分析其工作机制、适用场景与局限。
- 适合谁用?
- Crit 适合那些频繁与 AI 代理协作、且需要人工把关的开发者,尤其是 Claude Code 用户,因为它提供了官方插件市场集成。不适合只做纯文本审查、或不愿引入额外浏览器界面的人。
- 能商用吗?
- 可以。MIT 是宽松许可证:你可以使用、修改并销售基于它的软件,只需保留版权和许可证声明。
- 还在维护吗?
- 在维护。仓库最近一次提交在 4 天前。
- 用什么语言写的?
- 主要是 Go(依据 GitHub 的语言统计)。
以上回答依据项目的 GitHub 数据(最近同步于 2026年9月14日)和我们的分析,不构成法律意见。
开源项目深度解析
它解决什么问题
AI 代理生成计划、代码 diff 和前端页面时,输出都是纯文本。人类审查这些文本时,缺乏像 GitHub PR 那样的行内注释和上下文定位能力。Crit 为每种输出类型提供专门的界面:markdown 计划渲染成带批注的文档,git 变更显示语法高亮的 diff,运行中的网页通过代理叠加审查层。它的目标用户是那些需要人工把关 AI 生成结果的工程师,尤其是使用 Claude Code 或其他支持自定义命令的代理的人。
核心机制:本地二进制加文件存储
Crit 是一个单二进制工具,所有操作都在本地进行。它通过 CLI 命令接收文件路径或 URL,启动一个本地审查界面。注释以 JSON 格式追加到 `~/.crit/reviews/` 下的审查文件中,每个会话有唯一 ID。代理通过 `crit comment` 命令添加注释,无需打开浏览器。这种设计使得审查状态持久化,且可被脚本或代理读取。关键点在于,Crit 不依赖云端服务,审查数据默认留在本机,只有用户主动点击 Share 时才会上传。
安装与集成:从 brew 到 Claude 插件
安装方式多样:macOS 用户可直接 `brew install crit`,Go 用户可 `go install github.com/tomasz-tomczyk/crit/cmd/crit@latest`,Nix 用户用 `nix profile install github:tomasz-tomczyk/crit`,Windows 用户通过 iwr 下载 exe。与 Claude Code 的集成最简单:执行 `claude plugin marketplace add tomasz-tomczyk/crit` 和 `claude plugin install crit@crit`,之后就能用 `/crit` 命令。其他代理如 Cursor、GitHub Copilot、OpenCode 等,只要代理能读文件和运行命令,就能通过 `integrations/` 目录中的说明接入。这种通用性来自 Crit 的命令行接口,而非特定代理的 API。
live 模式的 cookie 处理:一个必须注意的坑
`crit live <url>` 会代理运行中的开发服务器,但 iframe 加载应用时使用不同源,导致 host 作用域的会话 cookie 不会自动共享。如果直接访问 URL 正常,但通过 Crit 看到登录页或 hydration mismatch,就需要手动转发 cookie。支持三种方式:`--cookie` 传单个值,`--cookie-file` 指定 Netscape jar 或原始 Cookie 头,`--cdp-url` 从 Chrome 远程调试端口读取。配置文件 `.crit.config.json` 可设置 `live_cookie_file` 和 `live_cdp_url`,项目配置覆盖全局。这个设计是合理的,但增加了上手复杂度,尤其是对不熟悉 CDP 的开发者。
审查流程中的关键命令
日常使用中,`crit` 无参数会自动检测 git 变更,`crit plan.md` 审查单个文件,`crit http://localhost:3000` 审查运行中的应用。`crit status` 显示当前审查文件路径和守护进程状态,`crit stats` 给出终身统计,`crit cleanup` 删除过期审查文件。`crit comment` 是代理添加注释的入口,支持单行和范围,例如 `crit comment src/auth.go:42 'Missing null check'`。当多个会话匹配同一目录和分支时,必须用 `--session <id>` 指定,否则命令会失败而不是猜测。这种明确性避免了歧义,但要求用户熟悉会话管理。
局限与不适用的场景
Crit 依赖图形界面,纯终端用户无法享受行内注释的便利。它要求代理能调用外部命令,如果你的代理不支持插件或自定义命令,集成就得手动粘贴 prompt,效率打折。live 模式的 cookie 转发机制只适用于本地开发,无法用于生产环境。另外,审查文件存储在 `~/.crit/reviews/`,如果多人协作,需要依赖 Share 功能上传,但那是公开 URL,不适合敏感代码。对于大规模分支审查,Crit 提供了 `crit story` 生成章节化概览,但那是可选功能,不是默认流程。
替代方案与差异
最直接的替代是直接在终端里用 `git diff` 配合编辑器插件审查,但那样没有行内注释,反馈只能通过聊天发给代理。另一个替代是使用 GitHub PR 的 review 功能,如果代理能推送分支,你可以在网页上注释,但流程更长,且不适用于本地文件。Crit 的差异在于它把审查界面带到本地,且通过文件系统与代理共享状态,无需网络往返。对于 Claude Code 用户,Crit 的插件集成让 `/crit` 成为自然延伸,这是其他方案难以复制的。
维护与许可
Crit 采用 MIT 许可,允许自由使用、修改和再分发,没有附加限制。仓库有活跃的发布节奏,最近版本 v0.19.1 于 2026 年 8 月 28 日发布,v0.19.0 和 v0.18.4 分别在前几周,说明维护者持续修复问题。升级成本主要在于二进制替换,但要注意配置文件格式和命令行为可能变化,例如 `crit comment` 的会话选择机制在 v0.19.x 中变得更严格,未指定 `--session` 时会失败。建议升级前阅读 release notes,并测试现有脚本。
编辑结论
Crit 适合那些频繁与 AI 代理协作、且需要人工把关的开发者,尤其是 Claude Code 用户,因为它提供了官方插件市场集成。不适合只做纯文本审查、或不愿引入额外浏览器界面的人。采用前应验证两件事:一是你的代理能否通过插件或自定义命令调用 crit,二是 live 模式下 cookie 处理是否符合你的安全要求,特别是不要将含会话凭证的 .crit 目录提交到版本库。Crit 的 MIT 许可允许自由使用和修改,但升级成本取决于你使用的版本,建议关注 release notes 中的行为变化,例如 v0.19.x 对会话管理的调整。
社区笔记