Meet Microsoft's winapp CLI, an open-source tool that revolutionizes Windows app development. Automate tasks like SDK configuration, manifests, and certificates, ideal for those using Electron, .NET, C++, Rust, or Dart. Optimize your workflow and test modern APIs with simplified Package Identity.

TL;DR: Microsoft has released
winapp, an open-source CLI that automates tedious Windows development tasks (SDKs, manifests, certificates, packaging). If you develop for Windows with Electron, .NET, C++, Rust, or Dart, this will save you hours of manual configuration.

Microsoft announced on January 22, 2026, the Windows App Development CLI (affectionately called winapp), an open-source command-line tool that promises to end the headache of configuring a Windows development environment.
The tool was created especially for developers working outside Visual Studio or MSBuild – think of web developers using Electron, C++ developers with CMake, or anyone working with .NET, Rust, or Dart. winapp consolidates tasks that previously required multiple manual steps into single, direct commands.
The project is already in public preview on GitHub, and Microsoft is actively seeking community feedback to guide the development of upcoming features.
If you've ever tried to develop a Windows app outside Visual Studio, you know the confusion of managing SDKs, creating giant XML manifests, generating development certificates, and dealing with MSIX packaging. It was a manual process, full of obscure details and prone to errors.
For you as a developer:
Less manual configuration: Environment setup that used to take hours is now a single command
Support for modern tools: Works with Electron, Rust, CMake, and other popular toolchains
Easy access to Windows APIs: Use Windows AI, notifications, security without complications
Simplified CI/CD: Ready-to-use GitHub Actions and Azure DevOps actions
The big difference:
Many modern Windows APIs (AI, notifications, MCP Hosts) require Package Identity - something that previously forced you to package and install the complete app just to test a feature. With winapp, you add identity to your development executable and continue using your normal workflow. This changes everything.
The winapp CLI abstracts several complexities specific to the Windows ecosystem:
Traditional Windows development typically involves:
Downloading and configuring the Windows SDK (and sometimes Windows App SDK)
Manually creating appxmanifest.xml files
Generating self-signed certificates for development
Creating image assets in multiple sizes
Configuring MSIX packaging
Installing certificates into the system
Each step has scattered documentation, undocumented pitfalls, and different versions across SDKs.
# Antes: 10+ passos manuais entre docs e ferramentas# Agora: um comando> winapp initThe init command does everything:
Automatic download of the necessary SDK
Generates projections (C++/WinRT initially)
Creates a configured manifest
Generates standard assets
Creates a development certificate
Configures dependencies
This is the most interesting feature. Many modern Windows APIs check if your app has Package Identity. Previously, this meant:
Creating a full MSIX package
Installing it on the system
Running the installed version to test
Repeating with every change
Now with winapp:
> winapp create-debug-identity my-app.exeThis injects Package Identity directly into the executable, allowing you to continue using npm start, cargo run, or any normal development command while testing APIs that require identity.
If you develop with Electron:
✅ Install via npm: npm install --save-dev @microsoft/winappcli
✅ Use winapp node add-electron-debug-identity for debugging with Windows AI
✅ Create pre-configured C++ or C# native addons with Windows SDK
✅ Access Windows AI APIs directly from Node.js with @microsoft/winapp-windows-ai
If you use .NET, C++, Rust, or Dart:
✅ Install via WinGet: winget install microsoft.winappcli
✅ Configure environment: winapp init
✅ Generate manifest: winapp manifest create
✅ Create dev certificate: winapp cert generate
✅ Final Package: winapp pack ./build-output --cert ./cert.pfx
If you work with CI/CD:
✅ Use GitHub/Azure DevOps action: setup-WinAppCli
✅ Automate packaging in the pipeline
✅ winapp restore recreates the exact environment on any machine
Timeline:
Now: Public preview available - test and provide feedback
Next months: More commands based on community feedback
Future: Possible integration with more toolchains and frameworks
winapp initConfigures a complete workspace with SDK, projections, manifest, assets, and certificate.
# Na raiz do seu projeto> winapp initwinapp create-debug-identityAdds Package Identity to an executable for debugging APIs that require identity.
> winapp create-debug-identity my-app.exewinapp manifest update-assetsUpdates all image assets in the manifest from a logo.
> winapp manifest update-assets C:\images\logo.pngwinapp cert generateCreates a self-signed certificate for development and optionally installs it on the system.
> winapp cert generatewinapp packPackages the application as MSIX, ready for distribution.
> winapp pack ./build-output --cert ./devcert.pfxwinapp restoreRecreates the development environment based on the project configuration (useful for CI/CD and new team developers).
> winapp restoreMicrosoft created first-class integration with Electron via npm package:
Debugging with Package Identity:
# Injeta identity no processo Electron em execução> winapp node add-electron-debug-identity> npm start # Agora com acesso a Windows AI APIsPre-configured native addons:
# Scaffolding de addon C++ ou C# com Windows SDK> winapp node create-addonWindows AI directly from Node.js:
// Usando @microsoft/winapp-windows-aiconst { LanguageModel } = require('@microsoft/winapp-windows-ai');const model = await LanguageModel.create();const response = await model.generate('Explain quantum computing');winget install microsoft.winappclinpm install --save-dev @microsoft/winappcliGitHub Repository (complete documentation)
Samples (ready-to-use examples)
GitHub/Azure DevOps Action (for CI/CD)
The announcement was well-received, especially by developers working with cross-platform frameworks. The main historical complaint was the complexity of Windows configuration compared to macOS or Linux – winapp addresses exactly that.
Highlighted positive points:
Open-source from the start (community can contribute)
Focus on modern toolchains (not just Visual Studio)
Package Identity for debugging solves a real problem
Electron integration is well thought out
Concerns raised:
Still in preview - may have bugs and breaking changes
Limited scenario coverage (team is asking for feedback)
Documentation still being expanded
Microsoft made it clear that winapp is in its early stages and asked for active community feedback. The roadmap will be driven by:
Real-world use cases reported by developers
Feature requests on GitHub
Development scenarios not yet covered
The team is especially interested in:
New useful commands
Integrations with other toolchains
Improvements in debugging experience
Automation of more manual tasks
Credits: This article is based on the official announcement published by Nikola Metulev (Product Manager, Windows Platform & Developer) on the Microsoft Windows Developer Blog.
Sources:
Related:
The winapp CLI is great news for anyone developing Windows apps outside the traditional Microsoft ecosystem. If you use Electron, Rust, or any modern toolchain, it's worth checking out.
It's especially useful if you want to experiment with Windows AI APIs, notifications, or other modern features without diving into packaging complexity.
The fact that it's open-source and in preview means there's a real opportunity to shape the tool through feedback. If you have specific pain points in Windows development, now is the time to report them.
Suggested next step: Install the CLI, run winapp init in a test project, and see how much time you save compared to manual setup. Then, share feedback on GitHub to help improve the tool.
Good luck, and less time configuring means more time coding! 🚀