modem-dev/hunk
Review-first terminal diff viewer for agentic coders
hunk – 具备 AI 注释功能的终端 diff 查看器
简介 – hunk 是一款命令行工具,它将 git diff、git show 或类似指令的纯文本输出替换为交互式的窗口化 UI。它让您可以浏览整个变更集,通过侧边栏在文件间跳转,并以分割视图或统一模式查看 diff。该 UI 建立在 OpenTUI 框架之上,并使用 @pierre/diffs 库进行底层 diff 渲染。
对 AI/代理的重要性 – 该查看器拥有一个专用的“行内 AI 与代理注释”列。外部 AI 代理可以被赋予一个 skill(一个小型的可执行脚本),与运行中的 hunk 会话进行通信,允许代理直接在审查 UI 内添加注释、建议或自动修复。这使得 hunk 成为 AI 辅助代码审查工作流程的天然前端。
主要功能
- 具备导航侧边栏的多文件审查流。
- 分割、统一与响应式自动布局。
- 实时监控模式,随文件或 Git 工作树变更自动重新加载视图。
- 完整的键盘、鼠标、分页器与 Git-difftool 集成。
- 行内 AI/代理注释与实验性的富文本注释格式。
- 可通过 TypeScript 扩展功能进行扩展(例如:折叠锁定文件、自定义主题、额外的 VCS 后端)。
- 适用于 Git、Jujutsu 与 Sapling 仓库;亦可对任意文件或补丁进行 diff。
安装 – 单一指令安装程序 (curl … | sh) 会将预先构建的二进制文件放入 ~/.hunk。软件包也可通过 npm (npm i -g hunkdiff)、Homebrew、mise 或 Nix 获取。Windows 用户可通过 npm 或 mise 安装。
典型工作流程
# review the current working tree
hunk diff
# watch for changes while you edit
hunk diff --watch
# open a specific commit or PR (GitHub integration)
hunk show HEAD~2
hunk gh pr 123
您也可以将 hunk pager 设置为 Git 的核心分页器,让任何 git diff 或 git show 自动启动此 UI。
扩展性 – 扩展功能是放置在 ~/.config/hunk/extensions/(或仓库本地的 .hunk/extensions/)中的纯 TypeScript 文件。它们可以转换变更集、添加指令、提供主题或嵌入自定义 React 组件。社区扩展功能可通过 GitHub 的 hunk-extension 主题发现。
适用对象 – 花费大量时间审查 Pull Request 的开发者、构建 AI 驱动代码审查机器人的团队,或任何偏好丰富终端 UI 胜过原始 diff 文本的用户。
授权 – MIT。
相关
- 项目
- 项目
- 项目
- Dispatch
- 项目