Skip to main content

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


Requirements

  • Python 3.12 or 3.13 — other versions are currently not supported.

Installation

The recommended way to install the CLI is with pipx, which automatically creates an isolated environment:

pipx install codeboarding --python python3.12 --pip-args="--extra-index-url https://pip.codeboarding.org/simple/"

Alternatively, install into an existing virtual environment with pip:

pip install codeboarding --extra-index-url https://pip.codeboarding.org/simple/

Installing into the global Python environment with pip is not recommended — it can cause dependency conflicts and will fail if the system Python is not 3.12 or 3.13.

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 full --local /path/to/repo

# Analyze a remote GitHub repository (cloned to cwd/repo_name/, output to cwd/repo_name/.codeboarding/)
codeboarding full 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=3,  # safety-valve cap; a component that outgrows the leaf ceiling is flagged expandable and can be expanded on demand
)
[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 full [REPO_URL ...]           # remote: clone + analyze
codeboarding full --local PATH             # local: analyze in-place
codeboarding incremental --local PATH      # re-analyze only changed parts
codeboarding partial --local PATH --component-id ID   # update one component
Option Description
--local PATH Analyze a local repository (output: PATH/.codeboarding/)
--depth-level INT Safety-valve depth cap (default: 3) on how deep auto-expansion goes; a component that outgrows the leaf ceiling is flagged expandable regardless, and can be expanded on demand
--force (full only) Force full reanalysis, skip cached static analysis
--base-ref REF / --target-ref REF (incremental only) Git refs to diff
--component-id ID (partial only) ID of the component to update
--binary-location PATH Custom path to language server binaries (overrides ~/.codeboarding/servers/)
--upload (full, remote only) Upload results to GeneratedOnBoardings repo
--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

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.13.3.tar.gz (415.2 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.13.3-py3-none-any.whl (463.1 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for codeboarding-0.13.3.tar.gz
Algorithm Hash digest
SHA256 7f008334e0c3ea16566a88b123ff513ac36e9d7adc6857cc74c473bd190e1f67
MD5 fa58182ea48d4fde5588af4e9a64f0b6
BLAKE2b-256 3f9db50ec5360e12be2bdd011ad6cef9f6b104e89412b12c413c976443f4828d

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for codeboarding-0.13.3-py3-none-any.whl
Algorithm Hash digest
SHA256 bd9ae9b6af485f899eeea1819af5deef69128ad12ec0edf3bb8ff858038004fa
MD5 e3c2e0cf9a52b79cff9aeceb8629c677
BLAKE2b-256 969c1dcf8b0e862e052e5e7683e67765468e506d0562c5e2386fcf63fe0425be

See more details on using hashes here.

Release history Release notifications | RSS feed

0.14.0

2 files

0.13.11

2 files

0.13.10

2 files

0.13.8

2 files

0.13.7

2 files

0.13.6

2 files

0.13.5

2 files

0.13.4

2 files

This release

0.13.3 This release

2 files

0.13.2

2 files

0.13.1

2 files

0.13.0

2 files

0.12.5

2 files

0.12.4

2 files

0.12.3

2 files

0.12.2

2 files

0.12.0

2 files

0.11.0

2 files

0.10.4

2 files

0.10.3

2 files

0.10.2

2 files

0.10.1

2 files

0.10.0

2 files

0.9.6

2 files

0.9.5

2 files

0.9.4

2 files

0.9.3

2 files

0.9.0

2 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