CodeBoarding/CodeBoarding
GitHub: CodeBoarding/CodeBoarding
CodeBoarding 结合静态分析与 LLM 推理,自动生成代码库的交互式架构图和组件文档,帮助开发者和 AI 智能体快速把握项目结构。
Stars: 1190 | Forks: 103
# CodeBoarding
在你的 AI 破坏代码之前,先看清它在构建什么。
CodeBoarding 为开发者和编码智能体提供了代码库的可视化地图。它结合了静态分析和 LLM 推理,生成架构图、组件级文档以及可在 IDE、CI 和文档中使用的可导航输出。
[官网](https://codeboarding.org) · [Open VSX 扩展](https://open-vsx.org/extension/CodeBoarding/codeboarding) · [浏览示例](https://codeboarding.org/diagrams) · [VS Code 扩展](https://marketplace.visualstudio.com/items?itemName=Codeboarding.codeboarding) · [GitHub Action](https://github.com/marketplace/actions/codeboarding-diagram-first-documentation) ·[Discord](https://discord.gg/T5zHTJYFuy)
[](https://open-vsx.org/extension/CodeBoarding/codeboarding)
从 Open VSX 安装扩展。
[](https://developer.mozilla.org/en-US/docs/Web/JavaScript)
[](https://www.typescriptlang.org/)
[](https://www.java.com/)
[](https://www.python.org/)
[](https://go.dev/)
[](https://www.php.net/)
## 几个使用案例:
- 在智能体编码时保持架构可见。
- 在 AI 生成的变更变成隐形债务之前,结合系统上下文进行审查。
- 通过分层图和组件分解,更快地理解大型代码库。
- 在本地工作流、IDE、Pull Request 和文档之间共享相同的可视化模型。
## CodeBoarding 生成什么
- 高层系统架构图。
- 针对重要子系统的深度组件图。
- 位于 `.codeboarding/` 中的 Markdown 文档。
- 易于嵌入文档和 PR 的 Mermaid 输出。
- 当仅部分代码库发生变化时进行增量更新。
## 工作原理
```
graph LR
Application_Orchestrator_Repository_Manager["Application Orchestrator & Repository Manager"]
LLM_Agent_Core["LLM Agent Core"]
Static_Code_Analyzer["Static Code Analyzer"]
Agent_Tooling_Interface["Agent Tooling Interface"]
Incremental_Analysis_Engine["Incremental Analysis Engine"]
Documentation_Diagram_Generator["Documentation & Diagram Generator"]
Application_Orchestrator_Repository_Manager -- "Orchestrator initiates analysis workflow, leveraging incremental updates based on detected code changes." --> Incremental_Analysis_Engine
Application_Orchestrator_Repository_Manager -- "Orchestrator passes project context and triggers the main analysis workflow for the LLM Agent." --> LLM_Agent_Core
Incremental_Analysis_Engine -- "Incremental engine requests static analysis for specific code segments (new or changed)." --> Static_Code_Analyzer
Static_Code_Analyzer -- "Static analyzer provides analysis results to the incremental engine for caching." --> Incremental_Analysis_Engine
LLM_Agent_Core -- "LLM Agent invokes specialized tools to interact with the codebase and analysis data." --> Agent_Tooling_Interface
Agent_Tooling_Interface -- "Agent tools query the static analysis engine for detailed code insights." --> Static_Code_Analyzer
Static_Code_Analyzer -- "Static analysis engine provides requested data to the agent tools." --> Agent_Tooling_Interface
LLM_Agent_Core -- "LLM Agent delivers structured analysis insights for documentation and diagram generation." --> Documentation_Diagram_Generator
click Application_Orchestrator_Repository_Manager href "https://github.com/CodeBoarding/CodeBoarding/blob/main/.codeboarding/Application_Orchestrator_Repository_Manager.md" "Details"
click LLM_Agent_Core href "https://github.com/CodeBoarding/CodeBoarding/blob/main/.codeboarding/LLM_Agent_Core.md" "Details"
click Static_Code_Analyzer href "https://github.com/CodeBoarding/CodeBoarding/blob/main/.codeboarding/Static_Code_Analyzer.md" "Details"
click Agent_Tooling_Interface href "https://github.com/CodeBoarding/CodeBoarding/blob/main/.codeboarding/Agent_Tooling_Interface.md" "Details"
click Incremental_Analysis_Engine href "https://github.com/CodeBoarding/CodeBoarding/blob/main/.codeboarding/Incremental_Analysis_Engine.md" "Details"
click Documentation_Diagram_Generator href "https://github.com/CodeBoarding/CodeBoarding/blob/main/.codeboarding/Documentation_Diagram_Generator.md" "Details"
```
想深入了解架构演示,请参阅 [`.codeboarding/overview.md`](.codeboarding/overview.md)。
## 快速开始
### 从源码运行
```
uv sync --frozen
source .venv/bin/activate # On Windows: .venv\Scripts\activate
python install.py
python main.py --local /path/to/repo
```
### 使用打包的 CLI
需要 **Python 3.12 或 3.13**。推荐的安装方法是使用 [pipx](https://pipx.pypa.io),它将 CLI 保留在其独立的隔离环境中:
```
pipx install codeboarding --python python3.12
codeboarding-setup
codeboarding --local /path/to/repo
```
或者,如果你偏好 pip,请安装到虚拟环境中(而非全局 Python):
```
pip install codeboarding
codeboarding-setup
codeboarding --local /path/to/repo
```
输出将写入 `/path/to/repo/.codeboarding/`。
`python install.py` 和 `codeboarding-setup` 会将语言服务器二进制文件下载到 `~/.codeboarding/servers/`,并在项目间共享。Python、TypeScript、JavaScript 和 PHP 语言服务器需要 `npm`;如果缺少,安装程序可以通过 `nodeenv` 进行安装。
## 配置
首次运行时,CodeBoarding 会创建 `~/.codeboarding/config.toml`。在其中设置一个提供商或使用环境变量。
```
[provider]
# openai_api_key = "sk-..."
# anthropic_api_key = "sk-ant-..."
# google_api_key = "AIza..."
# vercel_api_key = "vck_..."
# aws_bearer_token_bedrock = "..."
# ollama_base_url = "http://localhost:11434"
# openrouter_api_key = "sk-..."
[llm]
# agent_model = "gemini-3-flash"
# parsing_model = "gemini-3-flash"
```
Shell 环境变量(如 `OPENAI_API_KEY`、`ANTHROPIC_API_KEY`、`GOOGLE_API_KEY` 和 `OLLAMA_BASE_URL`)优先于配置文件。对于私有代码库,请在你的环境中设置 `GITHUB_TOKEN`。
## 常用命令
```
# 分析本地 repository
python main.py --local ./my-project
# 增加图表深度
python main.py --local ./my-project --depth-level 2
# 尽可能仅分析已更改的部分
python main.py --local ./my-project --incremental
# 通过 ID 更新单个组件
python main.py --local ./my-project --partial-component-id "1.2"
# 分析远程 GitHub repository
python main.py https://github.com/pytorch/pytorch
```
## 在哪里使用
- [CLI](https://github.com/CodeBoarding/CodeBoarding) 用于本地分析、自动化和 CI 工作流。
- [VS Code 扩展](https://marketplace.visualstudio.com/items?itemName=Codeboarding.codeboarding) 用于编辑器内的可视化架构。
- [GitHub Action](https://github.com/marketplace/actions/codeboarding-diagram-first-documentation) 用于在 CI 中保持图表更新。
## 支持的技术栈
- 语言:Python、TypeScript、JavaScript、Java、Go、PHP。
- LLM 提供商:OpenAI、Anthropic、Google、Vercel AI Gateway、AWS Bedrock、Ollama、OpenRouter 等。
## 示例
- 可视化了 800 多个开源代码库。
- 在 [GeneratedOnBoardings](https://github.com/CodeBoarding/GeneratedOnBoardings) 中浏览生成示例。
- 在 [codeboarding.org/diagrams](https://codeboarding.org/diagrams) 试用托管浏览器。
## 贡献
如果你想改进 CodeBoarding,请提交 [Issue](https://github.com/CodeBoarding/CodeBoarding/issues) 或发送 Pull Request。我们欢迎对分析质量、输出生成器、集成和开发者体验的改进。
## 愿景
CodeBoarding 正在构建一个用于代码理解的开放标准:一种人类和智能体都可以使用的、可视化、准确且高层次的代码库表示。
标签:AI 编程助手, C2, CI/CD 集成, DLL 劫持, GitHub Action, IDE插件, IPv6支持, Java RMI, JS文件枚举, SSH爆破, Subfinder, VS Code 扩展, WebSocket, 云安全监控, 代码可视化, 代码地图, 代码库管理, 代码理解, 依赖分析, 大语言模型, 威胁情报, 开发者工具, 技术文档自动化, 数据可视化, 日志审计, 智能文档, 架构图, 流程图, 软件架构, 逆向工具, 静态分析