Your codebase, indexed on your machine.
A local-first code intelligence platform. It parses your repositories on your own hardware — symbols, call graphs, type hierarchies — and serves them to Claude, Cursor, Zed or any MCP client, so your assistant reads structure instead of guessing from text.
Indexes 19 languages locally — nothing leaves your machine
45 MCP tools for symbols, references, call graphs and impact analysis
Works with Claude Desktop, Cursor, Zed and any MCP client
Built-in chat across Claude, OpenAI, Gemini, Groq, Mistral and Ollama
OpenAI-compatible local API and a cost dashboard
An index of your code, built and kept on your machine
An assistant reading your repository through plain text search is guessing. It sees strings, not declarations, and it pays for that guess in context window. Tanvrit AI parses your repositories with ANTLR grammars and stores the result — symbols, chunks, imports, call edges, type relations, per-file metrics — in a local SQLite database. An MCP server then answers structural questions from that index, so the model asks for one symbol instead of reading a whole file.
How the index is built
Parsers cover 19 languages, including Kotlin, Swift, TypeScript, Python, Go, Rust, Java, C/C++, C#, Ruby, PHP and shell. Indexing runs in-process on your hardware; the database lives at ~/.tanvrit-ai/index.db on desktop and is safe to delete, since the next launch recreates the schema and re-indexes your imported projects. Stored rows describe declarations and relationships — files, symbols, chunks, imports, file dependencies, cross references, type relations, call edges and metrics — rather than a copy of your source for a remote service to read.
What an MCP client gets
The desktop app runs an MCP server on localhost:19281 exposing 45 tools: search, file structure, chunk retrieval, call graph traversal, reference lookup, dependency graphs, dead-code detection, git blame, metrics and impact analysis. HTTP connections require an Authorization bearer; stdio mode skips it because the parent process is already trusted. One fused tool, tanvrit_context, combines hybrid search, symbol context, blast radius, recorded decisions and the staged diff into a single token-budgeted grounding call.
What ships, and where
The released desktop build is a macOS Apple Silicon .dmg. Intel-mac, Linux .deb and Windows .msi release workflows are wired but not yet published, so treat them as pending rather than available. A WebAssembly portal runs in the browser at ai.tanvrit.com/app for indexing and chat; the local inference engine and the MCP server are desktop-only and are hidden there. The app also includes chat across Claude, OpenAI, Gemini, DeepSeek, Groq, Mistral and Ollama, an OpenAI-compatible local API, and a per-model cost dashboard.
Frequently asked questions
- Does my source code leave my machine?
- Parsing, indexing and MCP tool execution all happen locally. The only outbound requests are to whichever AI provider you configure, and those carry the specific chunks your agent asked for — not your repository. Provider API keys are held in the OS credential store rather than a config file.
- Which platforms can I install today?
- A macOS Apple Silicon .dmg is published, and the browser portal needs no install. Intel-mac, Linux .deb and Windows .msi builds have working release workflows but have not been released yet. On the web build, engine-dependent features and the MCP server are unavailable, so it degrades to indexing plus chat through external APIs.
- Which AI clients can connect?
- Any MCP client. Claude Code connects over stdio, and Claude Desktop, Cursor and Zed connect over HTTP with the server URL plus a bearer token. The token is generated at first launch and is shown in the app under Settings, where it can also be rotated.
- Why does an index reduce token usage?
- MCP tools return the specific symbol, chunk or call path the model requested, so the assistant does not have to page whole files into the context window to find one function. Impact analysis and dependency graphs also answer questions text search cannot answer at all, such as which callers a change actually reaches.
- Is any usage data collected?
- Telemetry is opt-in and off by default. When enabled, it sends event names and a random install ID, and a PII guard rejects values that look like paths, URLs or email addresses. No code, filenames or paths are transmitted.
Built on the same platform
Tanvrit AI shares its foundations — one SDK, one API, one account — with the rest of what we build.