Codeix

io.github.montanetech由 GitHub 帳號 montanetech 發布v0.5.0更新於 Oct 24, 2026

Fast semantic code search for AI agents — find symbols, references, and callers across any codebase

已驗證STDIO僅桌面知識與記憶開發者工具

概覽

AI 產生的概覽

Codeix 是一個本機 MCP 伺服器,依據預先建立的索引,為 AI 助理提供快速的語意程式碼搜尋,可查找符號、參照與呼叫者。

可以做什麼
瀏覽專案結構、子專案以及依目錄分組的檔案,並對符號、檔案與文字(註解、docstring、字串常值)進行帶篩選與排序的搜尋。列出某個檔案中的所有符號,取得類別或模組的子項。透過尋找符號的呼叫者與參照,以及函式所呼叫的符號,追蹤呼叫關係。將待處理的索引變更寫入磁碟。索引以提交至儲存庫的 .codeindex 目錄保存,相依套件的索引會自動探索。
適用情境
適合助理在大型或多儲存庫程式碼庫中工作、需要定位函式、類別及其呼叫者,而不必反覆 grep 與讀取檔案的情境。也適用於偏好可共享、隨程式碼提交的索引,而非各機器本機快取的 monorepo 專案。
執行需求
以本機程序透過 stdio 執行,可用 npx codeix、uvx codeix、cargo 或 Homebrew 啟動;README 表示沒有執行階段相依性。需先以 build 指令建立索引。可離線使用,不需要 API 金鑰或環境變數。
安裝前請注意
flush_index 工具會將待處理的索引變更寫入磁碟,建立索引時會在專案中寫入 .codeindex 目錄。索引設計為提交至 git,因此被索引的原始碼、註解與 docstring 會進入儲存庫歷史。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Codeix,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

codeix

codeix.dev · Fast semantic code search for AI agents — find symbols, references, and callers across any codebase.

codeix                 # start MCP server, watch for changescodeix build           # parse source files, write .codeindexcodeix -r ~/project build  # build from a specific directory

Why

AI coding agents spend most of their token budget finding code before they can work on it. They grep, read files, grep again, backtrack. On a large codebase the agent might burn thousands of tokens just locating the right function — or worse, miss it entirely and hallucinate.

Codeix gives the agent a pre-built map of your codebase. One structured query returns the symbol name, file, line range, signature, and parent — no scanning, no guessing.

What existing tools get wrong

ProblemWhat happens today
No structuregrep finds text matches, not symbols. The agent can't distinguish a function definition from a comment mentioning it.
Slow re-parsingPython-based indexers re-parse everything on startup. On large codebases, you wait.
Not shareableIndexes are local caches — ephemeral, per-machine. A new developer or CI runner starts from scratch.
No compositionMonorepo with 10 packages? Dependencies with useful APIs? No way to query across boundaries.
Prose is invisibleTODOs, docstrings, error messages — searchable by grep but not selectively. You can't search only comments without also matching code.

What codeix does differently

  • Committed to git — the index is a .codeindex directory you commit with your code. Clone the repo, the index is already there. No re-indexing.
  • Shareable — library authors can ship .codeindex in their npm/PyPI/crates.io package. Consumers get instant navigation of dependencies.
  • Composable — the MCP server auto-discovers dependency indexes and mounts them. Query your code and your dependencies in one place.
  • Structured for LLMs — symbols have kinds, signatures, parent relationships, and line ranges. The agent gets exactly what it needs in one tool call instead of piecing it together from raw text.
  • Prose search — search --scope text targets comments, docstrings, and string literals specifically. Find TODOs, find the error message a user reported, find what a function's docstring says — without noise from code.
  • Fast — builds in seconds, queries in milliseconds. Rust + tree-sitter + in-memory SQLite FTS5 under the hood.

The .codeindex format

An open, portable format for structured code indexing. Plain JSONL files you commit alongside your code — git-friendly diffs, human-readable with grep and jq, no binary blobs.

.codeindex/  index.json        # manifest: version, name, languages  files.jsonl       # one line per source file (path, lang, hash, line count)  symbols.jsonl     # one line per symbol (functions, classes, imports, with signatures)  texts.jsonl       # one line per comment, docstring, string literal

Any tool that can parse JSON can consume a .codeindex. Codeix builds it using tree-sitter, and AI agents query it through MCP (Model Context Protocol).

Example — symbols.jsonl:

jsonl
{"file":"src/main.py","name":"os","kind":"import","line":[1,1]}{"file":"src/main.py","name":"Config","kind":"class","line":[22,45]}{"file":"src/main.py","name":"Config.__init__","kind":"method","line":[23,30],"parent":"Config","sig":"def __init__(self, path: str, debug: bool = False)"}{"file":"src/main.py","name":"main","kind":"function","line":[48,60],"sig":"def main(args: list[str]) -> int"}

Ship your index with your package

Include .codeindex in your package and every developer who depends on you gets instant navigation of your API — no setup, no re-indexing.

Works with Git repos, npm, PyPI, and crates.io.

MCP tools

Seven tools, zero setup. The agent queries immediately — no init, no config, no refresh.

ToolWhat it does
exploreExplore project structure: metadata, subprojects, files grouped by directory
searchUnified full-text search across symbols, files, and texts (FTS5, BM25-ranked) with scope/kind/path/project filters
get_file_symbolsList all symbols in a file
get_childrenGet children of a class/module
get_callersFind all places that call or reference a symbol
get_calleesFind all symbols that a function/method calls
flush_indexFlush pending index changes to disk

Project discovery

Launch codeix from any directory. It walks downward and treats every directory containing .git/ as a separate project — each gets its own .codeindex.

Works uniformly for single repos, monorepos, sibling repos, and git submodules. No config needed.

Languages

Tree-sitter grammars, feature-gated at compile time:

LanguageFeature flagDefaultExtensions
Pythonlang-pythonyes.py .pyi .pyw
Rustlang-rustyes.rs
JavaScriptlang-javascriptyes.js .mjs .cjs .jsx
TypeScriptlang-typescriptyes.ts .mts .cts .tsx
Golang-goyes.go
Javalang-javayes.java
Clang-cyes.c .h
C++lang-cppyes.cpp .cc .cxx .hpp .hxx
Rubylang-rubyyes.rb .rake .gemspec
C#lang-csharpyes.cs
Markdownlang-markdownyes.md .markdown

Markdown support

Markdown files are parsed for headings (both ATX # and Setext underline styles) which are indexed as section symbols with hierarchical parent-child relationships — enabling TOC extraction and document structure navigation.

Fenced code blocks are extracted as code text entries, parented to their containing section.

Embedded scripts

HTML, Vue, Svelte, and Astro files are preprocessed to extract embedded <script> blocks, which are then parsed with the JavaScript or TypeScript grammar:

FormatExtensionsScript detection
HTML.html .htm<script> tags, with optional lang="ts"
Vue.vue<script> and <script setup>, with optional lang="ts"
Svelte.svelte<script>, with optional lang="ts"
Astro.astro--- frontmatter (always TypeScript) + optional <script> tags

Line numbers in the index point to the original file, not the extracted script block.

Install

sh
# npm / npx — run without installingnpx codeix
# pip / uvx — run without installinguvx codeix
# Rustcargo install codeix
# Homebrewbrew install codeix
# Or build from sourcegit clone https://github.com/montanetech/codeix.gitcd codeixcargo build --release

All channels install the same single binary. No runtime dependencies.

Usage

sh
# Build the index for the current projectcodeix build
# Build from a specific directory (discovers all git repos below)codeix -r ~/projects build
# Start MCP server (default command, watches for changes)codeix
# Or explicitlycodeix servecodeix serve --no-watch
# Serve from a specific directorycodeix -r ~/projects serve

MCP client configuration

Add to your MCP client config (e.g. Claude Desktop, Cursor):

json
{  "mcpServers": {    "codeix": {      "command": "codeix"    }  }}

Design principles

  • Local only — no network, no API keys, works offline and air-gapped
  • Deterministic — same source always produces the same index (clean diffs)
  • Composable — dependency indexes are auto-discovered and mounted at query time
  • Minimal surface — 7 query tools, zero management plumbing

Architecture

See docs/architecture.md for the full set of architecture decision records.

License

MIT OR Apache-2.0

來源:README.md,提交 dba0309

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.5.0最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分