You stay in control. Claude explains the pitfalls.

Demeanor ships an MCP server — 20 tools your AI agent can call to inspect your assemblies and your source. Claude reads your code, explains in plain English exactly what would break after obfuscation and why, and proposes specific fixes: an exclusion rule here, an [Obfuscation] attribute there, a CLI option for the build. You read the explanation. You choose the fix. Claude then updates the Demeanor configuration accordingly.

Optional, by design. The MCP server is off by default and only starts when you run demeanor --mcp. It communicates over local stdio — no network sockets, no cloud calls, no telemetry. The CLI, MSBuild task, and every protection feature work identically without it. Safe for air-gapped and regulated builds.

Claude advises. You decide. Claude applies.

Obfuscation has always been hard because every app has its own reflection, serialization, and framework pitfalls. Claude reads your code and surfaces your specific risks — then waits for you.

What Claude does

  • Runs the Demeanor audit against your compiled assemblies
  • Reads your source to confirm each finding in context
  • Explains each risk in plain English — what would break, why, and when
  • Proposes concrete fixes: exclusion rules, attributes, CLI flags, or code changes
  • Shows tradeoffs: smaller attack surface vs. more exclusions, each with a rationale
  • Once you approve, writes the configuration, updates the .csproj, runs a dry-run, and reports the diff

What you do

  • Read the explanation — Claude cites the exact file and line for every risk
  • Decide which fix fits your app: exclude a type, annotate it, or change the code
  • Accept, reject, or edit each proposed change before it’s written
  • Review the dry-run diff; approve the final obfuscation
  • Ship with confidence — the CI build runs Demeanor unattended, no AI in the pipeline

What one conversation looks like

9:14 — A senior .NET engineer opens Claude Code in her product repo. She types /obfuscate.

9:15 — Claude calls demeanor_audit and reads the findings back to her in plain English. Three risks stand out: EF Core entity types routed by reflection, a SignalR hub invoked by method name, and a JsonSerializer<T> call on a DTO. For each, Claude cites the file and line, explains what would break at runtime, and lays out the options.

9:18 — She reads the tradeoffs. For the EF types she picks “exclude the entity namespace” over attributes — less code churn. For the SignalR hub she decides to rename the method and keep it excluded. She tells Claude what she wants.

9:20 — Claude writes the [Obfuscation] attributes and a Directory.Build.props entry to match her decisions, runs demeanor_obfuscate in dry-run mode, and shows her the report diff. She reads it and approves.

9:22 — Claude commits the config, updates the CI workflow, and reminds her to set DEMEANOR_LICENSE as a secret. The Release build in GitHub Actions is now obfuscated — no AI in the build pipeline, just dotnet publish.

Two weeks later — A customer reports a crash with an obfuscated stack trace. She pastes it into Claude. Claude calls demeanor_deobfuscate_stacktrace, reads the mapped frames against the source tree, and proposes a fix in a pull request. She reviews it and merges.

20 failure patterns Claude can explain to you

Every other obfuscator makes you discover these the hard way — broken at runtime, days of debugging. Demeanor’s audit finds them before obfuscation runs; Claude explains each one in the context of your code so you know what to do.

Auto-handled

No action needed. Demeanor detects and preserves these automatically; Claude tells you it found them so you aren’t surprised.

  • JSON serialization (JsonSerializer<T>, [JsonSerializable])
  • INotifyPropertyChanged / INotifyPropertyChanging
  • Blazor [Parameter], [Inject], [CascadingParameter]
  • String-based reflection (Type.GetType, GetMethod, GetField)
  • WCF [DataContract] / [DataMember]
  • DLR / dynamic dispatch
  • COM interop
  • XML serialization attributes

Needs your decision

Claude explains the risk, proposes the options, and waits for you to choose.

  • SignalR Hub methods (invoked by name from clients)
  • MVC/API Controllers (routed by name)
  • EF Core DbContext + entity types
  • IOptions<T> configuration binding
  • MEF [Export] / [Import] plugins
  • gRPC service types
  • WPF/XAML BAML data bindings
  • Minimal API handler return types

The experience gap (by design)

Standalone users have every capability. Claude users get the explanations, tradeoffs, and context on top — so the decisions they make are better informed.

Task Standalone CLI With Claude
Audit Read terminal table, interpret yourself
Configure Wizard asks Y/N questions
Debug crash deobfuscate maps names; you investigate
CI failure audit + report to find what changed
Exclusion rules Trial-and-error with validate-exclusions
New pattern Manual discovery, read docs

No other .NET obfuscator ships an MCP server

As of April 2026, verified across the 12 active .NET obfuscators in the market. See full comparison →

Demeanor Dotfuscator SmartAssembly Eazfuscator .NET Reactor
AI explains risks in your code NoNoNoNo
AI stack trace decoding NoNoNoNo
Pre-obfuscation audit NoNoNoNo
Learns from failures NoNoNoNo
MCP integration NoNoNoNo

Setup in 60 seconds

1. Install Demeanor (one command)

dotnet tool install -g WiseOwl.Demeanor

Native AOT global tool. Installs demeanor and inspect on PATH. On first invocation, demeanor auto-installs the /obfuscate skill into ~/.claude/skills/ and registers itself as an MCP server in ~/.claude.json. No additional configuration needed.

2. Set your license key

export DEMEANOR_LICENSE="your-enterprise-key"

3. Type /obfuscate in Claude Code

Claude runs the audit, explains what it found, and waits for your decisions.

Get Enterprise License
Every obfuscator on the market requires your developers to learn a configuration language, manually identify reflection risks, and debug obfuscated failures through trial and error. That expertise takes weeks to build and walks out the door when the developer leaves.

Demeanor is the only obfuscator with an AI workflow where the AI explains the pitfalls in your app and gives you the information you need to decide. You remain in control; Claude is the reviewer who read every line of your code and knows every reflection trap in the framework. The result is a build configuration that runs unattended in CI — no ongoing AI dependency, no mystery.