Skip to main content

Interactive Diagrams for Code

Project description

CodeBoarding

Website Discord GitHub

CodeBoarding generates interactive architectural diagrams from any codebase using static analysis + LLM agents. It's built for developers and AI agents that need to understand large, complex systems quickly.

  • Extracts modules and relationships via control flow graph analysis (LSP-based, no runtime required)
  • Builds layered abstractions with an LLM agent (OpenAI, Anthropic, Google Gemini, Ollama, and more)
  • Outputs Mermaid.js diagrams ready for docs, IDEs, and CI/CD pipelines

Supported languages: Python · TypeScript · JavaScript · Java · Go · PHP


Installation

pip install codeboarding

Language server binaries are downloaded automatically on first use. To pre-install them explicitly (useful in CI or restricted environments):

codeboarding-setup

npm is required (used for Python, TypeScript, JavaScript, and PHP language servers). If npm is not found, it will be automatically installed during the setup. Binaries are stored in ~/.codeboarding/servers/ and shared across all projects.


Quick Start

CLI

# Analyze a local repository (output goes to /path/to/repo/.codeboarding/)
codeboarding --local /path/to/repo

# Analyze a remote GitHub repository (cloned to cwd/repo_name/, output to cwd/repo_name/.codeboarding/)
codeboarding https://github.com/user/repo

Python API

import json
from pathlib import Path
from diagram_analysis import DiagramGenerator, configure_models
from diagram_analysis.analysis_json import parse_unified_analysis

# Pass the key programmatically — shell env vars always take precedence if already set.
# Use the env-var name for whichever provider you want:
#   OPENAI_API_KEY, ANTHROPIC_API_KEY, GOOGLE_API_KEY, OLLAMA_BASE_URL, …
configure_models(api_keys={"OPENAI_API_KEY": "sk-..."})

repo_path = Path("/path/to/repo")
output_dir = repo_path / ".codeboarding"
output_dir.mkdir(parents=True, exist_ok=True)

# Generate the architectural diagram
generator = DiagramGenerator(
    repo_location=repo_path,
    temp_folder=output_dir,
    repo_name="my-project",
    output_dir=output_dir,
    depth_level=1,
)
[analysis_path] = generator.generate_analysis()

# Read and inspect the results
with open(analysis_path) as f:
    data = json.load(f)

root, sub_analyses = parse_unified_analysis(data)

print(root.description)
for comp in root.components:
    print(f"  {comp.name}: {comp.description}")
    if comp.component_id in sub_analyses:
        for sub in sub_analyses[comp.component_id].components:
            print(f"    └ {sub.name}")

Configuration

LLM provider keys and model overrides are stored in ~/.codeboarding/config.toml, created automatically on first run:

# ~/.codeboarding/config.toml

[provider]
# Uncomment exactly one provider key
# openai_api_key    = "sk-..."
# anthropic_api_key = "sk-ant-..."
# google_api_key    = "AIza..."
# ollama_base_url   = "http://localhost:11434"

[llm]
# Optional: override the default model for your active provider
# agent_model   = "gemini-3-flash"
# parsing_model = "gemini-3-flash"

Shell environment variables (OPENAI_API_KEY, ANTHROPIC_API_KEY, etc.) always take precedence over the config file, so CI/CD pipelines need no changes. For private repositories, set GITHUB_TOKEN in your environment.

Tip: Google Gemini 3 Pro consistently produces the best diagram quality for complex codebases.


CLI Reference

codeboarding [REPO_URL ...]           # remote: clone + analyze
codeboarding --local PATH             # local: analyze in-place
Option Description
--local PATH Analyze a local repository (output: PATH/.codeboarding/)
--depth-level INT Diagram depth (default: 1)
--incremental Smart incremental update (only re-analyze changed files)
--full Force full reanalysis, skip incremental detection
--partial-component-id ID Update a single component by its ID
--binary-location PATH Custom path to language server binaries (overrides ~/.codeboarding/servers/)
--upload Upload results to GeneratedOnBoardings repo (remote only)
--enable-monitoring Enable run monitoring

Integrations

  • VS Code Extension — browse diagrams directly in your IDE
  • GitHub Action — generate docs on every push
  • MCP Server — serve concise architecture docs to AI coding assistants (Claude Code, Cursor, etc.)

Links

Project details


Download files

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

Source Distribution

codeboarding-0.9.5.tar.gz (237.9 kB view details)

Uploaded Source

Built Distribution

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

codeboarding-0.9.5-py3-none-any.whl (285.7 kB view details)

Uploaded Python 3

File details

Details for the file codeboarding-0.9.5.tar.gz.

File metadata

  • Download URL: codeboarding-0.9.5.tar.gz
  • Upload date:
  • Size: 237.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.11

File hashes

Hashes for codeboarding-0.9.5.tar.gz
Algorithm Hash digest
SHA256 3fa395ca21e0b55d12e4562fab565f0b4e42ca8bd5808329657cdd377120c213
MD5 145f21fb2df8a73b273718da8d2bc839
BLAKE2b-256 e32fdd7f7ebb6414e20e0733c3955e8fa7e8dca4bb585922e392eb6d1307d35f

See more details on using hashes here.

File details

Details for the file codeboarding-0.9.5-py3-none-any.whl.

File metadata

  • Download URL: codeboarding-0.9.5-py3-none-any.whl
  • Upload date:
  • Size: 285.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.11

File hashes

Hashes for codeboarding-0.9.5-py3-none-any.whl
Algorithm Hash digest
SHA256 465ef7410d93fe13edcbf6eb647aacc4634de5e70c29c69c71337199f4efb1e6
MD5 294eaab222ee7db7312ba10d20dfc6a2
BLAKE2b-256 db7997e135a7cac90d5efbe13d22a41c271ed29fb8f2a12fd3e4caeb9d87c333

See more details on using hashes here.

Supported by

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