命令列工具
modem-dev/hunk avatar
modem-dev/hunk

hunk:讓代理生成的變更集進入可交互审閱

適用於代理編碼人員的審查優先終端差異檢視器。需求:Node.js 18+ macOS、Linux 或 Windows Git 建議大多數工作流程 Nix 使用者可以使用 flake.nix 中匯出的預設套件。

9,289 個 Star294 個 ForkTypeScriptMIT

秒懂

它是什麼?
hunk 是面向代理编碼變更的终端差异查看器,基於 OpenTUI 與 Pierre diffs,提供多文件侧栏、內联注釋、拆分或堆叠布局和 watch 模式。
適合誰用?
先在含未跟踪文件的測試倉庫運行 `hunk diff`、`hunk diff --watch`、`hunk show HEAD~1` 和 `git diff --no-color | hunk patch -`,检查刷新、分頁和注釋位置;若使用 jj 或 Sapling,再明確設置 `vcs` 並單獨检查 revset 結果。
可以商用嗎?
可以。MIT 是寬鬆授權:你可以使用、修改並販售以它為基礎的軟體,只需保留著作權與授權聲明。
還在維護嗎?
有在維護。儲存庫最近一次提交在 1 天前。
用什麼語言寫的?
主要是 TypeScript(依據 GitHub 的語言統計)。

以上回答依據專案的 GitHub 資料(最近同步於 2026年9月15日)與我們的分析,不構成法律意見。

開源專案深度解析

這个工具是什么 · modem-dev-hunk-deep-analysis

hunk 是一个审閱優先的终端差异查看器,面向代理生成的變更集,構建在 OpenTUI 和 @pierre/diffs 之上。它的重點是提供交互式 UI 來审閱整个變更集,而非在终端中輸出纯文本差异。安装命令為 `npm i -g hunkdiff`,或者使用 Homebrew 的 `brew install hunk`。它需要 Node.js 18 或更高版本,支持 macOS、Linux 和 Windows 系统,對於大多數工作流建議使用 Git。

針對 modem-dev-hunk-deep-analysis,這項判讀仍要落到專案自身的操作記號。請把 README 中出現的命令、檔案名稱、設定鍵或版本標籤逐一記錄,並將成功輸出與錯誤輸出分開保存。若輸入改變後結果也改變,應把差異歸因於該輸入與環境,而不是把一次成功當成普遍保證。這個核對步驟直接服務 modem-dev-hunk-deep-analysis 的實際採用判斷。

主要功能 · modem-dev-hunk-deep-analysis

README 列出了一些關键功能,包括支持侧邊栏導航的多文件审閱流、代碼旁的內联 AI 和代理注釋、支持拆分、堆叠和響應式自动布局、用於自动重新加載文件和 Git 備份审閱的监视模式,以及键盘、鼠標、分頁器和 Git difftool 支持。该工具已针對以交互方式审閱完整變更集進行了優化。

安装與要求 · modem-dev-hunk-deep-analysis

安装通過 npm 全局安装命令 `npm i -g hunkdiff` 完成,或者通過 Homebrew 的 `brew install hunk`。README 中有一个注意事項,如果用戶之前通過 `modem-dev/tap` 安装了 hunk,應该先卸載。Nix 用戶可以使用 `flake.nix` 中導出的默認包。要求包括 Node.js 18+ 以及 macOS、Linux 或 Windows 操作系统,並建議大多數工作流使用 Git。

使用方式 · modem-dev-hunk-deep-analysis

快速入門命令是 `hunk` 和 `hunk --version`。與 Git 一起使用時,hunk 提供了 `hunk diff` 用於审閱当前倉庫更改(包括未跟踪文件),`hunk diff --watch` 用於自动重新加載,以及 `hunk show` 和 `hunk show HEAD~1` 用於审閱提交。它還支持直接文件比較 `hunk diff before.ts after.ts` 和通過 `git diff --no-color | hunk patch -` 從標准輸入审閱补丁。

與其他版本控制系统的集成 · modem-dev-hunk-deep-analysis

hunk 能够自动检測 Jujutsu 和 Sapling 的检出,並支持 `hunk diff [revset]` 和 `hunk show [revset]` 使用原生的 revsets。可以通過設置 `vcs = "git"`、`vcs = "jj"` 或 `vcs = "sl"` 來覆盖版本控制系统检測。對於 Git,可以將 `core.pager` 設置為 `hunk pager`,以便 `git diff` 和 `git show` 在 hunk 中打開。Jujutsu 和 Sapling 的分頁器集成也提供了配置說明。

面向代理的使用與扩展 · modem-dev-hunk-deep-analysis

面向代理的编碼器,hunk 提供了與代理配合使用的工作流:在一个终端中打開 `hunk diff` 或 `hunk show`,获取 `hunk skill path` 返回的技能文件,然後讓代理使用该技能。還有一个實驗性的 `--experimental` 標志用於丰富的 STML 笔记主體。扩展 API 也是實驗性的,可能在不兼容的版本之間發生變化;扩展可以添加主題、语言映射、版本控制系统後端、變換變更集、替換侧邊栏等。扩展從 `~/.config/hunk/extensions/` 或倉庫的 `.hunk/extensions/` 目錄加載,並支持 `--extension <path>`。

配置與自定義 · modem-dev-hunk-deep-analysis

配置存儲在 `~/.config/hunk/config.toml` 或 `.hunk/config.toml` 中。示例配置顯示了主題、模式(自动、拆分、堆叠)、版本控制系统、监视模式、排除未跟踪文件、行號、標籤宽度、換行、菜單栏、代理注釋和透明背景等选項。键盘快捷键是可重新映射的命名命令,通過 `[keybindings]` 表進行配置。hunk 還發布了一个名為 `HunkDiffView` 的 OpenTUI 組件,以及來自 `hunkdiff/opentui` 的底層原语,用於嵌入到自己的 OpenTUI 應用中。

針對 modem-dev-hunk-deep-analysis 的採用,不能只看功能清單。請把 README 中的專案名稱、安裝入口、設定檔和命令放在同一份試跑紀錄裡,逐次記下輸入、輸出、錯誤訊息與退出狀態。這些記錄要能回答本專案在你的作業系統、依賴版本和資料來源下是否真的可用。文件沒有承諾的能力,應標成待確認,不要延伸成穩定性或效能保證。

實際操作時,先建立獨立測試目錄與低風險資料,再依 modem-dev-hunk-deep-analysis README 的原始命令啟動。觀察終端輸出、產生的檔案、網路請求和權限提示,確認程式是否使用外部服務、憑證或硬體。若命令需要模型、雲端帳戶、容器、音訊、影像或 Git 資料,應把這項前置條件寫在結果旁邊,避免把缺少依賴造成的失敗誤判為程式缺陷。

升級前保留一組能代表工作流程的固定輸入,並比較 modem-dev-hunk-deep-analysis 在升級前後的輸出格式、錯誤處理和資源消耗。對於套件、部署腳本與第三方服務,分別記錄版本與來源;對於權限、授權和個人資料,則在正式使用前確認符合你的場景。這樣得到的判斷只適用於本專案與這組條件,不能替代對其他工具的推論。

編輯結論

先在含未跟踪文件的測試倉庫運行 `hunk diff`、`hunk diff --watch`、`hunk show HEAD~1` 和 `git diff --no-color | hunk patch -`,检查刷新、分頁和注釋位置;若使用 jj 或 Sapling,再明確設置 `vcs` 並單獨检查 revset 結果。

官方來源

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
社群筆記

社群筆記