1. 基本信息
| 项目 | 内容 |
|---|---|
| 名称 | hunk-review |
| 作者/维护者 | modem-dev(开源团队,主要维护者 benvinegar) |
| 来源链接 | https://github.com/modem-dev/hunk/tree/main/skills/hunk-review |
| 许可证 | MIT(GitHub API 确认) |
| GitHub Stars | 7,742(GitHub API,指整个 hunk 仓库) |
| Forks | 221(GitHub API) |
| 最新版本 | v0.17.6(GitHub Releases,发布于近日) |
| 安装方式 | npm i -g hunkdiff 或 brew install hunk,随后加载 skills/hunk-review/SKILL.md |
2. 功能介绍与亮点
hunk 是一个交互式终端 diff 查看器,专为审查 AI Agent 生成的代码改动而设计;hunk-review 则是配套的 Agent Skill,让 Agent 能够“看见”并操作用户本地正在运行的 Hunk 审查会话。核心能力:
- 实时会话控制:通过本地 loopback 守护进程(
hunk session命令族)查询当前打开的审查窗口、加载的文件与 hunk 结构,无需 Agent 自行解析原始 diff 文本 - 精确定位:按文件+hunk 序号或新旧行号跳转到用户界面正在展示的具体位置,让 Agent 的讲解与用户实际看到的内容同步
- 行内批注:Agent 可对具体代码行添加或批量提交评审意见,支持单条
comment add与批量comment apply(JSON 批处理)两种模式 - 内容热切换:
reload可让已打开的窗口切换到不同的 diff/commit/文件对比,无需用户手动重开 - 上下文经济:
review --json默认只返回文件/hunk 结构而非完整 diff 文本,仅在确有需要时才用--include-patch拉取原始补丁,减少 Agent 上下文占用
亮点在于把“人类盯着终端看 diff”与“Agent 自动化审查”两件事真正结合起来——Agent 不是自说自话生成一份审查报告,而是实时驱动用户当前正在看的界面,在正确的位置留下讲解。仓库同时支持 Git、Jujutsu、Sapling 三种版本控制系统,并原生支持多文件审查、分屏/堆叠视图、鼠标操作等终端 UI 能力。
3. 适用场景
所属分类:工程效率与代码质量
适合需要频繁审查 AI Agent(如 Claude Code)产出代码改动的开发者:在终端并排开启 Hunk 与编码 Agent,改动完成后让 Agent 加载该技能,自动在关键改动处留下讲解与风险提示,用户可直接在同一界面查看批注并继续对话。也适合团队代码评审场景——多文件改动通过侧边栏统一导航,Agent 与人类可在同一份审查流中协作。
4. 跨 Agent 兼容性
- Claude Code:原生支持。SKILL.md 遵循标准 Agent Skills 规范(YAML front matter + 指令正文),GitHub Issue 中已有用户具体讨论“如何与 Claude Code 配合使用该技能”的实际工作流
- Codex:未验证——抓取材料未提及
- OpenClaw:未验证——抓取材料未提及
- Hermes Agent:未验证——抓取材料未提及
技能文件本身不含任何厂商专属逻辑,理论上任何支持加载 SKILL.md 的 Agent 均可使用,但目前公开材料中只有 Claude Code 的具体使用讨论。
5. 推荐理由
多数代码审查类 Agent 能力停留在“生成一份文字审查报告”,hunk-review 的差异化在于让 Agent 直接接管用户已经打开的交互式终端界面——跳转、批注、切换 diff 全部实时发生在用户眼前的同一窗口。仓库本身是活跃维护的独立开源项目,近 4 个月内积累 7,700+ star、221 次 fork,Issue 区可见大量具体的技能集成反馈(而非泛泛的功能请求),说明这不是昙花一现的营销型项目,而是有真实使用者在打磨的工具。技能本身只与本机 loopback 守护进程通信,不外发任何数据、不需要任何凭据,安装门槛也只是一条 npm/brew 命令。
6. 评分
| 维度 | 分数 | 说明 |
|---|---|---|
| 受欢迎程度 | 9 | GitHub 7,742 stars(仓库创建于 2026-03-17,约 4 个月内达到该量级),221 forks;Issue 区可见多条针对 Agent 集成细节的具体技术讨论,非泛泛互动 |
| 可用性 | 9 | npm i -g hunkdiff 或 brew install hunk 一条命令安装;README、AGENTS.md 与专门的 docs/agent-workflows.md 文档齐全含示例;仓库当日仍有代码推送,最新版本发布于近日;无付费依赖 |
| 安全性 | 8 | 见下方安全检查清单 |
安全检查清单:
| 检查项 | 结果 |
|---|---|
| ① Shell 命令执行及权限范围 | 执行 hunk CLI 的 session 子命令(list/get/context/review/navigate/reload/comment),范围限定于与本地 Hunk 审查会话交互,未见任意 shell 执行 |
| ② 运行时联网外发 | 仅通过本机 loopback 守护进程(127.0.0.1)通信,未发现外部网络请求 |
| ③ API key/凭据 | 无需任何凭据 |
| ④ 可疑指令 | 通读 SKILL.md 全文,未发现可疑指令、混淆代码或隐蔽外发迹象 |
| ⑤ 作者/组织信誉 | 独立开源团队,公开 Issue 区活跃、无 SEO/赞助文案迹象 |
| ⑥ License | MIT,明确 |
| ⑦ 最近维护时间 | 持续活跃维护,近日仍有版本发布与代码推送 |
该技能涉及本地代码执行(调用 CLI 控制会话、提交批注),虽范围明确、全程可审计、无外联,但并非纯提示词/模板类技能,因此未获评最高分。
7. 跟同类 Skills 相比的优势
| 项目 | 定位 | 与 hunk-review 的差异 |
|---|---|---|
| jscpd(kucherenko/jscpd 附带技能) | 220+ 语言的重复代码检测器,附带面向 Agent 的精简输出格式 | 一次性运行、输出一份重复代码报告,无交互会话,Agent 与人类各自独立查看结果,不支持实时协同批注 |
| difftastic / delta(终端 diff 渲染器) | 语法感知的 diff 高亮与美化渲染 | 只做静态展示美化,无 Agent 交互层,无法被 Agent 驱动跳转或留下批注 |
| lumen(jnsahaj/lumen) | AI 生成 commit message 并辅助审查 | 聚焦提交信息生成,审查界面与本技能类似的实时会话控制、多文件侧边栏导航能力较弱 |
hunk-review 的差异化核心是“实时会话控制 + 行内批注”的组合:既不是一次性静态报告(如 jscpd),也不是纯粹的渲染美化(如 difftastic/delta),而是让 Agent 真正接管用户正在看的界面进行协同审查。
8. 用户评价
- euge(GitHub Issue #100,“Documenting Optimal Workflow With Claude”):称赞终端内的 diff 视图“漂亮得没话说”,并具体询问如何搭建“一个终端窗口跑 Claude Code、另一个跑
hunk diff“的工作流,反映真实用户已在日常开发中尝试将该技能与 Claude Code 配合使用 - shimo4228(GitHub Issue #595):提交了一份详细的技术报告,指出打包的
hunk-reviewSKILL.md 遗漏了 CLI 已支持的--include-notes、--include-user/--all等参数,并附上了具体的源码行号与测试文件依据,体现出对该技能文档准确性的深度使用与检验
9. 其他补充
仓库额外提供实验性的 STML(终端富文本标记语言)批注模式,可在审查会话中渲染带边框、进度条、徽章等结构化内容的批注,需通过 --experimental 参数在启动审查时显式开启。项目同时支持 Nix 包管理,并对 Jujutsu、Sapling 等新兴版本控制系统提供原生 revset 支持。
10. 安装使用方式
# 安装(二选一)
npm i -g hunkdiff
brew install hunk
# 第一步:在一个终端窗口打开审查会话
hunk diff # 审查当前工作区改动
hunk show # 审查最近一次提交
# 第二步:告诉 Agent 加载技能
# 通用提示词示例:
# "Load the Hunk skill and use it for this review. Run `hunk skill path` to get the skill path."
安装后无需重启,Agent 首次执行 hunk session list 即可发现正在运行的会话。若 Agent 运行在沙箱环境中,可能需要为其开放对本机 loopback 端口(默认 127.0.0.1:47657)的访问权限。
11. 注意事项
- 需要用户已在终端手动打开一个 Hunk 审查会话(
hunk diff或hunk show),技能本身不会自动启动会话 - 若 Agent 运行在受限沙箱中,可能因无法访问 loopback 端口而报告“无活跃会话”,需要为 Agent 放开本机网络访问权限
- 目前仅确认与 Claude Code 的具体集成工作流,与 Codex / OpenClaw / Hermes Agent 的兼容性未见公开验证材料
- STML 富文本批注为实验特性,默认关闭,需要显式以
--experimental参数启动审查会话才可使用