hunk 是什么?

hunk(npm 包名 hunkdiff)是一个面向 AI agent 改动的「review 优先」终端 diff 查看器,基于 OpenTUI 和 Pierre diffs 构建:把 Git/jj 的 diff、show、两文件对比、stdin patch 都从纯文本变成可导航的 review UI——多文件 review 流 + 侧边栏、代码旁内联 AI/agent 标注、split/stack/响应式布局、watch 自动重载,支持键盘/鼠标/pager/Git difftool,并能让 agent 通过 skill 对你正在看的实时 Hunk 会话加批注。

⭐ 6,638 Stars 🍴 179 Forks TypeScript MIT 作者: modem-dev 无商业引流
来源:README 首段 + Quick start + Working with agents 查看 GitHub 仓库 →

为什么值得关注

AI agent 一次产出大量改动,但终端里 review 这些 changeset 还停留在 git diff 的纯文本——多文件难导航、看不到上下文、更没法和 agent 协同标注。hunk 专门解决「review agent 写的代码」:把 git diff/show、jj revset、两文件对比、stdin patch 统一打开成一个 review UI,多文件 review 流 + 侧边栏导航、split/stack/响应式布局、watch 模式随工作树变化自动重载。最有意思的是 agent 协同——`hunk skill path` 给出一个 skill 文件,让你的 agent 加载后对你正在看的实时 Hunk 会话加内联标注,把「人看 diff + agent 标注」做到同一界面。基于 OpenTUI(现代终端 UI 框架)+ Pierre diffs,TypeScript/bun 实现,跨平台 + npm/brew/nix 分发。4.3K★ 反映「在 agent 时代怎么高效 review 大量改动」的真实需求。

来源:README 首段 / Working with agents / Working with Git

核心功能

多文件 review 流 + 侧边栏导航

把一个 changeset 的多个文件组织成可导航的 review 流,侧边栏在文件间切换;split(左右)、stack(上下)、responsive 自动布局适配终端尺寸。比 git diff 的线性纯文本更适合 review 大改动。

来源:README 首段(multi-file review stream / 布局)
代码旁内联 AI/agent 标注

在代码旁边显示内联的 AI 和 agent 标注(annotation)——review 时不只看 diff,还能看到 agent 对某段改动的说明/意见,把人工 review 和 AI 注解放在同一视图。

来源:README 首段(inline AI and agent annotations)
镜像 Git/jj 命令的 review UI

hunk diff(review 当前改动含未跟踪文件)、hunk show [commit/HEAD~1](review 某次提交)——命令对齐 git 但打开 review UI 而非纯文本。自动检测 Jujutsu,jj workspace 里 diff/show 用 jj revset;可用 config vcs=git/jj 覆盖检测。

来源:README Working with Git / Working with Jujutsu
原始文件 / patch / stdin 对比

hunk diff before.ts after.ts 直接对比两文件(--watch 文件变就重载);git diff --no-color | hunk patch - 从 stdin review patch。不依赖 Git 仓库也能用,可作通用 diff 查看器。

来源:README Working with raw files and patches
Agent 协同 review(skill 接入实时会话)

在另一个终端开 hunk diff/show,用 hunk skill path 拿到 skill 文件让 agent 加载,再让 agent「用这个 skill 对实时 Hunk 会话做 review」——agent 能对你正在看的 diff 加内联标注。提示词如「Load the Hunk skill and use it for this review」。把 agent 接进人工 review 流程。

来源:README Working with agents
watch 模式 + 多种交互 + 跨平台分发

watch 模式自动重载文件和 Git-backed review;支持键盘、鼠标、pager 和 Git difftool 集成。npm(hunkdiff)/ Homebrew(modem-dev/tap)/ Nix(flake.nix)分发,Node 18+,macOS/Linux/Windows。

来源:README 首段 / Install

技术架构

hunk 是 TypeScript + bun 的终端应用,src/(183 文件)实现核心,基于两个关键依赖:OpenTUI(anomalyco 的现代终端 UI 框架,提供 split/stack/响应式布局、鼠标/键盘交互)和 @pierre/diffs(diff 渲染)。packages/ 是内部子包,examples/(79)+ benchmarks/ + test/ 支撑开发。运行模型:hunk 接受多种输入源——Git(diff/show,含未跟踪文件)、Jujutsu(自动检测 jj,用 revset)、原始文件对比、stdin patch——统一解析成 changeset,用 OpenTUI 渲染成多文件 review 流 + 侧边栏。agent 协同是亮点:hunk 暴露一个 skill(hunk skill path),agent 加载后能连到正在运行的 Hunk 会话、对 diff 加内联标注,实现「人 review + agent 标注」同屏。watch 模式监听文件/工作树变化自动重载。设计判断:把「review agent 改动」当作独立产品而非 git diff 的附属,用 OpenTUI 做出 IDE 级的终端 review 体验(多文件流、布局、鼠标)、再用 skill 把 agent 接进 review 回路,是对「agent 时代 code review」的有针对性设计。它聚焦做一件事(review diff)且做得细,但本质是查看/标注工具——不改代码、不做 review 决策,价值取决于和你的 agent/工作流的配合。

来源:tree(src/packages)+ README 首段 / package.json

项目知识图谱

知识图谱:项目核心节点(中心)+ 核心功能(内环六边形)+ 关键技术依赖(外环 chip) @opentui — split/stack/响应式布局 + 鼠标/键盘交互@opentui @pierre/diffs — diff 解析与渲染@pierre/diffs Git + Jujutsu(jj) — VCS 集成(自动检测)Git + Jujutsu hunk skill — agent 接入实时 review 会话hunk skill bun — 构建/运行bun 多文件 review 流 + 侧边栏导航多文件 review 流 +… 代码旁内联 AI/agent 标注代码旁内联 AI/agent… 镜像 Git/jj 命令的 review UI镜像 Git/jj 命令的 r… 原始文件 / patch / stdin 对比原始文件 / patch / s… Agent 协同 review(skill 接入实时会话)Agent 协同 review(… watch 模式 + 多种交互 + 跨平台分发watch 模式 + 多种交… hunk 项目本体 核心功能 关键依赖

中心为项目本体,内环 = 核心功能模块,外环 = 关键技术依赖;按 deep.json 中的 core_features 与 tech_stack.key_deps 自动生成

技术栈

语言TypeScript框架OpenTUI(终端 UI 框架)+ @pierre/diffs(diff 渲染)+ bun 运行时
@opentui@pierre/diffsGit + Jujutsu(jj)hunk skillbun
npm 全局包 hunkdiff / Homebrew(modem-dev/tap/hunk)/ Nix(flake.nix default 包);Node 18+,macOS/Linux/Windows;可作 Git difftool / pager;MIT 协议;v0.13.x,几天一版;oxlint/oxfmt + knip 工程链
来源:README Install / 首段 + package.json + tree

快速上手

# 安装 npm i -g hunkdiff # 或 Homebrew brew install modem-dev/tap/hunk # Nix 用户用 flake.nix 的 default 包 # 基本 hunk # 帮助 hunk --version # Git hunk diff # review 当前改动(含未跟踪文件) hunk diff --watch # 工作树变化自动重载 hunk show # review 最新提交 hunk show HEAD~1 # review 更早的提交 # Jujutsu 自动检测:jj workspace 里 hunk diff/show 用 jj revset # 原始文件 / patch hunk diff before.ts after.ts # 直接对比两文件(可加 --watch) git diff --no-color | hunk patch - # 从 stdin review patch # Agent 协同 # 1) 另开终端 hunk diff / hunk show # 2) 让 agent 加载 hunk skill path 返回的 skill 文件 # 3) 提示:Load the Hunk skill and use it for this review
来源:README Install / Quick start / Working with agents 原文

使用场景

1. review AI agent 写的大改动:用 hunk diff/show 把多文件 changeset 打开成可导航的 review UI,而非在 git diff 纯文本里翻;2. 人 + agent 同屏 review:开 hunk 会话,让 agent 加载 skill 对你正看的 diff 加内联标注,边看边获得 AI 意见;3. watch 式实时 review:开 --watch,agent 改文件时 diff 自动刷新,盯着改动演进;4. 通用 diff 查看:不依赖 Git,直接对比两文件或 review stdin patch;5. jj 用户:在 Jujutsu workspace 里用 revset review changeset;6. 作 Git difftool/pager:把 hunk 接成 git 的 difftool 替代纯文本 diff。

来源:README Working with Git/agents/raw files

优势与局限

优势

  • 聚焦且做得细:专做「review agent 改动」一件事,多文件 review 流 + 侧边栏 + split/stack/响应式布局,把 IDE 级的 diff review 体验搬进终端
  • agent 协同是真亮点:hunk skill 让 agent 连到你正在看的实时会话加内联标注,实现「人 review + agent 标注」同屏,契合 agent 时代的 review 需求
  • 输入源广:Git(diff/show 含未跟踪)、Jujutsu(自动检测 + revset)、两文件对比、stdin patch 都支持,可作通用 diff 查看器,命令对齐 git 上手快
  • 现代实现:基于 OpenTUI(现代终端 UI 框架,鼠标/键盘/响应式)+ Pierre diffs,TypeScript/bun,watch 自动重载、可作 Git difftool/pager
  • 分发与工程规范:npm/brew/nix 三渠道、跨三平台、oxlint/oxfmt + knip 工程链、几天一版迭代活跃,4.3K★

局限

  • 本质是查看/标注工具:它不改代码、不做 review 决策,只是把 diff 呈现得更好 + 接 agent 标注,价值取决于和你的 agent/工作流配合,单独用就是个更好看的 diff viewer
  • 稳定性:仍是 0.13.x、几天一版,命令/config/skill 接口可能演进;OpenTUI 本身也是较新框架,依赖其成熟度
  • agent 协同的实际效果依赖外部:skill + 实时会话标注的质量取决于你用的 agent 和它对 skill 的执行,README 未给标注质量的量化,需自测
  • 可测试性 / 终端兼容:终端 UI(鼠标/响应式布局)在不同终端模拟器、SSH、tmux 下的表现可能不一,需实测;OpenTUI 渲染对终端能力有要求
  • 可扩展性:核心是 diff 查看,自定义渲染/主题/标注源的扩展能力未在材料中明确;功能边界清晰但也意味着超出 review 场景帮助有限
  • 依赖 Node/bun 生态:Node 18+ 环境,npm 安装;对纯 Git/无 Node 环境用户有依赖门槛(Nix/brew 缓解)
来源:综合 README + tree + package.json

最新版本

v0.13.2(2026-05-21)。最近:v0.13.0 (2026-05-18) → v0.13.1 (2026-05-19) → v0.13.2 (2026-05-21),几天一版的活跃节奏。仓库 2026-03-17 创建,仍处 0.13.x 早期但迭代频繁;npm 包名 hunkdiff。

来源:GitHub Releases API(3 个 tag)

总结评价

如果你在终端 review AI agent 写的改动、受够 git diff 纯文本,hunk 是个对路的小工具:多文件 review 流 + 侧边栏 + 布局,命令对齐 git/jj,还能让 agent 通过 skill 对你正看的 diff 加内联标注。务实建议:1) 它就是个「更好的 diff review 视图 + agent 标注」,先 npm i -g hunkdiff 跑 hunk diff 体验多文件 review,是否提升取决于你 review 大改动的频率;2) 真正的差异化在 agent 协同——配好 hunk skill path 让你的 agent 对实时会话标注,看是否提升 review 效率;3) 0.13.x 早期、几天一版,接口可能变;4) 终端 UI 在不同终端/tmux/SSH 下表现可能不一,先在你的环境试鼠标/布局;5) 它不替你做 review 决策、不改代码,是查看+标注工具,按这个定位用;6) jj 用户有原生 revset 支持,Git 用户可把它接成 difftool/pager。

来源:综合分析

常见问题

hunk 是什么?

hunk(npm 包名 hunkdiff)是一个面向 AI agent 改动的「review 优先」终端 diff 查看器,基于 OpenTUI 和 Pierre diffs 构建:把 Git/jj 的 diff、show、两文件对比、stdin patch 都从纯文本变成可导航的 review UI——多文件 review 流 + 侧边栏、代码旁内联 AI/agent 标注、split/stack/响应式布局、watch…

hunk 有哪些核心功能?

hunk 的核心功能包括:多文件 review 流 + 侧边栏导航、代码旁内联 AI/agent 标注、镜像 Git/jj 命令的 review UI、原始文件 / patch / stdin 对比、Agent 协同 review(skill 接入实时会话)。

hunk 为什么最近很受关注?

AI agent 一次产出大量改动,但终端里 review 这些 changeset 还停留在 git diff 的纯文本——多文件难导航、看不到上下文、更没法和 agent 协同标注。

hunk 适合哪些使用场景?

1. review AI agent 写的大改动:用 hunk diff/show 把多文件 changeset 打开成可导航的 review UI,而非在 git diff 纯文本里翻;2. 人 + agent 同屏 review:开 hunk 会话,让 agent 加载 skill 对你正看的 diff 加内联标注,边看边获得 AI 意见;3.

透明度声明
本页内容由 AI(大语言模型)基于以下公开材料自动生成:GitHub README、代码目录结构、依赖文件、Release 信息。 分析时间: 2026-05-22 11:20. 质量评分: 100/100.

数据来源:README、GitHub API、依赖文件