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流水线。
入门指南
- 安装CLI – 推荐方式为
pipx install codeboarding --python python3.12(或在虚拟环境中使用pip)。运行codeboarding-setup下载语言服务器二进制文件。 - 配置LLM提供商 – 使用OpenAI、Anthropic、Ollama等的API密钥编辑
~/.codeboarding/config.toml(或设置环境变量),并可选设置agent_model。 - 运行分析 – 例如:
codeboarding full --local /path/to/repo。输出位于repo/.codeboarding/analysis.json。 - 探索结果 – 打开Web平台(
https://app.codeboarding.org)并加载生成的JSON,或使用VS Code扩展直接在编辑器中浏览组件地图。 - 可选渲染 – 添加
--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文档。
- 团队入职 – 新成员无需阅读每个文件即可探索仓库架构。
资源
- Web平台和演示地图:https://app.codeboarding.org
- VS Code扩展:https://marketplace.visualstudio.com/items?itemName=Codeboarding.codeboarding
- 入门指南:https://codeboarding.org/getting-started
- GitHub Action:https://github.com/marketplace/actions/codeboarding-action
以上所有细节直接取自仓库的README;未推断任何额外功能。
相关
- 项目
- 项目
- 项目
- 项目
- Dispatch