Publishes winapp, the Windows App Development CLI

We are pleased to announce the public preview of Windows App Development CLI (winapp), a new open-source command-line tool designed to simplify the development life for Windows applications across multiple architectures and tool chains.

The Winapp CLI is designed specifically for platform designers and developers who work outside of Visual Studio or MSBuild. Whether you’re a web developer with Electron, a C++ veteran using CMake, or a .NET, Rust or Dart developer apps for Windows, the CLI can simplify Windows development challenges – from setting up your environment to packaging for distribution. This makes it very easy to access modern APIs – including Windows AI APIs, security features and shell connections – directly from any tool chain.

Windows development often involves managing multiple SDKs, creating and configuring multiple displays, generating certificates, and managing complex packaging requirements. The goal of this project is to combine these tasks into a single CLI, allowing you to focus on building great apps instead of struggling with configuration. Although the CLI is still in its early days, and there are many Windows development environments still in the works, we’re sharing this public preview now to learn real-world usage, gather feedback and feature requests, and focus our investment on the areas most important to developers.

Here’s a look at what the winapp CLI can do for you.

πŸ› οΈ One command environment configuration

The initload bootstraps your entire workspace. It downloads the required SDK packages, generates dependencies (C++/WinRT to boot), and prepares your project for development. A process that previously required many error-prone manual steps is now a single CLI command that handles asset and property generation, certificate generation, and trust management, saving you from having to create your own dev environment for each project.

To start, in the root of your project, run:

> winapp init

For shared projects across multiple machines or developers, use winapp restoreto recreate the correct environment defined in your configuration. And for a CI/CD environment, use the GitHub and Azure DevOps action to install the CLI automatically.

πŸš€ Package Information for troubleshooting

Video/gif of Winapp debug-identity adding package identity to exe.

Many modern Windows APIs (such as Windows AI APIs, Security, Notifications, MCP Hosts and others) require your device to have a Package Identity. Traditionally, this meant that you had to fully install and install your device to test just one feature, which requires a lot of manual and detailed steps, which reduces your inner loop a lot.

With the winapp CLI, you can add package identity to your implementation with a single command, allowing you to continue using the same developer loop for testing and debugging any code that requires Package Identity.

Just run:

> winapp create-debug-identity my-app.exe

Visit our samples and guides for pictures on how to integrate this command on different devices for a better debugging experience.

πŸ“œ Working with manifests and certificates

Video/gif of senopp manifest-updates-assets command to update existing assets from image.

Creating the correct appxmanifest.xml and creating a trusted developer certificate are often obstacles for new Windows developers. The Winapp CLI does this completely automatically with init command as described above, but it also exposes commands to directly create and manage visibility and development certificates.

Generate a new appearance based on your project or executable, update image assets in your existing appxmanifest.xml from an existing logo, or create and install a signed developer certificate with a single command. The CLI can optionally install a developer certificate locally so you can test your packages without additional configuration.

For example, use this command to update the image assets shown in your appxmanifest.xml from a given image with the appropriate parameters:

> winapp manifest update-assets C:\images\my-logo.png

Similarly, to generate a development certificate that can be used for logging in isolation and testing, you can use the following command:
> winapp cert generate

πŸ“¦ Simplified MSIX package

Video/gif of winapp package command packing folder in msix and signing the package.

When you’re ready to ship, packaging your application as an MSIX is just one command away. The CLI handles the packaging and signing process, generating a store-ready or separately-ready package from your build output.
> winapp pack ./my-app-files --cert ./devcert.pfx

⚑ Electronic integration

For Electron developers, we added the CLI as an npm package and added commands to bridge the gap between Node.js and native Windows code. The CLI can manipulate C++ or C# native addons, which are preconfigured to access the Windows App SDK and the Windows SDK. This makes it easier than ever to integrate efficient natural features or AI capabilities like Phi Silica directly into your Electron device.

We also simplify the debugging loop. By winapp node add-electron-debug-identityyou can install Package Identity directly in your Electron application. This allows you to test and debug APIs that require data (such as Windows AI APIs) with a single call. npm startΒ . It even handles bootstrapping the Windows App SDK for you, so you can focus on your code, not plumbing. Watch the video below to see all this in action:


Additionally, to help validate the CLI and simplify the use of certain APIs, we’ve started leveraging the CLI to build NodeJS test cases for APIs like LanguageModel. Check out our @microsoft/winapp-windows-ai npm package for using Windows AI APIs directly from NodeJS.

Get started today

The Windows App Development CLI is now available in public preview. Visit our GitHub repository for documentation, guides, and submissions.

We’d love to hear your thoughts!

Getting started:

Install with WinGet (for general use):
winget install microsoft.winappcli

Install via npm (for Electron projects):
npm install --save-dev @microsoft/winappcli

Check out our Electron, .NET, C++/CMAKE, or Rust guides for a quick start.

Happy coding!

#Publishes #winapp #Windows #App #Development #CLI

Leave a Comment