Function-level parsing with local embeddings means a question about where something is handled returns the right chunks, and bundles let you hand over a coherent slice of the repo rather than a pile of files.
A semantic code analysis server for a repository. Tree-sitter parses the code at function level, chunks are embedded locally with all-MiniLM-L6-v2 through Transformers.js, and files are grouped into named bundles; a watcher keeps analysis, bundles and embeddings current as the code changes.
- An architectural overview of the codebase, generated from the code rather than written by hand
- Semantic search over the code — a question like 'where is auth handled' answered from embeddings
- Integration points found for a feature you are about to add
- Named bundles listed and pulled whole as XML, and the bundle structure audited
- Every analysed code chunk, with purpose, complexity and relationships
- Normalised OpenAPI and Navigation artifacts, separately or as one cross-artifact summary
- File reads and writes that carry bundle context
Node — npm install -g cntx-ui, then cntx-ui init to scaffold .cntx and generate .mcp.json, and cntx-ui mcp to serve over stdio. Embedding runs locally with no external API calls; cntx-ui watch also serves a dashboard on a local port.
One command — npm install -g cntx-ui
