vex
概要
作者による説明(英語の原文)
Local code search for agents: symbols, usages, call graph, AST patterns, grep and semantic search
PopNx MCPの3つの柱
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
- 利用者の声iレビューはまだありませんレビューは今後のステップで、アカウント機能と一緒に始まります
- 私たちの基本チェックi1項目中1項目に合格公開情報からチェック。コードはまだスキャンしていません
- 利用状況iとても新しい★ –
できること
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
- 接続方法: パソコンで動く
- トランスポート: stdio
- カテゴリ: 検索・AIの記憶
インストール
使っているAIアプリを選んで、設定をコピーしてください。
インストールの前に
- 基本チェック:1項目中1項目に合格
- あなたのパソコンで、あなたのユーザーと同じ権限(ファイル、ネットワーク、アプリ)で動きます。
- レジストリには、入力が必要なキーは載っていません。
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
リンク先は作者自身のファイルです。私たちが置いたり再パッケージしたりしたものではありません。ファイルを開くと、Claude Desktopがインストールします。
ターミナルでこれを実行します
ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
できること
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
基本チェックi
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月8日にチェック
- ✓ 合格
作者とリポジトリが一致
レジストリ名は、リポジトリを所有するGitHubアカウント tenatarika で確認済みです
- … 未チェック
今もメンテナンスされている
このリポジトリはまだGitHubから読み取っていません
- … 未チェック
ライセンスがある
このリポジトリはまだGitHubから読み取っていません
- – 対象外
エンドポイントが応答する
これはパソコンで動くため、インターネット上のエンドポイントはありません
- – 対象外
OAuthでサインイン
パソコンで動き、代わりにローカルの設定を使います
- … 未チェック
ツールの説明に隠れた指示がない
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
検索・AIの記憶のほかのサーバーとの比較i
- このカテゴリのほかの5718件のうち0%よりスターが多い
- このカテゴリのほかの5718件のうち66%より最近レジストリに公開
- 基本チェックの結果が、このカテゴリのほかの5718件のうち100%と同じかそれ以上
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
よくある質問
vexは安全ですか?
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
どんなキーやコードが必要ですか?
レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。
パソコンで動きますか、それともクラウドですか?
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
今もメンテナンスされていますか?
GitHubリポジトリの最終更新は–、最新バージョン(1.28.0)がレジストリに届いたのは21 日前です。
どのアプリで使えますか?
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにMCPBも必要です。
代わりに使えるものは?
同じカテゴリには:Context7, Codebase Memory, Exa
代わりの候補
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:↓ 週あたりのダウンロードi★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
Codebase Memory
Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.
Exa
Connect AI agents to Exa for web search, content fetching, and multi-step research.
作者のREADME
READMEを開く
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
Vex
Fast hybrid structural + semantic code search. Vector + index.
Why Vex? · How It Compares · Installation · Quick Start · Commands · Configuration · How Search Works · Benchmarks · Supported Languages · Integration · Testing · Architecture
$ vex check "TelemetryProcessor" # 4ms — does it exist? where? (exact name)
$ vex show "TelemetryProcessor" # extract the class body (not the whole file) $ vex usages "Config" --strict # who references this symbol? (binder-resolved, no noise) $ vex callers "process_event" # who calls this function? (~4ms; covers module-scope + Python/Java decorators) $ vex implementations "BaseService" # who extends/implements this? $ vex search "timeout retry" # fuzzy / multi-word — BM25 finds rare body terms $ vex search "handle alert" --semantic # find by meaning, not just name $ vex pattern 'fn $NAME($$$) -> Result' --lang rust # AST pattern matching (like ast-grep) $ vex similar "PaymentService" # semantically close symbols $ vex duplicates --threshold 0.95 # near-duplicate pairs $ vex bundle --mode symbol --symbol Foo # body + callers + callees + similar in 1 call
Pick the right tool: vex check for "does Foo exist?", vex search for "find me something about retries". search is a *ranked blend* — it surfaces neighbors (callers / imports) when no symbol literally matches, which is great for exploration and wrong for exact-name lookup. v1.15.0 prints a stderr hint when an identifier-shaped search returns 0 FST hits.
Why Vex?
- ~4-5ms search after indexing — FST-based O(query_len) lookup, not O(symbols); constant regardless of project size. Requires a pre-built index. Indexing is a one-time cost (hundreds of ms on typical projects) and builds *more* than a plain text index — FST + BM25 + call graph + type-hierarchy + trigram skip-index — so it trades a slower build for far cheaper, richer queries (see Benchmarks)
- 3-channel hybrid search — structural FST (names) + BM25 (rare body terms) + semantic HNSW (meaning), fused via Reciprocal Rank Fusion. Find symbols when you don't know the exact name AND when generic semantic-only search would be too noisy
- Persistent call graph —
vex callers/vex calleesread from a persistent index built at index time (~4ms), not a live tree-sitter scan (seconds):callersis a name-keyed FST,calleesis a dense CSR index (v9+). Module-scope expressions are reported via syntheticcallers (Phase 14.1); Python + Java function/method decorators (Phase 14.2), Kotlin annotations + C# method/constructor attributes (Phase 14.2.2), and TypeScript method decorators + Rust outer attributes (Phase 14.2.1) emit forward edges to their targets. Class-level decorators remain invisible — seedocs/LIMITATIONS.md - Pluggable embedder —
Embeddertrait + registry; swap MiniLM-L6-v2 for future code-specific models (BGE, CodeBERT) without touching call sites - Token-efficient — compact output saves typically 6x fewer tokens than grep on average lookups (up to 217x on minified JS/CSS);
vex showextracts just the symbol body instead of the whole file - 20 languages indexed via tree-sitter, with three coverage tiers: type-aware `--strict usages` on 8 binder languages (Rust / TypeScript / Python / C# / C++ / Go / Java / Kotlin); indexed pattern prefilter on 16 T1+T2a languages; baseline structural + semantic search on all 20 (see Supported Languages for the matrix)
- Single binary, zero config — no LSP servers, no databases, no Docker. Just
vex index && vex check Foo
What Vex isn't
vex is a static-analysis indexing tool, not a language server. Set expectations honestly:
- Not an LSP replacement. No go-to-definition into third-party packages, no rename refactoring, no type-checking, no hover docs. For those, keep your LSP.
- `vex search` is a ranked blend, not an exact-name lookup. Structural FST + BM25 + semantic fused via RRF return *relevance-ordered* results — when no symbol literally named
Foolives in the index (imported from a dependency, deleted, typo), BM25 may surface callers / imports as if they were the definition. For exact-symbol questions ("does it exist?", "show me the body", "who calls it?") usevex check Foo/vex show Foo/vex usages Foo --strict— they bypass the ranker. v1.15.0 prints a one-line stderr hint when an identifier-shaped query gets zero FST hits. - No dynamic-dispatch visibility. Decorator routing (
@router.get("/path")), string-resolved factories (uvicorn.run("main:app")), reflection (getattr(obj, name)()), and macro-expanded references are all invisible to every vex command.vex grep '\bname\b'is the textual escape hatch. - `vex callers` has uneven coverage outside function scope. Module-level expressions like
app = create_app()are reported via syntheticcallers (Phase 14.1). Python + Java function/method decorators (Phase 14.2), Kotlin annotations + C# method/constructor attributes (Phase 14.2.2), and TypeScript method decorators + Rust outer attributes on fns/methods (Phase 14.2.1) emit forward edges —vex callers GetMappinglists every Spring handler,vex callers HttpGetevery ASP.NET action,vex callers testevery#[tokio::test]. Class-level decorators (14.6) remain on the roadmap. - `vex usages` quality varies by language. 8 binder-supported languages get refactor-grade
--strictrefs; the other 11 use an identifier scanner with a higher false-positive rate.
See docs/LIMITATIONS.md for the full coverage matrix, concrete repros, and recommended workarounds per query type. Read it before evaluating vex on a Python/FastAPI/Django codebase — the framework patterns are the most-flagged gaps.
How It Compares
| vex | ripgrep | ast-index | ast-grep | Serena | |
|---|---|---|---|---|---|
| What it searches | Symbol definitions | All text | Symbol definitions | AST patterns | Symbols (via LSP) |
| Requires indexing? | Yes (~0.3-1s) | No | Yes (faster build) | No | No |
| Search speed | ~4-5ms (pre-built FST, constant) | scales w/ corpus (~8ms small → 100ms+ large) | ~8-12ms (SQLite) | ~30ms (scan) | LSP-dependent |
| Semantic search | HNSW + embeddings | -- | -- | -- | -- |
| Pattern matching | fn $NAME($$$) | regex only | -- | fn $NAME($$$) | regex only |
| Index size | ~1.5-2x smaller than ast-index | no index | SQLite + FTS5 | no index | no index |
| Token efficiency | 6-217x fewer than rg | baseline | ~3x fewer than rg | N/A | N/A |
| Symbol body extraction | vex show | -- | -- | -- | -- |
| Languages | 19 | any | 10+ | 10+ | 40+ (LSP) |
| Refactoring | -- | -- | -- | -- | rename, move, inline |
| Runtime deps | none | none | none | none | Python + LSP |
Note: vex search speed assumes a pre-built index. Ripgrep and ast-grep require no upfront indexing and work immediately on any directory. The tradeoff is amortized: if you search the same codebase many times (typical in agent workflows), the one-time indexing cost pays for itself.
Best for: fast symbol search in AI agent workflows where token efficiency matters. Not a replacement for LSP-based tools (no refactoring, no go-to-definition in dependencies).
Installation
# Install script (macOS arm64, Linux x86_64): vex + vex-mcp into ~/.local/bin
curl -fsSL https://raw.githubusercontent.com/tenatarika/vex/main/install.sh | sh
Windows (PowerShell): vex + vex-mcp into %LOCALAPPDATA%\Programs\vex, added to PATH
irm https://raw.githubusercontent.com/tenatarika/vex/main/install.ps1 | iex
Homebrew (macOS/Linux)
brew tap tenatarika/tap brew install vex
cargo-binstall: prebuilt release binaries, no compiler needed
cargo binstall vex-search # → ~/.cargo/bin/vex cargo binstall vex-search-mcp # → ~/.cargo/bin/vex-mcp (MCP server)
crates.io (compiles from source; the crate is vex-search, the binary is vex)
cargo install vex-search --locked # → ~/.cargo/bin/vex cargo install vex-search-mcp --locked # → ~/.cargo/bin/vex-mcp (MCP server)
From source (any platform with a Rust toolchain)
git clone https://github.com/tenatarika/vex.git cd vex cargo build --release cp target/release/vex ~/.local/bin/
The install script takes VEX_VERSION=1.28.0 to pin a release, VEX_INSTALL_DIR to install elsewhere and VEX_NO_MCP=1 to skip vex-mcp. On other platforms, musl or glibc older than 2.34 it stops and points to a source build. cargo binstall uses the same release archives where they exist and builds from source elsewhere; on Windows it installs vex.exe without the archive's DirectML.dll, so GPU indexing falls back to CPU.
What cargo install vex-search (and any source build) needs:
- Network at build time: the build downloads a prebuilt ONNX Runtime. Prebuilts exist only for
aarch64-apple-darwin,x86_64/aarch64-unknown-linux-gnuandx86_64/aarch64-pc-windows-msvc; on any other target (Intel macOS, musl, …) pointORT_LIB_LOCATIONat a local ONNX Runtime build. - A C/C++ toolchain (Xcode Command Line Tools,
build-essential, or MSVC Build Tools) for the tree-sitter grammars. GCC must be 12 or newer: GCC 11 (the default on Ubuntu 22.04) can't compile the bundled numkong vector kernels. Installgcc-12 g++-12and build withCC=gcc-12 CXX=g++-12 cargo install vex-search --locked. - Linux: `libssl-dev` and `pkg-config` (Fedora:
openssl-devel). The HTTP stack links OpenSSL throughnative-tls. - The first
vex index --semanticdownloads the ~86 MB embedding model; structural search needs no download. vex-search-mcponly installs the MCP server. It runs thevexCLI, so installvex-searchtoo and keepvexonPATH, or setVEX_BINto its full path.
Linux
Pre-built vex ships in every GitHub Release for x86_64-unknown-linux-gnu. It needs glibc 2.34 or newer (Ubuntu 22.04+, Debian 12+, RHEL / Rocky / AlmaLinux 9+); on older systems build from source:
curl -fsSL https://raw.githubusercontent.com/tenatarika/vex/main/install.sh | sh
or by hand:
curl -L https://github.com/tenatarika/vex/releases/latest/download/vex-x86_64-unknown-linux-gnu.tar.gz | tar -xz mv vex ~/.local/bin/ # or: sudo mv vex /usr/local/bin/ vex --version
Built on the ubuntu-22.04 GitHub runner (glibc-linked, libstdc++ linked in). For older glibc distros, musl-based distros (Alpine, NixOS without nix-ld), or aarch64 Linux (Graviton, Pi 5, Ampere) — build from source via cargo build --release.
Windows
Pre-built vex.exe ships in every GitHub Release. The quickest way to install it, from PowerShell:
irm https://raw.githubusercontent.com/tenatarika/vex/main/install.ps1 | iex
It puts vex.exe, vex-mcp.exe and DirectML.dll in %LOCALAPPDATA%\Programs\vex (a per-user folder) and adds it to your user PATH. VEX_VERSION, VEX_INSTALL_DIR and VEX_NO_MCP=1 work as in install.sh. To install by hand instead:
- Download
vex-x86_64-pc-windows-msvc.tar.gzfrom the [la
冒頭だけを表示しています。続きはリポジトリで読めます