All skills
Skillintermediate

Interactive HTML Diagrammer

Generate interactive HTML diagrams from .NET assemblies using ILSpy's built-in Mermaid-based diagrammer.

Claude Code Knowledge Pack7/10/2026

Overview

Interactive HTML Diagrammer

Generate interactive HTML diagrams from .NET assemblies using ILSpy's built-in Mermaid-based diagrammer.

Prerequisites

The diagrammer requires all assembly dependencies to be resolvable. Use published output with -r to provide them.

Workflow

1. Publish the project to collect all dependencies

dotnet publish path/to/Project.csproj -o /tmp/ilspy-publish -p:WarningLevel=0 /clp:ErrorsOnly --verbosity minimal

2. Generate the diagrammer

ilspycmd /tmp/ilspy-publish/MyAssembly.dll \\
  --generate-diagrammer \\
  -o /tmp/ilspy-diagrams \\
  -r /tmp/ilspy-publish/

3. Open in browser

# Windows
start /tmp/ilspy-diagrams/index.html

# macOS
open /tmp/ilspy-diagrams/index.html

# Linux
xdg-open /tmp/ilspy-diagrams/index.html

Filtering types

Use regex patterns to include or exclude types:

# Only types in a specific namespace
ilspycmd MyAssembly.dll --generate-diagrammer -o ./diagrams \\
  -r /tmp/ilspy-publish/ \\
  --generate-diagrammer-include "MyNamespace\\\\..+"

# Exclude specific sub-namespace
ilspycmd MyAssembly.dll --generate-diagrammer -o ./diagrams \\
  -r /tmp/ilspy-publish/ \\
  --generate-diagrammer-include "MyNamespace\\\\..+" \\
  --generate-diagrammer-exclude "MyNamespace\\\\.Internal\\\\..+"

# Debug your filters — report excluded types
ilspycmd MyAssembly.dll --generate-diagrammer -o ./diagrams \\
  -r /tmp/ilspy-publish/ \\
  --generate-diagrammer-report-excluded

Adding XML documentation

If the assembly has XML docs, annotate diagrams with them:

ilspycmd MyAssembly.dll --generate-diagrammer -o ./diagrams \\
  -r /tmp/ilspy-publish/ \\
  --generate-diagrammer-docs /tmp/ilspy-publish/MyAssembly.xml

Important

  • Always use -r <publish-dir> — the diagrammer fails if it cannot resolve transitive dependencies
  • Published output (dotnet publish) guarantees all deps are present in one folder
  • Build output (bin/Debug/) typically lacks NuGet dependencies and will fail