
Winapp Cli
Drive Windows app projects with winapp CLI for SDK setup, MSIX packaging, signing, debugging, Store publish, and UI automation.
Overview
winapp-cli is an agent skill most often used in Build (also Ship launch, Launch distribution) that guides the winapp CLI for Windows SDK setup, MSIX packaging, signing, store publish, and UI automation.
Install
npx skills add https://github.com/github/awesome-copilot --skill winapp-cliWhat is this skill?
- Commands: init, pack, run, unregister, manifest, cert, sign, store, ui, tool
- MSIX packaging, AppxManifest.xml, dev certificates, and packaged debug runs
- Microsoft UI Automation via ui command for Windows desktop testing flows
- Install paths: WinGet, npm @microsoft/winappcli, setup-WinAppCli GitHub Action
- Supports .NET csproj (skips winapp.yaml), C++, Electron, Rust, Tauri, Flutter
- 10 CLI commands listed in command table (init through tool)
Adoption & trust: 8.5k installs on skills.sh; 34.6k GitHub stars; 2/3 security scanners passed (skills.sh audits).
What problem does it solve?
You are shipping a Windows desktop app and need one CLI flow for manifests, certificates, MSIX, and Store steps instead of piecing together scattered SDK docs.
Who is it for?
Indie builders on Windows building .NET, Tauri, Electron, or Flutter apps who want agent-driven MSIX and Store operations.
Skip if: macOS or Linux-only products with no Windows packaging requirement.
When should I use this skill?
User asks to initialize Windows app projects, create MSIX packages, manage manifests or certs, debug packaged apps, automate Windows UI, or publish to the Microsoft Store with winapp.
What do I get? / Deliverables
Your agent runs documented winapp commands for init through store/ui so the project is packaged, signed, debuggable, and ready for Microsoft Store submission.
- winapp.yaml and manifest setup (non-csproj)
- Signed MSIX package steps
- Store publish and UI automation command sequences
Recommended Skills
Journey fit
Spans multiple journey phases - primary shelf plus alternate fits below.
Build → integrations is the primary shelf because winapp wires Windows SDKs, manifests, and framework-specific project init into a repeatable CLI workflow. Integrations captures third-party Windows tooling (WinGet, npm package, GitHub Action) and cross-framework targets (.NET, C++, Electron, Rust, Tauri, Flutter).
Where it fits
Run winapp init with stable SDK and manifest for a new Tauri Windows target.
Pack and sign MSIX with cert and sign commands before sideload testing.
Use store command workflow toward Microsoft Store submission.
Drive packaged run and ui automation to validate installer behavior.
How it compares
Windows-native packaging CLI guidance—not a generic cross-platform Electron builder skill alone.
Common Questions / FAQ
Who is winapp-cli for?
Solo Windows app developers and agent users who need MSIX, certificates, packaged debugging, and Store publishing from the terminal.
When should I use winapp-cli?
Use it in Build integrations when scaffolding winapp.yaml and SDKs, in Ship launch when packing and signing MSIX, and in Launch distribution when preparing Microsoft Store publish commands.
Is winapp-cli safe to install?
The skill instructs shell commands that touch certificates and signing; review the Security Audits panel on this Prism page and treat dev certs and secrets carefully.
SKILL.md
READMESKILL.md - Winapp Cli
# Windows App Development CLI `winapp` manages Windows SDKs, MSIX packaging, app identity, manifests, certificates, signing, store publishing, and UI automation for any framework targeting Windows (.NET/csproj, C++, Electron, Rust, Tauri, Flutter, etc.). Public preview — subject to change. ## Prerequisites - Windows 10 or later - Install via one of: - WinGet: `winget install Microsoft.WinAppCli --source winget` - npm (Electron/Node): `npm install @microsoft/winappcli --save-dev` - CI: [`setup-WinAppCli`](https://github.com/microsoft/setup-WinAppCli) GitHub Action - Manual: [GitHub Releases](https://github.com/microsoft/WinAppCli/releases/latest) ## Commands | Command | Purpose | | ------- | ------- | | `init` | Initialize project: SDKs (`stable`/`preview`/`experimental`/`none`), manifest, `winapp.yaml`. **`.csproj` projects skip `winapp.yaml`** and use NuGet directly. **Does not auto-generate a cert** (v0.2.0+). | | `restore` / `update` | Restore or update SDK package versions (`--setup-sdks preview` for preview SDKs). | | `pack <dir>` | Build MSIX. Flags: `--generate-cert`, `--cert <pfx> --cert-password`, `--self-contained` (bundles WinAppSDK runtime), `--output`. Auto-discovers third-party WinRT components from `.winmd` (v0.2.1+). | | `run <dir> [-- <app args>]` | Pack as loose layout and launch as packaged app — ideal for IDE F5 debugging without producing an MSIX. Supports `--` arg passthrough (v0.3.1+). (v0.3.0+) | | `create-debug-identity <exe>` | Add sparse package identity to an exe so it can call identity-gated APIs (notifications, Windows AI, shell integration) without full packaging. | | `unregister` | Remove sideloaded dev packages registered by `run` / `create-debug-identity`. | | `manifest` | Generate `AppxManifest.xml`; supports placeholders and qualified names. `manifest update-assets <image>` generates all required icon sizes from one source (PNG **or SVG**, v0.2.1+). | | `cert generate` / `install` / `info` | Manage dev certs. `cert info <pfx> --password <pwd>` shows subject/issuer/validity. `--export-cer` exports the public key. `--json` available on `generate` and `info`. (v0.2.1+) | | `sign <target> --cert <pfx>` | Sign MSIX or exe; optional timestamp server. | | `tool` | Run Windows SDK build tools with paths configured. | | `store` | Run Microsoft Store Developer CLI for store submission/validation/publishing. | | `create-external-catalog` | Generate `CodeIntegrityExternal.cat` for TrustedLaunch sparse packages. | | `ui list-windows` / `inspect` / `click` / `search` / `wait-for` / `get-focused` | UI automation via Microsoft UI Automation. All support `--json`. **JSON envelopes for `inspect`, `get-focused`, `search`, and `wait-for` changed in v0.3.1** — see [`references/ui-json-envelope.md`](./references/ui-json-envelope.md) (other `ui` subcommands keep their pre-0.3.1 output). (v0.3.0+) | | `node create-addon` / `add-electron-debug-identity` / `clear-electron-debug-identity` | Electron/Node helpers. All commands also exposed as typed JS/TS functions from `@microsoft/winappcli` (v0.2.1+). | CI tip: pass `--no-prompt` to skip interactive prompts. ## Workflow Standard init → package flow: 1. **Initialize the project** in your app folder. Sets up SDK refs, manifest, and `winapp.yaml` (`.csproj` projects skip the YAML and configure NuGet directly). ```bash winapp init