{"id":"f8593c29-7972-4a6d-a5dd-f0d0ed0b76ec","shortId":"THyUYC","kind":"skill","title":"Winapp Cli","tagline":"Awesome Copilot skill by Github","description":"# Windows App Development CLI\n\nThe 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.\n\n## When to Use This Skill\n\nUse this skill when you need to:\n\n- Initialize a Windows app project with SDK setup, manifests, and certificates\n- Create MSIX packages from application directories\n- Generate or manage AppxManifest.xml files\n- Create and install development certificates for signing\n- Add package identity for debugging Windows APIs\n- Sign MSIX packages or executables\n- Access Windows SDK build tools from any framework\n- Build Windows apps using cross-platform frameworks (Electron, Rust, Tauri, Qt)\n- Set up CI/CD pipelines for Windows app deployment\n- Access Windows APIs that require package identity (notifications, Windows AI, shell integration)\n- Publish apps to the Microsoft Store via `winapp store`\n- Create external catalogs for asset management\n- Set up .NET (csproj) projects with Windows App SDK via NuGet\n\n## Prerequisites\n\n- Windows 10 or later\n- winapp CLI installed via one of these methods:\n  - **WinGet**: `winget install Microsoft.WinAppCli --source winget`\n  - **NPM** (for Electron): `npm install @microsoft/winappcli --save-dev`\n  - **GitHub Actions/Azure DevOps**: Use [setup-WinAppCli](https://github.com/microsoft/setup-WinAppCli) action\n  - **Manual**: Download from [GitHub Releases](https://github.com/microsoft/WinAppCli/releases/latest)\n\n## Core Capabilities\n\n### 1. Project Initialization (`winapp init`)\n\nInitialize a directory with required assets (manifest, certificates, libraries) for building a modern Windows app. Supports SDK installation modes: `stable`, `preview`, `experimental`, or `none`.\n\n### 2. MSIX Packaging (`winapp pack`)\n\nCreate MSIX packages from prepared directories with optional signing, certificate generation, and self-contained deployment bundling.\n\n### 3. Package Identity for Debugging (`winapp create-debug-identity`)\n\nAdd temporary package identity to executables for debugging Windows APIs that require identity (notifications, Windows AI, shell integration) without full packaging.\n\n### 4. Manifest Management (`winapp manifest`)\n\nGenerate 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.\n\n### 5. Certificate Management (`winapp cert`)\n\nGenerate development certificates and install them to the local machine store for signing packages.\n\n### 6. Package Signing (`winapp sign`)\n\nSign MSIX packages and executables with PFX certificates, with optional timestamp server support.\n\n### 7. SDK Build Tools Access (`winapp tool`)\n\nRun Windows SDK build tools with properly configured paths from any framework or build system.\n\n### 8. Microsoft Store Integration (`winapp store`)\n\nRun Microsoft Store Developer CLI commands directly from winapp, enabling store submission, package validation, and publishing workflows without leaving the CLI.\n\n### 9. External Catalog Creation (`winapp create-external-catalog`)\n\nCreate external catalogs to streamline asset management for developers, separating catalog data from the main package.\n\n## Usage Examples\n\n### Example 1: Initialize and Package a Windows App\n\n```bash\n# Initialize workspace with defaults\nwinapp init\n# Note: init no longer auto-generates a certificate (v0.2.0+). Generate one explicitly:\nwinapp cert generate\n\n# Build your application (framework-specific)\n# ...\n\n# Create signed MSIX package\nwinapp pack ./build-output --generate-cert --output MyApp.msix\n```\n\n### Example 2: Debug with Package Identity\n\n```bash\n# Add debug identity to executable for testing Windows APIs\nwinapp create-debug-identity ./bin/MyApp.exe\n\n# Run your app - it now has package identity\n./bin/MyApp.exe\n```\n\n### Example 3: CI/CD Pipeline Setup\n\n```yaml\n# GitHub Actions example\n- name: Setup winapp CLI\n  uses: microsoft/setup-WinAppCli@v1\n\n- name: Initialize and Package\n  run: |\n    winapp init --no-prompt\n    winapp pack ./build-output --output MyApp.msix\n```\n\n### Example 4: Electron App Integration\n\n```bash\n# Install via npm\nnpm install @microsoft/winappcli --save-dev\n\n# Initialize and add debug identity for Electron\nnpx winapp init\nnpx winapp node add-electron-debug-identity\n\n# Package for distribution\nnpx winapp pack ./out --output MyElectronApp.msix\n```\n\n## Guidelines\n\n1. **Run `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.\n2. **Re-run `create-debug-identity` after manifest changes** - Package identity must be recreated whenever AppxManifest.xml is modified.\n3. **Use `--no-prompt` for CI/CD** - Prevents interactive prompts in automated pipelines by using default values.\n4. **Use `winapp restore` for shared projects** - Recreates the exact environment state defined in `winapp.yaml` across machines.\n5. **Generate assets from a single image** - Use `winapp manifest update-assets` with one logo to generate all required icon sizes.\n\n## Common Patterns\n\n### Pattern: Initialize New Project\n\n```bash\ncd my-project\nwinapp init\n# Creates: AppxManifest.xml, SDK configuration, winapp.yaml\n# Note: .NET (csproj) projects skip winapp.yaml and configure NuGet packages in the .csproj directly\n\n# Generate a dev signing certificate explicitly (no longer done by init)\nwinapp cert generate\n```\n\n### Pattern: Package with Existing Certificate\n\n```bash\nwinapp pack ./build-output --cert ./mycert.pfx --cert-password secret --output MyApp.msix\n```\n\n### Pattern: Self-Contained Deployment\n\n```bash\n# Bundle Windows App SDK runtime with the package\nwinapp pack ./my-app --self-contained --generate-cert\n```\n\n### Pattern: Update Package Versions\n\n```bash\n# Update to latest stable SDKs\nwinapp update\n\n# Or update to preview SDKs\nwinapp update --setup-sdks preview\n```\n\n## Limitations\n\n- Windows 10 or later required (Windows-only CLI)\n- Package identity debugging requires re-running `create-debug-identity` after any manifest changes\n- Self-contained deployment increases package size by bundling the Windows App SDK runtime\n- Development certificates are for testing only; production requires trusted certificates\n- Some Windows APIs require specific capability declarations in the manifest\n- `winapp init` no longer auto-generates a certificate (v0.2.0+); run `winapp cert generate` explicitly\n- .NET (csproj) projects skip `winapp.yaml`; SDK packages are configured in the project file directly\n- winapp CLI uses the NuGet global cache for packages (not `%userprofile%/.winapp/packages`)\n- winapp CLI is in public preview and subject to change\n\n## Windows APIs Enabled by Package Identity\n\nPackage identity unlocks access to powerful Windows APIs:\n\n| API Category | Examples |\n| ------------ | -------- |\n| **Notifications** | Interactive native notifications, notification management |\n| **Windows AI** | On-device LLM, text/image AI APIs (Phi Silica, Windows ML) |\n| **Shell Integration** | Explorer, Taskbar, Share sheet integration |\n| **Protocol Handlers** | Custom URI schemes (`yourapp://`) |\n| **Device Access** | Camera, microphone, location (with consent) |\n| **Background Tasks** | Run when app is closed |\n| **File Associations** | Open file types with your app |\n\n## Troubleshooting\n\n| Issue | Solution |\n| ----- | -------- |\n| Certificate not trusted | Run `winapp cert install <cert-path>` to install to local machine store |\n| Package identity not working | Run `winapp create-debug-identity` after any manifest changes |\n| SDK not found | Run `winapp restore` or `winapp update` to ensure SDKs are installed |\n| Signing fails | Verify certificate password and ensure cert is not expired |\n\n## References\n\n- [GitHub Repository](https://github.com/microsoft/WinAppCli)\n- [Full CLI Documentation](https://github.com/microsoft/WinAppCli/blob/main/docs/usage.md)\n- [.NET Project Guide](https://github.com/microsoft/WinAppCli/blob/main/docs/guides/dotnet.md)\n- [Sample Applications](https://github.com/microsoft/WinAppCli/tree/main/samples)\n- [Windows App SDK](https://learn.microsoft.com/windows/apps/windows-app-sdk/)\n- [MSIX Packaging Overview](https://learn.microsoft.com/windows/msix/overview)\n- [Package Identity Overview](https://learn.microsoft.com/windows/apps/desktop/modernize/package-identity-overview)","tags":["winapp","cli","awesome","copilot","github"],"capabilities":["skill","source-github","category-awesome-copilot"],"categories":["awesome-copilot"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/github/awesome-copilot/winapp-cli","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"install_from":"skills.sh"}},"qualityScore":"0.300","qualityRationale":"deterministic score 0.30 from registry signals: · indexed on skills.sh · published under github/awesome-copilot","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill:v1","enrichmentVersion":1,"enrichedAt":"2026-04-22T11:40:19.677Z","embedding":null,"createdAt":"2026-04-18T20:26:00.701Z","updatedAt":"2026-04-22T11:40:19.677Z","lastSeenAt":"2026-04-22T11:40:19.677Z","tsv":"'/.winapp/packages':945 '/bin/myapp.exe':529,538 '/build-output':502,567,791 '/microsoft/setup-winappcli)':213 '/microsoft/winappcli)':1086 '/microsoft/winappcli/blob/main/docs/guides/dotnet.md)':1098 '/microsoft/winappcli/blob/main/docs/usage.md)':1092 '/microsoft/winappcli/releases/latest)':222 '/microsoft/winappcli/tree/main/samples)':1103 '/my-app':816 '/mycert.pfx':793 '/out':609 '/windows/apps/desktop/modernize/package-identity-overview)':1121 '/windows/apps/windows-app-sdk/)':1109 '/windows/msix/overview)':1115 '1':225,460,613 '10':178,848 '2':254,509,661 '3':276,540,681 '4':307,571,698 '5':346,715 '6':365 '7':383 '8':405 '9':432 'access':110,138,387,965,1005 'across':713 'action':214,546 'actions/azure':205 'add':98,286,515,587,599 'add-electron-debug-ident':598 'ai':147,301,980,986 'alway':618 'api':104,140,295,523,897,957,969,970,987 'app':9,14,31,41,72,120,136,151,172,244,343,466,532,573,808,882,1015,1025,1105 'applic':84,492,1100 'appxmanifest':340 'appxmanifest.xml':89,313,678,751 'aspect':328 'asset':163,235,318,446,717,727 'associ':1019 'auto':479,910 'auto-gener':478,909 'autom':692 'automat':322,646 'awesom':3 'background':1011 'bash':467,514,575,743,788,805,827 'bridg':44 'build':37,113,118,240,385,393,403,490 'bundl':275,806,879 'cach':940 'camera':1006 'capabl':56,224,900 'catalog':161,434,440,443,451 'categori':971 'category-awesome-copilot' 'cd':744 'cert':350,488,505,649,781,792,795,822,917,1034,1077 'cert-password':794 'certif':34,79,95,237,268,347,353,377,482,645,660,773,787,886,894,913,1029,1073 'chang':671,870,955,1055 'ci/cd':132,541,687 'cli':2,11,16,182,415,431,551,855,935,947,1088 'close':1017 'command':21,416,625 'command-lin':20 'common':737 'configur':397,633,753,762,928 'consent':1010 'contain':273,803,819,873 'content':335 'copilot':4 'core':223 'creat':80,91,159,259,283,323,438,441,496,526,666,750,864,1049 'create-debug-ident':282,525,665,863,1048 'create-external-catalog':437 'creation':435 'cross':49,123 'cross-platform':48,122 'csproj':168,757,767,921 'custom':1001 'data':452 'debug':102,280,284,293,510,516,527,588,601,667,858,865,1050 'declar':901 'default':471,696 'defin':710 'definit':345 'deploy':137,274,804,874 'dev':203,584,659,771 'develop':10,15,51,94,352,414,449,644,885 'devic':983,1004 'devop':206 'direct':417,768,933 'directori':85,232,264 'distribut':605 'document':1089 'done':777 'download':216 'dynam':334 'electron':126,197,572,591,600 'enabl':420,958 'ensur':627,1066,1076 'environ':708 'exact':707 'exampl':458,459,508,539,547,570,972 'execut':109,291,374,519 'exist':786 'experiment':251 'expir':1080 'explicit':486,651,774,919 'explor':994 'extern':160,433,439,442 'fail':1071 'file':90,314,932,1018,1021 'first':617 'flexibl':342 'found':1058 'framework':42,117,125,401,494 'framework-specif':493 'full':305,1087 'gap':46 'generat':30,86,269,312,351,480,484,489,504,642,650,716,732,769,782,821,911,918 'generate-cert':503,820 'github':7,204,218,545,1082 'github.com':212,221,1085,1091,1097,1102 'github.com/microsoft/setup-winappcli)':211 'github.com/microsoft/winappcli)':1084 'github.com/microsoft/winappcli/blob/main/docs/guides/dotnet.md)':1096 'github.com/microsoft/winappcli/blob/main/docs/usage.md)':1090 'github.com/microsoft/winappcli/releases/latest)':220 'github.com/microsoft/winappcli/tree/main/samples)':1101 'global':939 'guid':1095 'guidelin':612 'handler':1000 'icon':735 'ident':32,100,144,278,285,289,298,344,513,517,528,537,589,602,668,673,857,866,961,963,1043,1051,1117 'imag':317,321,721 'increas':875 'init':229,473,475,561,594,616,639,749,779,906 'initi':69,227,230,461,468,556,585,619,740 'instal':93,183,191,199,247,355,576,580,1035,1037,1069 'integr':149,303,408,574,993,998 'interact':689,974 'interfac':23 'issu':1027 'later':180,850 'latest':830 'learn.microsoft.com':1108,1114,1120 'learn.microsoft.com/windows/apps/desktop/modernize/package-identity-overview)':1119 'learn.microsoft.com/windows/apps/windows-app-sdk/)':1107 'learn.microsoft.com/windows/msix/overview)':1113 'leav':429 'librari':238 'limit':846 'line':22 'llm':984 'local':359,1039 'locat':1008 'logo':730 'longer':477,641,776,908 'machin':360,714,1040 'main':455 'manag':25,88,164,309,348,447,978 'manifest':33,77,236,308,311,331,631,670,724,869,904,1054 'manual':215 'method':188 'microphon':1007 'microsoft':154,406,412 'microsoft.winappcli':192 'microsoft/setup-winappcli':553 'microsoft/winappcli':200,581 'ml':991 'mode':248 'modern':242 'modifi':680 'msix':28,81,106,255,260,371,498,1110 'must':674 'my-project':745 'myapp.msix':507,569,799 'myelectronapp.msix':611 'name':338,548,555 'nativ':55,975 'need':67,654 'net':167,756,920,1093 'new':741 'no-prompt':562,683 'node':597 'none':253 'note':474,634,755 'notif':145,299,973,976,977 'npm':195,198,578,579 'npx':592,595,606 'nuget':175,763,938 'on-devic':981 'one':185,485,729 'open':1020 'option':266,379 'output':506,568,610,798 'overview':1112,1118 'pack':258,501,566,608,790,815 'packag':29,82,99,107,143,256,261,277,288,306,364,366,372,423,456,463,499,512,536,558,603,672,764,784,813,825,856,876,926,942,960,962,1042,1111,1116 'password':796,1074 'path':398 'pattern':738,739,783,800,823 'pfx':376 'phi':988 'pipelin':133,542,693 'placehold':332 'platform':50,124 'power':967 'prepar':263 'prerequisit':176 'prevent':688 'preview':250,838,845,951 'product':891 'project':73,169,226,621,704,742,747,758,922,931,1094 'prompt':564,685,690 'proper':396 'protocol':999 'public':950 'publish':150,426 'qt':129 'qualifi':337 'ratio':329 're':663,861 're-run':662,860 'recreat':676,705 'refer':1081 'releas':219 'repositori':1083 'requir':142,234,297,325,734,851,859,892,898 'restor':701,1061 'run':390,411,530,559,614,647,664,862,915,1013,1032,1046,1059 'runtim':810,884 'rust':127 'sampl':1099 'save':202,583 'save-dev':201,582 'scheme':1003 'sdk':75,112,173,246,384,392,628,752,809,883,925,1056,1106 'sdks':27,832,839,844,1067 'secret':797 'self':272,802,818,872 'self-contain':271,801,817,871 'separ':450 'server':381 'set':130,165 'setup':76,209,543,549,629,843 'setup-sdk':842 'setup-winappc':208 'share':703,996 'sheet':997 'shell':148,302,992 'sign':97,105,267,363,367,369,370,497,656,772,1070 'silica':989 'singl':720 'size':326,736,877 'skill':5,61,64 'skip':759,923 'solut':1028 'sourc':193,320 'source-github' 'specif':495,899 'stabl':249,831 'state':709 'store':155,158,361,407,410,413,421,1041 'streamlin':445 'subject':953 'submiss':422 'support':245,330,382 'system':404 'task':1012 'taskbar':995 'tauri':128 'temporari':287 'test':521,889 'text/image':985 'timestamp':380 'tool':38,114,386,389,394 'troubleshoot':1026 'trust':893,1031 'type':1022 'unlock':964 'updat':316,726,824,828,834,836,841,1064 'update-asset':725 'uri':1002 'usag':457 'use':36,59,62,121,207,552,623,682,695,699,722,936 'userprofil':944 'v0.2.0':483,637,914 'v1':554 'valid':424 'valu':697 'verifi':1072 'version':826 'via':156,174,184,577 'whenev':677 'winapp':1,17,157,181,228,257,281,310,349,368,388,409,419,436,472,487,500,524,550,560,565,593,596,607,615,638,648,700,723,748,780,789,814,833,840,905,916,934,946,1033,1047,1060,1063 'winapp.yaml':712,754,760,924 'winappc':210 'window':8,13,26,54,71,103,111,119,135,139,146,171,177,243,294,300,391,465,522,807,847,853,881,896,956,968,979,990,1104 'windows-n':53 'windows-on':852 'winget':189,190,194 'without':304,428 'work':1045 'workflow':427 'workspac':469 'yaml':544","prices":[{"id":"e399ec6f-1e08-4dc4-8859-d20cd5298c04","listingId":"f8593c29-7972-4a6d-a5dd-f0d0ed0b76ec","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"github","category":"awesome-copilot","install_from":"skills.sh"},"createdAt":"2026-04-18T20:26:00.701Z"}],"sources":[{"listingId":"f8593c29-7972-4a6d-a5dd-f0d0ed0b76ec","source":"github","sourceId":"github/awesome-copilot/winapp-cli","sourceUrl":"https://github.com/github/awesome-copilot/tree/main/skills/winapp-cli","isPrimary":false,"firstSeenAt":"2026-04-18T21:51:39.861Z","lastSeenAt":"2026-04-22T06:52:34.141Z"},{"listingId":"f8593c29-7972-4a6d-a5dd-f0d0ed0b76ec","source":"skills_sh","sourceId":"github/awesome-copilot/winapp-cli","sourceUrl":"https://skills.sh/github/awesome-copilot/winapp-cli","isPrimary":true,"firstSeenAt":"2026-04-18T20:26:00.701Z","lastSeenAt":"2026-04-22T11:40:19.677Z"}],"details":{"listingId":"f8593c29-7972-4a6d-a5dd-f0d0ed0b76ec","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"github","slug":"winapp-cli","source":"skills_sh","category":"awesome-copilot","skills_sh_url":"https://skills.sh/github/awesome-copilot/winapp-cli"},"updatedAt":"2026-04-22T11:40:19.677Z"}}