How It Works
CtxE builds a deep, structured understanding of your codebase — not just text search, but real comprehension of code structure, meaning, and relationships.
Overview
When you run ctxe index, the engine analyzes your code through multiple layers of understanding. The result is a rich, queryable representation that lets AI tools answer complex questions about your codebase with precision and context.
Three pillars
Code-aware parsing
CtxE understands the structure of your code — functions, types, modules, boundaries. It doesn't treat source files as flat text. This means queries return meaningful, self-contained units of code rather than arbitrary line ranges.
Semantic understanding
CtxE understands what code means, not just what it says. Ask "how does authentication work" and it finds the relevant code even if no file is named "auth". It connects intent to implementation across naming conventions, languages, and abstraction layers.
Relationship mapping
Code doesn't exist in isolation. CtxE maps how functions call each other, how types are implemented, how modules depend on one another. This powers impact analysis — ask "what breaks if I change this?" and get a real answer.
What makes it different
Traditional code search (grep, ripgrep, GitHub search) matches text patterns. That works for finding known strings, but fails when you need to understand:
| Question | Text search | CtxE |
|---|---|---|
| "How does login work?" | Finds files containing "login" | Returns the full flow: handler → validation → session → storage |
| "What calls this function?" | Grep for function name (noisy, misses indirect calls) | Precise call graph — direct and indirect callers |
| "What breaks if I change X?" | Not possible | Impact analysis across the full dependency chain |
| "How do modules A and B relate?" | Not possible | Relationship paths, shared dependencies, data flow |
Incremental by design
The initial index builds a complete picture of your codebase. After that, CtxE only processes what changed — modified files are re-analyzed, unchanged files are skipped. This keeps the index fresh without re-doing work.
- First index: typically 30–90 seconds for a medium codebase (1000–5000 files)
- Subsequent runs: seconds, proportional to changes
- Automatic via daemon: the background process keeps indexes up to date as you code
Multi-round retrieval
When you ask a question (via ask_context), CtxE doesn't just run a single search. It performs multiple rounds of retrieval — each round refining and expanding results based on what was found previously. This is how it surfaces non-obvious connections and gives comprehensive answers even for complex, cross-cutting questions.