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から直接引用したものであり、外部の推測は含まれていません。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト