CodeBoarding/CodeBoarding

Interactive architecture diagrams for codebases

CodeBoarding – AI‑powered static‑analysis + architecture mapping

What it does

  • Scans a code base with language‑server based static analysis, extracts symbols and their relationships, and groups them into components (high‑level modules, services, etc.).
  • Sends representative snippets to a configurable LLM (OpenAI, Anthropic, Ollama, …) which writes short, human‑readable descriptions for each component.
  • Emits an analysis.json that contains the component hierarchy, dependency graph, source locations and the LLM‑generated descriptions.
  • The JSON can be visualised in the CodeBoarding web UI, a VS Code extension, or turned into documentation (Markdown, HTML, MDX, reStructuredText) with Mermaid diagrams.
  • A GitHub Action can run the analysis on every pull‑request and post a map that highlights which components and dependencies changed, helping reviewers see the impact of a diff instead of only line‑by‑line changes.

Why it matters

  • Large pull‑requests often touch many files spread across several logical parts of a system. Understanding the architectural impact is hard from a raw diff. CodeBoarding turns that diff into a concise component‑level view, making it easier to spot new dependencies, potential regressions, or hidden coupling.
  • By using LLMs to name and describe components, the generated maps stay up‑to‑date and readable without requiring developers to write documentation manually.
  • The tool works with many popular languages (Python, TypeScript/JavaScript, Java, Kotlin, Go, PHP, Rust, C#) and can be plugged into any CI pipeline.

How to get started

  1. Install the CLI – the recommended way is pipx install codeboarding --python python3.12 (or via pip in a virtualenv). Run codeboarding-setup to download language‑server binaries.
  2. Configure an LLM provider – edit ~/.codeboarding/config.toml (or set env vars) with an API key for OpenAI, Anthropic, Ollama, etc., and optionally set agent_model.
  3. Run an analysis – e.g. codeboarding full --local /path/to/repo. The output ends up in repo/.codeboarding/analysis.json.
  4. Explore the result – open the web platform (https://app.codeboarding.org) and load the generated JSON, or use the VS Code extension to browse the component map directly in the editor.
  5. Optional rendering – add --render md (or html, mdx, rst) to produce documentation files automatically.

Typical workflow

  • Full analysis – scans the whole repository, builds the component hierarchy and writes analysis.json.
  • Incremental analysis – after a baseline exists, runs only on changed files and produces a diff of component‑level changes.
  • Partial analysis – re‑analyses a single component (identified by its numeric ID) when you know only a small area needs updating.
  • CI integration – add the CodeBoarding GitHub Action to your workflow; on each PR it runs the analysis, compares it to the base branch, and posts a visual map showing new/removed dependencies.

Key concepts & files

  • analysis.json – the core artefact containing the component tree, relationships, LLM‑generated descriptions and source references.
  • diagram_generation – turns the JSON into Mermaid diagrams for Markdown/HTML output.
  • LLM_Planning_and_Analysis_Agents – the part that talks to the configured model provider to create component names and summaries.
  • Static_Analysis_Engine – orchestrates language‑server queries, collects symbols, and builds the raw graph before it is clustered into components.
  • Environment variables such as CODEBOARDING_MAX_CONCURRENT_ENGINES let you tune how many language servers run in parallel; CODEBOARDING_LSP_REQUEST_TIMEOUT controls per‑request timeouts.

Where it fits

  • Local development – run the CLI to generate up‑to‑date architecture docs.
  • Code review – use the web UI or VS Code view to see at a glance which high‑level parts a PR touches.
  • Documentation pipelines – render Markdown/HTML docs automatically from the analysis.
  • Team onboarding – new members can explore a repository’s architecture without reading every file.

Resources


All details above are taken directly from the repository’s README; no additional features are inferred.

Related

  • Project
  • Project
  • Project
  • Project
  • Dispatch