mcpField
C
code-to-diagram

code-to-diagram

github.com/zebbernDevelopment4.7k43 installsUpdated 1d ago
Repository

About code-to-diagram

code-to-diagram is a Python skill that analyzes source code imports and dependencies to create Mermaid diagrams. It is intended for developers exploring project structure, reviewing dependencies, or preparing documentation, with optional SVG rendering.

Key features

  1. 01Architecture, flowchart, and org diagrams
  2. 02AST-based parsing across five languages
  3. 03Mermaid and optional SVG output
  4. 04JSON analysis output
  5. 05Configurable scan limits

Use cases

  1. 01Mapping an unfamiliar codebase
  2. 02Reviewing dependencies during code review
  3. 03Preparing architecture documentation
  4. 04Checking coupling before refactoring

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/zebbern/claude-code-guide --skill code-to-diagram

After installing, type/code-to-diagramin Claude Code to confirm it loaded.

Bundled filesLICENSEscripts/analyze_codebase.py

Details

From the project README

Code to Diagram

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

  1. Architecture Diagram — Module/directory-level dependency relationships
  2. Flowchart — File-level import call chains
  3. 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
ParameterDescription
directoryCode directory to analyze (required)
--type, -tDiagram type: architecture, flowchart, org, all (default: all)
--output, -oOutput directory (default: current directory)
--format, -fOutput format: mermaid, svg, both (default: mermaid)
--max-filesMaximum number of files to scan (default: 500)
--max-depthMaximum depth for org chart (default: 4)
--jsonOutput analysis results in JSON format

How It Works

  1. Scan phase: Recursively traverse the directory, skipping node_modules, .git, __pycache__, etc.
  2. 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
  3. Resolve internal dependencies: Maps import paths to actual files within the project
  4. Generate diagrams: Converts dependency relationships into Mermaid diagram syntax
  5. 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

Comments

Markdown supported