dotnet
This repository is a Virtual Monolithic Repository (VMR) which includes all the source code and infrastructure needed to build the .NET SDK.
Gives coding agents ready-made help for everyday C# work, such as running one-file C# apps, calling native libraries from .NET, setting up keyless NuGet publishing, and writing fast SIMD code.
Claude Code
> /plugin marketplace add dotnet/skills
Codex
$ npx skills add dotnet/skills --skill csharp-scripts dotnet-pinvoke nuget-trusted-publishing vectorization technology-selection convert-blazor-server-to-webapp dotnet-webapi author-component collect-user-input configure-auth coordinate-components create-blazor-project fetch-and-send-data plan-ui-change support-prerendering use-igniteui-blazor use-js-interop create-datadriven-aspnetcore optimizing-ef-core-queries analyzing-dotnet-performance android-tombstone-symbolication apple-crash-symbolication clr-activation-debugging dotnet-trace-collect dump-collect microbenchmarking exp-mock-usage-analysis exp-test-maintainability dotnet-maui-doctor maui-app-lifecycle maui-collectionview maui-data-binding maui-dependency-injection maui-safe-area maui-shell-navigation maui-theming binlog-failure-analysis binlog-generation build-parallelism build-perf-baseline build-perf-diagnostics check-bin-obj-clash copy-to-output-directory directory-build-organization eliminate-redundant-restores eval-performance extension-points including-generated-files incremental-build item-management msbuild-antipatterns msbuild-modernization property-patterns resolve-project-references target-authoring troubleshoot-binlog-mcp convert-to-cpm template-authoring template-comparison template-discovery template-instantiation template-smart-defaults template-validation migrate-mstest-v1v2-to-v3 migrate-mstest-v3-to-v4 migrate-nunit-to-mstest migrate-vstest-to-mtp migrate-xunit-to-mstest migrate-xunit-to-xunit-v3 assertion-quality code-testing-agent code-testing-extensions code-testing coverage-analysis crap-score detect-static-dependencies filter-syntax find-untested-sources generate-testability-wrappers grade-tests migrate-static-to-wrapper mtp-hot-reload platform-detection run-tests scaffold-dotnet-test-project test-analysis-extensions test-anti-patterns test-gap-analysis test-smell-detection test-tagging test-value-evidence testability-obstacle writing-mstest-tests dotnet-aot-compat migrate-dotnet10-to-dotnet11 migrate-dotnet8-to-dotnet9 migrate-dotnet9-to-dotnet10 migrate-nullable-references thread-abort-migration winforms-expert csharp-expert csharp-refactoring msbuild setup-local-sdk process-api-net11 system-text-json-net11 -a codex
Cursor
$ npx skills add dotnet/skills --skill csharp-scripts dotnet-pinvoke nuget-trusted-publishing vectorization technology-selection convert-blazor-server-to-webapp dotnet-webapi author-component collect-user-input configure-auth coordinate-components create-blazor-project fetch-and-send-data plan-ui-change support-prerendering use-igniteui-blazor use-js-interop create-datadriven-aspnetcore optimizing-ef-core-queries analyzing-dotnet-performance android-tombstone-symbolication apple-crash-symbolication clr-activation-debugging dotnet-trace-collect dump-collect microbenchmarking exp-mock-usage-analysis exp-test-maintainability dotnet-maui-doctor maui-app-lifecycle maui-collectionview maui-data-binding maui-dependency-injection maui-safe-area maui-shell-navigation maui-theming binlog-failure-analysis binlog-generation build-parallelism build-perf-baseline build-perf-diagnostics check-bin-obj-clash copy-to-output-directory directory-build-organization eliminate-redundant-restores eval-performance extension-points including-generated-files incremental-build item-management msbuild-antipatterns msbuild-modernization property-patterns resolve-project-references target-authoring troubleshoot-binlog-mcp convert-to-cpm template-authoring template-comparison template-discovery template-instantiation template-smart-defaults template-validation migrate-mstest-v1v2-to-v3 migrate-mstest-v3-to-v4 migrate-nunit-to-mstest migrate-vstest-to-mtp migrate-xunit-to-mstest migrate-xunit-to-xunit-v3 assertion-quality code-testing-agent code-testing-extensions code-testing coverage-analysis crap-score detect-static-dependencies filter-syntax find-untested-sources generate-testability-wrappers grade-tests migrate-static-to-wrapper mtp-hot-reload platform-detection run-tests scaffold-dotnet-test-project test-analysis-extensions test-anti-patterns test-gap-analysis test-smell-detection test-tagging test-value-evidence testability-obstacle writing-mstest-tests dotnet-aot-compat migrate-dotnet10-to-dotnet11 migrate-dotnet8-to-dotnet9 migrate-dotnet9-to-dotnet10 migrate-nullable-references thread-abort-migration winforms-expert csharp-expert csharp-refactoring msbuild setup-local-sdk process-api-net11 system-text-json-net11 -a cursor
Gemini CLI
$ npx skills add dotnet/skills --skill csharp-scripts dotnet-pinvoke nuget-trusted-publishing vectorization technology-selection convert-blazor-server-to-webapp dotnet-webapi author-component collect-user-input configure-auth coordinate-components create-blazor-project fetch-and-send-data plan-ui-change support-prerendering use-igniteui-blazor use-js-interop create-datadriven-aspnetcore optimizing-ef-core-queries analyzing-dotnet-performance android-tombstone-symbolication apple-crash-symbolication clr-activation-debugging dotnet-trace-collect dump-collect microbenchmarking exp-mock-usage-analysis exp-test-maintainability dotnet-maui-doctor maui-app-lifecycle maui-collectionview maui-data-binding maui-dependency-injection maui-safe-area maui-shell-navigation maui-theming binlog-failure-analysis binlog-generation build-parallelism build-perf-baseline build-perf-diagnostics check-bin-obj-clash copy-to-output-directory directory-build-organization eliminate-redundant-restores eval-performance extension-points including-generated-files incremental-build item-management msbuild-antipatterns msbuild-modernization property-patterns resolve-project-references target-authoring troubleshoot-binlog-mcp convert-to-cpm template-authoring template-comparison template-discovery template-instantiation template-smart-defaults template-validation migrate-mstest-v1v2-to-v3 migrate-mstest-v3-to-v4 migrate-nunit-to-mstest migrate-vstest-to-mtp migrate-xunit-to-mstest migrate-xunit-to-xunit-v3 assertion-quality code-testing-agent code-testing-extensions code-testing coverage-analysis crap-score detect-static-dependencies filter-syntax find-untested-sources generate-testability-wrappers grade-tests migrate-static-to-wrapper mtp-hot-reload platform-detection run-tests scaffold-dotnet-test-project test-analysis-extensions test-anti-patterns test-gap-analysis test-smell-detection test-tagging test-value-evidence testability-obstacle writing-mstest-tests dotnet-aot-compat migrate-dotnet10-to-dotnet11 migrate-dotnet8-to-dotnet9 migrate-dotnet9-to-dotnet10 migrate-nullable-references thread-abort-migration winforms-expert csharp-expert csharp-refactoring msbuild setup-local-sdk process-api-net11 system-text-json-net11 -a gemini-cli
GitHub Copilot
$ npx skills add dotnet/skills --skill csharp-scripts dotnet-pinvoke nuget-trusted-publishing vectorization technology-selection convert-blazor-server-to-webapp dotnet-webapi author-component collect-user-input configure-auth coordinate-components create-blazor-project fetch-and-send-data plan-ui-change support-prerendering use-igniteui-blazor use-js-interop create-datadriven-aspnetcore optimizing-ef-core-queries analyzing-dotnet-performance android-tombstone-symbolication apple-crash-symbolication clr-activation-debugging dotnet-trace-collect dump-collect microbenchmarking exp-mock-usage-analysis exp-test-maintainability dotnet-maui-doctor maui-app-lifecycle maui-collectionview maui-data-binding maui-dependency-injection maui-safe-area maui-shell-navigation maui-theming binlog-failure-analysis binlog-generation build-parallelism build-perf-baseline build-perf-diagnostics check-bin-obj-clash copy-to-output-directory directory-build-organization eliminate-redundant-restores eval-performance extension-points including-generated-files incremental-build item-management msbuild-antipatterns msbuild-modernization property-patterns resolve-project-references target-authoring troubleshoot-binlog-mcp convert-to-cpm template-authoring template-comparison template-discovery template-instantiation template-smart-defaults template-validation migrate-mstest-v1v2-to-v3 migrate-mstest-v3-to-v4 migrate-nunit-to-mstest migrate-vstest-to-mtp migrate-xunit-to-mstest migrate-xunit-to-xunit-v3 assertion-quality code-testing-agent code-testing-extensions code-testing coverage-analysis crap-score detect-static-dependencies filter-syntax find-untested-sources generate-testability-wrappers grade-tests migrate-static-to-wrapper mtp-hot-reload platform-detection run-tests scaffold-dotnet-test-project test-analysis-extensions test-anti-patterns test-gap-analysis test-smell-detection test-tagging test-value-evidence testability-obstacle writing-mstest-tests dotnet-aot-compat migrate-dotnet10-to-dotnet11 migrate-dotnet8-to-dotnet9 migrate-dotnet9-to-dotnet10 migrate-nullable-references thread-abort-migration winforms-expert csharp-expert csharp-refactoring msbuild setup-local-sdk process-api-net11 system-text-json-net11 -a github-copilot
OpenCode
$ npx skills add dotnet/skills --skill csharp-scripts dotnet-pinvoke nuget-trusted-publishing vectorization technology-selection convert-blazor-server-to-webapp dotnet-webapi author-component collect-user-input configure-auth coordinate-components create-blazor-project fetch-and-send-data plan-ui-change support-prerendering use-igniteui-blazor use-js-interop create-datadriven-aspnetcore optimizing-ef-core-queries analyzing-dotnet-performance android-tombstone-symbolication apple-crash-symbolication clr-activation-debugging dotnet-trace-collect dump-collect microbenchmarking exp-mock-usage-analysis exp-test-maintainability dotnet-maui-doctor maui-app-lifecycle maui-collectionview maui-data-binding maui-dependency-injection maui-safe-area maui-shell-navigation maui-theming binlog-failure-analysis binlog-generation build-parallelism build-perf-baseline build-perf-diagnostics check-bin-obj-clash copy-to-output-directory directory-build-organization eliminate-redundant-restores eval-performance extension-points including-generated-files incremental-build item-management msbuild-antipatterns msbuild-modernization property-patterns resolve-project-references target-authoring troubleshoot-binlog-mcp convert-to-cpm template-authoring template-comparison template-discovery template-instantiation template-smart-defaults template-validation migrate-mstest-v1v2-to-v3 migrate-mstest-v3-to-v4 migrate-nunit-to-mstest migrate-vstest-to-mtp migrate-xunit-to-mstest migrate-xunit-to-xunit-v3 assertion-quality code-testing-agent code-testing-extensions code-testing coverage-analysis crap-score detect-static-dependencies filter-syntax find-untested-sources generate-testability-wrappers grade-tests migrate-static-to-wrapper mtp-hot-reload platform-detection run-tests scaffold-dotnet-test-project test-analysis-extensions test-anti-patterns test-gap-analysis test-smell-detection test-tagging test-value-evidence testability-obstacle writing-mstest-tests dotnet-aot-compat migrate-dotnet10-to-dotnet11 migrate-dotnet8-to-dotnet9 migrate-dotnet9-to-dotnet10 migrate-nullable-references thread-abort-migration winforms-expert csharp-expert csharp-refactoring msbuild setup-local-sdk process-api-net11 system-text-json-net11 -a opencode
Windsurf
$ npx skills add dotnet/skills --skill csharp-scripts dotnet-pinvoke nuget-trusted-publishing vectorization technology-selection convert-blazor-server-to-webapp dotnet-webapi author-component collect-user-input configure-auth coordinate-components create-blazor-project fetch-and-send-data plan-ui-change support-prerendering use-igniteui-blazor use-js-interop create-datadriven-aspnetcore optimizing-ef-core-queries analyzing-dotnet-performance android-tombstone-symbolication apple-crash-symbolication clr-activation-debugging dotnet-trace-collect dump-collect microbenchmarking exp-mock-usage-analysis exp-test-maintainability dotnet-maui-doctor maui-app-lifecycle maui-collectionview maui-data-binding maui-dependency-injection maui-safe-area maui-shell-navigation maui-theming binlog-failure-analysis binlog-generation build-parallelism build-perf-baseline build-perf-diagnostics check-bin-obj-clash copy-to-output-directory directory-build-organization eliminate-redundant-restores eval-performance extension-points including-generated-files incremental-build item-management msbuild-antipatterns msbuild-modernization property-patterns resolve-project-references target-authoring troubleshoot-binlog-mcp convert-to-cpm template-authoring template-comparison template-discovery template-instantiation template-smart-defaults template-validation migrate-mstest-v1v2-to-v3 migrate-mstest-v3-to-v4 migrate-nunit-to-mstest migrate-vstest-to-mtp migrate-xunit-to-mstest migrate-xunit-to-xunit-v3 assertion-quality code-testing-agent code-testing-extensions code-testing coverage-analysis crap-score detect-static-dependencies filter-syntax find-untested-sources generate-testability-wrappers grade-tests migrate-static-to-wrapper mtp-hot-reload platform-detection run-tests scaffold-dotnet-test-project test-analysis-extensions test-anti-patterns test-gap-analysis test-smell-detection test-tagging test-value-evidence testability-obstacle writing-mstest-tests dotnet-aot-compat migrate-dotnet10-to-dotnet11 migrate-dotnet8-to-dotnet9 migrate-dotnet9-to-dotnet10 migrate-nullable-references thread-abort-migration winforms-expert csharp-expert csharp-refactoring msbuild setup-local-sdk process-api-net11 system-text-json-net11 -a windsurf
This repository contains the .NET team's curated set of portable skills and host-specific custom agents for coding agents. For information about the Agent Skills standard, see agentskills.io.
Tip Compare skill value: Open the Skill Value dashboard See token use, elapsed time, activation, and not-passed rates by plugin, skill, executor model, and judge model.
Plugin support is component-specific:
agents/*.agent.md use GitHub Copilot custom-agent conventions. They are not
installed as native OpenAI Codex agents..codex/agents/*.toml. This repository does not currently ship them
because Codex plugin installation does not place agent files in those discovery locations.| Plugin | Description |
|---|---|
| dotnet | High-level .NET development skills plus C# language server (LSP) integration for hosts that support it. |
| dotnet-advanced | Collection of .NET skills for handling specific .NET tasks for special scenarios. |
| dotnet-data | Skills for .NET data access and Entity Framework related tasks. |
| dotnet-diag | Skills for .NET performance investigations, debugging, and incident analysis. |
| dotnet-msbuild | Comprehensive MSBuild and .NET build skills: failure diagnosis, performance optimization, code quality, and modernization. |
| dotnet-nuget | NuGet and .NET package management: dependency management and modernization. |
| dotnet-upgrade | Skills for migrating and upgrading .NET projects across framework versions, language features, and compatibility targets. |
| dotnet-maui | Skills for .NET MAUI development: environment setup, diagnostics, and troubleshooting. |
| dotnet-ai | AI and ML skills for .NET: technology selection, LLM integration, agentic workflows, RAG pipelines, MCP, and classic ML with ML.NET. |
| dotnet-template-engine | .NET Template Engine skills: template discovery, project scaffolding, and template authoring. |
| dotnet-test | Skills for running, generating, analyzing, and improving .NET tests: test execution, filtering, platform detection, coverage, testability, and MSTest workflows. |
| dotnet-test-migration | Skills and a GitHub Copilot orchestrator agent for migrating .NET test frameworks and platforms: MSTest and xUnit version upgrades, xUnit-to-MSTest conversion, and VSTest to Microsoft.Testing.Platform. |
| dotnet-aspnetcore | ASP.NET Core web development skills including middleware, endpoints, real-time communication, and API patterns. |
| dotnet-blazor | Skills for Blazor development: component authoring, interactivity, and web application patterns. |
| dotnet-winforms | Skills for Windows Forms development: project setup, UI design, data binding, accessibility, and modern .NET practices. |
| dotnet11 | Skills for new .NET 11 APIs and language features. |
Reusable GitHub Agentic Workflows are published under
agentic-workflows/. Install the complete collection with
gh aw add-wizard dotnet/skills/agentic-workflows@main, or install an individual
package using the command in its README.
/plugin marketplace add dotnet/skills
/plugin install <plugin>@dotnet-agent-skills
/skills
/agents
/plugin update <plugin>@dotnet-agent-skills
Important
VS Code plugin support is a preview feature and subject to change. You may need to enable it first.
// settings.json
{
"chat.plugins.enabled": true,
"chat.plugins.marketplaces": ["dotnet/skills"]
}
Once configured, type /plugins in Copilot Chat or use the @agentPlugins filter in Extensions to browse and install plugins from the marketplace.
This repository is a Cursor plugin marketplace. You can discover and install published plugins directly in Cursor:
.NET or browse cursor.com/marketplaceFor local development or unpublished changes, import plugins from a local checkout:
~/.cursor/plugins/local/dotnet-agent-skillsSkills in this repository follow the agentskills.io open standard and are compatible with OpenAI Codex.
Codex plugin installs expose the skills and any Codex-compatible MCP servers declared by the
plugin. They do not expose the repository's GitHub Copilot .agent.md files, their static
handoffs, or host-specific LSP declarations. Use Codex's built-in dynamic subagent delegation
instead. Native Codex custom agents are a separate configuration mechanism documented under
multi-agent workflows. OpenAI
Agents SDK handoffs are an
application-level transfer between SDK-defined agents; they are separate from both Copilot's
static UI handoff metadata and Codex plugin or custom-agent packaging.
Codex CLI v0.121.0 and later supports a plugin marketplace.
This repository ships a Codex-native marketplace manifest at .agents/plugins/marketplace.json,
so you can register dotnet/skills as a marketplace and install plugins from it directly.
codex plugin marketplace add dotnet/skills
/plugins
dotnet-agent-skills tab and install the desired plugins.codex plugin marketplace upgrade dotnet-agent-skills
You can also install individual skills using the skill-installer CLI with the GitHub URL:
$ skill-installer install https://github.com/dotnet/skills/tree/main/plugins/<plugin>/skills/<skill-name>
See CONTRIBUTING.md for contribution guidelines and how to add a new plugin.
See LICENSE for details.
This repository is a Virtual Monolithic Repository (VMR) which includes all the source code and infrastructure needed to build the .NET SDK.
See 12 dotnet-skills alternatives
A development methodology for coding agents that makes the agent brainstorm before building, follow plans, run parallel work and finish branches in a disciplined way. You get fewer skipped steps and more consistent results from your coding assistant.
Helps you take a change from a rough idea or bug report through to a tested, reviewed result, with each step handled by a focused skill. Its skills cover pinning down domain terms, designing module interfaces, diagnosing hard bugs, and reviewing changes against your repo's coding standards.
Gives your coding agent a planning, testing and review routine to follow on every task. It plans before building, checks changes with tests, has a fresh reviewer look for regressions, and saves repeated wins as reusable skills.
Developer tools for working on the React codebase itself. Provides skills for extracting error messages, managing and debugging feature flags across release channels, running Flow type checks, and fixing lint and formatting issues before committing.
Install it with the command on its page. It includes csharp-scripts, dotnet-pinvoke, nuget-trusted-publishing. Its skills do not fire on their own yet. Free and open source.
Is this plugin yours?
Claim it with GitHubSubmit a pluginPromote it