Repolode
modem-dev

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. 1

    使用 npm 安装 Hunk(需要 Node.js 22+)

    npm i -g hunkdiff
  2. 2

    检查 Hunk 是否已安装

    hunk --version
  3. 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 数据每日更新。

相关项目