mcpField
G
gitnexus-cli

gitnexus-cli

github.com/abhigyanpatwari開発48.1k879 回インストール今日更新
リポジトリ

gitnexus-cli について

GitNexus のリポジトリインデックスを作成・管理するコマンドラインリファレンスです。インデックスの作成、鮮度確認、削除、グラフに基づくドキュメント生成を扱います。

主な機能

  1. 01リポジトリインデックスの作成と更新
  2. 02ローカルファイル変更の監視
  3. 03インデックス状態の確認
  4. 04単一または全インデックスの削除
  5. 05グラフに基づくドキュメント生成

活用シーン

  1. 01GitNexus 用のリポジトリインデックス作成
  2. 02インデックス更新の要否確認
  3. 03破損または不要なインデックスの削除
  4. 04リポジトリドキュメントの生成

MCP 対応

GitNexus MCP ツールやリソースが使うインデックスを作成します。`list` のリポジトリ情報は MCP の `list_repos` からも取得できます。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/abhigyanpatwari/gitnexus --skill gitnexus-cli

インストール後、Claude Code で/gitnexus-cliを入力して読み込まれたか確認します。

詳細

GitNexus CLI コマンド

以下のコマンドは node .gitnexus/run.cjs <command> を使用します。これはプロジェクトローカルのランナー gitnexus analyze がインデックスの隣に配置するものです。呼び出し時に利用可能なランナーを自動選択するため(グローバルの gitnexus、なければ pnpm dlx、なければ bunx、なければ npx)、パッケージマネージャーの想定やグローバルインストールは不要です。npm、npx、pnpm がまったく存在しない bun のみのマシンでも同様です。

まだ解析されていない、または node .gitnexus/run.cjs が Cannot find module を報告する場合(gitignore されたランナーが存在しない — たとえば新しいクローンや git clean 後など)は、プロジェクトルートから npx gitnexus analyze で(再)生成するか、bun のみのマシンでは bunx gitnexus@latest analyze を実行してください。npm 11.x では、インストール中に npx がクラッシュする場合(node.target is null)、一度 npm i -g gitnexus でインストールし(その後 gitnexus analyze)、または bunx gitnexus@latest analyze、もしくは pnpm --allow-build=@ladybugdb/core --allow-build=gitnexus --allow-build=tree-sitter dlx gitnexus@latest analyze を使用してください。#1939 を参照してください。

コマンド

analyze — インデックスの構築または更新
node .gitnexus/run.cjs analyze

プロジェクトルートから実行します。すべてのソースファイルを解析し、ナレッジグラフを構築して .gitnexus/ に書き込み、CLAUDE.md / AGENTS.md のコンテキストファイルを生成します。

フラグ効果
--watchシリアライズされた更新により Git リポジトリのインデックスを最新に保つ
--debounce <ms>更新前の監視クワイエット期間(デフォルト: 300 ms)
--force最新であっても強制的に完全再インデックスを実行する
--embeddingsセマンティック検索用の埋め込み生成を有効にする(デフォルトではオフ)
--drop-embeddings再ビルド時に既存の埋め込みを削除します。デフォルトでは、--embeddings を付けない analyze はそれらを保持します。
--pdgexplain と pdg_query が使用するプログラム依存関係レイヤー(taint、CDG、REACHING_DEF)を構築します。
--spring-actuator <path>オプトインの Spring Boot Actuator マッピング、bean、conditions、configprops、env スナップショットをインポートします。完全再ビルドを強制し、--watch とは併用できません。
--asyncapi-spec <path>オプトインの AsyncAPI 3.x ドキュメント(ディレクトリまたは単一ファイル)を読み取り、そのオペレーションから Destination ノードを生成します。2.x は拒否され、マッピングされません。--watch とは併用できません。

実行すべきタイミング: プロジェクトで初めて使用するとき、大規模なコード変更の後、または gitnexus://repo/{name}/context がインデックスが古いと報告したときです。Claude Code では、PostToolUse フックが git commit と git merge の後に陳腐化を検出し、エージェントに analyze を実行するよう通知します。このフック自体は analyze を実行しません。エージェントを最大 120 秒ブロックし、タイムアウト時に KuzuDB が破損するリスクを避けるためです。

Spring ランタイムのエンリッチメントには、JSON バンドル、1 つのエンドポイント JSON ファイル、またはエンドポイントファイルを含むディレクトリを渡します。ルートのエビデンスは runtimeConfirmed === true の場合にのみ信頼できます。runtimeSource は来歴を記録し、handler-conflict を伴うこともあります。env/configprops の値は決して永続化されません。

インデックスの保存と保持

デフォルトの場所は <repo>/.gitnexus/ です。環境変数で上書きできます(README にも記載されています):

環境変数効果
GITNEXUS_STORAGE_PATH完全な外部インデックスディレクトリを 1 つ指定します。両方のストレージ変数が設定されている場合はこちらが優先されます。
GITNEXUS_STORAGE_ROOT絶対ルート。GitNexus はリポジトリごとに分離された <repo-basename>-<12-hex>/ スロットを作成します。
GITNEXUS_CONTENT_RETENTIONfull(デフォルト)はファイルテキストを保持します。symbol はスニペットを保持します。none はグラフのみを保持します。

list_repos、gitnexus://repo/{name}/context、および HTTP の GET /api/repos / GET /api/repo は storagePath、contentRetention、sourceAvailable を公開します。HTTP の /api/file と /api/grep は、保持設定が full でない限り 410 を返します。MCP の include_content は、保持設定が symbol の場合でもシンボルスパンを返すことがあります。

長期間稼働するローカル Git リポジトリには node .gitnexus/run.cjs analyze --watch を使用します。初回分析を実行し、スキャナーが許可したファイル変更をキューに入れ、失敗したバッチをそのまま再試行します(バックオフには上限があります)。ウォッチによる更新はグラフのみを更新します。AGENTS.md / CLAUDE.md の注入と標準スキルのインストールはスキップされるため、これらの生成ファイルを更新する必要がある場合はワンショットの analyze を実行してください。ウォッチは --force、埋め込み関連フラグ、--skills、--default-branch、--skip-agents-md、--skip-skills、--no-stats、--self-commit、--index-only、--skip-git などのワンショットまたはコンテキスト出力用フラグを拒否します。リモートを pull することはありません。スケジュールされたリモートの clone/pull は別のコマンドです: gitnexus auto-sync。素の gitnexus watch は予約済みであり、どちらのジョブも開始しません。実行中の MCP および serve プロセスは、公開された置き換えを定期的に確認し、再起動なしでそれを開き直します。MCP の確認は 5 秒に 1 回にスロットリングされるため、次の確認前のツール呼び出しでは一時的に以前のインデックスが使用されることがあります。

status — インデックスの鮮度を確認する
node .gitnexus/run.cjs status

現在のリポジトリに GitNexus インデックスがあるかどうか、最後に更新された日時、シンボル数とリレーションシップ数を表示します。再インデックスが必要かどうかの確認に使用します。

clean — インデックスを削除する
node .gitnexus/run.cjs clean

.gitnexus/ ディレクトリを削除し、グローバルレジストリからリポジトリの登録を解除します。インデックスが破損している場合の再インデックス前や、プロジェクトから GitNexus を削除した後に使用します。

フラグ効果
--force確認プロンプトをスキップします
--all現在のリポジトリだけでなく、すべてのインデックス済みリポジトリをクリーンアップします
wiki — グラフからドキュメントを生成する
node .gitnexus/run.cjs wiki

LLM を使用してナレッジグラフからリポジトリのドキュメントを生成します。HTTP プロバイダーには API キーが必要です(初回使用時に ~/.gitnexus/config.json に保存されます)。ローカル CLI プロバイダー(--provider cursor|claude|codex|opencode|grok)は既存の CLI ログインを使用します。

フラグ効果
--force完全な再生成を強制します。異なる言語で既存の wiki を再生成する場合にも必要です
--provider <name>LLM プロバイダー: minimax、openai、openrouter、azure、custom、cursor、claude、codex、opencode、または grok(デフォルト: minimax)。ローカル CLI(cursor、claude、codex、opencode、grok)は既存の CLI ログインを使用し、--api-key をスキップします。
--model <model>LLM モデル(デフォルト: MiniMax-M3)
--base-url <url>LLM API ベース URL
--api-key <key>LLM API キー
--concurrency <n>並列 LLM 呼び出し(デフォルト: 3)
--timeout <seconds>LLM リクエストのタイムアウト(秒)(デフォルト: 無効)
--retries <n>リクエストごとの最大 LLM 再試行回数(デフォルト: 3)
--lang <lang>生成されるドキュメントの出力言語(例: english、chinese、spanish、japanese)
--gistwiki を公開 GitHub Gist として公開します
list — インデックスされたすべてのリポジトリを表示します
node .gitnexus/run.cjs list

~/.gitnexus/registry.json に登録されているすべてのリポジトリを一覧表示します。MCP の list_repos ツールでも同じ情報を取得できます。

インデックス作成後

  1. gitnexus://repo/{name}/context を読み取り、インデックスがロードされたことを確認します
  2. タスクに応じて、他の GitNexus スキル(exploring、debugging、impact-analysis、refactoring)を使用します

トラブルシューティング

  • 「Not inside a git repository」: git リポジトリ内のディレクトリから実行してください
  • 再分析後にインデックスが古くなる: 次回の MCP ツール呼び出しで公開済みのインデックスが再度開かれるまで待ってください。通常、これには最大 5 秒かかります
  • 埋め込みが遅い: --embeddings を省略するか(デフォルトでは無効です)、OPENAI_API_KEY を設定して API ベースの埋め込みを高速化してください

コメント