mcpbeat

Code To Diagram

zebbern/code-to-diagram

Analyze codebases and automatically generate architecture diagrams, flowcharts, and org charts. Uses AST parsing to map import dependencies for Python, JS/TS, Go, and Java, outputting Mermaid or SVG files. Triggered when users ask to visualize code architecture, understand dependencies, draw a flowchart, or create a module diagram from source code.

6k tokens
context cost
the whole folder, loaded on every use
3
files
ships runnable scripts
0
copies elsewhere
how many repositories repackaged it
4468
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/zebbern/claude-code-guide --skill code-to-diagram

What comes with it

18 113 bytes besides the instruction
LICENSE
scripts/analyze_codebase.py

The instruction itself

11 sections, as written by the author

Code to Diagram

Extract import and dependency relationships from a codebase via AST parsing, and automatically generate three types of diagrams:

  • Architecture Diagram — Module/directory-level dependency relationships
  • Flowchart — File-level import call chains
  • Org Chart — Directory/file hierarchy structure

Supported languages: Python, JavaScript, TypeScript, Go, Java

Output formats: Mermaid text (.mmd) or SVG images (requires mmdc installed on the system)

Usage

Basic: Analyze an Entire Project

python3 scripts/analyze_codebase.py /path/to/project

Outputs three Mermaid diagrams to stdout and writes .mmd files to the current directory.

Specify Diagram Type

# Architecture diagram only
python3 scripts/analyze_codebase.py /path/to/project --type architecture

# Flowchart only
python3 scripts/analyze_codebase.py /path/to/project --type flowchart

# Org chart only
python3 scripts/analyze_codebase.py /path/to/project --type org

Specify Output Directory and Format

# Output to a specific directory
python3 scripts/analyze_codebase.py /path/to/project --output /tmp/diagrams

# Output as SVG (requires mmdc)
python3 scripts/analyze_codebase.py /path/to/project --format svg

# Output both Mermaid and SVG
python3 scripts/analyze_codebase.py /path/to/project --format both

Output JSON Analysis Results

python3 scripts/analyze_codebase.py /path/to/project --json

Parameters

| Parameter | Description |

|-----------|-------------|

| directory | Code directory to analyze (required) |

| --type, -t | Diagram type: architecture, flowchart, org, all (default: all) |

| --output, -o | Output directory (default: current directory) |

| --format, -f | Output format: mermaid, svg, both (default: mermaid) |

| --max-files | Maximum number of files to scan (default: 500) |

| --max-depth | Maximum depth for org chart (default: 4) |

| --json | Output analysis results in JSON format |

How It Works

  • Scan phase: Recursively traverse the directory, skipping node_modules, .git, __pycache__, etc.
  • Parse phase:
  • Python files: uses the ast module to parse import and from ... import statements
  • JS/TS files: uses regex to match import, require, and export from
  • Go files: uses regex to match import statements
  • Java files: uses regex to match import statements
  • Resolve internal dependencies: Maps import paths to actual files within the project
  • Generate diagrams: Converts dependency relationships into Mermaid diagram syntax
  • Render (optional): Calls mmdc (Mermaid CLI) to render .mmd files as SVG

Use Cases

  • Quickly understand the module structure of an unfamiliar project
  • Visualize dependencies during code review
  • Create architecture diagrams for technical documentation
  • Detect circular dependencies or excessive coupling
  • Analyze project structure before refactoring

Dependencies

  • Python 3.7+ (standard library only, no extra packages needed)
  • SVG output requires @mermaid-js/mermaid-cli (optional)

Notes

  • Only analyzes static import relationships; dynamic imports are not tracked
  • For large projects, use --max-files to limit the scan scope
  • Mermaid diagrams with too many nodes may be hard to render; use --type to generate diagrams separately

How to use it

Copy the folder

Take zebbern/code-to-diagram from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.