ideabrowser.com — find trending startup ideas with real demand
Try itnpx skills add https://github.com/github/awesome-copilot --skill winapp-cliThe Windows App Development CLI (winapp) is a command-line interface for managing Windows SDKs, MSIX packaging, generating app identity, manifests, certificates, and using build tools with any app framework. It bridges the gap between cross-platform development and Windows-native capabilities.
Use this skill when you need to:
winapp storewinget install Microsoft.WinAppCli --source wingetnpm install @microsoft/winappcli --save-devwinapp init)Initialize a directory with required assets (manifest, certificates, libraries) for building a modern Windows app. Supports SDK installation modes: stable, preview, experimental, or none.
winapp pack)Create MSIX packages from prepared directories with optional signing, certificate generation, and self-contained deployment bundling.
winapp create-debug-identity)Add temporary package identity to executables for debugging Windows APIs that require identity (notifications, Windows AI, shell integration) without full packaging.
winapp manifest)Generate AppxManifest.xml files and update image assets from source images, automatically creating all required sizes and aspect ratios. Supports manifest placeholders for dynamic content and qualified names in AppxManifest for flexible app identity definitions.
winapp cert)Generate development certificates and install them to the local machine store for signing packages.
winapp sign)Sign MSIX packages and executables with PFX certificates, with optional timestamp server support.
winapp tool)Run Windows SDK build tools with properly configured paths from any framework or build system.
winapp store)Run Microsoft Store Developer CLI commands directly from winapp, enabling store submission, package validation, and publishing workflows without leaving the CLI.
winapp create-external-catalog)Create external catalogs to streamline asset management for developers, separating catalog data from the main package.
# Initialize workspace with defaults
winapp init
# Note: init no longer auto-generates a certificate (v0.2.0+). Generate one explicitly:
winapp cert generate
# Build your application (framework-specific)
# ...
# Create signed MSIX package
winapp pack ./build-output --generate-cert --output MyApp.msix
# Add debug identity to executable for testing Windows APIs
winapp create-debug-identity ./bin/MyApp.exe
# Run your app - it now has package identity
./bin/MyApp.exe
# GitHub Actions example
- name: Setup winapp CLI
uses: microsoft/setup-WinAppCli@v1
- name: Initialize and Package
run: |
winapp init --no-prompt
winapp pack ./build-output --output MyApp.msix
# Install via npm
npm install @microsoft/winappcli --save-dev
# Initialize and add debug identity for Electron
npx winapp init
npx winapp node add-electron-debug-identity
# Package for distribution
npx winapp pack ./out --output MyElectronApp.msix
winapp init first - Always initialize your project before using other commands to ensure SDK setup and manifest are configured. Note: as of v0.2.0, winapp init no longer generates a development certificate automatically. Run winapp cert generate explicitly when you need to sign with a dev certificate.create-debug-identity after manifest changes - Package identity must be recreated whenever AppxManifest.xml is modified.--no-prompt for CI/CD - Prevents interactive prompts in automated pipelines by using default values.winapp restore for shared projects - Recreates the exact environment state defined in winapp.yaml across machines.winapp manifest update-assets with one logo to generate all required icon sizes.cd my-project
winapp init
# Creates: AppxManifest.xml, SDK configuration, winapp.yaml
# Note: .NET (csproj) projects skip winapp.yaml and configure NuGet packages in the .csproj directly
# Generate a dev signing certificate explicitly (no longer done by init)
winapp cert generate
winapp pack ./build-output --cert ./mycert.pfx --cert-password secret --output MyApp.msix
# Bundle Windows App SDK runtime with the package
winapp pack ./my-app --self-contained --generate-cert
# Update to latest stable SDKs
winapp update
# Or update to preview SDKs
winapp update --setup-sdks preview
create-debug-identity after any manifest changeswinapp init no longer auto-generates a certificate (v0.2.0+); run winapp cert generate explicitlywinapp.yaml; SDK packages are configured in the project file directly%userprofile%/.winapp/packages)Package identity unlocks access to powerful Windows APIs:
| API Category | Examples |
|---|---|
| Notifications | Interactive native notifications, notification management |
| Windows AI | On-device LLM, text/image AI APIs (Phi Silica, Windows ML) |
| Shell Integration | Explorer, Taskbar, Share sheet integration |
| Protocol Handlers | Custom URI schemes (yourapp://) |
| Device Access | Camera, microphone, location (with consent) |
| Background Tasks | Run when app is closed |
| File Associations | Open file types with your app |
| Issue | Solution |
|---|---|
| Certificate not trusted | Run winapp cert install <cert-path> to install to local machine store |
| Package identity not working | Run winapp create-debug-identity after any manifest changes |
| SDK not found | Run winapp restore or winapp update to ensure SDKs are installed |
| Signing fails | Verify certificate password and ensure cert is not expired |