by managedcode
Installable .NET skill catalog and CLI for Codex, Claude Code, GitHub Copilot, and Gemini.
# Add to your Claude Code skills
git clone https://github.com/managedcode/dotnet-skillsStop explaining .NET to your AI. Start building.
We've all been there: asking Claude to use Entity Framework, only to get EF6 patterns in a .NET 8 project. Explaining to Copilot that Blazor Server and Blazor WebAssembly aren't the same thing. Watching Codex generate Startup.cs for a Minimal API project.
This catalog fixes that. A growing catalog covering the entire .NET ecosystem—from ASP.NET Core to Orleans, from MAUI to Semantic Kernel. Install them once, and your AI agent actually knows modern .NET.
Your favorite .NET library deserves a skill. If you maintain an open-source project or just love a framework that's missing, contribute it. Let's make AI agents actually useful for .NET developers.
dotnet tool install --global dotnet-skills
dotnet skills version # show current tool version and latest NuGet version
dotnet skills --version # alias for the same version view
dotnet skills list # show installed and available skills
dotnet skills package list # show curated and category-based packages
dotnet skills list --local # only installed skills in the current target
dotnet skills recommend # suggest skills from local .csproj files
dotnet skills install package ai # install a multi-skill package
dotnet skills install package mcaf # install the local MCAF governance package
dotnet skills package install orleans # alias for package-first install flow
dotnet skills install aspire orleans # install skills
dotnet skills remove --all # remove installed catalog skills from the target
dotnet skills update # refresh installed catalog skills
dotnet skills install blazor --agent claude # install for a specific agent
| Command | Description |
|---------|-------------|
| dotnet skills version | Show the current installed tool version and check whether NuGet has a newer release |
| dotnet skills list | Show the current inventory, compare project/global scope when relevant, and keep the remaining catalog as a compact category summary |
| dotnet skills package list | Show the curated and category-based packages that expand into multiple related skills |
| dotnet skills recommend | Scan local *.csproj files, propose relevant dotnet-* skills, and let you decide what to install |
| dotnet skills install <skill...> | Install one or more skills |
| dotnet skills install package <package...> | Install one or more packages such as ai, code-quality, mcaf, or orleans, with each package expanding into multiple related skills |
| dotnet skills package install <package...> | Alias for the same package installation flow |
| dotnet skills remove [skill...] | Remove one or more installed catalog skills, or use --all to clear the target |
| dotnet skills update [skill...] | Update installed catalog skills to the selected catalog version |
| dotnet skills sync | Download latest catalog |
| dotnet skills where | Show install paths |
| dotnet skills agent list | List available orchestration agents |
| dotnet skills agent install <agent...> | Install orchestration agents |
| dotnet skills agent install router --auto | Install agents to all detected platforms |
| dotnet skills agent remove <agent...> | Remove installed agents |
Use --agent to target a specific agent, --scope to choose global or project install. Use dotnet skills list --installed-only or the shorter dotnet skills list --local when you only want the installed inventory, or --available-only when you want the detailed category-by-category breakdown of the remaining catalog. The default list view stays compact: it shows the current target inventory, compares project/global scope when that comparison is meaningful, and keeps the remaining catalog as a short category summary instead of dumping one giant description table. The CLI renders rich terminal tables by default so you can quickly see installed versions, update candidates, install commands, and when a newer dotnet-skills package is available on NuGet. dotnet skills --version is a shortcut for the version view.
dotnet skills package list shows the ready-made packages. Package installs are bulk shortcuts for related skill sets, so dotnet skills install package ai, dotnet skills install package code-quality, dotnet skills install package mcaf, or dotnet skills install package orleans will install every skill mapped to that package in one pass.
dotnet skills recommend is a scan-only command: it inspects local project files, proposes a skill list, and prints the install command you can run if you agree with the recommendations. It does not install anything automatically.
The bare dotnet skills usage view and help path also perform the automatic self-update check, so an outdated tool still tells you to upgrade before it renders the command table.
Use dotnet skills version --no-check when you only want the local installed tool version without calling NuGet. Set DOTNET_SKILLS_SKIP_UPDATE_CHECK=1 if you want to suppress automatic update notices during normal command startup.
Catalog releases are published automatically in .github/workflows/publish-catalog.yml at 04:00 UTC and include the catalog-v* release, GitHub Pages deployment, and NuGet publish for the dotnet-skills tool in the same run. Automatic catalog versions use a numeric calendar-plus-daily-index format such as 2026.3.15.0, where the first UTC-day release is .0, the second is .1, and so on. The tool reads the newest non-draft catalog-v* release by default, and --catalog-version is only for intentional pinning.
| Agent | Global | Project |
|-------|--------|---------|
| Claude | ~/.claude/skills/ | .claude/skills/ |
| Copilot | ~/.copilot/skills/ | .github/skills/ |
| Gemini | ~/.gemini/skills/ | .gemini/skills/ |
| Codex | $CODEX_HOME/skills/ (default: ~/.codex/skills/) | .codex/skills/ |
| Junie | ~/.junie/skills/ | .junie/skills/ |
| Default fallback | ~/.agents/skills/ | .agents/skills/ |
| Agent | Global | Project |
|-------|--------|---------|
| Claude | ~/.claude/agents/ | .claude/agents/ |
| Copilot | ~/.copilot/agents/ | .github/agents/ |
| Gemini | ~/.gemini/agents/ | .gemini/agents/ |
| Codex | $CODEX_HOME/agents/ (default: ~/.codex/agents/) | .codex/agents/ |
| Junie | ~/.junie/agents/ | .junie/agents/ |
dotnet skills agent install --auto writes only to already existing native agent directories. It does not use .agents as a shared agent target; if no native agent directory exists yet, specify --agent or --target.
dotnet skills agent ... --target <path> requires an explicit --agent because the generated file format depends on the selected platform.
When --agent is omitted for skill installation, the tool checks for .codex/, .claude/, .github/, .gemini/, and .junie/ directories in that order, installs into every already existing native platform target it finds, and creates .agents/skills/ only when no native platform folder exists.
This repository now tracks a parallel agent layer above the skill catalog.
skills/ remain the canonical reusable dotnet-* building blocks.agents/<agent>/AGENT.md folders hold broad orchestration agents for routing, frontend analysis, review, modernization, or other grouped flows that span multiple skills.skills/<skill>/agents/<agent>/AGENT.md can hold tightly coupled specialist agents that should ship next to one skill and use that skill as their main implementation source.dotnet-skills CLI remains skill-first; repo-owned agents can evolve and ship on their own track..agent.md or native Claude files should be treated as install adapters, not as the canonical repo source format.flowchart LR
A["User or coding platform request"] --> B{"Broad cross-domain task?"}
B -->|Yes| C["agents/<agent>/AGENT.md"]
B -->|No, skill-specific| D["skills/<skill>/agents/<agent>/AGENT.md"]
C --> E["Route into skills/*"]
D --> E
E --> F["Apply narrow implementation guidance from SKILL.md"]
| Agent | Scope | Primary routing |
|-------|-------|-----------------|
| dotnet-router | top-level | classify web, data, AI, build, UI, testing, and modernization work |
| dotnet-build | top-level | restore, build, pack, CI, diagnostics |
| dotnet-data | top-level | EF Core, EF6, migrations, query issues |
| dotnet-frontend | top-level | Blazor, frontend asset quality, browser-facing audits, and file-structure linting inside .NET repos |
| [`dot
No comments yet. Be the first to share your thoughts!