From ca2b07e420a877b4e7a7e3fa5f3538a0a694e271 Mon Sep 17 00:00:00 2001
From: Niels Laute
Date: Mon, 5 Oct 2026 15:07:39 +0200
Subject: [PATCH 1/6] Refocus docs overview and README on WinUI developers
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
---
README.md | 39 ++++--
docs/README.md | 164 +++++++++++++++++++---
docs/guides/winui.md | 187 +++++++++++++++++++++++++
docs/images/card-any-framework.png | Bin 0 -> 368113 bytes
docs/images/card-automated-testing.png | Bin 0 -> 369586 bytes
docs/images/card-coding-agents.png | Bin 0 -> 339880 bytes
docs/images/card-create-and-run.png | Bin 0 -> 339093 bytes
docs/images/card-debugging.png | Bin 0 -> 369336 bytes
docs/images/card-packaging.png | Bin 0 -> 337500 bytes
scripts/port-mslearn-docs.ps1 | 30 ++--
10 files changed, 383 insertions(+), 37 deletions(-)
create mode 100644 docs/guides/winui.md
create mode 100644 docs/images/card-any-framework.png
create mode 100644 docs/images/card-automated-testing.png
create mode 100644 docs/images/card-coding-agents.png
create mode 100644 docs/images/card-create-and-run.png
create mode 100644 docs/images/card-debugging.png
create mode 100644 docs/images/card-packaging.png
diff --git a/README.md b/README.md
index 3182e4e5a..ef3b6d57e 100644
--- a/README.md
+++ b/README.md
@@ -45,23 +45,28 @@
•
Usage
•
- Docs
+ Docs
•
Feedback
-The Windows App Development CLI (winapp CLI) is a single command-line interface for managing Windows SDKs, packaging, generating app identity, manifests, certificates, and using build tools with any app framework. This tool bridges the gap between cross-platform development and Windows-native capabilities.
+The Windows App Development CLI (winapp CLI) is a single command-line interface for creating, running, debugging, testing, and packaging Windows apps. It manages Windows SDKs, app identity, manifests, certificates, and build tools for WinUI and any other app framework.
-Whether you're building with .NET/Win32, CMake, Electron, or Rust, this CLI gives you access to:
+Whether you're building with WinUI, .NET/Win32, CMake, Electron, or Rust, this CLI gives you access to:
+- **WinUI from the terminal** - Create apps from official templates with `winapp new` and launch them with `winapp run`
- **Modern Windows APIs** - [Windows App SDK](https://learn.microsoft.com/windows/apps/windows-app-sdk/) and Windows SDK with automatic setup and code generation
- **Package Identity** - Debug and test by adding package identity without full packaging in a snap
- **MSIX Packaging** - App packaging with signing and Store readiness
+- **UI automation and agent tooling** - Inspect and drive running apps with `winapp ui`, and ground AI coding agents with `find-ui` and `find-api`
- **Developer Tools** - Manifests, certificates, assets, and build integration
+Full documentation is published on Microsoft Learn: **[Windows App Development CLI](https://learn.microsoft.com/windows/apps/dev-tools/winapp-cli/)**.
+
Perfect for:
+- **WinUI developers** who want to create, run, test, and package apps from the terminal, VS Code, or an AI coding agent
- **Cross-platform developers using frameworks like Qt or Electron** wanting native Windows features or targeting Windows
- **Developers who love their current tools** and want to build Windows apps from VS Code, or any other editor
- **Developers crafting CI/CD pipelines** to automate building apps for Windows
@@ -82,7 +87,7 @@ Our goal is to support developers wherever they are, with the tools and framewor
Without winapp CLI, setting up a project involves 12 manual steps—downloading SDKs, generating headers, creating manifests, and more. With the CLI, it's just 4 commands.
-**Few examples of what package identity and MSIX packaging unlocks:**
+**A few examples of what package identity and MSIX packaging unlock:**
- [Interactive native notifications](https://learn.microsoft.com/windows/apps/develop/notifications/app-notifications/app-notifications-quickstart?tabs=cs) and notification management
- [Integration with Windows Explorer, Taskbar, Share sheet](https://learn.microsoft.com/windows/apps/develop/windows-integration/integrate-sharesheet-packaged), and other shell surfaces
@@ -99,9 +104,13 @@ Our goal is to support developers wherever they are, with the tools and framewor
## ✏️ Get started
-Checkout our getting started guides for step by step instructions of how to setup your environment, generate manifests, assets, and certificate, how to debug APIs that require package identity, and how to MSIX package your app.
+Check out our getting started guides for step by step instructions of how to setup your environment, generate manifests, assets, and certificate, how to debug APIs that require package identity, and how to MSIX package your app.
+
+
+
+
@@ -133,7 +142,8 @@ Checkout our getting started guides for step by step instructions of how to setu
Additional guides:
- [Packaging an EXE/CLI](/docs/guides/packaging-cli.md): step by step guide of packaging an existing exe/cli as MSIX
-- [MAUI (Windows)](./docs/guides/maui.md): package and sign .NET MAUI Windows outputs with the generated resizetizer manifest
+- [Sparse packaging](./docs/guides/sparse.md): give an unpackaged app package identity with an identity-only MSIX and external content
+- [Shell completion](./docs/guides/shell-completion.md): tab completion for commands, options, and values in PowerShell, bash, zsh, and fish
- **Electron JS/TypeScript bindings** *(npm only)*: opt into auto-generated WinRT bindings via `winapp init --add-js-bindings`. See task-focused guides:
- [File picker](/docs/guides/electron/js-file-picker.md) — open native Windows file/folder pickers from the renderer
- [Toast notifications](/docs/guides/electron/js-notification.md) — show Windows toasts with actions
@@ -144,7 +154,7 @@ Additional guides:
### WinGet
-The easiest way to use the CLI is via WinGet (Windows Package Manager). In Terminal, simply run:
+The easiest way to use the CLI is via WinGet (Windows Package Manager). In Terminal, run:
`winget install Microsoft.winappcli --source winget`
@@ -230,7 +240,6 @@ npx winapp --help
**App Identity & Debugging:**
-- [`pack`](./docs/usage.md#pack) - Create MSIX packages from directories
- [`run`](./docs/usage.md#run) - Run app as a packaged application for debugging (loose layout registration)
- [`create-debug-identity`](./docs/usage.md#create-debug-identity) - Add sparse package identity to an existing exe
- [`embed-identity`](./docs/usage.md#embed-identity) - Connect an exe to its sparse identity package by embedding the `` element
@@ -239,8 +248,9 @@ npx winapp --help
See also: [Debugging Guide](./docs/debugging.md) — choosing between `winapp run` and `create-debug-identity`, IDE setup, and debugging scenarios.
-**Certificates & Signing:**
+**Packaging, Certificates & Signing:**
+- [`pack`](./docs/usage.md#pack) - Create MSIX packages from a project or prepared directories
- [`cert`](./docs/usage.md#cert) - Generate and install development certificates
- [`sign`](./docs/usage.md#sign) - Sign MSIX packages and executables
- [`az-sign`](./docs/usage.md#az-sign) - Sign with Azure Trusted Signing (cloud-managed identity, no local PFX)
@@ -253,6 +263,12 @@ See also: [Security guidance](./docs/security.md) — what development certifica
- [`tool`](./docs/usage.md#tool) - Access Windows SDK tools
- [`store`](./docs/usage.md#store) - Run Microsoft Store Developer CLI commands
- [`get-winapp-path`](./docs/usage.md#get-winapp-path) - Get paths to installed SDK components
+- [`complete`](./docs/usage.md#shell-completion) - Tab completion for PowerShell, bash, zsh, and fish
+
+**UI Automation & Sandbox:**
+
+- [`ui`](./docs/usage.md#ui) - Inspect and interact with running app UIs through UI Automation (screenshots, element trees, clicks, and text input). See the [UI Automation guide](./docs/ui-automation.md)
+- [`target`](./docs/usage.md#target) - Run commands, copy files, and capture the desktop inside Windows Sandbox. See [Windows Sandbox execution](./docs/sandbox-execution.md)
**Discovery** (agent-first — built for AI coding agents to ground generated code in real metadata and real samples, and usable by hand):
@@ -262,6 +278,7 @@ See also: [Security guidance](./docs/security.md) — what development certifica
**Node.js/Electron Specific:**
- [`node create-addon`](./docs/usage.md#node-create-addon) - Generate native C# or C++ addons
+- [`node generate-bindings`](./docs/usage.md#node-generate-bindings) - Generate JavaScript/TypeScript bindings for WinRT APIs
- [`node add-electron-debug-identity`](./docs/usage.md#node-add-electron-debug-identity) - Add identity to Electron processes
- [`node clear-electron-debug-identity`](./docs/usage.md#node-clear-electron-debug-identity) - Remove identity from Electron processes
@@ -280,6 +297,8 @@ This repository includes samples demonstrating how to use the CLI with various f
| [WinUI App](/samples/winui-app/README.md) | Packaged WinUI 3 app registered and launched via `winapp run ` |
| [WinUI Unpackaged App](/samples/winui-unpackaged-app/README.md) | Unpackaged WinUI 3 app launched via `winapp run ` |
| [WinUI Solution](/samples/winui-solution/README.md) | Multi-project `.sln` (app + test project) demonstrating `winapp run` solution-mode auto-selection |
+| [C++ WinUI App](/samples/cpp-app-winui/README.md) | WinUI 3 window built in C++ with CMake, without XAML or MSBuild |
+| [.NET MAUI App](/samples/maui-app/README.md) | .NET MAUI Windows project packaged and signed with `winapp` |
| [Electron](/samples/electron/README.md) | Electron Forge app with appxmanifest, assets, native C++ addon, and C# addon |
| [Electron WinML](/samples/electron-winml/README.md) | Electron app using Windows ML for image classification |
| [Node.js WinUI 3](/samples/node-winui/README.md) | Native WinUI 3 controls created directly from JavaScript |
@@ -292,7 +311,7 @@ This repository includes samples demonstrating how to use the CLI with various f
The **[WinApp VS Code Extension](https://marketplace.visualstudio.com/items?itemName=Microsoft-WinAppCLI.winapp)** brings WinApp CLI into Visual Studio Code. It can initialize projects, debug with package identity, package, sign, and more without leaving the editor. Press **F5** to launch your app with identity and automatically attach a debugger.
-Install it from the [Visual Studio Marketplace](https://marketplace.visualstudio.com/items?itemName=Microsoft-WinAppCLI.winapp). Checkout the repo for the WinApp VS Code Extension at [microsoft/WinAppVSCE](https://github.com/microsoft/WinAppVSCE).
+Install it from the [Visual Studio Marketplace](https://marketplace.visualstudio.com/items?itemName=Microsoft-WinAppCLI.winapp). Check out the repo for the WinApp VS Code Extension at [microsoft/WinAppVSCE](https://github.com/microsoft/WinAppVSCE).
## 🤖 Using with AI Coding Agents
diff --git a/docs/README.md b/docs/README.md
index 01b6ea1b6..1faf25541 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -1,23 +1,107 @@
-
+
# Windows App Development CLI (winapp CLI)
> [!IMPORTANT]
> The Windows App Development CLI is currently in **public preview**. Features and commands may change before the final release. Share your feedback by [creating an issue](https://github.com/microsoft/WinAppCli/issues).
-The Windows App Development CLI (winapp CLI) is a single command-line interface for managing Windows SDKs, packaging, generating app identity, manifests, certificates, and using build tools with any app framework. This tool bridges the gap between cross-platform development and Windows-native capabilities.
+The Windows App Development CLI (winapp CLI) is a command-line tool for building Windows apps. Use it to create, run, debug, test, and package [WinUI](https://learn.microsoft.com/windows/apps/winui/winui3/) apps from a terminal, the editor you prefer, or an AI coding agent.
+
+The same commands also bring the [Windows App SDK](https://learn.microsoft.com/windows/apps/windows-app-sdk/), package identity, and MSIX packaging to apps built with other frameworks, such as .NET, C++, Electron, Flutter, Rust, and Tauri.
+
+## Key benefits of winapp CLI
+
+:::row:::
+ :::column:::
+ 
+ :::column-end:::
+ :::column span="2":::
+ **Create and run WinUI apps from the terminal**
+ `winapp new` creates a WinUI app from the official templates, including blank, NavigationView, TabView, and MVVM starters. `winapp run` builds the project, installs the matching Windows App Runtime, and launches the app, whether it's packaged or unpackaged.
+
+ [Build your first WinUI app](https://learn.microsoft.com/windows/apps/get-started/start-here)
+ :::column-end:::
+:::row-end:::
+
+:::row:::
+ :::column:::
+ 
+ :::column-end:::
+ :::column span="2":::
+ **Debug with package identity and crash diagnostics**
+ Run your app with package identity so you can test notifications, on-device AI, and other APIs that require identity. Add `--debug-output` to capture debug messages and crash dumps. For WinUI crashes, winapp decodes stowed exceptions to point you at the XAML event handler that failed.
+
+ [Debugging with package identity](debugging.md)
+ :::column-end:::
+:::row-end:::
+
+:::row:::
+ :::column:::
+ 
+ :::column-end:::
+ :::column span="2":::
+ **Ground AI coding agents in real WinUI code**
+ `winapp find-ui` returns working XAML and C# from the WinUI 3 Gallery and the Windows Community Toolkit. `winapp find-api` inspects the Windows Runtime APIs your project references. Agents use them to generate code from real samples and metadata instead of guessing.
+
+ [Use winapp CLI with AI agents](#use-winapp-cli-with-ai-agents)
+ :::column-end:::
+:::row-end:::
+
+:::row:::
+ :::column:::
+ 
+ :::column-end:::
+ :::column span="2":::
+ **Automate and test your app's UI**
+ `winapp ui` inspects and interacts with running apps through UI Automation, and captures screenshots and recordings. Run your app in Windows Sandbox to test it in a clean environment.
+
+ [UI automation](ui-automation.md)
+ :::column-end:::
+:::row-end:::
+
+:::row:::
+ :::column:::
+ 
+ :::column-end:::
+ :::column span="2":::
+ **Package, sign, and ship**
+ `winapp pack` builds your project, packages it as MSIX, and signs it in one step. Generate development certificates locally, sign release builds with Azure Trusted Signing, and install winapp CLI on GitHub Actions or Azure DevOps runners.
+
+ [Package your app](usage.md#pack)
+ :::column-end:::
+:::row-end:::
+
+:::row:::
+ :::column:::
+ 
+ :::column-end:::
+ :::column span="2":::
+ **Bring Windows features to any framework**
+ Add the Windows SDK and Windows App SDK, package identity, and MSIX packaging to apps built with .NET, C++, Electron, Flutter, Rust, or Tauri, without changing your build system.
+
+ [See supported frameworks](#supported-frameworks)
+ :::column-end:::
+:::row-end:::
+
+## Get started with WinUI
+
+After you [install winapp CLI](#installation) and the [.NET SDK](https://dotnet.microsoft.com/download), create and run a WinUI app:
-Whether you're building with .NET/Win32, CMake, Electron, or Rust, this CLI gives you access to:
+```powershell
+winapp new --name MyWinUIApp --template winui-navview --use-defaults
+cd MyWinUIApp
+winapp run
+```
-- **Modern Windows APIs** - [Windows App SDK](https://learn.microsoft.com/windows/apps/windows-app-sdk/) and Windows SDK with automatic setup and code generation
-- **Package Identity** - Debug and test by adding package identity without full packaging
-- **MSIX Packaging** - App packaging with signing and Store readiness
-- **Developer Tools** - Manifests, certificates, assets, and build integration
+When you're ready to share the app, generate a development certificate and create a signed MSIX package:
-## Why package identity?
+```powershell
+winapp cert generate --manifest ./Package.appxmanifest
+winapp pack ./MyWinUIApp.csproj -c Release --cert ./devcert.pfx
+```
-Many Windows APIs require your app to have package identity. With identity, your app gains access to features like notifications, OS integration, and on-device AI. For a full list of what package identity unlocks and help choosing the right packaging model, see [Packaging overview](https://learn.microsoft.com/windows/apps/package-and-deploy/packaging/).
+For a step-by-step walkthrough that includes setup and your first UI change, see [Build your first WinUI app](https://learn.microsoft.com/windows/apps/get-started/start-here). To see all available templates, run `winapp new --list`. For the complete workflow, including debugging, UI automation, and packaging, see [Using winapp CLI with WinUI](guides/winui.md).
## Installation
@@ -29,6 +113,8 @@ The easiest way to install the CLI is via WinGet (Windows Package Manager):
winget install Microsoft.winappcli --source winget
```
+If you use the WinGet PowerShell module, run `Install-WinGetPackage Microsoft.winappcli` instead.
+
### NPM
For Electron projects, install via NPM:
@@ -59,13 +145,32 @@ Or if using Electron/Node.js:
npx winapp --help
```
+## Use winapp CLI with AI agents
+
+winapp CLI is designed to work well with AI coding agents. Commands such as `find-ui` and `find-api` return machine-readable output with `--json`, so an agent can look up real WinUI samples and Windows Runtime APIs before it writes code.
+
+Install the winapp plugin to give your agent skills for the winapp CLI workflow:
+
+```powershell
+# GitHub Copilot CLI
+copilot plugin install microsoft/WinAppCli
+
+# Claude Code
+claude plugin marketplace add microsoft/WinAppCli
+claude plugin install winappcli@winappcli
+```
+
+If you work in Visual Studio Code, the [WinApp VS Code extension](https://learn.microsoft.com/windows/apps/develop/ai-assisted/vs-code-tools#winapp-vs-code-extension) runs winapp CLI commands from the editor and launches your app with package identity when you press **F5**. Install it from the [Visual Studio Marketplace](https://marketplace.visualstudio.com/items?itemName=Microsoft-WinAppCLI.winapp).
+
## Supported frameworks
-winapp CLI works with a variety of app frameworks:
+winapp CLI works with WinUI and other app frameworks:
| Framework | Guide |
|-----------|-------|
+| WinUI | [Get started with WinUI](guides/winui.md) |
| .NET / WPF / WinForms | [Get started with .NET](guides/dotnet.md) |
+| .NET MAUI | [Get started with .NET MAUI](guides/maui.md) |
| C++ (CMake) | [Get started with C++](guides/cpp.md) |
| Electron | [Get started with Electron](guides/electron/index.md) |
| Rust | [Get started with Rust](guides/rust.md) |
@@ -82,23 +187,49 @@ Additional guides:
| Category | Commands |
|----------|----------|
-| **Setup** | [init](usage.md#init), [restore](usage.md#restore), [update](usage.md#update) |
-| **Identity & Debugging** | [run](usage.md#run), [create-debug-identity](usage.md#create-debug-identity), [embed-identity](usage.md#embed-identity), [unregister](usage.md#unregister) |
+| **Create & set up** | [new](usage.md#new), [init](usage.md#init), [restore](usage.md#restore), [update](usage.md#update) |
+| **Run & debug** | [run](usage.md#run), [create-debug-identity](usage.md#create-debug-identity), [embed-identity](usage.md#embed-identity), [unregister](usage.md#unregister) |
| **Packaging** | [pack](usage.md#pack) |
| **Manifests** | [manifest generate](usage.md#manifest-generate), [manifest update-assets](usage.md#manifest-update-assets), [manifest add-alias](usage.md#manifest-add-alias) |
-| **Certificates & Signing** | [cert generate](usage.md#cert-generate), [cert install](usage.md#cert-install), [sign](usage.md#sign), [create-external-catalog](usage.md#create-external-catalog) |
+| **Certificates & Signing** | [cert generate](usage.md#cert-generate), [cert install](usage.md#cert-install), [sign](usage.md#sign), [az-sign](usage.md#az-sign), [create-external-catalog](usage.md#create-external-catalog) |
+| **Code search for agents** | [find-ui](usage.md#find-ui), [find-api](usage.md#find-api) |
+| **UI automation & Sandbox** | [ui](usage.md#ui), [target](usage.md#target) |
| **Utilities** | [tool](usage.md#tool), [store](usage.md#store), [get-winapp-path](usage.md#get-winapp-path), [complete](usage.md#shell-completion) |
-| **UI Automation** | [ui](usage.md#ui) |
-| **Node.js/Electron** | [node create-addon](usage.md#node-create-addon), [node add-electron-debug-identity](usage.md#node-add-electron-debug-identity), [node clear-electron-debug-identity](usage.md#node-clear-electron-debug-identity) |
+| **Node.js/Electron** | [node create-addon](usage.md#node-create-addon), [node generate-bindings](usage.md#node-generate-bindings), [node add-electron-debug-identity](usage.md#node-add-electron-debug-identity), [node clear-electron-debug-identity](usage.md#node-clear-electron-debug-identity) |
For the full CLI reference, see [CLI reference](usage.md).
+## Samples
+
+The [samples folder](https://github.com/microsoft/WinAppCli/tree/main/samples) on GitHub has a runnable project for each supported framework:
+
+| Sample | Description |
+|--------|-------------|
+| [WinUI app](https://github.com/microsoft/WinAppCli/tree/main/samples/winui-app) | Packaged WinUI app registered and launched with `winapp run` |
+| [WinUI unpackaged app](https://github.com/microsoft/WinAppCli/tree/main/samples/winui-unpackaged-app) | Unpackaged WinUI app launched with `winapp run` |
+| [WinUI solution](https://github.com/microsoft/WinAppCli/tree/main/samples/winui-solution) | Multi-project solution (app and test project) that shows how `winapp run` selects the app project |
+| [C++ WinUI app](https://github.com/microsoft/WinAppCli/tree/main/samples/cpp-app-winui) | WinUI window built in C++ with CMake, without XAML or MSBuild |
+| [WPF app](https://github.com/microsoft/WinAppCli/tree/main/samples/wpf-app) | WPF desktop app |
+| [.NET MAUI app](https://github.com/microsoft/WinAppCli/tree/main/samples/maui-app) | .NET MAUI Windows project packaged and signed with winapp CLI |
+| [C++ app](https://github.com/microsoft/WinAppCli/tree/main/samples/cpp-app) | Native C++ Win32 app built with CMake |
+| [Electron](https://github.com/microsoft/WinAppCli/tree/main/samples/electron) | Electron Forge app with a manifest, assets, and native C++ and C# addons |
+| [Rust app](https://github.com/microsoft/WinAppCli/tree/main/samples/rust-app) | Rust app that calls Windows APIs |
+| [Tauri app](https://github.com/microsoft/WinAppCli/tree/main/samples/tauri-app) | Tauri app with a Rust backend |
+| [Flutter app](https://github.com/microsoft/WinAppCli/tree/main/samples/flutter-app) | Flutter desktop app with package identity and the Windows App SDK |
+| [Sparse app](https://github.com/microsoft/WinAppCli/tree/main/samples/sparse-app) | WPF app with sparse packaging (identity-only MSIX) and an installer |
+
+## Why package identity?
+
+Many Windows APIs require your app to have package identity. With identity, your app gains access to features like notifications, OS integration, and on-device AI. WinUI app templates include a package manifest, so `winapp run` gives them identity by default. For a full list of what package identity unlocks and help choosing the right packaging model, see [Packaging overview](https://learn.microsoft.com/windows/apps/package-and-deploy/packaging/).
+
## Open source
-winapp CLI is open source. You can find the source code, file issues, and contribute on [GitHub](https://github.com/microsoft/WinAppCli).
+winapp CLI is open source. You can find the source code, file issues, and contribute on [GitHub](https://github.com/microsoft/WinAppCli). For help, see [Support](https://github.com/microsoft/WinAppCli/blob/main/SUPPORT.md).
## Related topics
+- [Build your first WinUI app](https://learn.microsoft.com/windows/apps/get-started/start-here)
+- [WinUI overview](https://learn.microsoft.com/windows/apps/winui/winui3/)
- [CLI reference](usage.md)
- [Debugging with package identity](debugging.md)
- [Security guidance](security.md)
@@ -106,6 +237,5 @@ winapp CLI is open source. You can find the source code, file issues, and contri
- [Windows Sandbox execution](sandbox-execution.md)
- [NPM programmatic API](npm-usage.md)
- [Framework guides](guides/dotnet.md)
-- [Get started with Electron](guides/electron/index.md)
- [Windows App SDK documentation](/windows/apps/windows-app-sdk/)
- [MSIX packaging documentation](/windows/msix/)
diff --git a/docs/guides/winui.md b/docs/guides/winui.md
new file mode 100644
index 000000000..d3de3c8ff
--- /dev/null
+++ b/docs/guides/winui.md
@@ -0,0 +1,187 @@
+
+
+
+# Using winapp CLI with WinUI
+
+This guide shows how to use winapp CLI across the full inner loop of a WinUI 3 app: create a project from an official template, build and launch it with package identity, debug crashes, find controls and APIs, automate the UI, and produce a signed MSIX package. Every step runs from the command line, so it works in any editor, in CI, and with AI coding agents.
+
+WinUI project templates already include a `Package.appxmanifest`, so you don't need to run `winapp init` for a WinUI app. If you're adding package identity to an existing .NET app that doesn't use WinUI, see [Using winapp CLI with .NET](dotnet.md) instead.
+
+## Prerequisites
+
+- Windows 10 version 1809 or later, or Windows 11.
+- The [.NET SDK](https://dotnet.microsoft.com/download), version 8.0.100 or later. The experimental Reactor templates require the .NET 10 SDK. winapp CLI doesn't install toolchains, so `winapp new` and `winapp run` stop with guidance if the .NET SDK is missing.
+- winapp CLI:
+
+ ```powershell
+ winget install Microsoft.winappcli --source winget
+ ```
+
+- [Developer Mode](https://learn.microsoft.com/windows/advanced-settings/developer-mode), which Windows requires to register the app from your build output. If it's off, winapp CLI can turn it on for you. For what this changes on your machine, see [Security](../security.md#developer-mode).
+
+## Create a WinUI app
+
+`winapp new` scaffolds a WinUI app from the official `Microsoft.WindowsAppSDK.WinUI.CSharp.Templates` pack. It installs or updates the template pack on demand and then calls `dotnet new` for you.
+
+```powershell
+# Pick a template and a name interactively
+winapp new
+
+# Or create a NavigationView app without prompts
+winapp new --name MyApp --template winui-navview --use-defaults
+```
+
+Run `winapp new --list` to see the templates in the installed pack. The pack includes these templates:
+
+| Template | Description |
+|----------|-------------|
+| `winui` | Minimal blank XAML app (default). [See screenshot](https://learn.microsoft.com/windows/apps/dev-tools/visual-studio#winui-blank-app-packaged) |
+| `winui-navview` | XAML app with a NavigationView shell. [See screenshot](https://learn.microsoft.com/windows/apps/dev-tools/visual-studio#winui-navigation-app) |
+| `winui-tabview` | XAML app with a TabView shell. [See screenshot](https://learn.microsoft.com/windows/apps/dev-tools/visual-studio#winui-tabview-app) |
+| `winui-mvvm` | XAML app that uses the MVVM pattern with CommunityToolkit.Mvvm. [See screenshot](https://learn.microsoft.com/windows/apps/dev-tools/visual-studio#winui-mvvm-app) |
+| `winui-lib` | WinUI class library |
+| `winui-unittest` | Packaged MSTest app that runs its tests when you launch it |
+| `reactor`, `reactor-mvu`, `reactor-navview`, `reactor-tabview` | Experimental. WinUI apps written in C# only, with no XAML |
+
+> [!NOTE]
+> The Reactor templates reference prerelease `Microsoft.UI.Reactor` packages. Their APIs can change or be removed in a future release.
+
+For every option, see the [`new` command reference](../usage.md#new).
+
+## Build and run with identity
+
+From the project folder, `winapp run` builds the project, installs the Windows App SDK runtime that matches your architecture if it's missing, registers the app with package identity, and launches it.
+
+```powershell
+cd MyApp
+winapp run
+```
+
+`winapp run` accepts a project file, a solution file, a folder that contains one of them, or a folder of build output:
+
+```powershell
+# A specific project and configuration
+winapp run .\MyApp.csproj -c Release --arch arm64
+
+# A solution: winapp CLI finds the single app project and skips libraries and tests
+winapp run .\MySolution.sln
+
+# A solution with more than one app project
+winapp run .\MySolution.sln --project MyApp
+
+# Build output that you produced yourself
+winapp run .\bin\x64\Debug\net10.0-windows10.0.26100.0\win-x64
+```
+
+winapp CLI reads the project's `WindowsPackageType` property to decide how to launch it. A packaged project runs with package identity. A project that sets `WindowsPackageType` to `None` runs as an unpackaged app without identity. To run a packaged project as unpackaged, pass the property on the command line:
+
+```powershell
+winapp run -p WindowsPackageType=None
+```
+
+Other useful options include `--clean` to remove the previous registration first, `--no-launch` to register without starting the app, and `--detach --json` to return the process ID and exit so that scripts and agents can keep working while the app runs. For the full list, see [Project mode (.NET SDK projects)](../usage.md#project-mode-net-sdk-projects).
+
+### Use dotnet run instead
+
+If you prefer `dotnet run`, add the `Microsoft.Windows.SDK.BuildTools.WinApp` NuGet package to the project. The package hooks `dotnet run` so that it calls `winapp run` and launches the app with identity.
+
+```powershell
+dotnet add package Microsoft.Windows.SDK.BuildTools.WinApp --prerelease
+dotnet run
+```
+
+You can pass `winapp run` options as `WinAppRun*` MSBuild properties, for example `dotnet run -p:WinAppRunDebugOutput=true`. To turn off the integration, set `EnableWinAppRunSupport` to `false` in the project file. For details, see [dotnet run support](../dotnet-run-support.md).
+
+## Debug crashes
+
+Add `--debug-output` to capture `OutputDebugString` messages and first-chance exceptions while the app runs. When a WinUI app fails with a stowed exception, winapp CLI analyzes the crash dump and prints the original error and call stack instead of a generic failure code.
+
+```powershell
+winapp run --debug-output
+```
+
+Add `--symbols` to download symbols for full native function names. Because `--debug-output` attaches winapp CLI as the debugger, you can't attach Visual Studio or another debugger to the same process. To debug with your IDE instead, see [Debugging with winapp CLI](../debugging.md). For details about the stowed-exception analysis, see [WinUI stowed-exception triage](../debugging.md#winui-stowed-exception-triage).
+
+## Find controls and APIs
+
+`winapp find-ui` searches XAML and C# samples from WinUI Gallery and the Windows Community Toolkit by intent, and returns the code for a scenario that you pick. `winapp find-api` searches the Windows and WinRT API surface that your project references, such as Windows App SDK and Windows SDK types, members, and enums.
+
+```powershell
+# Find a control by what you want to build
+winapp find-ui "tabbed layout"
+
+# Get the XAML and C# for one of the returned scenarios
+winapp find-ui --id gallery-tabview-1
+
+# Look up an API
+winapp find-api NavigationView
+```
+
+Both commands support `--json`, so AI coding agents can use them to choose controls and verify API names. For more information, see the [`find-ui`](../usage.md#find-ui) and [`find-api`](../usage.md#find-api) references.
+
+## Automate and verify the UI
+
+`winapp ui` drives a running app through Microsoft UI Automation. Use it to inspect the element tree, invoke controls, wait for state changes, and take screenshots. Agents can use the same commands to check their own changes.
+
+```powershell
+winapp run --detach
+winapp ui inspect -a MyApp
+winapp ui search Button -a MyApp
+winapp ui invoke btn-save-1234 -a MyApp
+winapp ui screenshot -a MyApp
+```
+
+To run the app in Windows Sandbox instead of on your desktop, add `--on sandbox` to `winapp run` and `winapp ui`. For more information, see [UI automation](../ui-automation.md) and [Sandbox execution](../sandbox-execution.md).
+
+## Test your app
+
+Projects created from the `winui-unittest` template are packaged MSTest apps. They run their tests when the app launches, so use `winapp run` instead of `dotnet test`:
+
+```powershell
+winapp new --name MyApp.Tests --template winui-unittest --use-defaults
+cd MyApp.Tests
+winapp run
+```
+
+## Package and sign
+
+When the app is ready to share, generate a development certificate whose publisher matches your manifest, and then build and package the project in one step:
+
+```powershell
+winapp cert generate --manifest .\Package.appxmanifest
+winapp pack .\MyApp.csproj -c Release --arch x64 --cert .\devcert.pfx
+```
+
+`winapp pack` builds the project and produces a signed `.msix`. To combine builds for several architectures into one `.msixbundle`, see [Multi-architecture bundles](../usage.md#multi-architecture-bundles). The project must be packaged, so a project that sets `WindowsPackageType` to `None` can't be packed. For WinUI projects, the Windows App SDK build owns the manifest, the entry point, and resource generation, so `--manifest`, `--executable`, and `--skip-pri` aren't accepted.
+
+The development certificate is for local testing only, and it uses a default password. Before you distribute your app, sign it with a trusted certificate, for example with [`winapp az-sign`](../usage.md#az-sign) and Azure Trusted Signing. For more information, see [Packaging a project directly](../usage.md#packaging-a-project-directly) and [Security](../security.md#the-default-password).
+
+## Existing WinUI projects
+
+winapp CLI works with WinUI projects that you created in Visual Studio. Point `winapp run` or `winapp pack` at the project or solution file, or run them from the folder that contains it. You can keep building and debugging in Visual Studio and use winapp CLI for scripts, CI, and agent workflows.
+
+## WinUI with C++
+
+The [`cpp-app-winui`](../../samples/cpp-app-winui) sample shows a C++ WinUI app that builds with CMake and creates its UI in code without XAML. Build the app with CMake, and then point `winapp run` at the build output:
+
+```powershell
+cmake -B build
+cmake --build build --config Debug
+winapp run .\build\Debug
+```
+
+For C++ apps that don't use WinUI, see [Using winapp CLI with C++](cpp.md).
+
+## Samples
+
+- [`winui-app`](../../samples/winui-app): a packaged WinUI app with controls set up for `winapp ui` automation
+- [`winui-unpackaged-app`](../../samples/winui-unpackaged-app): a WinUI app that runs without package identity
+- [`winui-solution`](../../samples/winui-solution): a multi-project solution that shows how `winapp run` picks the app project
+- [`cpp-app-winui`](../../samples/cpp-app-winui): a C++ WinUI app built with CMake
+
+## Next steps
+
+- [Get started with WinUI](https://learn.microsoft.com/windows/apps/get-started/start-here)
+- [winapp CLI command reference](../usage.md)
+- [Debugging with winapp CLI](../debugging.md)
+- [UI automation](../ui-automation.md)
diff --git a/docs/images/card-any-framework.png b/docs/images/card-any-framework.png
new file mode 100644
index 0000000000000000000000000000000000000000..fdd1ea8e329dbf85de9fc1e6f7ecff3c8954eb49
GIT binary patch
literal 368113
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 _-kRyhzQC~}Js@MrVj=cmOF01)2Usp>flA~17
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