Semantic codebase indexer and MCP server for Claude Code
Project description
Sema
Love Cursor? You'll love Sema.
Sema is a VS Code extension, an agentic assistant, and a semantic indexer — a Cursor-style chat that already knows your codebase, except you pick the provider and the model, and you can switch mid-conversation.
- The indexer gives every provider real semantic search. Through the extension, all providers use it; and Claude Code and Codex can use it directly in their official apps or CLIs — over MCP, no sema extension needed (see docs). Either way they stop burning tokens hunting for files.
- The extension gives you one chat panel with eight engines — Claude Code, Codex, Open Code, Anthropic, OpenAI, DeepSeek, OpenRouter, Together AI.
- Agent permission controls let Claude Code and Codex pause protected actions for an inline Allow/Reject decision in the Sema chat, or use their clearly marked bypass mode in a trusted sandbox. Each provider keeps its own permission choice.
Sema uses your existing Claude Code and Codex subscription — no extra API key, no re-login. Or bring your own key for any API provider.
Use both, or either one alone.
Experimental · macOS and Linux · Requires Python 3.11+ · Nothing leaves your machine. Disclaimer
Install
1. Install the CLI (bootstraps uv + Python if needed):
curl -fsSL https://raw.githubusercontent.com/masihmoloodian/sema/main/install.sh | sh
2. Install the extension from the VS Code Marketplace (or search "sema" in the Extensions view). Want to build it yourself? See the docs.
3. Index and register. Open your project, then use the extension's Manage panel to build the index and register your AI CLIs in a click — or do it from the CLI:
cd your-project
sema index . # build the local semantic index
sema setup # register with every detected CLI: Claude Code, Codex, opencode, Grok Build
Keep the local coding-agent CLIs current so newly released models and effort levels are available:
sema update --check # show installed Claude/Codex/opencode versions
sema update # run every installed agent's official updater
sema update --provider codex # update one agent only (repeatable)
The extension exposes the same workflow under Manage → Update agent CLIs…. Reload VS Code after an update so its model picker reflects the installed CLI.
Want just the extension or just the index? Both work standalone. Plus manual installs, requirements, and troubleshooting — for more details see the Installation guide.
📦 sema-mcp on PyPI · 🧩 Extension on the VS Code Marketplace
Why
Cursor is great — it's also a subscription and a walled garden. Claude Code and Codex are great too, but they lock you to one model per session, and they start every session cold: burn tokens just navigating before they answer anything.
Sema indexes your code once, locally. Your assistant searches it instead — typically 4–11× fewer tokens per question. And check_reuse() tells it whether a helper already exists before it writes a fourth one.
| 4–11× | fewer tokens per question |
| 98% | reuse-vs-build accuracy (50-example eval) |
| ~150 | tokens per search — signatures, not whole files |
| 0 | code that leaves your machine |
Why sema exists, in full → · Benchmarks →
Documentation
Start here: Installation · sema for VS Code · CLI reference
| Installation | Platforms, requirements, install paths, from source |
| sema for VS Code | The extension — chat, agent, search, reuse |
| Claude Code · Codex · opencode · VS Code workspace | Register sema with your assistant |
| Multiple projects | Serve many repos from one registration |
| CLI reference | Every sema command |
| MCP tools | The tools your AI assistant calls |
| Supported languages | AST-aware vs text-aware indexing |
| Configuration | Config file, env vars, .gitignore |
| Managing sema | Update, remove, and when to re-index |
| Troubleshooting | Fixes for common issues |
| Why sema · Benchmarks · FAQ · Roadmap | Background and details |
| Architecture · Contributing | How it works, how to extend it |
License
MIT — see LICENSE. Copyright (c) 2026 Masih Moloodian.
Masih Moloodian · masihmoloodian@gmail.com · Issues
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file sema_mcp-0.4.0.tar.gz.
File metadata
- Download URL: sema_mcp-0.4.0.tar.gz
- Upload date:
- Size: 56.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.14 {"installer":{"name":"uv","version":"0.11.14","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bfbc26fe85089c8aeb31a9c47344f832ecc627ace1e6cae5fc72c8a551ea5958
|
|
| MD5 |
6e84aae012911822e023128dd7cde449
|
|
| BLAKE2b-256 |
8a0c370c5cdbb7669df4d010eb0957ca163502a5e58578a11ddba0a4fd179756
|
File details
Details for the file sema_mcp-0.4.0-py3-none-any.whl.
File metadata
- Download URL: sema_mcp-0.4.0-py3-none-any.whl
- Upload date:
- Size: 69.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.14 {"installer":{"name":"uv","version":"0.11.14","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f432f49c885343b7b5bf4f8240a7a5c6bb9ef3f7ea3efa967b8eba9df8d30fb4
|
|
| MD5 |
780053c42249662ae01d0b01378df263
|
|
| BLAKE2b-256 |
40c3176485e34eab3eec1580f8f4b65f8ad9b948ce033eb973b8d56af7be61e2
|