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
  • プロジェクト