Skip to main content

CodeAtlas

Rust-native architecture maps for codebases. CodeAtlas scans a repository, extracts symbols and relationships with deterministic static analysis (tree-sitter), groups code into components, and documents the architecture as analysis.json, Markdown/Mermaid, HTML (Cytoscape), MDX, or reStructuredText. An optional LLM step names and describes components.

What works today

  • codeatlas full --local <repo> produces .codeatlas/analysis.json + fingerprint.json (schema-compatible output) with deterministic, directory-derived component names.
  • codeatlas-render (or --render md|html|mdx|rst) renders overview + per-component docs, with a manifest that reconciles stale files and refuses to overwrite unowned files.
  • Optional component naming/description via an OpenAI-compatible provider (OpenAI, Ollama, OpenRouter, DeepSeek, LiteLLM, LM Studio). Without a provider, analysis still succeeds with deterministic names.
  • Languages: Python, Rust, Go, JavaScript/TypeScript, Java, PHP, and C# (tree-sitter).

Quick start

pip install codeatlas-rs
codeatlas full --local /path/to/repo
codeatlas full --local /path/to/repo --render md
codeatlas-render /path/to/repo/.codeatlas/analysis.json --format html
codeatlas diff old/.codeatlas/analysis.json new/.codeatlas/analysis.json --fail-on-change

Output is written to <repo>/.codeatlas/. Configure an optional provider via OPENAI_API_KEY (+ OPENAI_BASE_URL, AGENT_MODEL); see codeatlas_rs.llm.

Wheels: codeatlas-rs ships abi3-py39 wheels, so one wheel covers CPython 3.9+. The release workflow builds manylinux (x86_64/aarch64), musllinux (x86_64/aarch64), macOS universal2, and Windows x86_64 wheels plus an sdist. Each wheel is installed and imported before upload. PyPI 0.7.0 predates that pipeline and only has a macOS arm64 wheel + sdist; wheels for the other platforms are published with the next tagged release.

PR architecture diff

codeatlas diff compares two architecture maps, and .github/actions/architecture-diff runs it as a PR check. See docs/PR_DIFF.md.

Query the call graph

codeatlas full also writes .codeatlas/call_graph.json with the merged symbols and call/reference edges. Query it locally without re-analysis or an LLM:

codeatlas query /path/to/repo helper
codeatlas query /path/to/repo helper --direction callers --format json

analysis.json keeps its established schema; the call graph is a sidecar so local agents and editors can fetch precise symbol context. See docs/CALL_GRAPH_QUERY.md for the schema and the Python API.

Audit findings

The 2026-10-19 implementation audit — including the Java extractor work, verification results, and remaining gaps — is recorded in AUDIT_FINDINGS.md.

Status & roadmap

The deterministic core is implemented end-to-end (discovery → tree-sitter extraction → cross-file resolution → clustering → analysis.json → rendering). See docs/FEATURE_PARITY.md for what is implemented vs. deferred, and docs/IMPLEMENTATION_ROADMAP.md for the milestone plan. Documented limitations: tree-sitter resolution is intentionally simpler than an LSP pipeline (docs/audit/KNOWN_GAPS.md) and clustering is a simplified deterministic directory partition.

Bundle into any repository

codeatlas-bundle versions the architecture map inside a repository: it runs the analysis, renders the docs, and (optionally) commits them so the map evolves with the code. See packages/codeatlas-bundle.

pip install codeatlas-rs codeatlas-bundle
cd my-repo && codeatlas-bundle init && codeatlas-bundle build --commit

Layout

  • crates/core — pure-Rust analysis engine (no Python, no network, no LLM).
  • crates/py — PyO3 bindings (codeatlas_rs._core).
  • python/codeatlas_rs — the Python wrapper (CLI, rendering, optional LLM).
  • packages/codeatlas-bundle — pure-Python package that bundles the docs into other repositories.

Development

# Rust core (no Python needed)
cargo test -p codeatlas-core

# Rust workspace (needs a Python with a shared library, e.g. `export PYO3_PYTHON=$(which python3.12)`)
cargo build --workspace && cargo test --workspace
cargo clippy --workspace --all-targets -- -D warnings
cargo fmt --all --check

# Python package
maturin build --release --interpreter python3.12 --out dist
maturin develop --interpreter python3.12
python -m pytest tests

Requires Rust (stable) and Python 3.9+ (3.12 recommended), with maturin for the Python package.

Known issues and deferred work

Blocked / failed:

  • Kotlin extractor (grammar incompatible with tree-sitter 0.25); Linux/Windows wheels.

Rejected / deferred:

  • Chat UI; LSP-level resolution now.

Full shipped/blocked/rejected detail: QUEUE_STATUS.md.

License

MIT. See LICENSE and NOTICE.

Incremental workflow cache

codeatlas full --cache fingerprints repository source content (git HEAD/status plus file metadata) and reuses the previous analysis when nothing changed:

codeatlas full --local . --cache --render md

The first run stores analysis/fingerprint/coverage under .codeatlas/cache/; subsequent unchanged runs skip the Rust pipeline and reuse the artifacts. This is a whole-repository workflow cache, not per-file re-analysis.

Metadata

Release files for codeatlas-rs 0.8.0

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

Source distribution (sdist)

Source distribution for codeatlas-rs 0.8.0
File Size Uploaded Provenance
codeatlas_rs-0.8.0.tar.gz 60.9 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for codeatlas-rs 0.8.0
File Interpreter ABI Platform
codeatlas_rs-0.8.0-cp39-abi3-macosx_11_0_arm64.whl CPython 3.9 abi3 macOS 11.0+ ARM64 Details

Total release size: 2.3 MB

Release files / codeatlas_rs-0.8.0.tar.gz

Download URL codeatlas_rs-0.8.0.tar.gz
Size 60.9 kB
Tags Source
SHA-256 checksum
How to use checksums
228c1882e7350bceb2743b8d84147bad04538591b40a0323d2f9d9ce5625e186
BLAKE2b-256 checksum
How to use checksums
14b543b8341b5e5c17027d2e0d2f7de309dea1c028a6ca2de9a98521b8026f2b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

Release files / codeatlas_rs-0.8.0-cp39-abi3-macosx_11_0_arm64.whl

Download URL codeatlas_rs-0.8.0-cp39-abi3-macosx_11_0_arm64.whl
Size 2.2 MB
Tags CPython 3.9 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
321bed4428a9715f52a7b4d1e0125ac747a72ac807318aa1a30d2c388b6d3012
BLAKE2b-256 checksum
How to use checksums
c65264466b9e5ba9ad1ae5d8826fa7608e40ccd856d6e3e3f8249965358ae7ff
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

Security for codeatlas-rs 0.8.0

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.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

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