modem-dev/hunk
Review-first terminal diff viewer for agentic coders
hunk – AI対応注釈を備えたターミナルdiffビューア
概要 – hunk は、git diff、git show などのコマンドのプレーンテキスト出力を、インタラクティブなペインベースのUIに置き換えるコマンドラインツールです。変更セット全体をスクロールしたり、サイドバーからファイル間を移動したり、分割ビューや統合モードでdiffを表示したりできます。このUIはOpenTUIフレームワーク上に構築されており、基盤となるdiffレンダリングには @pierre/diffs ライブラリを使用しています。
AI/エージェントにとっての重要性 – このビューアには、「インラインAIおよびエージェント注釈」専用の列があります。外部のAIエージェントに skill(小さな実行可能スクリプト)を与えることで、実行中のhunkセッションと通信し、レビューUI内で直接メモ、提案、自動修正を追加できるようになります。これにより、hunkはAI支援によるコードレビューワークフローの自然なフロントエンドとなります。
主な機能
- ナビゲーションサイドバーを備えたマルチファイルレビューストリーム。
- 分割、統合、レスポンシブな自動レイアウト。
- ファイルやGit作業ツリーの変更に合わせてビューを再読み込みするライブウォッチモード。
- キーボード、マウス、ページャー、Git-difftoolの完全統合。
- インラインAI/エージェントメモおよび実験的なリッチテキストメモ形式。
- TypeScript拡張機能による拡張性(例:ロックファイルの折りたたみ、カスタムテーマ、追加のVCSバックエンド)。
- Git、Jujutsu、Saplingリポジトリで動作。任意のファイルやパッチのdiffも可能。
インストール – ワンコマンドのインストーラー (curl … | sh) で、ビルド済みのバイナリを ~/.hunk に配置します。パッケージは npm (npm i -g hunkdiff)、Homebrew、mise、または Nix からも入手可能です。Windowsユーザーは npm または mise を使用してインストールします。
一般的なワークフロー
# review the current working tree
hunk diff
# watch for changes while you edit
hunk diff --watch
# open a specific commit or PR (GitHub integration)
hunk show HEAD~2
hunk gh pr 123
hunk pager をGitのコアページャーとして設定すれば、git diff や git show を実行するたびに自動的にUIが起動します。
拡張性 – 拡張機能は、~/.config/hunk/extensions/(またはリポジトリローカルの .hunk/extensions/)に配置されたプレーンなTypeScriptファイルです。変更セットの変換、新しいコマンドの追加、テーマの提供、カスタムReactコンポーネントの埋め込みが可能です。コミュニティの拡張機能は、GitHubの hunk-extension トピックから検索できます。
対象ユーザー – プルリクエストのレビューに多くの時間を費やす開発者、AI駆動のコードレビューボットを構築するチーム、または生のdiffテキストよりもリッチなターミナルUIを好むすべての方。
ライセンス – MIT。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- Dispatch
- プロジェクト