Skip to main content

Semantic codebase indexer and MCP server for Claude Code

Project description

Sema

Sema

PyPI version Python versions VS Code Marketplace Platform: macOS | Linux License: MIT

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

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

sema_mcp-0.3.0.tar.gz (54.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sema_mcp-0.3.0-py3-none-any.whl (67.9 kB view details)

Uploaded Python 3

File details

Details for the file sema_mcp-0.3.0.tar.gz.

File metadata

  • Download URL: sema_mcp-0.3.0.tar.gz
  • Upload date:
  • Size: 54.6 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

Hashes for sema_mcp-0.3.0.tar.gz
Algorithm Hash digest
SHA256 58b613cbd8ff0829d4ca9c792de817e370fe5a21d17652bced23662eec64d5c2
MD5 54f8284dff61b62edf2e8b719ea416f4
BLAKE2b-256 88eb2f21aefc7ae3a5cfc14d77b931e39f68eaea93280849dfbf85eda25707bf

See more details on using hashes here.

File details

Details for the file sema_mcp-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: sema_mcp-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 67.9 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

Hashes for sema_mcp-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8833895fbfb319268e388731efba6538cfa83475cd2ed61cbdf9cadf0a1c8998
MD5 84ed7c8e4352ddafc4d5a5e8278599de
BLAKE2b-256 050e751761d2114747f31262b1363e8b2ebe269b4f08a2d7a1e2065f75709403

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page