为 git、diff、grep 和 blame 输出提供语法高亮的分页器,可直接替换 git 默认分页工具。
modem-dev/hunk
面向终端的交互式代码差异查看器,支持 Git、Jujutsu、Sapling 和 GitHub PR,并可显示 AI 代理批注。
- Star
- 9,782
- Fork
- 326
- 未关闭 Issue
- 183
- 最近提交
- 22小时前
这是什么?
Hunk 是一个用于审查代码变更的终端 diff 查看器,也可以查看 AI 编码代理产生的修改。它提供多文件审查流和侧边栏导航,支持分栏、统一视图以及根据终端宽度自动切换的布局。
它会自动识别 Git、Jujutsu 和 Sapling 工作区,hunk diff、hunk show、hunk log 等命令可直接使用对应的 revset 或提交历史。内置的 hunk gh 命令可以直接打开 GitHub 上的 PR、提交和比较结果;hunk open 则可浏览目录或查看带语法高亮的完整文件。开启 watch 模式后,工作区变化时审查内容会自动刷新。
Hunk 可以作为 Git、Jujutsu 或 Sapling 的分页器使用,代理的行内批注会显示在相关代码旁边。配置使用 TOML 文件保存,快捷键可自定义,并提供实验性的 TypeScript 扩展接口。
核心功能
- 01带侧边栏导航的多文件审查流
- 02支持分栏、统一及按宽度自动切换的布局
- 03在代码旁显示 AI 与代理批注
- 04watch 模式,文件和 Git 审查内容自动刷新
- 05支持 Git、Jujutsu、Sapling,并可通过 hunk gh 审查 GitHub PR
适用场景
- 在提交前审查 AI 编码代理生成的代码改动
- 在终端中查看未提交或未跟踪的文件变更
- 将 Hunk 设为 git diff、jj 或 Sapling 输出的分页器
- 比较两个原始文件或通过标准输入传入的补丁
快速上手
- 1
使用 npm 安装 Hunk(需要 Node.js 22+)
npm i -g hunkdiff - 2
检查 Hunk 是否已安装
hunk --version - 3
在 Git 仓库中查看当前改动
hunk diff
使用前须知
- 没有为 Windows arm64 或 Alpine 等基于 musl 的 Linux 发布预编译二进制文件。
- hunk gh 目前不支持 GitHub Enterprise。
- 扩展 API 仍处于实验阶段,可能在小版本之间发生破坏性变更。
收录于专题
标签
常见问题
- hunk 是什么?
- 面向终端的交互式代码差异查看器,支持 Git、Jujutsu、Sapling 和 GitHub PR,并可显示 AI 代理批注。 Hunk 是一个用于审查代码变更的终端 diff 查看器,也可以查看 AI 编码代理产生的修改。它提供多文件审查流和侧边栏导航,支持分栏、统一视图以及根据终端宽度自动切换的布局。
- hunk 可以免费使用吗?用的什么许可证?
- hunk 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
- hunk 还在维护吗?
- 活跃维护中。hunk 最近一次提交是在 2026年11月6日。
- hunk 适合用来做什么?
- 在提交前审查 AI 编码代理生成的代码改动 在终端中查看未提交或未跟踪的文件变更 将 Hunk 设为 git diff、jj 或 Sapling 输出的分页器 比较两个原始文件或通过标准输入传入的补丁
- hunk 怎么安装和运行?
- 使用 npm 安装 Hunk(需要 Node.js 22+): npm i -g hunkdiff 检查 Hunk 是否已安装: hunk --version 在 Git 仓库中查看当前改动: hunk diff
- 在哪里获取 hunk?
- 源代码和安装说明在 GitHub 上:https://github.com/modem-dev/hunk
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
在终端中以 GitHub 风格并排显示带语法高亮的 git diff。
用 Rust 编写的内容感知比对工具,基于 tree-sitter 做代码结构化比对,也能比对图片、字体、压缩包和 PDF。
一个命令行工具,在本地启动类 GitHub 风格的网页界面,用于查看和评审 Git 提交差异,评论可复制为 AI 提示词。
带 vim 键位的终端代码审查工具,可将评论推送到主流代码托管平台或复制到剪贴板。
一款基于语法结构而非逐行比较的命令行 diff 工具,重排代码时也能准确显示真实改动。