Githits について
GitHitsは、公開コードやドキュメント、パッケージ情報を調べるための、コーディングエージェント向けオープンソースMCPコンテキスト層です。ローカルCLIサーバーからソース閲覧、パッケージの健全性確認、アップグレード比較、出典付き調査を利用できます。
主な機能
- 01コード・ドキュメント・シンボル検索
- 02ソースファイルとドキュメントの閲覧
- 03出典付きオープンソース事例の検索
- 04パッケージ情報・脆弱性・依存関係の確認
- 05バージョン差分とアップグレードの比較
- 06ターゲット解決と出典付き調査
活用シーン
- 01オープンソースの実装例を探す
- 02サードパーティ依存のスタックトレースを調査する
- 03コード変更前に依存の実際の動作を確かめる
- 04脆弱性や変更履歴を根拠にアップグレードを評価する
MCP 対応
CLIはコーディングツールから必要時に起動できるローカルstdio MCPサーバーを提供します。Cursorの直接設定ではホスト型リモートMCPを使い、コードやドキュメントの検索、パッケージ調査、差分、調査ツールを公開します。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://mcp.githits.comclaude mcp add --transport http githits-cli https://mcp.githits.com{"mcpServers":{"githits-cli":{"type":"http","url":"https://mcp.githits.com"}}}Cursor で開く{"servers":{"githits-cli":{"type":"http","url":"https://mcp.githits.com"}}}VS Code で開く{"mcpServers":{"githits-cli":{"type":"http","url":"https://mcp.githits.com"}}}{"mcpServers":{"githits-cli":{"serverUrl":"https://mcp.githits.com"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
15| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| query | string | はい | 標準的なコード例を検索するための自然言語クエリです。 |
| language | string | いいえ | 省略可能なプログラミング言語です。省略すると、GitHits が自動的に推定します。特定の言語を指定する必要があり、その正確な名称が不明な場合に限り、先に search_language を使用してください。 |
| license_mode | enum | いいえ | ライセンスのフィルターモード:strict(デフォルト)、yolo、または custom。strict | yolo | custom |
| format | enum | いいえ | 応答形式です。デフォルトの `text-v1` は Markdown を直接返します。利用可能な場合はソースリポジトリの出典情報が含まれ、末尾に `solution_id` の行が付きます。`format: "json"` を渡すと `{result, solution_id?}` が返されます。text-v1 | text | json |
詳細
GitHits CLI
エージェントとオープンソースエコシステムをつなぐインフラストラクチャ層です。
GitHits は、ソフトウェア開発ライフサイクル全体にわたる公開オープンソースのエビデンスを通じて、AI コーディングエージェントをつなぎます。対象となるのは、発見、計画、調査、実装、デバッグ、保守です。
CLI は、コーディングツールが必要に応じて起動するローカルのMCP サーバーを実行します。エージェントは、インデックス化されたパッケージやリポジトリのソースを検索し、正確なファイルやドキュメントページを読み、パッケージの健全性を調べ、依存関係のアップグレードを比較できます。また、モデルの知識やローカルリポジトリのコンテキストだけでは不十分な場合に、実際のオープンソースプロジェクトから出典付きの例を見つけられます。
エージェントハーネスやソフトウェアファクトリーの一部として GitHits を使いたい場合は、公開 API ドキュメントをご覧ください。
クイックスタート
npx githits@latest init
init はサインインを行い、対応するコーディングツールを検出し、選択したツール向けに GitHits を設定します。Cursor は直接設定でホスト型のリモート MCP を使用しますが、それ以外ではローカルの stdio MCP を使用します。
現在、自動設定に対応しているのは、Claude Code、Cursor、Windsurf、VS Code / Copilot、Cline、Claude Desktop、Codex CLI、Pi、Gemini CLI、Google Antigravity、OpenCode、Hermes Agent、Zed、Junie、Qwen Code、Kiro、Kilo Code、Factory Droid、Amazon Q CLI です。
設定後、コーディングエージェントを開き、通常どおり作業してください。多くのエージェントは、ソースに基づくコンテキストが必要になると GitHits を呼び出します。エージェントが推測を始めたら、次のように直接プロンプトを入力してください。
Use GitHits Code Navigation to inspect npm:express. Find how middleware
errors are handled, read the relevant source, and explain the fix before
editing code.
GitHits が追加する機能
GitHits は、エージェントがモデルの記憶やローカルリポジトリのコンテキストだけでなく、より広範なオープンソースエコシステムから根拠を得る必要がある場面を想定して設計されています。
| 機能 | MCP ツール | CLI コマンド |
|---|---|---|
| ツールの使い方 | quick_start | — |
| コード例 | get_example | githits example |
| インベントリの閲覧 | list | githits list |
| コードとドキュメントの検索 | search、search_status、grep | githits search、githits search-status、githits grep |
| ソースファイルやドキュメントのセクションを読む | read | githits read <target> [path] |
| パッケージの調査 | pkg_info、pkg_vulns、pkg_deps、pkg_changelog、pkg_upgrade_review | githits pkg ... |
エージェントが次のことを行う必要がある場合は、GitHits を使用してください。
- 漠然とした問題や見慣れないエラーに OSS プロジェクトがどう対処しているかを見つけ、計画を立て、調査する
- リポジトリ全体から、幅広い先行事例や、見つけにくい稀な例を探す
- 既知のパッケージやリポジトリのソース、テスト、シンボル、ドキュメントを調べる
- コードを変更する前に、依存関係が実際にどう動作するかを確認する
- サードパーティコードを指すスタックトレースをデバッグする
- パッケージの健全性、ライセンス、脆弱性、依存関係、変更履歴を確認する
- 事実に基づく根拠を使って依存関係のアップグレードを比較する
例
オープンソース全体から先行事例を探す:
npx githits@latest example "HTTP retries with exponential backoff in Python"
依存関係について、インデックス化されたコード、ドキュメント、シンボルを検索する:
npx githits@latest search "router middleware" --in npm:express
npx githits@latest search '"body parser" OR multer' --in npm:express --source docs
npx githits@latest search "debounce" --in npm:lodash --source symbol
クローンせずに依存関係のソースを読み、grep する:
npx githits@latest code files npm:express lib
npx githits@latest code read npm:express lib/router/index.js --lines 120-200
npx githits@latest grep 'router\.use' npm:express --path-prefix lib/
パッケージの健全性とアップグレードの根拠を調べる:
npx githits@latest pkg info npm:express
npx githits@latest pkg vulns npm:[email protected] --severity high
npx githits@latest pkg deps npm:[email protected] --depth 2
npx githits@latest pkg changelog npm:express --from 4.18.2 --to 5.2.1
npx githits@latest pkg upgrade-review npm:[email protected] --to 4.4.3
パッケージのドキュメントを閲覧して読む:
npx githits@latest docs list npm:express
npx githits@latest docs read <docs-read-target> --lines 20-80
ソースの差分
githits code diff と公開 MCP の code_diff ツールは、デフォルトで利用できます。
次のように、パッケージの正確なバージョンや公開リポジトリの参照先を比較できます。
githits code diff npm:express 5.2.0..5.2.1 --stat
githits code diff npm:express 5.2.0..5.2.1 --patch -- 'lib/**/*.js'
パッケージの差分は、明示的なパスのグロブで絞り込まない限り、リポジトリ全体が対象です。
生の差分だけでは、アップグレードの安全性を証明できません。制限、パッチの安全性、対応する指定方法については、ソースの差分を参照してください。ホスト型 MCP で利用するには、リリース済みの @githits/mcp パッケージを採用してデプロイする必要があります。
ターゲットの解決
resolve_target / githits resolve は、曖昧な名前、スペルミスのある名前、または複数の解釈が可能な公開パッケージ、リポジトリ、ドキュメントサイトの名前を、候補の順位付けを行って正規のターゲットに変換します。CLI、ローカル MCP、公開 MCP パッケージでデフォルトで利用できます。
正規のターゲットでは解決処理が省略されます。対象の特定が不確かな場合は、明示的な選択が必要です。継続時のルールと制限については、ターゲットの解決を参照してください。ホスト型 MCP とプラグインで利用するには、リリース済みのパッケージを採用してデプロイする必要があります。
調査
research / githits research は、公開パッケージまたはリポジトリについての質問に、出典を示した検証済みの回答を返します。CLI、ローカル MCP、公開 MCP パッケージでデフォルトで利用できます。
githits research "How does FastAPI dependency injection resolve nested dependencies?"
githits research npm:express "Where is router dispatch implemented?"
githits research --thread <thread-id> "How does that interact with route parameters?"
ターゲットを省略すると、GitHits が質問から特定します。フォローアップには、返されたスレッド ID を再利用してください。回答には通常、30 秒から数分かかります。 質問は GitHits に送信されるため、認証情報、個人データ、非公開コードは絶対に含めないでください。調査では、レート制限または日次上限のエラーが返される場合があります。メッセージには再試行できる時刻が示され、日次上限は 00:00 UTC にリセットされます。出典、スレッド、制限については、調査を参照してください。 ホスト型 MCP とプラグインで利用するには、リリース済みのパッケージを採用してデプロイする必要があります。
対応するソース
GitHits は、次のようなパッケージおよびリポジトリのターゲットに対応しています。
- パッケージ指定:
npm:react、npm:[email protected]、pypi:requests、crates:serde - GitHub リポジトリ:
https://github.com/expressjs/express、github:expressjs/express@main
パッケージの調査は、npm、PyPI、Hex、Crates、NuGet、Maven、Packagist、RubyGems、Go、Swift、vcpkg、Zig に対応しています。vcpkg と Zig ではアドバイザリーデータを利用できません。依存関係グラフへの対応状況はレジストリによって異なります。cargo: は crates:(公開 crates.io)の入力エイリアスです。正規のレジストリ識別子は引き続き crates です。
ライセンスフィルタリング
コード例の検索では、ライセンスでフィルタリングできます。
strictがデフォルトで、コピーレフトまたは未宣言のライセンスを持つリポジトリを除外しますcustomは、githits.comで設定したアカウントのブロックリストを使用しますyoloはライセンスフィルタリングを無効にします
npx githits@latest example "async file reading" --lang python --license strict
認証
通常のローカルセットアップは、次のコマンドで行います。
npx githits@latest init
手動でログインする場合:
npx githits@latest login
ローカル開発にはブラウザー OAuth をおすすめします。認証情報はデフォルトでシステムのキーチェーンに保存され、自動的に更新されます。便利なフラグは次のとおりです。
init --no-browserまたはlogin --no-browserを指定すると、ブラウザーを起動せずにログイン URL を表示しますinit --port <port>またはlogin --port <port>を指定すると、ループバックコールバックのポートを固定しますlogin --forceを指定すると、すでにログインしている場合でも再認証します
OAuth コールバックは、常に GitHits が実行されているマシンで待ち受けます。 GitHits を SSH 経由で実行し、ブラウザーをローカルで実行する場合は、ブラウザーを実行しているマシンから選択したポートを転送してください。
ssh -N -L 8765:127.0.0.1:8765 user@remote-host
このトンネルを開いた状態で、同じポートを使用してリモートマシン上で GitHits を実行します。
npx githits@latest init --no-browser --port 8765
GitHits が表示した URL をローカルブラウザーで開きます。user@remote-host は、通常使用する SSH 接続先に置き換えてください。セットアップ後は、同じフラグを githits login でも使用できます。
ブラウザー OAuth は対話的な操作が必要です。CI やその他の無人環境では、環境のシークレットマネージャーを通じて GITHITS_API_TOKEN を指定してください。
キーチェーンのプロンプトとファイルストレージ
OAuth 認証情報にはリフレッシュトークンが含まれるため、GitHits はデフォルトでシステムのキーチェーンを使用します。macOS では Keychain Access、Windows では Credential Manager、Linux では利用可能な Secret Service またはキーリングバックエンドを使用します。
macOS に「githits wants to access ... in your keychain」のようなプロンプトが表示された場合、インストール済みの githits CLI を信頼できるときは、常に許可を選択してください。GitHits はこのオペレーティングシステムのプロンプトをカスタマイズできません。これは macOS によって生成されます。
GitHits は、最近の起動時チェックでキーチェーンを読み取らずに済むよう、秘密情報を含まない小さなメタデータファイルも書き込みます。キーチェーンが読み取られるのは、ツール呼び出し、トークンの更新、githits auth status の実行、またはメタデータが古いか期限切れの場合のログイン確認など、GitHits がトークンを必要とするときだけです。
常に許可を選択した後もエージェントにキーチェーンのプロンプトが表示され続ける場合は、OAuth の保存先をファイルモードに切り替えてください。
# macOS/Linux: ~/.config/githits/config.toml, or $XDG_CONFIG_HOME/githits/config.toml
# Windows: %APPDATA%\githits\config.toml
[auth]
storage = "file"
設定ディレクトリは、config.toml を作成するか GitHits が認証メタデータを書き込むまで空の場合があります。古い macOS インストールでは ~/Library/Application Support/githits が使われていたことがあります。GitHits は移行のために引き続きこの場所を読み取りますが、新しい認証設定とファイルストレージには ~/.config/githits が使われます。
プロセスごとに有効にすることもできます。
GITHITS_AUTH_STORAGE=file githits login --force
ファイルモードでは、OAuth 認証情報が GitHits の設定ディレクトリ内に JSON ファイルとして保存されます。プラットフォームが対応している場合、ファイルには制限付きのアクセス許可が設定されますが、暗号化はされません。オペレーティングシステム上であなたのユーザーとしてファイルを読み取れるプロセスは、トークンも読み取れる可能性があります。
ファイルモードは、ローカルのユーザーアカウントによるアクセスを信頼できるマシンでのみ使用してください。CI や自動化では、ブラウザー OAuth の代わりに GITHITS_API_TOKEN を使用することをおすすめします。
次のコマンドで認証と実行時の状態を確認できます。
npx githits@latest auth status
npx githits@latest doctor
キーチェーンの動作、ファイルストレージモード、CI のセットアップ、トラブルシューティングについては、認証に関するドキュメントをご覧ください。
MCP の手動セットアップ
init による自動設定に対応していないコーディングツールを使用している場合は、GitHits をその MCP 設定に手動で追加してください。
{
"mcpServers": {
"githits": {
"command": "npx",
"args": ["-y", "githits@latest", "mcp", "start"]
}
}
}
ツールはこのコマンドを stdio 経由で実行します。バックグラウンドデーモンやグローバルインストールは必要ありません。
init が書き込んだ設定を削除するには、次のコマンドを実行します。
npx githits@latest uninstall
これにより、init が書き込んだ GitHits の MCP 設定とガイダンスが削除されますが、保存済みの認証情報は保持されます。認証情報を削除するには、別途 npx githits@latest logout を実行してください。互換性のための形式である npx githits@latest init uninstall でも、同じ --yes、--project、--keep-guidance オプションを使用できます。
プロジェクトのセットアップ
プロジェクトローカルの MCP 設定を行うには、次を実行します。
npx githits@latest init --project
プロジェクトのセットアップは、プロジェクトローカルの MCP に対応していることが確認済みのツールでのみ利用できます。プロジェクト設定にシークレットは含まれませんが、ほかのツール設定と同様にコミットされる可能性があるため、生成されたファイルをソース管理に追加する前に確認してください。
エージェントに適した非対話型のセットアップでは、段階的な検出と明示的なインストールを使用します。
npx githits@latest init --detect-agents --json
npx githits@latest init --install-agents cursor,codex-cli
プラグインと拡張機能のパッケージ化
このリポジトリと公開パッケージには、互換性のあるホストで使用されるプラグインおよび拡張機能のアセットが含まれています。Git ベースのインストールでは、正規の AGENTS.md を参照するコンテキストファイルのシンボリックリンク(CLAUDE.md と GEMINI.md)も維持されます。
.plugin/plugin.json.claude-plugin/plugin.json.claude-plugin/marketplace.json.codex-plugin/plugin.json.cursor-plugin/plugin.json.mcp.jsongemini-extension.jsonplugin.json(Google Antigravity)mcp_config.json(Google Antigravity)AGENTS.mdCLAUDE.mdGEMINI.mdskills/
ルートのスキルツリーは、サポートされているすべてのホストで共有されます。すべてのプラグインおよび拡張機能のインストールでは、Claude、Codex、Cursor、Gemini CLI、Google Antigravity、VS Code/GitHub Copilot OpenPlugin を含め、ホストされたリモート MCP を使用します。githits init による直接セットアップは別の経路で、Cursor はリモート専用のまま、それ以外のサポート対象ツールにはローカルの stdio 設定をインストールします。リポジトリのルートは、plugin.json、mcp_config.json、共有の skills/ ツリーを通じて、ネイティブの Antigravity プラグインとして機能します。生成されたマニフェストは bun run plugins:generate で更新し、bun run plugins:check で検証します。
ガイド付きの init では、選択したエージェントにのみ、正規の 4 つのスキル(githits-code、githits-mcp、githits-onboarding、githits-package)をインストールします。共有スキルに対応するエージェントでは、ユーザースコープに ~/.agents/skills/、プロジェクトスコープに .agents/skills/ を使用します。ネイティブ専用のエージェントでは、対応が確認済みのネイティブスキルディレクトリを使用します。共有ルートを読み取る互換性のあるエージェントは、これらのスキルを検出できます。後続のガイド付き実行では不足しているスキルを修復し、移行時には共有スキル一式がすべて検証された後に限り、以前の Cline または Junie の githits-mcp/SKILL.md のみを削除します。
Claude Code のマーケットプレイスからインストールする場合:
claude plugin marketplace add githits-com/githits-cli
claude plugin install githits@githits-plugins
Gemini CLI 拡張機能をインストールする場合:
gemini extensions install https://github.com/githits-com/githits-cli
コマンドリファレンス
githits init Connect GitHits to your coding agents
githits uninstall Remove GitHits MCP configuration and guidance
githits init uninstall Compatibility alias for `githits uninstall`
githits login Sign in to your GitHits account
githits logout Remove stored credentials
githits mcp Show setup instructions or start the local MCP server
githits mcp start Always start the local MCP server over stdio
githits example Find real-world implementations from open source
githits doctor Diagnose configuration and auth state
githits resolve Resolve a fuzzy name to canonical targets
githits settings View and update preferences, privacy, and terms
githits search Explore repository code, dependencies, docs, and symbols
githits search-status Check the status of a previous indexed search
githits code List, read, grep, or diff source
githits pkg Inspect package metadata, vulnerabilities, deps, and changelogs
githits docs Browse and read package documentation
githits auth Manage authentication
githits auth status Show authentication status
CLI の完全なリファレンス:https://docs.githits.com/cli/commands
環境変数
ほとんどのユーザーは環境変数を必要としません。以下は、CI、認証情報の保存、ローカル診断でよく使用される上書き設定です。
| 変数 | 用途 | デフォルト |
|---|---|---|
GITHITS_API_TOKEN | 認証用の API トークン | 未設定 |
GITHITS_AUTH_STORAGE | OAuth の保存モードを上書きします:keychain または file | keychain |
GITHITS_DISABLE_UPDATE_CHECK | npm の最新バージョンに関する更新通知を無効にします | 未設定 |
GITHITS_TELEMETRY | ローカルのタイミング診断情報を stderr に出力します | 未設定 |
完全なリファレンス:https://docs.githits.com/cli/environment-variables
ソースの構成
このリポジトリには、GitHits CLI と再利用可能な MCP パッケージが含まれています。
src/- CLI コマンド、ローカル認証、セットアップフロー、ローカル MCP の stdio 起動packages/mcp/- トランスポートに依存しない MCP サーバー API、ツール登録、指示、スモークテスト用ヘルパーを提供する公開パッケージ@githits/mcppackages/core-internal/- CLI と MCP パッケージで使用される共有ワークスペース実装docs/- 実装メモとコントリビューター向けガイドラインscripts/- パッケージ検証、スモークテスト、開発ユーティリティ
リリース済みの変更、保留中の作業、現在のパッケージバージョンへの影響については、CHANGELOG.md を参照してください。
開発
要件:
- Node.js
^20.18.1 || >=22.13.0 - Bun
- 依存関係アップグレードスコアラーのテストには Python 3.11 以降(Windows では
python、それ以外ではpython3)
主なコマンド:
bun install
bun run dev --help
bun test
bun run typecheck
bun run build
MCP ツール、CLI コマンド、共有フォーマッター、認証/エラーエンベロープ、または MCP/CLI の同等性に関する動作を変更した場合は、関連するスモークテストスイートも実行してください:
bun run smoke:mcp
bun run smoke:cli
CI では、認証情報や稼働中のバックエンド呼び出しを使わずに、ビルド済みの製品もチェックします。bun run build の後、同じチェックをローカルでも実行してください:
bun run smoke:cli:built
bun run smoke:mcp:built
ハーネスは引き続き Bun 上で動作し、製品のサブプロセスは PATH にある node を使って dist/cli.js を実行します。CI では .node-version からそのランタイムを用意します。
シークレットスキャンには、バージョン 8.30.1 の gitleaks OSS CLI を使用します。pre-commit フックは、ステージされた変更に対して bun run check:gitleaks を実行します。ローカルで全履歴をスキャンするには、次を実行してください:
gitleaks git --redact --no-banner --no-color .
gitleaks のリリースから 8.30.1 のバイナリをインストールし、PATH に追加してください。CI の実行スケジュール、抑制の順序、npm パッケージの境界については、シークレットスキャンを参照してください。
MCP の指示、ツールの説明、またはエージェント向けの動作を変更する場合は、eval/agentic/README.md に記載されている、対象を絞ったエージェント評価を使用してください:
bun run agent:e2e
ライセンス
Apache-2.0
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。