CodeBoarding/CodeBoarding

Interactive architecture diagrams for codebases

CodeBoarding – AI驱动的静态分析 + 架构映射

功能

  • 使用基于语言服务器的静态分析扫描代码库,提取符号及其关系,并将其分组为组件(高级模块、服务等)。
  • 将代表性片段发送到可配置的LLM(OpenAI、Anthropic、Ollama等),为每个组件生成简短、人类可读的描述。
  • 输出包含组件层次结构、依赖关系图、源代码位置和LLM生成描述的analysis.json。
  • JSON可在CodeBoarding Web UI、VS Code扩展中可视化,或转换为包含Mermaid图的文档(Markdown、HTML、MDX、reStructuredText)。
  • GitHub Action可以在每次拉取请求时运行分析,并发布一个地图,突出显示哪些组件和依赖关系发生了变化,帮助审查者查看diff的影响,而不仅仅是逐行更改。

重要性

  • 大型拉取请求通常涉及系统多个逻辑部分中的许多文件。从原始diff理解架构影响很困难。CodeBoarding将diff转换为简洁的组件级别视图,更容易发现新的依赖关系、潜在回归或隐藏耦合。
  • 通过使用LLM命名和描述组件,生成的地图保持最新且可读,无需开发人员手动编写文档。
  • 该工具支持多种流行语言(Python、TypeScript/JavaScript、Java、Kotlin、Go、PHP、Rust、C#),并可插入任何CI流水线。

入门指南

  1. 安装CLI – 推荐方式为pipx install codeboarding --python python3.12(或在虚拟环境中使用pip)。运行codeboarding-setup下载语言服务器二进制文件。
  2. 配置LLM提供商 – 使用OpenAI、Anthropic、Ollama等的API密钥编辑~/.codeboarding/config.toml(或设置环境变量),并可选设置agent_model。
  3. 运行分析 – 例如:codeboarding full --local /path/to/repo。输出位于repo/.codeboarding/analysis.json。
  4. 探索结果 – 打开Web平台(https://app.codeboarding.org)并加载生成的JSON,或使用VS Code扩展直接在编辑器中浏览组件地图。
  5. 可选渲染 – 添加--render md(或html、mdx、rst)自动生成文档文件。

典型工作流程

  • 完整分析 – 扫描整个仓库,构建组件层次结构并写入analysis.json。
  • 增量分析 – 在基线存在后,仅对更改的文件运行,并生成组件级别更改的diff。
  • 部分分析 – 当只需要更新小区域时,重新分析单个组件(由其数字ID标识)。
  • CI集成 – 将CodeBoarding GitHub Action添加到工作流中;每次PR时运行分析,与基础分支比较,并发布显示新增/删除依赖关系的可视化地图。

关键概念和文件

  • analysis.json – 包含组件树、关系、LLM生成描述和源代码引用的核心产物。
  • diagram_generation – 将JSON转换为用于Markdown/HTML输出的Mermaid图。
  • LLM_Planning_and_Analysis_Agents – 与配置的模型提供商通信以创建组件名称和摘要的部分。
  • Static_Analysis_Engine – 协调语言服务器查询,收集符号,并在聚类为组件之前构建原始图。
  • 环境变量如CODEBOARDING_MAX_CONCURRENT_ENGINES允许您调整并行运行的语言服务器数量;CODEBOARDING_LSP_REQUEST_TIMEOUT控制每个请求的超时时间。

适用场景

  • 本地开发 – 运行CLI生成最新的架构文档。
  • 代码审查 – 使用Web UI或VS Code视图一目了然地查看PR涉及的高级部分。
  • 文档流水线 – 从分析中自动渲染Markdown/HTML文档。
  • 团队入职 – 新成员无需阅读每个文件即可探索仓库架构。

资源


以上所有细节直接取自仓库的README;未推断任何额外功能。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • Dispatch