这个项目能做什么

Hunk 是一款基于终端的差异查看器,专为审查编码代理生成的变更集而设计。它不是打印普通补丁,而是打开一个基于 OpenTUI 和 Pierre diffs 库构建的交互式审查界面。该项目采用 MIT 许可证,并作为独立二进制文件分发,支持 macOS、Linux 和 Windows,同时可通过 npm、Homebrew、mise 和 Nix 进行安装。 核心工作流程与常见的 Git 命令相似,但结果以审查界面呈现。`hunk diff` 显示当前仓库的更改(包括未跟踪文件),`hunk show` 审查特定提交,`hunk log` 打开历史浏览器,在重定向时回退到静态输出。监视模式会在工作树变化时自动重新加载基于文件和 Git 的审查。原始文件和补丁也可以直接比较,补丁可通过标准输入管道输入。 关键界面功能包括带侧边栏导航的多文件审查流、分屏、统一和响应式自动布局、语法高亮、鼠标支持、运行时视图切换以及兼容分页器的模式。一个显著特性是内联 AI 和代理注释,放置在代码旁,并支持文档化的代理工作流,其中代理加载技能文件并与实时 Hunk 会话交互。 Hunk 除了 Git 外,还能自动检测 Jujutsu 和 Sapling 检出,并可配置为这三种版本控制系统的分页器。偏好设置持久化在用户或仓库级别的 TOML 配置文件中,涵盖主题、布局模式、VCS 选择、制表符宽度、间距、动画等。每个键盘快捷键都是一个命名命令,可通过键绑定表重新映射。 实验性扩展 API 允许加载 TypeScript 扩展,这些扩展可添加 CLI 工作流、贡献主题和语言映射、添加 VCS 后端、在审查前转换变更集、用自定义 React 组件替换侧边栏,并响应生命周期事件。扩展可从 Git 仓库安装,`hunk-extension` GitHub 主题标记社区贡献。相同的差异渲染器也作为 OpenTUI 组件发布,可嵌入其他应用程序。 README 中包含与 lumen、difftastic、delta、diff-so-fancy 和 GNU diff 的功能对比表,指出 Hunk 专注于交互式完整变更集审查,而非结构性差异比较。