codeboarding 0.9.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- codeboarding-0.9.0/LICENSE +21 -0
- codeboarding-0.9.0/PKG-INFO +223 -0
- codeboarding-0.9.0/PYPI.md +147 -0
- codeboarding-0.9.0/README.md +281 -0
- codeboarding-0.9.0/agents/__init__.py +0 -0
- codeboarding-0.9.0/agents/abstraction_agent.py +150 -0
- codeboarding-0.9.0/agents/agent.py +467 -0
- codeboarding-0.9.0/agents/agent_responses.py +363 -0
- codeboarding-0.9.0/agents/cluster_methods_mixin.py +281 -0
- codeboarding-0.9.0/agents/constants.py +13 -0
- codeboarding-0.9.0/agents/dependency_discovery.py +159 -0
- codeboarding-0.9.0/agents/details_agent.py +174 -0
- codeboarding-0.9.0/agents/llm_config.py +309 -0
- codeboarding-0.9.0/agents/meta_agent.py +105 -0
- codeboarding-0.9.0/agents/planner_agent.py +105 -0
- codeboarding-0.9.0/agents/prompts/__init__.py +85 -0
- codeboarding-0.9.0/agents/prompts/abstract_prompt_factory.py +63 -0
- codeboarding-0.9.0/agents/prompts/claude_prompts.py +381 -0
- codeboarding-0.9.0/agents/prompts/deepseek_prompts.py +389 -0
- codeboarding-0.9.0/agents/prompts/gemini_flash_prompts.py +362 -0
- codeboarding-0.9.0/agents/prompts/glm_prompts.py +407 -0
- codeboarding-0.9.0/agents/prompts/gpt_prompts.py +470 -0
- codeboarding-0.9.0/agents/prompts/kimi_prompts.py +400 -0
- codeboarding-0.9.0/agents/prompts/prompt_factory.py +179 -0
- codeboarding-0.9.0/agents/tools/__init__.py +8 -0
- codeboarding-0.9.0/agents/tools/base.py +96 -0
- codeboarding-0.9.0/agents/tools/get_external_deps.py +47 -0
- codeboarding-0.9.0/agents/tools/get_method_invocations.py +47 -0
- codeboarding-0.9.0/agents/tools/read_cfg.py +60 -0
- codeboarding-0.9.0/agents/tools/read_docs.py +132 -0
- codeboarding-0.9.0/agents/tools/read_file.py +90 -0
- codeboarding-0.9.0/agents/tools/read_file_structure.py +156 -0
- codeboarding-0.9.0/agents/tools/read_git_diff.py +131 -0
- codeboarding-0.9.0/agents/tools/read_packages.py +60 -0
- codeboarding-0.9.0/agents/tools/read_source.py +105 -0
- codeboarding-0.9.0/agents/tools/read_structure.py +49 -0
- codeboarding-0.9.0/agents/tools/toolkit.py +119 -0
- codeboarding-0.9.0/agents/validation.py +383 -0
- codeboarding-0.9.0/caching/__init__.py +4 -0
- codeboarding-0.9.0/caching/cache.py +29 -0
- codeboarding-0.9.0/caching/meta_cache.py +227 -0
- codeboarding-0.9.0/codeboarding.egg-info/PKG-INFO +223 -0
- codeboarding-0.9.0/codeboarding.egg-info/SOURCES.txt +138 -0
- codeboarding-0.9.0/codeboarding.egg-info/dependency_links.txt +1 -0
- codeboarding-0.9.0/codeboarding.egg-info/entry_points.txt +3 -0
- codeboarding-0.9.0/codeboarding.egg-info/requires.txt +57 -0
- codeboarding-0.9.0/codeboarding.egg-info/top_level.txt +18 -0
- codeboarding-0.9.0/core/__init__.py +101 -0
- codeboarding-0.9.0/core/plugin_loader.py +46 -0
- codeboarding-0.9.0/core/protocols.py +27 -0
- codeboarding-0.9.0/core/registry.py +46 -0
- codeboarding-0.9.0/diagram_analysis/__init__.py +4 -0
- codeboarding-0.9.0/diagram_analysis/analysis_json.py +346 -0
- codeboarding-0.9.0/diagram_analysis/diagram_generator.py +486 -0
- codeboarding-0.9.0/diagram_analysis/file_coverage.py +212 -0
- codeboarding-0.9.0/diagram_analysis/incremental/__init__.py +63 -0
- codeboarding-0.9.0/diagram_analysis/incremental/component_checker.py +236 -0
- codeboarding-0.9.0/diagram_analysis/incremental/file_manager.py +217 -0
- codeboarding-0.9.0/diagram_analysis/incremental/impact_analyzer.py +238 -0
- codeboarding-0.9.0/diagram_analysis/incremental/io_utils.py +281 -0
- codeboarding-0.9.0/diagram_analysis/incremental/models.py +72 -0
- codeboarding-0.9.0/diagram_analysis/incremental/path_patching.py +164 -0
- codeboarding-0.9.0/diagram_analysis/incremental/reexpansion.py +166 -0
- codeboarding-0.9.0/diagram_analysis/incremental/scoped_analysis.py +227 -0
- codeboarding-0.9.0/diagram_analysis/incremental/updater.py +464 -0
- codeboarding-0.9.0/diagram_analysis/incremental/validation.py +48 -0
- codeboarding-0.9.0/diagram_analysis/manifest.py +152 -0
- codeboarding-0.9.0/diagram_analysis/version.py +6 -0
- codeboarding-0.9.0/duckdb_crud.py +125 -0
- codeboarding-0.9.0/github_action.py +172 -0
- codeboarding-0.9.0/health/__init__.py +3 -0
- codeboarding-0.9.0/health/checks/__init__.py +11 -0
- codeboarding-0.9.0/health/checks/circular_deps.py +48 -0
- codeboarding-0.9.0/health/checks/cohesion.py +93 -0
- codeboarding-0.9.0/health/checks/coupling.py +140 -0
- codeboarding-0.9.0/health/checks/function_size.py +85 -0
- codeboarding-0.9.0/health/checks/god_class.py +167 -0
- codeboarding-0.9.0/health/checks/inheritance.py +104 -0
- codeboarding-0.9.0/health/checks/instability.py +77 -0
- codeboarding-0.9.0/health/checks/unused_code_diagnostics.py +338 -0
- codeboarding-0.9.0/health/config.py +172 -0
- codeboarding-0.9.0/health/constants.py +19 -0
- codeboarding-0.9.0/health/models.py +186 -0
- codeboarding-0.9.0/health/runner.py +236 -0
- codeboarding-0.9.0/health_main.py +122 -0
- codeboarding-0.9.0/install.py +518 -0
- codeboarding-0.9.0/logging_config.py +105 -0
- codeboarding-0.9.0/main.py +529 -0
- codeboarding-0.9.0/monitoring/__init__.py +12 -0
- codeboarding-0.9.0/monitoring/callbacks.py +163 -0
- codeboarding-0.9.0/monitoring/context.py +158 -0
- codeboarding-0.9.0/monitoring/mixin.py +16 -0
- codeboarding-0.9.0/monitoring/paths.py +47 -0
- codeboarding-0.9.0/monitoring/stats.py +50 -0
- codeboarding-0.9.0/monitoring/writers.py +172 -0
- codeboarding-0.9.0/output_generators/__init__.py +0 -0
- codeboarding-0.9.0/output_generators/html.py +163 -0
- codeboarding-0.9.0/output_generators/html_template.py +382 -0
- codeboarding-0.9.0/output_generators/markdown.py +140 -0
- codeboarding-0.9.0/output_generators/mdx.py +171 -0
- codeboarding-0.9.0/output_generators/sphinx.py +175 -0
- codeboarding-0.9.0/pyproject.toml +136 -0
- codeboarding-0.9.0/repo_utils/__init__.py +277 -0
- codeboarding-0.9.0/repo_utils/change_detector.py +289 -0
- codeboarding-0.9.0/repo_utils/errors.py +6 -0
- codeboarding-0.9.0/repo_utils/git_diff.py +74 -0
- codeboarding-0.9.0/repo_utils/ignore.py +341 -0
- codeboarding-0.9.0/setup.cfg +4 -0
- codeboarding-0.9.0/static_analyzer/__init__.py +335 -0
- codeboarding-0.9.0/static_analyzer/analysis_cache.py +699 -0
- codeboarding-0.9.0/static_analyzer/analysis_result.py +269 -0
- codeboarding-0.9.0/static_analyzer/cluster_change_analyzer.py +391 -0
- codeboarding-0.9.0/static_analyzer/cluster_helpers.py +79 -0
- codeboarding-0.9.0/static_analyzer/constants.py +166 -0
- codeboarding-0.9.0/static_analyzer/git_diff_analyzer.py +224 -0
- codeboarding-0.9.0/static_analyzer/graph.py +746 -0
- codeboarding-0.9.0/static_analyzer/incremental_orchestrator.py +671 -0
- codeboarding-0.9.0/static_analyzer/java_config_scanner.py +232 -0
- codeboarding-0.9.0/static_analyzer/java_utils.py +227 -0
- codeboarding-0.9.0/static_analyzer/lsp_client/__init__.py +12 -0
- codeboarding-0.9.0/static_analyzer/lsp_client/client.py +1642 -0
- codeboarding-0.9.0/static_analyzer/lsp_client/diagnostics.py +62 -0
- codeboarding-0.9.0/static_analyzer/lsp_client/java_client.py +517 -0
- codeboarding-0.9.0/static_analyzer/lsp_client/language_settings.py +97 -0
- codeboarding-0.9.0/static_analyzer/lsp_client/typescript_client.py +235 -0
- codeboarding-0.9.0/static_analyzer/programming_language.py +152 -0
- codeboarding-0.9.0/static_analyzer/reference_resolve_mixin.py +166 -0
- codeboarding-0.9.0/static_analyzer/scanner.py +95 -0
- codeboarding-0.9.0/static_analyzer/typescript_config_scanner.py +54 -0
- codeboarding-0.9.0/tests/test_github_action.py +420 -0
- codeboarding-0.9.0/tests/test_incremental_analyzer.py +204 -0
- codeboarding-0.9.0/tests/test_install.py +51 -0
- codeboarding-0.9.0/tests/test_logging_config.py +177 -0
- codeboarding-0.9.0/tests/test_main.py +470 -0
- codeboarding-0.9.0/tests/test_vscode_constants.py +239 -0
- codeboarding-0.9.0/tests/test_windows_compatibility.py +53 -0
- codeboarding-0.9.0/tool_registry.py +433 -0
- codeboarding-0.9.0/user_config.py +134 -0
- codeboarding-0.9.0/utils.py +56 -0
- codeboarding-0.9.0/vscode_constants.py +124 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 CodeBoarding
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: codeboarding
|
|
3
|
+
Version: 0.9.0
|
|
4
|
+
Summary: Interactive Diagrams for Code
|
|
5
|
+
Author: CodeBoarding Team
|
|
6
|
+
License: MIT
|
|
7
|
+
Project-URL: Repository, https://github.com/CodeBoarding/CodeBoarding
|
|
8
|
+
Project-URL: Documentation, https://github.com/CodeBoarding/CodeBoarding/blob/main/.codeboarding/overview.md
|
|
9
|
+
Keywords: code-understanding,code-visualization,code-analysis,diagrams,documentation,llm,static-analysis,mermaid,onboarding
|
|
10
|
+
Classifier: Development Status :: 4 - Beta
|
|
11
|
+
Classifier: Intended Audience :: Developers
|
|
12
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
15
|
+
Classifier: Topic :: Software Development :: Documentation
|
|
16
|
+
Classifier: Topic :: Software Development :: Code Generators
|
|
17
|
+
Requires-Python: <3.14,>=3.12
|
|
18
|
+
Description-Content-Type: text/markdown
|
|
19
|
+
License-File: LICENSE
|
|
20
|
+
Requires-Dist: asgiref>=3.9
|
|
21
|
+
Requires-Dist: async-timeout>=4.0
|
|
22
|
+
Requires-Dist: docker>=7.1
|
|
23
|
+
Requires-Dist: dotenv>=0.9
|
|
24
|
+
Requires-Dist: duckdb>=1.3
|
|
25
|
+
Requires-Dist: dulwich>=0.22
|
|
26
|
+
Requires-Dist: email-validator>=2.2
|
|
27
|
+
Requires-Dist: exceptiongroup>=1.2
|
|
28
|
+
Requires-Dist: fastapi>=0.115
|
|
29
|
+
Requires-Dist: filelock>=3.12
|
|
30
|
+
Requires-Dist: gitpython>=3.1
|
|
31
|
+
Requires-Dist: google-genai>=1.10
|
|
32
|
+
Requires-Dist: gql>=3.5
|
|
33
|
+
Requires-Dist: injector>=0.21
|
|
34
|
+
Requires-Dist: ipykernel>=6.29
|
|
35
|
+
Requires-Dist: isort>=6.0
|
|
36
|
+
Requires-Dist: jsonschema>=4.25
|
|
37
|
+
Requires-Dist: langchain>=1.2
|
|
38
|
+
Requires-Dist: langchain-anthropic>=1.3
|
|
39
|
+
Requires-Dist: langchain-aws>=1.1
|
|
40
|
+
Requires-Dist: langchain-cerebras>=0.8
|
|
41
|
+
Requires-Dist: langchain-community>=0.4
|
|
42
|
+
Requires-Dist: langchain-google-genai>=3.1
|
|
43
|
+
Requires-Dist: langchain-ollama>=1.0
|
|
44
|
+
Requires-Dist: langchain-openai>=1.1
|
|
45
|
+
Requires-Dist: markdown>=3.8
|
|
46
|
+
Requires-Dist: markdown-it-py>=3.0
|
|
47
|
+
Requires-Dist: markitdown>=0.1
|
|
48
|
+
Requires-Dist: matplotlib>=3.10
|
|
49
|
+
Requires-Dist: networkx>=3.4
|
|
50
|
+
Requires-Dist: openpyxl>=3.1
|
|
51
|
+
Requires-Dist: pandas>=2.2
|
|
52
|
+
Requires-Dist: pathspec>=0.12
|
|
53
|
+
Requires-Dist: pydot>=3.0
|
|
54
|
+
Requires-Dist: pyyaml>=6.0
|
|
55
|
+
Requires-Dist: regex>=2024.11
|
|
56
|
+
Requires-Dist: rich>=12.6
|
|
57
|
+
Requires-Dist: seaborn>=0.13
|
|
58
|
+
Requires-Dist: tomli>=2.2
|
|
59
|
+
Requires-Dist: trustcall>=0.0.39
|
|
60
|
+
Requires-Dist: typer>=0.9
|
|
61
|
+
Requires-Dist: uvicorn>=0.23
|
|
62
|
+
Requires-Dist: wcwidth>=0.2.13
|
|
63
|
+
Provides-Extra: dev
|
|
64
|
+
Requires-Dist: pytest>=8.3; extra == "dev"
|
|
65
|
+
Requires-Dist: pytest-cov>=7.0; extra == "dev"
|
|
66
|
+
Requires-Dist: black>=25.9; extra == "dev"
|
|
67
|
+
Requires-Dist: mypy>=1.19; extra == "dev"
|
|
68
|
+
Requires-Dist: pre-commit>=3.8; extra == "dev"
|
|
69
|
+
Provides-Extra: all
|
|
70
|
+
Requires-Dist: codeboarding[dev]; extra == "all"
|
|
71
|
+
Requires-Dist: pylint>=3.3; extra == "all"
|
|
72
|
+
Requires-Dist: pyright>=1.1; extra == "all"
|
|
73
|
+
Requires-Dist: pyinstaller>=6.13; extra == "all"
|
|
74
|
+
Requires-Dist: memory-profiler>=0.61; extra == "all"
|
|
75
|
+
Dynamic: license-file
|
|
76
|
+
|
|
77
|
+
# CodeBoarding
|
|
78
|
+
|
|
79
|
+
[](https://codeboarding.org)
|
|
80
|
+
[](https://discord.gg/T5zHTJYFuy)
|
|
81
|
+
[](https://github.com/CodeBoarding/CodeBoarding)
|
|
82
|
+
|
|
83
|
+
**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.
|
|
84
|
+
|
|
85
|
+
- Extracts modules and relationships via control flow graph analysis (LSP-based, no runtime required)
|
|
86
|
+
- Builds layered abstractions with an LLM agent (OpenAI, Anthropic, Google Gemini, Ollama, and more)
|
|
87
|
+
- Outputs Mermaid.js diagrams ready for docs, IDEs, and CI/CD pipelines
|
|
88
|
+
|
|
89
|
+
**Supported languages:** Python ยท TypeScript ยท JavaScript ยท Java ยท Go ยท PHP
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## Installation
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
pip install codeboarding
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
Language server binaries are downloaded automatically on first use. To pre-install them explicitly (useful in CI or restricted environments):
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
codeboarding-setup
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
> `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.
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
## Quick Start
|
|
110
|
+
|
|
111
|
+
### CLI
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
# Analyze a local repository (output goes to /path/to/repo/.codeboarding/)
|
|
115
|
+
codeboarding --local /path/to/repo
|
|
116
|
+
|
|
117
|
+
# Analyze a remote GitHub repository (cloned to cwd/repo_name/, output to cwd/repo_name/.codeboarding/)
|
|
118
|
+
codeboarding https://github.com/user/repo
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
### Python API
|
|
122
|
+
|
|
123
|
+
```python
|
|
124
|
+
import json
|
|
125
|
+
from pathlib import Path
|
|
126
|
+
from diagram_analysis import DiagramGenerator, configure_models
|
|
127
|
+
from diagram_analysis.analysis_json import parse_unified_analysis
|
|
128
|
+
|
|
129
|
+
# Pass the key programmatically โ shell env vars always take precedence if already set.
|
|
130
|
+
# Use the env-var name for whichever provider you want:
|
|
131
|
+
# OPENAI_API_KEY, ANTHROPIC_API_KEY, GOOGLE_API_KEY, OLLAMA_BASE_URL, โฆ
|
|
132
|
+
configure_models(api_keys={"OPENAI_API_KEY": "sk-..."})
|
|
133
|
+
|
|
134
|
+
repo_path = Path("/path/to/repo")
|
|
135
|
+
output_dir = repo_path / ".codeboarding"
|
|
136
|
+
output_dir.mkdir(parents=True, exist_ok=True)
|
|
137
|
+
|
|
138
|
+
# Generate the architectural diagram
|
|
139
|
+
generator = DiagramGenerator(
|
|
140
|
+
repo_location=repo_path,
|
|
141
|
+
temp_folder=output_dir,
|
|
142
|
+
repo_name="my-project",
|
|
143
|
+
output_dir=output_dir,
|
|
144
|
+
depth_level=1,
|
|
145
|
+
)
|
|
146
|
+
[analysis_path] = generator.generate_analysis()
|
|
147
|
+
|
|
148
|
+
# Read and inspect the results
|
|
149
|
+
with open(analysis_path) as f:
|
|
150
|
+
data = json.load(f)
|
|
151
|
+
|
|
152
|
+
root, sub_analyses = parse_unified_analysis(data)
|
|
153
|
+
|
|
154
|
+
print(root.description)
|
|
155
|
+
for comp in root.components:
|
|
156
|
+
print(f" {comp.name}: {comp.description}")
|
|
157
|
+
if comp.component_id in sub_analyses:
|
|
158
|
+
for sub in sub_analyses[comp.component_id].components:
|
|
159
|
+
print(f" โ {sub.name}")
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
---
|
|
163
|
+
|
|
164
|
+
## Configuration
|
|
165
|
+
|
|
166
|
+
LLM provider keys and model overrides are stored in `~/.codeboarding/config.toml`, created automatically on first run:
|
|
167
|
+
|
|
168
|
+
```toml
|
|
169
|
+
# ~/.codeboarding/config.toml
|
|
170
|
+
|
|
171
|
+
[provider]
|
|
172
|
+
# Uncomment exactly one provider key
|
|
173
|
+
# openai_api_key = "sk-..."
|
|
174
|
+
# anthropic_api_key = "sk-ant-..."
|
|
175
|
+
# google_api_key = "AIza..."
|
|
176
|
+
# ollama_base_url = "http://localhost:11434"
|
|
177
|
+
|
|
178
|
+
[llm]
|
|
179
|
+
# Optional: override the default model for your active provider
|
|
180
|
+
# agent_model = "gemini-3-flash"
|
|
181
|
+
# parsing_model = "gemini-3-flash"
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
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.
|
|
185
|
+
|
|
186
|
+
> **Tip:** Google Gemini 3 Pro consistently produces the best diagram quality for complex codebases.
|
|
187
|
+
|
|
188
|
+
---
|
|
189
|
+
|
|
190
|
+
## CLI Reference
|
|
191
|
+
|
|
192
|
+
```
|
|
193
|
+
codeboarding [REPO_URL ...] # remote: clone + analyze
|
|
194
|
+
codeboarding --local PATH # local: analyze in-place
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
| Option | Description |
|
|
198
|
+
|---|---|
|
|
199
|
+
| `--local PATH` | Analyze a local repository (output: `PATH/.codeboarding/`) |
|
|
200
|
+
| `--depth-level INT` | Diagram depth (default: 1) |
|
|
201
|
+
| `--incremental` | Smart incremental update (only re-analyze changed files) |
|
|
202
|
+
| `--full` | Force full reanalysis, skip incremental detection |
|
|
203
|
+
| `--partial-component-id ID` | Update a single component by its ID |
|
|
204
|
+
| `--binary-location PATH` | Custom path to language server binaries (overrides `~/.codeboarding/servers/`) |
|
|
205
|
+
| `--upload` | Upload results to GeneratedOnBoardings repo (remote only) |
|
|
206
|
+
| `--enable-monitoring` | Enable run monitoring |
|
|
207
|
+
|
|
208
|
+
---
|
|
209
|
+
|
|
210
|
+
## Integrations
|
|
211
|
+
|
|
212
|
+
- **[VS Code Extension](https://marketplace.visualstudio.com/items?itemName=Codeboarding.codeboarding)** โ browse diagrams directly in your IDE
|
|
213
|
+
- **[GitHub Action](https://github.com/marketplace/actions/codeboarding-diagram-first-documentation)** โ generate docs on every push
|
|
214
|
+
- **[MCP Server](https://github.com/CodeBoarding/CodeBoarding-MCP)** โ serve concise architecture docs to AI coding assistants (Claude Code, Cursor, etc.)
|
|
215
|
+
|
|
216
|
+
---
|
|
217
|
+
|
|
218
|
+
## Links
|
|
219
|
+
|
|
220
|
+
- [Source code](https://github.com/CodeBoarding/CodeBoarding)
|
|
221
|
+
- [Example diagrams (800+ open-source projects)](https://github.com/CodeBoarding/GeneratedOnBoardings)
|
|
222
|
+
- [Architecture documentation](https://github.com/CodeBoarding/CodeBoarding/blob/main/.codeboarding/overview.md)
|
|
223
|
+
- [Discord community](https://discord.gg/T5zHTJYFuy)
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
# CodeBoarding
|
|
2
|
+
|
|
3
|
+
[](https://codeboarding.org)
|
|
4
|
+
[](https://discord.gg/T5zHTJYFuy)
|
|
5
|
+
[](https://github.com/CodeBoarding/CodeBoarding)
|
|
6
|
+
|
|
7
|
+
**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.
|
|
8
|
+
|
|
9
|
+
- Extracts modules and relationships via control flow graph analysis (LSP-based, no runtime required)
|
|
10
|
+
- Builds layered abstractions with an LLM agent (OpenAI, Anthropic, Google Gemini, Ollama, and more)
|
|
11
|
+
- Outputs Mermaid.js diagrams ready for docs, IDEs, and CI/CD pipelines
|
|
12
|
+
|
|
13
|
+
**Supported languages:** Python ยท TypeScript ยท JavaScript ยท Java ยท Go ยท PHP
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## Installation
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
pip install codeboarding
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Language server binaries are downloaded automatically on first use. To pre-install them explicitly (useful in CI or restricted environments):
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
codeboarding-setup
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
> `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.
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## Quick Start
|
|
34
|
+
|
|
35
|
+
### CLI
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
# Analyze a local repository (output goes to /path/to/repo/.codeboarding/)
|
|
39
|
+
codeboarding --local /path/to/repo
|
|
40
|
+
|
|
41
|
+
# Analyze a remote GitHub repository (cloned to cwd/repo_name/, output to cwd/repo_name/.codeboarding/)
|
|
42
|
+
codeboarding https://github.com/user/repo
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### Python API
|
|
46
|
+
|
|
47
|
+
```python
|
|
48
|
+
import json
|
|
49
|
+
from pathlib import Path
|
|
50
|
+
from diagram_analysis import DiagramGenerator, configure_models
|
|
51
|
+
from diagram_analysis.analysis_json import parse_unified_analysis
|
|
52
|
+
|
|
53
|
+
# Pass the key programmatically โ shell env vars always take precedence if already set.
|
|
54
|
+
# Use the env-var name for whichever provider you want:
|
|
55
|
+
# OPENAI_API_KEY, ANTHROPIC_API_KEY, GOOGLE_API_KEY, OLLAMA_BASE_URL, โฆ
|
|
56
|
+
configure_models(api_keys={"OPENAI_API_KEY": "sk-..."})
|
|
57
|
+
|
|
58
|
+
repo_path = Path("/path/to/repo")
|
|
59
|
+
output_dir = repo_path / ".codeboarding"
|
|
60
|
+
output_dir.mkdir(parents=True, exist_ok=True)
|
|
61
|
+
|
|
62
|
+
# Generate the architectural diagram
|
|
63
|
+
generator = DiagramGenerator(
|
|
64
|
+
repo_location=repo_path,
|
|
65
|
+
temp_folder=output_dir,
|
|
66
|
+
repo_name="my-project",
|
|
67
|
+
output_dir=output_dir,
|
|
68
|
+
depth_level=1,
|
|
69
|
+
)
|
|
70
|
+
[analysis_path] = generator.generate_analysis()
|
|
71
|
+
|
|
72
|
+
# Read and inspect the results
|
|
73
|
+
with open(analysis_path) as f:
|
|
74
|
+
data = json.load(f)
|
|
75
|
+
|
|
76
|
+
root, sub_analyses = parse_unified_analysis(data)
|
|
77
|
+
|
|
78
|
+
print(root.description)
|
|
79
|
+
for comp in root.components:
|
|
80
|
+
print(f" {comp.name}: {comp.description}")
|
|
81
|
+
if comp.component_id in sub_analyses:
|
|
82
|
+
for sub in sub_analyses[comp.component_id].components:
|
|
83
|
+
print(f" โ {sub.name}")
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
## Configuration
|
|
89
|
+
|
|
90
|
+
LLM provider keys and model overrides are stored in `~/.codeboarding/config.toml`, created automatically on first run:
|
|
91
|
+
|
|
92
|
+
```toml
|
|
93
|
+
# ~/.codeboarding/config.toml
|
|
94
|
+
|
|
95
|
+
[provider]
|
|
96
|
+
# Uncomment exactly one provider key
|
|
97
|
+
# openai_api_key = "sk-..."
|
|
98
|
+
# anthropic_api_key = "sk-ant-..."
|
|
99
|
+
# google_api_key = "AIza..."
|
|
100
|
+
# ollama_base_url = "http://localhost:11434"
|
|
101
|
+
|
|
102
|
+
[llm]
|
|
103
|
+
# Optional: override the default model for your active provider
|
|
104
|
+
# agent_model = "gemini-3-flash"
|
|
105
|
+
# parsing_model = "gemini-3-flash"
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
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.
|
|
109
|
+
|
|
110
|
+
> **Tip:** Google Gemini 3 Pro consistently produces the best diagram quality for complex codebases.
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
## CLI Reference
|
|
115
|
+
|
|
116
|
+
```
|
|
117
|
+
codeboarding [REPO_URL ...] # remote: clone + analyze
|
|
118
|
+
codeboarding --local PATH # local: analyze in-place
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
| Option | Description |
|
|
122
|
+
|---|---|
|
|
123
|
+
| `--local PATH` | Analyze a local repository (output: `PATH/.codeboarding/`) |
|
|
124
|
+
| `--depth-level INT` | Diagram depth (default: 1) |
|
|
125
|
+
| `--incremental` | Smart incremental update (only re-analyze changed files) |
|
|
126
|
+
| `--full` | Force full reanalysis, skip incremental detection |
|
|
127
|
+
| `--partial-component-id ID` | Update a single component by its ID |
|
|
128
|
+
| `--binary-location PATH` | Custom path to language server binaries (overrides `~/.codeboarding/servers/`) |
|
|
129
|
+
| `--upload` | Upload results to GeneratedOnBoardings repo (remote only) |
|
|
130
|
+
| `--enable-monitoring` | Enable run monitoring |
|
|
131
|
+
|
|
132
|
+
---
|
|
133
|
+
|
|
134
|
+
## Integrations
|
|
135
|
+
|
|
136
|
+
- **[VS Code Extension](https://marketplace.visualstudio.com/items?itemName=Codeboarding.codeboarding)** โ browse diagrams directly in your IDE
|
|
137
|
+
- **[GitHub Action](https://github.com/marketplace/actions/codeboarding-diagram-first-documentation)** โ generate docs on every push
|
|
138
|
+
- **[MCP Server](https://github.com/CodeBoarding/CodeBoarding-MCP)** โ serve concise architecture docs to AI coding assistants (Claude Code, Cursor, etc.)
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
## Links
|
|
143
|
+
|
|
144
|
+
- [Source code](https://github.com/CodeBoarding/CodeBoarding)
|
|
145
|
+
- [Example diagrams (800+ open-source projects)](https://github.com/CodeBoarding/GeneratedOnBoardings)
|
|
146
|
+
- [Architecture documentation](https://github.com/CodeBoarding/CodeBoarding/blob/main/.codeboarding/overview.md)
|
|
147
|
+
- [Discord community](https://discord.gg/T5zHTJYFuy)
|
|
@@ -0,0 +1,281 @@
|
|
|
1
|
+
# <img src="./icon.svg" alt="CodeBoarding Logo" width="30" height="30" style="vertical-align: middle;"> CodeBoarding
|
|
2
|
+
|
|
3
|
+
[](https://codeboarding.org)
|
|
4
|
+
[](https://discord.gg/T5zHTJYFuy)
|
|
5
|
+
[](https://marketplace.visualstudio.com/items?itemName=Codeboarding.codeboarding)
|
|
6
|
+
[](https://open-vsx.org/extension/CodeBoarding/codeboarding)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
**Supported Languages:**
|
|
11
|
+
|
|
12
|
+
[](https://www.python.org/)
|
|
13
|
+
[](https://www.typescriptlang.org/)
|
|
14
|
+
[](https://developer.mozilla.org/en-US/docs/Web/JavaScript)
|
|
15
|
+
[](https://www.java.com/)
|
|
16
|
+
[](https://go.dev/)
|
|
17
|
+
[](https://www.php.net/)
|
|
18
|
+
|
|
19
|
+
**CodeBoarding** is an open-source codebase analysis tool that generates high-level diagram representations of codebases
|
|
20
|
+
using static analysis and LLM agents, that humans and agents can interact with.
|
|
21
|
+
Itโs designed to support onboarding, documentation, and comprehension for large, complex systems.
|
|
22
|
+
|
|
23
|
+
- Extract modules and their relationships based on the control flow graph of the project.
|
|
24
|
+
- Builds different levels of abstraction with an LLM agent (multi-provider support) using remote or local inference.
|
|
25
|
+
- Outputs interactive diagrams (Mermaid.js) for integration into docs, IDEs, CI/CD.
|
|
26
|
+
|
|
27
|
+
๐ Existing visual generations: [GeneratedOnBoardings](https://github.com/CodeBoarding/GeneratedOnBoardings)
|
|
28
|
+
๐ Try for your open-source project: [www.codeboarding.org/diagrams](https://www.codeboarding.org/diagrams)
|
|
29
|
+
|
|
30
|
+
## ๐งฉ How it works
|
|
31
|
+
|
|
32
|
+
For detailed architecture information, see our [diagram documentation](.codeboarding/overview.md).
|
|
33
|
+
|
|
34
|
+
```mermaid
|
|
35
|
+
graph LR
|
|
36
|
+
API_Service["API Service"]
|
|
37
|
+
Job_Database["Job Database"]
|
|
38
|
+
Orchestration_Engine["Orchestration Engine"]
|
|
39
|
+
Repository_Manager["Repository Manager"]
|
|
40
|
+
Static_Analysis_Engine["Static Analysis Engine"]
|
|
41
|
+
AI_Interpretation_Layer["AI Interpretation Layer"]
|
|
42
|
+
Output_Generation_Engine["Output Generation Engine"]
|
|
43
|
+
Unclassified["Unclassified"]
|
|
44
|
+
API_Service -- " Initiates Job " --> Job_Database
|
|
45
|
+
API_Service -- " Triggers Analysis " --> Orchestration_Engine
|
|
46
|
+
Orchestration_Engine -- " Manages Job State " --> Job_Database
|
|
47
|
+
Orchestration_Engine -- " Requests Code " --> Repository_Manager
|
|
48
|
+
Repository_Manager -- " Provides Code " --> Orchestration_Engine
|
|
49
|
+
Orchestration_Engine -- " Requests Static Analysis " --> Static_Analysis_Engine
|
|
50
|
+
Static_Analysis_Engine -- " Provides Richer Analysis Results " --> Orchestration_Engine
|
|
51
|
+
Orchestration_Engine -- " Feeds Rich Analysis Data " --> AI_Interpretation_Layer
|
|
52
|
+
AI_Interpretation_Layer -- " Returns Enhanced Architectural Insights " --> Orchestration_Engine
|
|
53
|
+
AI_Interpretation_Layer -- " Queries Diff " --> Repository_Manager
|
|
54
|
+
Orchestration_Engine -- " Passes Enhanced Insights for Generation " --> Output_Generation_Engine
|
|
55
|
+
Output_Generation_Engine -- " Delivers Documentation " --> API_Service
|
|
56
|
+
click Job_Database href "https://github.com/CodeBoarding/CodeBoarding/blob/main/.codeboarding/Job_Database.md" "Details"
|
|
57
|
+
click Orchestration_Engine href "https://github.com/CodeBoarding/CodeBoarding/blob/main/.codeboarding/Orchestration_Engine.md" "Details"
|
|
58
|
+
click Repository_Manager href "https://github.com/CodeBoarding/CodeBoarding/blob/main/.codeboarding/Repository_Manager.md" "Details"
|
|
59
|
+
click Static_Analysis_Engine href "https://github.com/CodeBoarding/CodeBoarding/blob/main/.codeboarding/Static_Analysis_Engine.md" "Details"
|
|
60
|
+
click AI_Interpretation_Layer href "https://github.com/CodeBoarding/CodeBoarding/blob/main/.codeboarding/AI_Interpretation_Layer.md" "Details"
|
|
61
|
+
click Output_Generation_Engine href "https://github.com/CodeBoarding/CodeBoarding/blob/main/.codeboarding/Output_Generation_Engine.md" "Details"
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
## ๐ Setup
|
|
65
|
+
|
|
66
|
+
First, make sure you have uv installed. Check the official installation guide: [Installing UV](https://docs.astral.sh/uv/getting-started/installation/).
|
|
67
|
+
|
|
68
|
+
Set up the environment:
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
uv sync --frozen
|
|
72
|
+
source .venv/bin/activate # On Windows: .venv\Scripts\activate
|
|
73
|
+
python install.py
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
> [!IMPORTANT]
|
|
77
|
+
> `python install.py` downloads language server binaries to `~/.codeboarding/servers/` (shared across all projects).
|
|
78
|
+
> `npm` is required (used for Python, TypeScript, JavaScript, and PHP language servers). If `npm` is not found, you will be prompted to install it via `nodeenv`; declining will abort setup.
|
|
79
|
+
|
|
80
|
+
### Configuration
|
|
81
|
+
|
|
82
|
+
LLM provider keys and model overrides live in `~/.codeboarding/config.toml`, created automatically on first run:
|
|
83
|
+
|
|
84
|
+
```toml
|
|
85
|
+
# ~/.codeboarding/config.toml
|
|
86
|
+
|
|
87
|
+
[provider]
|
|
88
|
+
# Uncomment exactly one provider key
|
|
89
|
+
# openai_api_key = "sk-..."
|
|
90
|
+
# anthropic_api_key = "sk-ant-..."
|
|
91
|
+
# google_api_key = "AIza..."
|
|
92
|
+
# vercel_api_key = "vck_..."
|
|
93
|
+
# ollama_base_url = "http://localhost:11434"
|
|
94
|
+
|
|
95
|
+
[llm]
|
|
96
|
+
# Optional: override the default model for your active provider
|
|
97
|
+
# agent_model = "gemini-3-flash"
|
|
98
|
+
# parsing_model = "gemini-3-flash"
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
Shell environment variables (`OPENAI_API_KEY`, `ANTHROPIC_API_KEY`, etc.) always take precedence over the config file, so CI/CD pipelines need no changes.
|
|
102
|
+
|
|
103
|
+
For private repositories, set `GITHUB_TOKEN` in your environment.
|
|
104
|
+
|
|
105
|
+
> ๐ก **Tip:** Our experience has shown that using **Google Geminiโ2.5โPro** yields the best results for complex diagram
|
|
106
|
+
> generation tasks.
|
|
107
|
+
|
|
108
|
+
### Run it
|
|
109
|
+
|
|
110
|
+
#### Basic Usage
|
|
111
|
+
|
|
112
|
+
```bash
|
|
113
|
+
# Analyze a local repository (output written to /path/to/repo/.codeboarding/)
|
|
114
|
+
python main.py --local /path/to/repo
|
|
115
|
+
|
|
116
|
+
# Analyze a remote repository (cloned to cwd/<repo_name>/, output to cwd/<repo_name>/.codeboarding/)
|
|
117
|
+
python main.py https://github.com/user/repo
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
#### Command-Line Arguments
|
|
121
|
+
|
|
122
|
+
**Repository selection (required, choose one):**
|
|
123
|
+
- `<repository_url> ...` โ One or more GitHub repository URLs to analyze
|
|
124
|
+
- `--local <path>` โ Path to a local repository
|
|
125
|
+
|
|
126
|
+
**Analysis options:**
|
|
127
|
+
- `--depth-level <int>` โ Diagram depth (default: `1`)
|
|
128
|
+
- `--incremental` โ Smart incremental update (re-analyze changed files only)
|
|
129
|
+
- `--full` โ Force full reanalysis, skip incremental detection
|
|
130
|
+
- `--partial-component-id <id>` โ Update a single component by its ID (local repos only)
|
|
131
|
+
|
|
132
|
+
**Advanced:**
|
|
133
|
+
- `--binary-location <path>` โ Custom path to language server binaries (overrides `~/.codeboarding/servers/`)
|
|
134
|
+
- `--upload` โ Upload results to GeneratedOnBoardings repo (remote repos only)
|
|
135
|
+
- `--enable-monitoring` โ Enable run monitoring
|
|
136
|
+
|
|
137
|
+
#### Examples
|
|
138
|
+
|
|
139
|
+
```bash
|
|
140
|
+
# Analyze a local repository
|
|
141
|
+
python main.py --local ./my-project
|
|
142
|
+
|
|
143
|
+
# Analyze with custom depth
|
|
144
|
+
python main.py --local ./my-project --depth-level 2
|
|
145
|
+
|
|
146
|
+
# Analyze a remote repository
|
|
147
|
+
python main.py https://github.com/pytorch/pytorch
|
|
148
|
+
|
|
149
|
+
# Analyze multiple remote repositories
|
|
150
|
+
python main.py https://github.com/user/repo1 https://github.com/user/repo2
|
|
151
|
+
|
|
152
|
+
# Incremental update (re-analyze only changed components)
|
|
153
|
+
python main.py --local ./my-project --incremental
|
|
154
|
+
|
|
155
|
+
# Update a single component by ID
|
|
156
|
+
python main.py --local ./my-project --partial-component-id "a3f2b1c4d5e6f789"
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
## ๐ฅ๏ธ Examples:
|
|
160
|
+
|
|
161
|
+
We have visualized **over 800+ popular open-source projects**. See examples:
|
|
162
|
+
|
|
163
|
+
### PyTorch:
|
|
164
|
+
|
|
165
|
+
```mermaid
|
|
166
|
+
graph LR
|
|
167
|
+
Tensor_Operations_Core["Tensor Operations & Core"]
|
|
168
|
+
Automatic_Differentiation_Autograd_Engine_["Automatic Differentiation (Autograd Engine)"]
|
|
169
|
+
Neural_Network_Modules_torch_nn_["Neural Network Modules (torch.nn)"]
|
|
170
|
+
Optimizers_torch_optim_["Optimizers (torch.optim)"]
|
|
171
|
+
Data_Utilities_torch_utils_data_["Data Utilities (torch.utils.data)"]
|
|
172
|
+
JIT_Compiler_Scripting_TorchScript_["JIT Compiler & Scripting (TorchScript)"]
|
|
173
|
+
Hardware_Backends["Hardware Backends"]
|
|
174
|
+
Data_Utilities_torch_utils_data_ -- " provides data to " --> Tensor_Operations_Core
|
|
175
|
+
Tensor_Operations_Core -- " provides primitives for " --> Neural_Network_Modules_torch_nn_
|
|
176
|
+
Tensor_Operations_Core -- " leverages " --> Hardware_Backends
|
|
177
|
+
Neural_Network_Modules_torch_nn_ -- " performs operations on " --> Tensor_Operations_Core
|
|
178
|
+
Neural_Network_Modules_torch_nn_ -- " operations recorded by " --> Automatic_Differentiation_Autograd_Engine_
|
|
179
|
+
Neural_Network_Modules_torch_nn_ -- " exported to " --> JIT_Compiler_Scripting_TorchScript_
|
|
180
|
+
Automatic_Differentiation_Autograd_Engine_ -- " computes gradients for " --> Optimizers_torch_optim_
|
|
181
|
+
Optimizers_torch_optim_ -- " updates parameters of " --> Neural_Network_Modules_torch_nn_
|
|
182
|
+
Hardware_Backends -- " executes computations for " --> Tensor_Operations_Core
|
|
183
|
+
click Tensor_Operations_Core href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/pytorch/Tensor_Operations_Core.md" "Details"
|
|
184
|
+
click Automatic_Differentiation_Autograd_Engine_ href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/pytorch/Automatic_Differentiation_Autograd_Engine_.md" "Details"
|
|
185
|
+
click Neural_Network_Modules_torch_nn_ href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/pytorch/Neural_Network_Modules_torch_nn_.md" "Details"
|
|
186
|
+
click Optimizers_torch_optim_ href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/pytorch/Optimizers_torch_optim_.md" "Details"
|
|
187
|
+
click Data_Utilities_torch_utils_data_ href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/pytorch/Data_Utilities_torch_utils_data_.md" "Details"
|
|
188
|
+
click JIT_Compiler_Scripting_TorchScript_ href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/pytorch/JIT_Compiler_Scripting_TorchScript_.md" "Details"
|
|
189
|
+
click Hardware_Backends href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/pytorch/Hardware_Backends.md" "Details"
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
### FastAPI:
|
|
193
|
+
|
|
194
|
+
```mermaid
|
|
195
|
+
graph LR
|
|
196
|
+
Application_Core["Application Core"]
|
|
197
|
+
Middleware["Middleware"]
|
|
198
|
+
Routing["Routing"]
|
|
199
|
+
Request_Handling_Validation["Request Handling & Validation"]
|
|
200
|
+
Dependency_Injection["Dependency Injection"]
|
|
201
|
+
Security["Security"]
|
|
202
|
+
Response_Handling["Response Handling"]
|
|
203
|
+
API_Documentation["API Documentation"]
|
|
204
|
+
Application_Core -- " sends request to " --> Middleware
|
|
205
|
+
Middleware -- " forwards request to " --> Routing
|
|
206
|
+
Routing -- " uses " --> Request_Handling_Validation
|
|
207
|
+
Routing -- " uses " --> Dependency_Injection
|
|
208
|
+
Routing -- " provides data for " --> Response_Handling
|
|
209
|
+
Dependency_Injection -- " enables " --> Security
|
|
210
|
+
Response_Handling -- " sends response to " --> Middleware
|
|
211
|
+
API_Documentation -- " inspects " --> Routing
|
|
212
|
+
API_Documentation -- " inspects " --> Request_Handling_Validation
|
|
213
|
+
click Application_Core href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/fastapi/Application_Core.md" "Details"
|
|
214
|
+
click Middleware href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/fastapi/Middleware.md" "Details"
|
|
215
|
+
click Routing href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/fastapi/Routing.md" "Details"
|
|
216
|
+
click Request_Handling_Validation href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/fastapi/Request_Handling_Validation.md" "Details"
|
|
217
|
+
click Dependency_Injection href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/fastapi/Dependency_Injection.md" "Details"
|
|
218
|
+
click Security href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/fastapi/Security.md" "Details"
|
|
219
|
+
click API_Documentation href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/fastapi/API_Documentation.md" "Details"
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
### ChatTTS:
|
|
223
|
+
|
|
224
|
+
```mermaid
|
|
225
|
+
graph LR
|
|
226
|
+
ChatTTS_Core_Orchestrator["ChatTTS Core Orchestrator"]
|
|
227
|
+
Text_Processing_Module["Text Processing Module"]
|
|
228
|
+
Speech_Synthesis_Models["Speech Synthesis Models"]
|
|
229
|
+
Velocity_Inference_Engine["Velocity Inference Engine"]
|
|
230
|
+
System_Utilities_Configuration["System Utilities & Configuration"]
|
|
231
|
+
ChatTTS_Core_Orchestrator -- " Orchestrates Text Flow " --> Text_Processing_Module
|
|
232
|
+
ChatTTS_Core_Orchestrator -- " Receives Processed Text " --> Text_Processing_Module
|
|
233
|
+
ChatTTS_Core_Orchestrator -- " Orchestrates Synthesis Flow " --> Speech_Synthesis_Models
|
|
234
|
+
ChatTTS_Core_Orchestrator -- " Receives Audio Output " --> Speech_Synthesis_Models
|
|
235
|
+
ChatTTS_Core_Orchestrator -- " Initializes & Configures " --> System_Utilities_Configuration
|
|
236
|
+
ChatTTS_Core_Orchestrator -- " Loads Assets " --> System_Utilities_Configuration
|
|
237
|
+
Text_Processing_Module -- " Receives Raw Text " --> ChatTTS_Core_Orchestrator
|
|
238
|
+
Text_Processing_Module -- " Provides Processed Text " --> ChatTTS_Core_Orchestrator
|
|
239
|
+
Speech_Synthesis_Models -- " Receives Processed Data " --> ChatTTS_Core_Orchestrator
|
|
240
|
+
Speech_Synthesis_Models -- " Generates Audio Output " --> ChatTTS_Core_Orchestrator
|
|
241
|
+
Speech_Synthesis_Models -- " Delegates Inference To " --> Velocity_Inference_Engine
|
|
242
|
+
Speech_Synthesis_Models -- " Receives Inference Results " --> Velocity_Inference_Engine
|
|
243
|
+
Speech_Synthesis_Models -- " Utilizes GPU Resources " --> System_Utilities_Configuration
|
|
244
|
+
Speech_Synthesis_Models -- " Accesses Model Config " --> System_Utilities_Configuration
|
|
245
|
+
Velocity_Inference_Engine -- " Executes Model Inference " --> Speech_Synthesis_Models
|
|
246
|
+
Velocity_Inference_Engine -- " Returns Inference Output " --> Speech_Synthesis_Models
|
|
247
|
+
Velocity_Inference_Engine -- " Receives Engine Configuration " --> System_Utilities_Configuration
|
|
248
|
+
System_Utilities_Configuration -- " Provides Assets & Config " --> ChatTTS_Core_Orchestrator
|
|
249
|
+
System_Utilities_Configuration -- " Provides GPU & Config " --> Speech_Synthesis_Models
|
|
250
|
+
System_Utilities_Configuration -- " Provides Engine Config " --> Velocity_Inference_Engine
|
|
251
|
+
click ChatTTS_Core_Orchestrator href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main//ChatTTS/ChatTTS_Core_Orchestrator.md" "Details"
|
|
252
|
+
click Text_Processing_Module href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main//ChatTTS/Text_Processing_Module.md" "Details"
|
|
253
|
+
click Speech_Synthesis_Models href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main//ChatTTS/Speech_Synthesis_Models.md" "Details"
|
|
254
|
+
click Velocity_Inference_Engine href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main//ChatTTS/Velocity_Inference_Engine.md" "Details"
|
|
255
|
+
click System_Utilities_Configuration href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main//ChatTTS/System_Utilities_Configuration.md" "Details"
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
Browse more examples: [GeneratedOnBoardings Repository](https://github.com/CodeBoarding/GeneratedOnBoardings)
|
|
259
|
+
|
|
260
|
+
## ๐ Integrations
|
|
261
|
+
|
|
262
|
+
Codeboarding is integrated with everything we use:
|
|
263
|
+
|
|
264
|
+
- ๐ฆ [**VS Code Extension**](https://marketplace.visualstudio.com/items?itemName=Codeboarding.codeboarding): Interact
|
|
265
|
+
with the diagram directly in your IDE.
|
|
266
|
+
- โ๏ธ [**GitHub Action**](https://github.com/marketplace/actions/codeboarding-diagram-first-documentation): Automate
|
|
267
|
+
diagram generation in CI/CD.
|
|
268
|
+
- ๐ [**MCP Server**](https://github.com/CodeBoarding/CodeBoarding-MCP): Serves the concise documentation to your AI
|
|
269
|
+
Agent assistant (ClaudeCode, VSCode, Cursor, etc.)
|
|
270
|
+
|
|
271
|
+
## ๐ค Contributing
|
|
272
|
+
|
|
273
|
+
Weโre just getting started and would love your help!
|
|
274
|
+
If you have ideas, spot bugs, or want to improve anything -
|
|
275
|
+
please [open an issue](https://github.com/CodeBoarding/CodeBoarding/issues) or tackle an existing one.
|
|
276
|
+
We actively track suggestions and welcome pull requests of all sizes.
|
|
277
|
+
|
|
278
|
+
## ๐ฎ Vision
|
|
279
|
+
|
|
280
|
+
**Unified high-level representation for codebases that is accurate** (hence static analysis). This representation is
|
|
281
|
+
used by both people and agents โ fully integrated in IDEs, MCP servers, and development workflows.
|