Skip to main content

codeindex

PyPI version Python 3.10+ License: MIT Tests

🇬🇧 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 pulls ai-codeindex automatically. You never operate codeindex directly. See the LoomGraph integration guide. Standalone users (navigation indexes without the graph layer): see Standalone usage below.


Why

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).


Install

pipx install loomgraph          # end users: pulls ai-codeindex as a dependency

Standalone (navigation indexes only, no graph layer):

pipx install ai-codeindex

From 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

Language parsers

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


Quick start

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 signal

Standalone (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 only

Full command reference: codeindex --help.


Standalone usage (without the graph layer)

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.


Benchmark

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.


Commands

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 support

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.


How it works

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.


For LoomGraph developers

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.


Documentation

User guides

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

Developer & architecture

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

Evidence & benchmarks

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).

Contributing

git clone https://github.com/dreamlx/codeindex.git
cd codeindex
pip install -e ".[dev,all]"
make install-hooks
make test

See CONTRIBUTING.md for guidelines. Maintainer release: make release VERSION=0.X.0 (CI → tests → PyPI publish → GitHub Release).


Roadmap

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.


License

MIT — free, and meant to stay that way.

Support

Metadata

Release files for ai-codeindex 0.40.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ai-codeindex 0.40.1
File Size Uploaded
ai_codeindex-0.40.1.tar.gz 845.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ai-codeindex 0.40.1
File Interpreter ABI Platform
ai_codeindex-0.40.1-py3-none-any.whl Python 3 none any Details

Total release size: 1.1 MB

Release files / ai_codeindex-0.40.1.tar.gz

Download URL ai_codeindex-0.40.1.tar.gz
Size 845.2 kB
Tags Source
SHA-256 checksum
How to use checksums
1fb84a149965c7cc0e6e76af70b5d5ae8b9c6d6d8595a4a6981a4821507418c4
BLAKE2b-256 checksum
How to use checksums
59d9be45912c5d7154ded64b71709c96d8b2c1164496fc66d4bbee8bf39215b3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 23, 2026.

Transparency log

Release files / ai_codeindex-0.40.1-py3-none-any.whl

Download URL ai_codeindex-0.40.1-py3-none-any.whl
Size 255.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
582d488461cfd9719ded7f8522d947cc3a7c43b15a009557251053e6108e9d32
BLAKE2b-256 checksum
How to use checksums
5a0e402cafe51467ae4da42c14fe0e0179d4e76248177583a0102eb00d4e13f1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 23, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.40.1 This release

2 release files

0.40.0

2 release files

0.39.0

2 release files

0.38.0

2 release files

0.37.0

2 release files

0.36.0

2 release files

0.35.1

2 release files

0.35.0

2 release files

0.33.3

2 release files

0.33.2

2 release files

0.33.1

2 release files

0.33.0

2 release files

0.27.0

2 release files

0.26.2

2 release files

0.25.0

2 release files

0.24.0

2 release files

0.23.2

2 release files

0.23.1

2 release files

0.23.0

2 release files

0.20.0

2 release files

0.19.0

2 release files

0.18.0

2 release files

0.17.3

2 release files

0.17.2

2 release files

0.17.1

2 release files

0.17.0

2 release files

0.16.1

2 release files

0.16.0

2 release files

0.15.1

2 release files

0.15.0

2 release files

0.14.0

2 release files

0.9.0

2 release files

0.7.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page