davidfowl/dotnet-skillz/ilspy-decompile

Claude Code and agent skill by davidfowl/dotnet-skillz

Trust tier 2
  • community
Source check pending

Checking that the SKILL.md file is still in the repository.

Understand implementation details of .NET code by decompiling assemblies. Use when the user wants to see how a .NET API works internally, inspect NuGet package source, view framework implementation, or understand compiled .NET binaries.

Install

npx vskill@latest install davidfowl/dotnet-skillz/ilspy-decompile

SKILL.md

.NET Assembly Decompilation with ILSpy

Use this skill to understand how .NET code works internally by decompiling compiled assemblies.

Quick start

bash
# Decompile an assembly to stdout (no install needed with .NET 10+)
dnx ilspycmd MyLibrary.dll
# Decompile to an output folder
dnx ilspycmd -o output-folder MyLibrary.dll

Common .NET Assembly Locations

NuGet Packages
bash
# Windows
~/.nuget/packages/<package-name>/<version>/lib/<tfm>/
# Example: Newtonsoft.Json
~/.nuget/packages/newtonsoft.json/13.0.3/lib/netstandard2.0/Newtonsoft.Json.dll
# Example: Microsoft.Extensions.DependencyInjection
~/.nuget/packages/microsoft.extensions.dependencyinjection/8.0.0/lib/net8.0/Microsoft.Extensions.DependencyInjection.dll
.NET Runtime Libraries
bash
# Find .NET install location
dotnet --list-runtimes
# Windows typical paths
C:/Program Files/dotnet/shared/Microsoft.NETCore.App/<version>/
C:/Program Files/dotnet/shared/Microsoft.AspNetCore.App/<version>/
# Linux/macOS typical paths
/usr/share/dotnet/shared/Microsoft.NETCore.App/<version>/
/usr/share/dotnet/shared/Microsoft.AspNetCore.App/<version>/
# Example: System.Text.Json from runtime
C:/Program Files/dotnet/shared/Microsoft.NETCore.App/8.0.0/System.Text.Json.dll
.NET SDK Reference Assemblies
bash
# Find SDK location
dotnet --list-sdks
# Reference assemblies (design-time facades)
C:/Program Files/dotnet/packs/Microsoft.NETCore.App.Ref/<version>/ref/net8.0/
Project Build Output
bash
# Debug build
./bin/Debug/net8.0/<AssemblyName>.dll
# Published output
./bin/Release/net8.0/publish/<AssemblyName>.dll

Core workflow

  1. Identify what you want to understand (API, class, method)
  2. Locate the assembly containing that code
  3. Use dnx ilspycmd -l class to find the exact type name
  4. Decompile the specific type with -t

Commands

Basic Decompilation
bash
# Decompile to stdout
dnx ilspycmd MyLibrary.dll
# Decompile to output directory
dnx ilspycmd -o ./decompiled MyLibrary.dll
# Decompile as compilable project
dnx ilspycmd -p -o ./project MyLibrary.dll
# Decompile with nested namespace folders
dnx ilspycmd -p -o ./project --nested-directories MyLibrary.dll
Targeted Decompilation
bash
# Decompile a specific type
dnx ilspycmd -t Namespace.ClassName MyLibrary.dll
# Decompile with specific C# version
dnx ilspycmd -lv CSharp12_0 MyLibrary.dll
# Decompile with reference path for dependencies
dnx ilspycmd -r ./dependencies MyLibrary.dll
View IL Code
bash
# Show IL code instead of C#
dnx ilspycmd -il MyLibrary.dll
# Show IL for specific type
dnx ilspycmd -il -t Namespace.ClassName MyLibrary.dll
List Types
bash
# List all classes
dnx ilspycmd -l class MyLibrary.dll
# List interfaces
dnx ilspycmd -l interface MyLibrary.dll
# List structs
dnx ilspycmd -l struct MyLibrary.dll
# List enums
dnx ilspycmd -l enum MyLibrary.dll
# List delegates
dnx ilspycmd -l delegate MyLibrary.dll
Options
bash
# Show help
dnx ilspycmd -h
# Disable update check (useful for CI/automation)
dnx ilspycmd --disable-updatecheck MyLibrary.dll
# Remove dead code
dnx ilspycmd --no-dead-code MyLibrary.dll

Example: Understand how JsonSerializer works

bash
# Find System.Text.Json in the runtime
dotnet --list-runtimes
# Microsoft.NETCore.App 8.0.0 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
# List classes to find JsonSerializer
dnx ilspycmd -l class "C:/Program Files/dotnet/shared/Microsoft.NETCore.App/8.0.0/System.Text.Json.dll"
# Decompile JsonSerializer
dnx ilspycmd -t System.Text.Json.JsonSerializer "C:/Program Files/dotnet/shared/Microsoft.NETCore.App/8.0.0/System.Text.Json.dll"

Example: Inspect a NuGet package implementation

bash
# Decompile Polly's retry logic
dnx ilspycmd -t Polly.Retry.RetryPolicy ~/.nuget/packages/polly/8.0.0/lib/netstandard2.0/Polly.dll
# Decompile entire package to project for exploration
dnx ilspycmd -p -o ./polly-src ~/.nuget/packages/polly/8.0.0/lib/netstandard2.0/Polly.dll

Example: See how ASP.NET Core handles requests

bash
# Find the ASP.NET Core runtime
# C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App\8.0.0\
# Decompile the Kestrel server
dnx ilspycmd -l class "C:/Program Files/dotnet/shared/Microsoft.AspNetCore.App/8.0.0/Microsoft.AspNetCore.Server.Kestrel.Core.dll"
dnx ilspycmd -t Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServer "C:/Program Files/dotnet/shared/Microsoft.AspNetCore.App/8.0.0/Microsoft.AspNetCore.Server.Kestrel.Core.dll"

Example: Compare C# and IL

bash
# View C# source
dnx ilspycmd -t MyNamespace.MyClass MyLibrary.dll
# View IL code for same type
dnx ilspycmd -il -t MyNamespace.MyClass MyLibrary.dll

C# Language Versions

Available versions for -lv option:

  • CSharp1 through CSharp12_0
  • Latest, Preview

Security

  • Security scanPassed, 100 of 100Pattern checks on the skill's files.
  • Model reviewPassed

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

Repository stars
294
Repository forks
14
7-day trend score
28

Stars and forks are for the whole GitHub repository, not this skill alone. Refreshed 19 Mar 2026, 7 months ago.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/davidfowl/dotnet-skillz/ilspy-decompile/badge)](https://verified-skill.com/skills/davidfowl/dotnet-skillz/ilspy-decompile)

Something wrong with this skill or its page? Tell us.