GitHub Daily
Review-First 终端差异查看器
2026年5月8日 · 星期五
当 AI Agent 生成的代码越来越复杂,传统的 diff 工具已经无法满足审查需求。今天要介绍的这个开源项目,正是为解决这一痛点而生——Hunk,一款专为 AI Agent 编码时代设计的审查优先终端差异查看器。
📦 项目速览
项目名称
modem-dev/hunk
GitHub Stars
2,519 ⭐ (+713 今日)
编程语言
TypeScript
开源协议
MIT License
技术栈
OpenTUI + Pierre diffs
开发组织
modem-dev
💡它能解决什么问题?
🤯 AI Agent 代码审查的困境
AI 生成的代码变更量巨大,逐行审查效率极低
传统 diff 工具缺乏上下文导航,在海量变更中迷失
无法快速定位 AI 生成的关键代码逻辑
审查结果难以与 AI Agent 共享形成闭环
缺乏针对代码变更的 AI 辅助注释和解释
✨ Hunk 的解决方案
审查优先设计:先看变更全貌,再深入细节
多文件流式导航:侧边栏快速跳转,无需来回切换
内联 AI 注释:直接在代码旁展示 AI 生成的解释
多种布局模式:分屏、堆叠、响应式自适应
实时监控模式:文件变更自动刷新,无需重复操作
Git 深度集成:支持 difftool、工作树、历史提交
🚀核心亮点
🔍
审查优先理念
Hunk 颠覆传统 diff 工具的交互逻辑,采用"先概览后细节"的审查优先设计。侧边栏展示文件树和变更概览,让你在海量代码变更中始终保持方向感。
💬
内联 AI 注释
支持在代码行旁直接显示 AI Agent 生成的注释和解释。Hunk 提供专门的 hunk-review Skill,让 AI Agent 能够以 CLI 方式与审查会话交互,实现人机协同闭环。
📐
多种布局模式
支持分屏(Split)、堆叠(Stack)和响应式自动布局三种模式。用户可根据屏幕尺寸和审查习惯自由切换,获得最佳的视觉体验。
🔄
实时监控模式
开启 Watch 模式后,Hunk 会自动监视工作区或指定文件的变化,实时刷新差异视图。特别适合与 AI Agent 配合使用——Agent 改代码,你实时审。
🎨
基于 OpenTUI
Hunk 基于 OpenTUI 框架构建,这是一个用 Zig 编写的原生终端 UI 核心。OpenTUI 提供 Flexbox 布局、Tree-sitter 语法高亮、Timeline 动画等现代特性。
⌨️
丰富的交互方式
支持键盘导航、鼠标操作、分页器模式和 Git difftool 集成。无论你是键盘流还是鼠标流,都能找到顺手的使用方式。
💡 OpenTUI 技术揭秘
OpenTUI 是 OpenCode(拥有 151k Stars 的 AI 编程代理)的底层 TUI 框架,采用 Zig 原生编写并暴露 C ABI,支持 TypeScript 绑定和 React/Solid.js 集成。这意味着 Hunk 继承了工业级 TUI 应用的技术基因。
🎯实战场景展示
🤖 场景一:与 Claude Code 协作审查
当你让 Claude Code 完成一个复杂的功能重构后,使用 Hunk 进行最终审查。
1
Claude Code 完成代码变更:claude-code implement payment feature
2
启动 Hunk 审查会话:hunk diff --watch
3
在侧边栏快速浏览变更文件列表
4
通过键盘/鼠标深入审查关键变更
5
加载 hunk-review Skill,让 Claude Code 理解你的反馈
📝 场景二:PR 代码评审工作流
作为 Tech Lead 审查团队成员的 Pull Request,结合 Git 使用 Hunk。
1
合并代码到 feature 分支:git checkout -b feature/payment && git merge pr/123
2
审查最新提交:hunk show
3
对比历史提交:hunk show HEAD~3
4
使用 Split 布局左右对比新旧实现
🔬 场景三:配置文件变更追踪
监控配置文件变更,配合 AI Agent 优化配置。
1
启动监控模式:hunk diff config.yaml config.dev.yaml --watch
2
让 Claude Code 根据变更解释差异:claude-code explain config diff
3
实时查看变更,AI 实时提供建议
📖上手指南
# 安装 Hunk
Bash
# 使用 npm 全局安装
npm i -g hunkdiff
# 验证安装
hunk --version
# Git 集成命令
Bash
# 审查当前仓库所有变更(含未跟踪文件)
hunk diff
# 实时监视工作区变更,Agent 改代码你实时审
hunk diff --watch
# 审查最新提交
hunk show
# 审查指定历史提交
hunk show HEAD~1
# 审查特定提交范围
hunk show HEAD~5..HEAD~1
# 文件对比命令
Bash
# 对比两个文件的差异
hunk diff before.ts after.ts
# 监视文件变更(实时刷新)
hunk diff before.ts after.ts --watch
# 从 stdin 读取补丁
git diff --no-color | hunk patch -
# 配置 Git 为 Hunk
Bash
# 将 Hunk 设为 Git 分页器
git config --global core.pager "hunk pager"
# 使用别名(保留原生 Git 分页器)
git config --global alias.hdiff "-c core.pager=\"hunk pager\" diff"
git config --global alias.hshow "-c core.pager=\"hunk pager\" show"
# 之后直接使用
git hdiffgit hshow
# 配置文件 (~/.config/hunk/config.toml)
TOML
# 主题配置:graphite, midnight, paper, ember
theme = "graphite"
# 布局模式:auto, split, stack
mode = "auto"
# 其他选项
exclude_untracked = false
line_numbers = true
wrap_lines = false
agent_notes = false
💡 与 AI Agent 协作
要让 AI Agent(如 Claude Code)能够与 Hunk 审查会话交互,只需加载项目内置的 skills/hunk-review/SKILL.md Skill。这个 Skill 定义了 Agent 如何检查审查焦点、导航文件和代码块、添加内联评论。
🏗️技术架构
Hunk 的技术架构建立在两个强大的开源项目之上:
🎨
OpenTUI 框架
用 Zig 编写的原生终端 UI 核心,暴露 C ABI。提供 Flexbox 布局(基于 Yoga)、Tree-sitter 语法高亮、Timeline 动画、键盘/焦点管理。支持 React/Solid.js 一等公民集成。
📊
Pierre diffs
高性能差异计算引擎,专门优化了大型代码库的 diff 性能。提供精确的变更检测和语义感知的代码块识别。
核心依赖:
React ^19.2.4 | @opentui/core ^0.1.88 | @opentui/react ^0.1.88 | @pierre/diffs ^1.1.0 | bun ^1.3.10 | commander ^14.0.3 | zod ^4.3.6
📝 今日总结
🎯 定位
专为 AI Agent 时代设计的审查优先终端 diff 工具
✨ 亮点
审查优先设计 + 内联 AI 注释 + 实时监控 + 多布局
🔧 技术
基于 OpenTUI (Zig) + Pierre diffs,性能优异
📈 趋势
今日 +713 Stars,GitHub Trending 热门项目
🌟 开始探索 Hunk
立即体验专为 AI Agent 时代打造的代码审查工具
夜雨聆风