
difitは、ローカルのgit上にある差分をGitHub風のビューアで閲覧・レビューできるCLIツールです。見やすい表示に加え、コメントはAIへのプロンプトとしてコピーできます。AI時代のローカルコードレビューツール!
まず試す
npx difit # 最新コミットのdiffをWebUIで表示
インストールして使う
npm install -g difit
difit # 最新コミットのdiffをWebUIで表示
AIエージェントから使えるようにする
npx skills add yoshiko-pg/difit # エージェントにスキル群を追加
インストールされる主な skill:
difit: コード変更後に difit を使ってユーザーへレビューを依頼するdifit-review: 特定の diff や PR をレビューし、指摘や解説をコメントとして事前投入した difit を起動するdifit <target> # 単一コミットのdiffを表示
difit <target> [compare-with] # 2つのコミット/ブランチを比較
difit # HEAD(最新)のコミット
difit 6f4a9b7 # 特定のコミット
difit feature # featureブランチの最新コミット
difit @ main # mainブランチと比較(@はHEADのエイリアス)
difit feature main # ブランチ間を比較
difit . origin/main # 作業ディレクトリとリモートmainを比較
difitは一般的なdiffシナリオ用の特別なキーワードをサポートしています:
difit . # すべての未コミット差分(ステージングエリア + 未ステージ)
difit staged # ステージングエリアの差分
difit working # 未ステージ差分のみ
difit --pr https://github.com/owner/repo/pull/123
--pr モードでは、内部で gh pr diff --patch を実行してパッチを取得します。
加えて、PR 上の未解決 inline review thread も起動時コメントとして取り込み、difit 上でそのまま表示します。
認証は GitHub CLI が処理します:
gh auth loginGH_TOKEN または GITHUB_TOKEN を設定Enterprise Server の PR を表示する場合は、GitHub CLI を Enterprise ホスト向けに認証してください:
gh auth login --hostname YOUR-ENTERPRISE-SERVERGH_HOST=YOUR-ENTERPRISE-SERVER と GH_TOKEN / GITHUB_TOKEN を設定difit の起動時に初期コメントを注入できます。
difit --comment '{"type":"thread","filePath":"src/example.ts","position":{"side":"new","line":10},"body":"この変更の背景は…"}'
--comment は複数回指定でき、単一の JSON object と JSON array の両方を受け付けます。対応する type は次の 2 種類です。
thread: 指定位置に新しい thread を追加reply: 同じ位置にある最新 thread に reply を追加同じコメントが既に存在する場合は import をスキップします。
パイプを使用して標準入力経由で統一diff形式を渡すことで、任意のツールからのdiffをdifitで表示できます。
# 他のツールからのdiffを表示
diff -u file1.txt file2.txt | difit
# 保存されたパッチをレビュー
cat changes.patch | difit
# マージベースとの比較
git diff --merge-base main feature | difit
# 既存ファイル全体を新規追加として確認
git diff -- /dev/null path/to/file | difit
# 明示的に標準入力モードを使う
git diff --cached | difit -
標準入力モードは、意図を優先して次のルールで選択されます。
- を指定した場合は常に標準入力モード<target> / [compare-with])または --pr がある場合は Git/PR モードとして扱い、標準入力を自動読み取りしない| フラグ | デフォルト | 説明 |
|---|---|---|
<target> |
HEAD | コミットハッシュ、タグ、HEAD~n、ブランチ、または特別な引数 |
[compare-with] |
- | 比較対象の2番目のコミット(2つの間のdiffを表示) |
--merge-base |
false | diff 計算前に git merge-base で基準側を解決する(Git revision モード専用) |
--pr <url> |
- | レビューするGitHub PRのURL(例:https://github.com/owner/repo/pull/123) |
--comment <json> |
- | 起動時に初期コメントを注入(複数指定可。JSON object または array を受け付ける) |
--port |
4966 | 優先ポート。使用中の場合は+1にフォールバック |
--host |
127.0.0.1 | サーバーをバインドするホストアドレス(外部からアクセスしたい場合は0.0.0.0を指定) |
--no-open |
false | ブラウザを自動的に開かない |
--clean |
false | 起動時に既存コメントと閲覧済みファイルをすべてクリア |
--include-untracked |
false | diffにuntrackedファイルを自動的に含める(.またはworkingのみ有効) |
--keep-alive |
false | ブラウザ切断後もサーバーを終了せず起動したままにする(Ctrl+Cで手動停止) |
--background |
false | サーバーをバックグラウンドで起動したままにし、接続情報をJSONで出力 |
--context <lines> |
Gitの既定値 (3) | 変更ごとの前後コンテキスト行数を制限(0 は変更行のみ表示。--pr と stdin では使用不可) |
difitにはAIコーディングエージェントへフィードバックしやすいレビューコメントシステムが含まれています:
src/components/Button.tsx:L42 # この行が自動的に追加されます
ここの変数名をもっとわかりやすくして
範囲指定した場合
src/components/Button.tsx:L42-L48 # この行が自動的に追加されます
この部分は不要です
AIエージェントから difit を使うための skill 群を以下でインストールできます。
npx skills add yoshiko-pg/difit
インストールされる主な skill:
difit: コード変更後に difit を使ってユーザーへレビューを依頼するdifit-review: 特定の diff や PR をレビューし、指摘や解説をコメントとして事前投入した difit を起動するコード編集後や自動レビュー時に、目的に応じた skill で difit サーバーを起動できます。
.js, .jsx, .ts, .tsx, .svelte.sh, .bash, .zsh, .fishdifitは特定のファイルを自動的に識別し、ビューをすっきりさせるために折りたたみます:
package-lock.json, go.sum, Cargo.lock, Gemfile.lock など)*.min.js, *.min.css)*.map)*.msw.ts, *.zod.ts, *.api.ts)*.g.dart, *.freezed.dart)*.g.cs, *.designer.cs)*.pb.go, *.pb.cc, *.pb.h)db/schema.rb)_ide_helper.php)gradle.lockfile)uv.lock, pdm.lock)*.generated.cs, *.generated.ts, *.generated.js)@generated マーカーを含むファイルDO NOT EDIT ヘッダーを含むファイル# 依存関係のインストール
pnpm install
# 開発サーバーの起動(ホットリロード付き)
# これはViteの開発サーバーとCLIの両方をNODE_ENV=developmentで実行します
pnpm run dev
# プロダクションビルドとサーバーの起動
pnpm run start <target>
# プロダクション用ビルド
pnpm run build
# テストの実行
pnpm test
# 型チェックとlintとフォーマット
pnpm run check
pnpm run format
pnpm run dev:Vite開発サーバー(ホットリロード付き)とCLIサーバーを同時に起動pnpm run start <target>:すべてをビルドしてプロダクションサーバーを起動(最終ビルドのテスト用)gh pr diff --patch)によるPRパッチ取得--pr モード利用時は GitHub CLI(gh)MIT
$ claude mcp add difit \
-- python -m otcore.mcp_server <graph>