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

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ai_codeindex-0.40.1.tar.gz (845.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ai_codeindex-0.40.1-py3-none-any.whl (255.0 kB view details)

Uploaded Python 3

File details

Details for the file ai_codeindex-0.40.1.tar.gz.

File metadata

  • Download URL: ai_codeindex-0.40.1.tar.gz
  • Upload date:
  • Size: 845.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for ai_codeindex-0.40.1.tar.gz
Algorithm Hash digest
SHA256 1fb84a149965c7cc0e6e76af70b5d5ae8b9c6d6d8595a4a6981a4821507418c4
MD5 9f0f60592a68dff84f799996a4f14856
BLAKE2b-256 59d9be45912c5d7154ded64b71709c96d8b2c1164496fc66d4bbee8bf39215b3

See more details on using hashes here.

Provenance

The following attestation bundles were made for ai_codeindex-0.40.1.tar.gz:

Publisher: publish.yml on dreamlx/codeindex

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ai_codeindex-0.40.1-py3-none-any.whl.

File metadata

  • Download URL: ai_codeindex-0.40.1-py3-none-any.whl
  • Upload date:
  • Size: 255.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for ai_codeindex-0.40.1-py3-none-any.whl
Algorithm Hash digest
SHA256 582d488461cfd9719ded7f8522d947cc3a7c43b15a009557251053e6108e9d32
MD5 808217b51cf062c5a9fec7d7c52e4bfe
BLAKE2b-256 5a0e402cafe51467ae4da42c14fe0e0179d4e76248177583a0102eb00d4e13f1

See more details on using hashes here.

Provenance

The following attestation bundles were made for ai_codeindex-0.40.1-py3-none-any.whl:

Publisher: publish.yml on dreamlx/codeindex

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.40.1 This release

2 files

0.40.0

2 files

0.39.0

2 files

0.38.0

2 files

0.37.0

2 files

0.36.0

2 files

0.35.1

2 files

0.35.0

2 files

0.34.0

2 files

0.33.3

2 files

0.33.2

2 files

0.33.1

2 files

0.33.0

2 files

0.32.0

2 files

0.31.0

2 files

0.30.0

2 files

0.29.0

2 files

0.28.0

2 files

0.27.0

2 files

0.26.2

2 files

0.26.1

2 files

0.26.0

2 files

0.25.0

2 files

0.24.0

2 files

0.23.2

2 files

0.23.1

2 files

0.23.0

2 files

0.22.2

2 files

0.20.0

2 files

0.19.0

2 files

0.18.0

2 files

0.17.3

2 files

0.17.2

2 files

0.17.1

2 files

0.17.0

2 files

0.16.1

2 files

0.16.0

2 files

0.15.1

2 files

0.15.0

2 files

0.14.0

2 files

0.12.1

2 files

0.12.0

2 files

0.11.0

2 files

0.10.1

2 files

0.10.0

2 files

0.9.0

2 files

0.7.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page