explore
Explore a project's file structure. Returns project metadata, subprojects (if any), and files grouped by directory. Use 'path' to scope to a subdirectory. Files are capped per directory if total exceeds max_entries (default: 200).
A pre-built map of your codebase that lives in the repository — symbols, callers, callees and prose search, all from a committed index.
LABSCO SUMMARY
That is what separates it from a local cache: .codeindex is plain JSONL in the repository, and a library author can ship it so consumers get navigation of the API with no indexing step. Day to day the payoff is fewer round trips — one query returns the symbol, its file, line range, signature and parent, instead of a grep, a file read and another grep.
A Rust code indexer with an MCP front end. It parses source with tree-sitter into a .codeindex directory of JSONL files you commit alongside the code, so a fresh clone already knows the codebase.
Nothing to authorize and no runtime dependencies — it ships as a single binary through npx codeix, uvx codeix, cargo install codeix or brew install codeix. codeix build parses the source and writes the .codeindex directory; running codeix starts the stdio server and watches for changes, codeix serve --no-watch turns the watcher off, and -r points it at another directory. It walks downward and treats every directory containing .git as its own project, so monorepos, sibling repos and submodules need no configuration. Languages: Python, Rust, JavaScript, TypeScript, Go, Java, C, C++, Ruby, C# and Markdown, with embedded scripts extracted from HTML, Vue, Svelte and Astro files.
One command — npx -y codeix
USE CASES
Search the symbol index, then list everything declared in the file it lives in.
Find every call site and reference, with enough surrounding lines to judge each one.
Walk outward from it to everything it calls or references.
Explore the directory structure and subprojects, then open the files that look central.
Search the text scope, which covers comments, docstrings and string literals only.
Pull its direct children as code snippets instead of scrolling the file.
Counted once with only startup setup. Other versions, modes or optional credentials may expose a different list.
exploreExplore a project's file structure. Returns project metadata, subprojects (if any), and files grouped by directory. Use 'path' to scope to a subdirectory. Files are capped per directory if total exceeds max_entries (default: 200).
flush_indexFlush pending index changes to .codeindex/ files on disk. Call this when you need the index persisted (e.g., before git operations). Returns the number of projects flushed.
get_calleesFind all symbols that a given function/method calls or references. Returns references sorted by file and line. Useful for understanding dependencies and call chains.
get_callersFind all places that call or reference a symbol. Returns references sorted by file and line. Useful for finding callers of a function/method. Note: For struct/class fields and methods, use get_children instead.
get_childrenGet direct children of a symbol (e.g. methods of a class). Returns code snippets by default.
get_file_symbolsGet all symbols in a file, ordered by line number. Returns code snippets by default.
searchSearch symbols, files, and texts. FTS5 with BM25 ranking.
Query syntax:
foo bar — match both (implicit AND)foo|bar or foo OR bar — match eitherfoo* — prefix (matches fooBar, fooHandler)"exact phrase" — literal matchfoo NOT test — exclude termTip: Use | to search multiple terms efficiently: handler|middleware|context
Params: query (required), limit (default 10), snippet_lines (default 10)
Optional filters: scope, kind, path, project, visibility
BEFORE YOU INSTALL
7 tools when we connected. search_symbols, search_files and search_texts were replaced by search, and get_project_commands and get_project_docs are only proposals.
npx on PATH
Both documented clients run the server on your machine.
CONTEXT COST
Rated by the size of the 7 tool definitions that ride along on every turn, not by how many there are
INSTALLATION
npx -y codeixThis runs the codeix binary from your PATH, and npx -y codeix does not put it there. Install it first — brew install codeix or cargo install codeix, both from the project's install list.
{
"mcpServers": {
"codeix": {
"command": "codeix"
}
}
}