Smithery Logo
MCPsSkillsDocsPricing
Login
Smithery Logo

Give agents more agency

Resources

DocumentationPrivacy PolicySystem Status

Company

PricingAboutBlog

Connect

© 2026 Smithery. All rights reserved.

    j-r-beckett

    csharp-decompile

    j-r-beckett/csharp-decompile
    Coding

    About

    SKILL.md

    Install

    Install via Skills CLI

    or add to your agent
    • Claude Code
      Claude Code
    • Codex
      Codex
    • OpenClaw
      OpenClaw
    • Cursor
      Cursor
    • Amp
      Amp
    • GitHub Copilot
      GitHub Copilot
    • Gemini CLI
      Gemini CLI
    • Kilo Code
      Kilo Code
    • Junie
      Junie
    • Replit
      Replit
    • Windsurf
      Windsurf
    • Cline
      Cline
    • Continue
      Continue
    • OpenCode
      OpenCode
    • OpenHands
      OpenHands
    • Roo Code
      Roo Code
    • Augment
      Augment
    • Goose
      Goose
    • Trae
      Trae
    • Zencoder
      Zencoder
    • Antigravity
      Antigravity
    ├─
    ├─
    └─

    About

    Decompile .NET assemblies to inspect types, understand implementations, debug third-party libraries, and view IL code...

    SKILL.md

    C# Decompilation with ilspycmd

    Decompile .NET assemblies to C# source code or IL using ilspycmd.

    Setup

    Ensure ilspycmd is installed:

    ilspycmd --version || dotnet tool install --global ilspycmd
    

    Workflows

    List Types in an Assembly

    Discover what's in an assembly before decompiling:

    # List all types: classes, interfaces, structs, delegates, enums
    ilspycmd -l cisde /path/to/assembly.dll
    

    Decompile to a Project

    Generate a compilable C# project from an assembly:

    ilspycmd --nested-directories -p -o /tmp/decompiled /path/to/assembly.dll
    

    This creates a .csproj and source files organized by namespace.

    Important: this lets Claude code bring its sophisticated code reading and exploration tools to bear.

    Decompile a Specific Type

    Target a single type by its fully qualified name:

    ilspycmd -t MyNamespace.MyClass /path/to/assembly.dll
    

    The output goes to stdout. Use this to quickly inspect a type's implementation.

    View IL Code

    For low-level analysis, view the intermediate language:

    ilspycmd -il -t MyNamespace.MyClass /path/to/assembly.dll
    
    # With sequence points (source line mappings)
    ilspycmd --il-sequence-points -t MyNamespace.MyClass /path/to/assembly.dll
    

    Debug NuGet Dependencies

    NuGet packages are at ~/.nuget/packages/<package-name>/<version>/lib/<tfm>/. To inspect:

    # Find the DLL
    find ~/.nuget/packages/sixlabors.imagesharp -name "*.dll" | grep -v ref
    
    # List types
    ilspycmd -l cisde ~/.nuget/packages/sixlabors.imagesharp/3.1.11/lib/net6.0/SixLabors.ImageSharp.dll
    
    # Decompile a specific type
    ilspycmd -t "SixLabors.ImageSharp.Numerics" ~/.nuget/packages/sixlabors.imagesharp/3.1.11/lib/net6.0/SixLabors.ImageSharp.dll
    

    Generate Type Diagrams

    Create an interactive HTML visualization of type relationships:

    ilspycmd --generate-diagrammer -o /tmp/diagrammer /path/to/assembly.dll
    
    # With filtering
    ilspycmd --generate-diagrammer -o /tmp/diagrammer \
      --generate-diagrammer-include "MyNamespace\\..*" \
      --generate-diagrammer-exclude "MyNamespace\\.Internal\\..*" \
      /path/to/assembly.dll
    

    These are mostly useful for the user. Let the user know that they're available.

    Tips

    • Add -r /path/to/deps when the assembly has dependencies that aren't automatically resolved
    • Use --no-dead-code and --no-dead-stores for cleaner output
    • For tight loops or scripts, add --disable-updatecheck
    • The -lv Latest flag is default; use -lv CSharp9_0 etc for older language features

    Fixes

    Recommended Servers
    Microsoft Learn MCP
    Microsoft Learn MCP
    Context7
    Context7
    Exa Search
    Exa Search
    Repository
    j-r-beckett/speedreader
    Files