By XAML-Lint
Lints XAML files for common issues so Claude can catch problems as code is written.

A XAML linter, with Claude Code plugin integration so Claude can catch XAML problems as it writes and edits code.
dotnet tool install -g xaml-lint
Run xaml-lint update later to pull the latest version (or dotnet tool update -g xaml-lint directly).
Requires the .NET 8, 9, or 10 SDK on PATH.
The plugin's PostToolUse hook shells out to the xaml-lint CLI, so the CLI must be installed and on PATH before the plugin can do anything:
dotnet tool install -g xaml-lint
xaml-lint --version
If xaml-lint --version fails, add the global tool directory to your PATH (%USERPROFILE%\.dotnet\tools on Windows, ~/.dotnet/tools on macOS/Linux) and try again.
Then, inside Claude Code:
/plugin marketplace add XAML-Lint/xaml-lint
/plugin install xaml-lint@xaml-lint
The bundled PostToolUse hook runs xaml-lint on every .xaml / .axaml file Claude writes or edits and feeds diagnostics back into the conversation automatically. Use /xaml-lint:lint <path-or-glob> to trigger a manual lint.
xaml-lint lint src/Views/MainView.xaml
xaml-lint lint "src/**/*.xaml"
xaml-lint update # update to the latest stable
xaml-lint update --check # only report whether an update is available
Sample output:
src/Views/MainView.xaml
8:20 warning LX0100 Grid.Row="5" but the enclosing Grid declares only 2 rows.
8:33 info LX0400 Hardcoded string on 'Text' should be moved to a resource.
9:18 warning LX0300 x:Name 'userInput' should start with an uppercase letter.
Create xaml-lint.config.json at your repo root:
{
"$schema": "https://raw.githubusercontent.com/XAML-Lint/xaml-lint/main/schema/v1/config.json",
"extends": "xaml-lint:recommended",
"defaultDialect": "wpf",
"rules": { "LX0005": "off" }
}
See docs/config-reference.md for the full schema, and docs/rules/ for the full rule catalog (37 rules across Layout, Bindings, Naming, Resources, Input, Usability, Accessibility, and Platform categories, dialect-gated for WPF / WinUI 3 / UWP / MAUI / Avalonia / Uno).
xaml-lint lint --format <name>:
pretty — colored, TTY default.compact-json — stable JSON envelope; default when stdout is redirected; Claude's plugin hook reads this format.msbuild — one line per diagnostic; matches dotnet build output style.sarif — SARIF 2.1.0 for CI integrations.0 — no findings or only warning/info.1 — at least one error-severity diagnostic.2 — tool-level failure (malformed config, unreadable input, engine crash).Many of the lint rules in this project are ports of checks from the Rapid XAML Toolkit by Matt Lacey, used under the MIT License. Ported rules carry the upstream RXT### code via their UpstreamId field and a source-file header comment. Tool/engine diagnostics (LX0001–LX0006) and some lint rules (e.g., LX0104) are original to xaml-lint — their UpstreamId is null. The VS extension, code generation, and IDE-specific pieces of the original project are not part of this fork's scope. See docs/comparison-with-rapid-xaml-toolkit.md for the per-rule mapping.
See CONTRIBUTING.md for the versioning policy, the "add a new rule" flow, and how to run tests locally.
Modifies files
Hook triggers on file write and edit operations
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
npx claudepluginhub xaml-lint/xaml-lint --plugin xaml-lintMulti-model consensus engine integrating OpenAI Codex CLI, Gemini CLI, and Claude CLI for collaborative code review and problem-solving.
Ultra-compressed communication mode. Cuts ~75% of tokens while keeping full technical accuracy by speaking like a caveman.
Comprehensive UI/UX design plugin for mobile (iOS, Android, React Native) and web applications with design systems, accessibility, and modern patterns
Memory compression system for Claude Code - persist context across sessions
Standalone image generation plugin using Nano Banana MCP server. Generates and edits images, icons, diagrams, patterns, and visual assets via Gemini image models. No Gemini CLI dependency required.
Write feature specs, plan roadmaps, and synthesize user research faster. Keep stakeholders updated and stay ahead of the competitive landscape.