probelabs/probe
AI-friendly semantic code search engine for large codebases. Combines ripgrep speed with tree-sitter AST parsing. Powers AI coding assistants with precise, context-aware code understanding.
Probe – AI対応コード検索および推論エンジン
概要 – Probeは、コマンドラインや内蔵のLLMエージェントから直接操作できる、ローカルかつAST対応のコード検索エンジンです。インデックス作成や埋め込みステップなしで、大規模なリポジトリ内の関数、クラス、構造体全体をAIモデルが理解できるようにします。
機能 (READMEより)
- Tree‑sitterによるソース解析:サポートされている各言語の抽象構文木(AST)を構築します。
- セマンティック検索:Elasticsearchスタイルのブールクエリ(AND, OR, NOT、フィールドフィルタ、ファイルタイプフィルタなど)を使用します。
- 行単位ではなく、完全なコードブロック(関数、クラス、構造体)を返します。
- ASTパターンマッチング (
probe query):fn $NAME($$$) -> Result<$RET>のような構造テンプレートを検索できます。 - インデックス作成不要 – ファイルシステムをオンザフライでスキャンするため、埋め込みモデルやベクトルDB、外部サービスは不要です。
- 決定論的ランキング:BM25/TF‑IDF(およびオプションのハイブリッドBERTリランキング)とトークン予算制御 (
--max‑tokens) を採用しています。 - 内蔵エージェント (
probe agent):任意のLLMプロバイダー(Anthropic, OpenAI, Google, Bedrock)と対話し、多段階の検索、抽出、コード編集を調整します。 - MCP統合 – Claude Codeなどのエディタ向けにMCPサーバーとして登録でき、エディタから直接Probeツールを呼び出せます。
- Node.js SDK および Vercel AI SDK バインディング:開発者が独自のアプリケーションに検索/エージェント機能を組み込めます。
- 完全ローカル – すべての検索処理はローカルマシンで行われ、LLMへの呼び出しのみが選択したプロバイダーへ送信されます。
主な機能 (リスト)
| 機能 | 詳細 |
|---|---|
| AST対応解析 | Tree‑sitterを使用し、20以上の言語(Rust, Python, TS/JS, Go, C/C++, Javaなど)に対応。 |
| セマンティック検索 | ブールクエリ言語、ファイルタイプ (ext:) およびディレクトリ (dir:) フィルタ、BM25/TF‑IDFランキング。 |
| インデックス不要 | 事前計算された埋め込みは不要。あらゆるリポジトリで即座に結果を取得。 |
| 決定論的出力 | クエリが同じなら結果も同じ。確率的なベクトル類似度の揺らぎはありません。 |
| トークン予算制御 | --max‑tokens でLLMに送信するコード量を制限。 |
| 内蔵LLMエージェント | 多段階の推論、コード編集、委任、bash実行を処理。 |
| MCPサーバーモード | AI対応エディタ(Claude Code, Codexなど)用の probe サーバーとして登録。 |
| CLI & SDK | `probe search |
| ハイブリッドランキング | 高品質な結果を得るためのオプションのBERTリランカー。 |
| クロスプラットフォーム | npmグローバル、curlスクリプト、PowerShellスクリプト、またはソースからのビルド (Rust/Cargo)。 |
一般的なユースケース
- 仕様駆動開発 – 「認証はどのように実装されていますか?」とエージェントに尋ね、実装されている関数全体を取得します。
- コードレビューとオンボーディング – 手動でgrepすることなく、変更に関連するすべてのシンボルを素早く表示します。
- 自動リファクタリング –
agentと--allow-editを組み合わせて、LLMに編集を提案・適用させます。 - ツール統合 – CLIツールをカスタムIDE拡張機能やCIパイプラインに組み込み、静的解析を行います。
- オフライン環境 – 検索に外部サービスを必要としないため、エアギャップ環境でも動作します。
クイックスタート (READMEより)
# npm経由でグローバルインストール (推奨)
npm install -g @probelabs/probe
# 内蔵エージェントを使用した質問 (任意のLLMプロバイダー)
npx -y @probelabs/probe agent "How is authentication implemented?"
# ターミナルからのセマンティック検索
npx -y @probelabs/probe search "authentication AND login" ./src
# ASTパターンクエリ (Rustの例)
npx -y @probelabs/probe query "fn $NAME($$$) -> Result<$RET>" --language rust
エディタ統合については、~/.claude/claude_desktop_config.json にProbe MCPサーバーを登録するJSONブロックを追加してください(詳細はREADMEを参照)。
サポートされている言語
Rust, JavaScript/JSX, TypeScript/TSX, Python, Go, C/C++, Java, Ruby, PHP, Swift, Solidity, Crystal, C#, Bash, QML, Markdown, HTML, YAML など(Tree‑sitter経由)。
インストール方法
| 方法 | コマンド |
|---|---|
| npm (グローバル) | npm install -g @probelabs/probe |
| curl (macOS/Linux) | `curl -fsSL https://raw.githubusercontent.com/probelabs/probe/main/install.sh |
| PowerShell (Windows) | `iwr -useb https://raw.githubusercontent.com/probelabs/probe/main/install.ps1 |
| ソースから | git clone https://github.com/probelabs/probe.git && cd probe && cargo build --release && cargo install --path . |
ライセンス
リポジトリには License セクションがありますが、READMEに正確なSPDX識別子は記載されていません。正確な条件についてはリポジトリ内の LICENSE ファイルを確認してください。
詳細情報
- ドキュメント: https://probelabs.com/probe
- CLIリファレンス:
docs/probe-cli/* - Agent SDK:
docs/probe-agent/sdk/* - コミュニティ: GitHub Issues および Discord (README内のリンク)。
上記の情報はすべてプロジェクトのREADMEから直接引用したものであり、外部の推測は含まれていません。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト