openai/winui-app
Bootstrap, develop, and design modern WinUI 3 desktop applications with C# and the Windows App SDK using official Microsoft guidance, WinUI Gallery patterns, Windows App SDK samples, and CommunityToolkit components. Use when creating a brand new app, preparing a machine for WinUI, reviewing, refactoring, planning, troubleshooting, environment-checking, or setting up WinUI 3 XAML, controls, navigation, windowing, theming, accessibility, responsiveness, performance, deployment, or related Windows app design and development work.
npx skills add https://github.com/openai/skills --skill winui-app
Use this skill for WinUI 3 and Windows App SDK work that needs grounded setup guidance, app bootstrap, modern Windows UX decisions, or concrete implementation patterns.
--force unless the user explicitly asked to overwrite existing files.config.yaml:winget configure -f config.yaml --accept-configuration-agreements --disable-interactivity
winui template is already available and the toolchain is usable, note the partial failure and continue. If prerequisites are still missing, stop and report the blocker clearly.dotnet new list winui
references/foundation-environment-audit-and-remediation.md and summarize readiness under present, missing, uncertain, and recommended optional tools.dotnet new winui -o <name>. Add template options only when the user asked for them. Supported options: -f|--framework net10.0|net9.0|net8.0, -slnx|--use-slnx, -cpm|--central-pkg-mgmt, -mvvm|--use-mvvm, -imt|--include-mvvm-toolkit, -un|--unpackaged, -nsf|--no-solution-file, --force. Do not invent unsupported flags. If the user asks for packaged behavior, pass --unpackaged false. Otherwise keep the template default.dotnet build against the generated .csproj.references/_sections.md, then load only the reference files that match the task..exe launches after each change.MSB3073 or XamlCompiler.exe, read references/foundation-template-first-recovery.md and simplify back toward the current dotnet new winui scaffold for the chosen packaging model before inventing custom recovery structure.10. Prefer WindowsAppSDK-Samples for scenario-level APIs such as windowing, lifecycle, notifications, deployment, and custom controls.
11. Build toward WinUI and Fluent guidance first. Treat native WinUI shells, controls, interactions, and control chrome as the default implementation path.
12. For grouped command surfaces such as document actions, editor formatting, view toggles, or page-level toolbars, favor a native CommandBar or other stock WinUI command surface before building a custom row with Grid, StackPanel, Border, or ad hoc button groupings.
13. Do not invent app-specific controls, bespoke component libraries, or custom chrome to replace stock WinUI behavior unless the user explicitly asks for that customization, the existing product design system already requires it, or a verified platform gap leaves no clean native option.
14. When customization is needed, first compose, template, or restyle built-in WinUI controls and system resources before adding CommunityToolkit dependencies or authoring a new custom control.
15. Use CommunityToolkit only when built-in WinUI controls or helpers do not cover the need cleanly.
16. Support both light and dark mode by default. Treat single-theme output as an exception that requires an explicit user request or an existing product constraint.
17. Use theme-aware resources, system brushes, and WinUI styling hooks instead of hard-coded light-only or dark-only colors when building or revising UI.
18. Make scroll ownership explicit for collection layouts. When a page already scrolls vertically, do not assume a nested GridView or other scroll-owning collection will still render a horizontal poster rail correctly.
19. Do not add extra Border wrappers around sections, lists, or cards unless the border is doing distinct work that the contained control or parent surface does not already provide. Avoid "double-card" compositions where a section Border wraps child items that already render as cards.
20. Treat responsiveness as a shell-plus-page problem, not only a control-resize problem. Plan explicit wide, medium, and phone-width behavior for navigation, padding, content density, and footer/tool regions, and simplify or hide nonessential UI as width shrinks.
| Request | Read first |
| --- | --- |
| Check whether this PC can build WinUI apps | references/foundation-environment-audit-and-remediation.md |
| Install missing WinUI prerequisites | references/foundation-environment-audit-and-remediation.md |
| Start a new packaged or unpackaged app | references/foundation-setup-and-project-selection.md |
| Recover from opaque XAML compiler or startup failures while staying anchored to the template scaffold | references/foundation-template-first-recovery.md |
| Build, run, or verify that a WinUI app actually launched | references/build-run-and-launch-verification.md |
| Review app structure, pages, resources, and bindings | references/foundation-winui-app-structure.md |
| Choose shell, navigation, title bar, or multi-window patterns | references/shell-navigation-and-windowing.md |
| Choose controls or responsive layout patterns | references/controls-layout-and-adaptive-ui.md |
| Apply Mica, theming, typography, icons, or Fluent styling | references/styling-theming-materials-and-icons.md |
| Improve accessibility, keyboarding, or localization | references/accessibility-input-and-localization.md |
| Diagnose responsiveness or UI-thread performance | references/performance-diagnostics-and-responsiveness.md |
| Decide whether to use CommunityToolkit | references/community-toolkit-controls-and-helpers.md |
| Handle lifecycle, notifications, or deployment | references/windows-app-sdk-lifecycle-notifications-and-deployment.md |
| Run a review checklist | references/testing-debugging-and-review-checklists.md |
config.yaml in this skill directory as the bundled bootstrap source of truth.references/foundation-environment-audit-and-remediation.md and keep uncertain signals explicit instead of implying success.config.yaml is missing, say so clearly and fall back to the official Microsoft workflow instead of pretending the bundled path exists.Take openai/winui-app from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.