π¬π§ English | π¨π³ δΈζ
codeindex is the parser engine that powers LoomGraph. It turns any codebase into AI-readable structural artifacts β a graph-export NDJSON call/inheritance graph (the sole seam LoomGraph consumes) and, as a standalone by-product, README_AI.md navigation indexes. Stateless (ADR-007); the user-facing product is LoomGraph.
End users:
pipx install loomgraphβ it pullsai-codeindexautomatically. You never operate codeindex directly. See the LoomGraph integration guide. Standalone users (navigation indexes without the graph layer): see Standalone usage below.
AI agents in an unfamiliar codebase waste tokens grepping for the right entry point. codeindex pre-computes a structural slice (tree-sitter AST β symbols, calls, inheritance) so the agent β or the graph layer that serves the agent β starts from a known map, not from raw grep. The win is navigation efficiency, not capability: a measured β28% tokens / β19% wall-time on the discovery phase, but answer quality is a wash (it does not make the agent smarter β see Benchmark).
pipx install loomgraph # end users: pulls ai-codeindex as a dependencyStandalone (navigation indexes only, no graph layer):
pipx install ai-codeindexFrom source:
git clone https://github.com/dreamlx/codeindex.git
cd codeindex
pip install -e ".[all]"Claude Code users β also install the companion plugin for skills (
codeindex:arch/:index/:update-guide):/plugin marketplace add dreamlx/codeindex-claude /plugin install codeindex@codeindex-claude
Python and PHP grammars ship by default. Other languages need the matching tree-sitter grammar:
pipx inject ai-codeindex tree-sitter-typescript tree-sitter-java # add to pipx env
# or pin a subset at install time:
pipx install "ai-codeindex[ios]" # Swift + Objective-Cπ¨π³ China users: if your mirror hasn't synced the latest release, install from upstream PyPI:
pipx install --index-url https://pypi.org/simple/ ai-codeindex
LoomGraph users (the main path):
loomgraph index . # codeindex graph-export β embed β inject, one pipeline
loomgraph graph "UserService.login" --depth 2
loomgraph topology # orphans / hubs + resolved_ratio trust signalStandalone (README_AI navigation indexes only):
codeindex init # creates .codeindex.yaml + injects CLAUDE.md section
codeindex scan-all # structural + optional AI descriptions (auto when ai_command set)
codeindex scan-all --no-ai # structural onlyFull command reference: codeindex --help.
codeindex's README_AI.md is a tiered navigation index β agents browse it to find the right module, then drop to source for precise mechanism. It is not a knowledge graph and does not resolve cross-module relationships; for that, use LoomGraph.
When standalone is the right fit:
- Small / mid codebase where a graph layer is more weight than you need.
- Air-gapped intranet where you want navigation without any external service.
- Pairing with Serena MCP for precise symbol queries (codeindex = the "map", Serena = the "GPS").
When you should move to LoomGraph:
- You need cross-module call-graph walks (callers of
authenticate()two hops deep). - You need change-impact analysis, topology smells, or semantic search.
- The codebase is large enough that a flat navigation index stops paying (see benchmark: on a 250-directory legacy system the token win nearly vanished β a flat index points at files but can't synthesize cross-module semantics).
codeindex init injects a codeindex section into your project's CLAUDE.md so Claude Code reads README_AI.md first (never ~/.claude β ADR-006). codeindex scan-all refreshes indexes after structural changes; README_AI.md is a generated artifact β do not hand-edit.
Most "AI code understanding" tools assert value. We A/B-tested ours β and published the unflattering parts.
Across 15 graded navigation questions on 3 heterogeneous real projects, a coding agent with README_AI.md vs without:
- β28% tokens, β19% wall-time on average β agents reach the right file faster and cheaper.
- Answer quality is a wash. It does not make answers more correct β the win is efficiency, not capability. (An undisciplined index even hurt a few precise-mechanism questions; fixed in ADR-005.)
- Smallest win on the largest codebases. On a 250-directory legacy system the token win nearly vanished β a flat index points you to files but can't synthesize cross-module semantics. codeindex is the navigate layer, not the understand-everything layer (pair it with source-reading / Serena for precise mechanism, or move to LoomGraph for cross-module graph queries).
Full data incl. the failure cases: 2026-05 benchmark. Reproduce on your own repos: bench/ (make setup && make run && make grade).
Why publish the parts that don't flatter the tool: a navigation index that quietly degrades answer quality is worse than none. Knowing exactly where it helps β and where to drop to source β is the point.
Full reference: codeindex --help. Highlights:
| Command | Purpose |
|---|---|
codeindex scan-all |
Generate / refresh README_AI.md indexes (structural + optional AI) |
codeindex graph-export |
Emit the entities + edges NDJSON that LoomGraph consumes |
codeindex parse <file> |
Single-file JSON parse for tool integration |
codeindex symbols |
Global symbol index (PROJECT_SYMBOLS.md) |
codeindex tech-debt <dir> |
Code-quality analysis (large files, god classes, test smells) β see guide |
codeindex affected --since HEAD~5 |
Git change-impact (affected directories) |
codeindex doctor |
Health/sync check (CLI, parsers, CLAUDE.md, plugin) |
codeindex claude-md update |
Refresh the codeindex section in your project's CLAUDE.md |
Each command emits JSON (--output json) for CI/CD and downstream tools.
| Language | Status | Since |
|---|---|---|
| Python | β | v0.1.0 |
| PHP | β | v0.5.0 |
| Java | β | v0.7.0 |
| TypeScript / JS | β | v0.19.0 |
| Swift | β | v0.21.0 |
| Objective-C | β | v0.21.0 |
| Go / Rust / C# | π Planned | β |
Framework route extraction: ThinkPHP (PHP), Spring Boot (Java); Express, Laravel, FastAPI, Django planned.
Want to add a language? The template-based test system lets you contribute by writing YAML specs β no Python knowledge required. See CONTRIBUTING.md.
codeindex's documentation generation is a two-phase pipeline β structure is deterministic (tree-sitter, no AI), AI enrichment is an optional overlay. The graph-export NDJSON (the LoomGraph seam) is pure AST. Full pipeline + architecture diagrams: docs/architecture/design-philosophy.md.
If you work on LoomGraph (the user-facing product), start here: FOR_LOOMGRAPH.md β the parser-engine contract, the graph-export NDJSON seam, and the codeindex commands you'll touch.
| Guide | Description |
|---|---|
| Getting started | Installation and first scan |
| Configuration | All config options explained |
| Advanced usage | Parallel scanning, custom prompts |
| Git hooks integration | Automated quality checks and doc updates |
| Claude Code integration | AI agent setup and MCP skills |
| JSON output integration | Machine-readable output for tools |
| Tech-debt analysis | Code-quality analysis command reference |
| LoomGraph integration | The graph-export β graph-store pipeline |
| Doc | Description |
|---|---|
| CONTRIBUTING.md | Development setup, TDD workflow, code style |
| Design philosophy | Two-phase pipeline, two-repo architecture, design principles |
| ADR-005 | Navigation-contract disclaimer + README size cap |
| ADR-009 | codeindex = LoomGraph parser engine positioning |
| Release automation | 5-minute automated release workflow |
| Doc | What it shows |
|---|---|
| 2026-05 README impact benchmark | Agent comprehension delta WITH vs WITHOUT README_AI.md (15 graded questions, 3 projects). Headline: 19% faster / 28% fewer tokens on average, but quality wash on some detail questions β fix shipped (ADR-005). |
bench/ |
Reproducible harness (make setup && make run && make grade && make report). |
git clone https://github.com/dreamlx/codeindex.git
cd codeindex
pip install -e ".[dev,all]"
make install-hooks
make testSee CONTRIBUTING.md for guidelines. Maintainer release: make release VERSION=0.X.0 (CI β tests β PyPI publish β GitHub Release).
Current version: v0.40.0
Next: framework routes expansion (Express, Laravel, FastAPI, Django); Go, Rust, C# language support.
Code similarity search, refactoring suggestions, team collaboration, and IDE integration live in LoomGraph, not here β codeindex stays the stateless parse layer.
See Strategic Roadmap for detailed plans.
MIT β free, and meant to stay that way.
- Questions: GitHub Discussions
- Bugs / Feature requests: GitHub Issues