Releases: microsoft/winappCli
Releases · microsoft/winappCli
Release list
Release v0.5.0
Version: 0.5.0
Commit: fd7cb6f235fa54dd2c6e26386e65e967a2c8797a
New Features
- Add
ui recordcommand for MP4 capture (#599) — Users can now record app interactions and output them as MP4 files, enhancing the ability to create tutorials and demos directly from winapp CLI. - Add
ui touchandui pencommands (#600) — New commands allow for simulation of touch and pen inputs, making it easier to automate scenarios for touch-enabled applications. - Add
--allow-system-keystoui send-keys(#603) — This option enables the use of system keys in keyboard simulations, broadening the range of inputs that can be automated in applications.
Breaking Changes
- Standardize UI coordinate terminology (#660) — The term "app" has been replaced with "screen" in the coordinate definitions. Users should adjust their coordinate references in scripts and documentation to accommodate this change.
Bug Fixes
- Fix
ui send-keys --via send-inputsilently dropping characters (#657) — This fix ensures all characters are sent accurately, particularly for longer texts, improving automation reliability. - Fix
ui send-keys --via post-messagesilently dropping input (#666) — Input handling has been improved to prevent missed key events during automation, enhancing overall functionality. - Fix misleading code coverage measurement (#630) — Addresses prior issues with coverage reporting, providing more accurate information for test evaluations.
Documentation
- Add native PowerShell winget cmdlet to README.md (#594) — Updated documentation now includes guidance for using the native PowerShell
wingetcmdlet, helping users understand package management more effectively.
Infrastructure
- Bump the npm_and_yarn group across 1 directory with 2 updates (#675) — This update ensures that the tool benefits from the latest features and fixes available in the npm and Yarn ecosystems.
Installation Options
MSIX Installer (Recommended)
- Download
winappcli_x64.msixfor x64 orwinappcli_arm64.msixfor ARM64 - Double-click to install
- Automatically added to PATH
Standalone CLI Binaries
- Download
winappcli-x64.zipfor x64 orwinappcli-arm64.zipfor ARM64 - Extract to your desired location
- Add to PATH or run directly:
winapp.exe
NPM Package (for Electron or NodeJS)
npm install microsoft-winappcli.tgzWhat's Included
- MSIX installer packages (x64 and ARM64)
- Standalone CLI binaries (x64 and ARM64)
- NPM package for NodeJS/Electron integration
Release v0.4.0
Version: 0.4.0
Commit: 6bcad3ae827f0ecf34773ad5e7dbfe9e1920a712
New Features
- Integrate JS/TS WinRT bindings (#536) — The
winapp initcommand now supports JavaScript and TypeScript WinRT bindings, enabling developers to manage their projects with these languages directly. - Add "ui hover" command (#583) — Introduced a new command
ui hoverto capture tooltips, flyouts, and other UI elements, enhancing debugging and interaction testing. - List visible windows option (#571) — The
list windowscommand now shows visible windows without titles by default and includes a new--show-hiddenflag for optional display of all windows.
Bug Fixes
- Fix cert bug with multi-component publisher validation (#573) — Resolved an issue that prevented proper validation of certificates when multiple components were involved, improving reliability in app submissions.
- Screenshot command directory creation (#576) — The
screenshotcommand now automatically creates non-existent output directories instead of throwing an error, simplifying the screenshot process. - Fix for PoliCheck non-inclusive language findings (#580) — Addressed non-inclusive language issues identified by PoliCheck, enhancing compliance with language standards.
Infrastructure
- Dependency updates — Bumped multiple dependencies for
undici(#584),form-data(#581),markdown-it(#582),js-yaml(#578), andesbuild(#577) to their latest versions, improving overall performance and security.
Installation Options
MSIX Installer (Recommended)
- Download
winappcli_x64.msixfor x64 orwinappcli_arm64.msixfor ARM64 - Double-click to install
- Automatically added to PATH
Standalone CLI Binaries
- Download
winappcli-x64.zipfor x64 orwinappcli-arm64.zipfor ARM64 - Extract to your desired location
- Add to PATH or run directly:
winapp.exe
NPM Package (for Electron or NodeJS)
npm install microsoft-winappcli.tgzWhat's Included
- MSIX installer packages (x64 and ARM64)
- Standalone CLI binaries (x64 and ARM64)
- NPM package for NodeJS/Electron integration
Release v0.3.2
Version: 0.3.2
Commit: 1c6e75e90f3d0eff890021335261254fa01dd8c7
New Features
- MSIX Bundle Support for
packCommand (#546) — Thepackcommand now supports creating MSIX bundles, streamlining the packaging process for Windows apps. - App Update Notification (#503) — A daily check now notifies users of any available updates for the CLI on their first command run each day, ensuring developers stay informed about new versions.
- Enhanced
winapp initBehavior (#530) — Improved project detection and file placement during initialization, along with warnings for incompatible directories, enhances the usability of theinitcommand. - Higher quality screenshots for
winapp ui screenshot(#522) — Updatedui screenshotcommand to produce higher quality screenshots, and added support for--focusflag.
Breaking Changes
- Publishing VSCE Integrated into CI (#499) — The pipeline now includes an automated process for publishing VS Code extensions. Users need to manage the new
SkipVscReleaseparameter in the pipeline configuration, which defaults totrueuntil they are ready for publishing:parameters: - name: SkipVscRelease displayName: Skip VSC Release type: boolean default: true
Bug Fixes
winapp initCrash Fixed (#559) — Resolved an issue that causedwinapp initto crash in non-interactive shells, now default behaviors apply as expected.- Removed Duplicates in MSIX Packing (#554) — Fixed a bug where files from the runtime would overwrite existing resources in the final MSIX package.
- Improved Process Name Ambiguity Reporting (#564) — Fixed issues with reporting ambiguity on partial process name matches, improving command execution reliability.
- Update Check Timeout Resolved (#558) — Addressed a timeout bug in the update check, allowing for seamless notifications of available updates.
Documentation
- Automating MS Learn Documentation Updates (#518) — Introduced a new pipeline step to automatically update documentation on Microsoft Learn, ensuring consistency across resources.
- Enhancements to VS Code Extension Release Documentation (#519) — Improved formatting and clarity in the VS Code extension release process documentation.
Infrastructure
- Dependency Updates — Updated various dependencies, including
qs(#561),@tootallnate/once(#560, #547),brace-expansion(#539),tmp(#553), andfast-uri(#527, #528).
Installation Options
MSIX Installer (Recommended)
- Download
winappcli_x64.msixfor x64 orwinappcli_arm64.msixfor ARM64 - Double-click to install
- Automatically added to PATH
Standalone CLI Binaries
- Download
winappcli-x64.zipfor x64 orwinappcli-arm64.zipfor ARM64 - Extract to your desired location
- Add to PATH or run directly:
winapp.exe
NPM Package (for Electron or NodeJS)
npm install microsoft-winappcli.tgzWhat's Included
- MSIX installer packages (x64 and ARM64)
- Standalone CLI binaries (x64 and ARM64)
- NPM package for NodeJS/Electron integration
Release v0.3.1
Version: 0.3.1
Commit: c8ada4a403c43b96780b87abc454cba51f649c60
Breaking Changes
winapp ui --jsonenvelope reshape (#511) — JSON output shapes are not backward compatible. Update any scripts/tools parsing these outputs:ui inspect --json— elements are now nested under{ depth, interactive, hideDisabled, hideOffscreen, windows: [{ hwnd, title, className, elementCount, elements: [{ ..., children: [...] }] }] }(was a flat{ elements: [...] }list). Per-elementid,depth,parentSelector, andwindowHandlefields have been removed —selectoris the public handle.ui inspect --ancestors --json— ancestors are now nested via aDepth=iparent → child chain (previously emitted as sibling roots).ui get-focused --json— emits a{ hasFocus: false }or{ hasFocus: true, element: {...} }envelope (was a barenullwhen nothing was focused).ui search --json/ui wait-for --json— internalid,parentSelector, andwindowHandlefields are scrubbed from results (top-level and nestedinvokableAncestor).
New Features
winapp runsupport for--passthrough arguments (#506) — Pass application arguments directly using--without escaping them in quotes. For example, instead of:you can now write:winapp run . --args "--my-flag value"
winapp run . -- --my-flag value- Plain progress streaming in CI and AI-agent terminals (#507) — Auto-detects environments that can't honour cursor control (GitHub Actions, Azure DevOps, Copilot CLI, Claude Code, etc.) and falls back to append-only line-buffered progress output. Real interactive terminals continue to render the animated spinner tree;
--quiet/--jsonremain silent. No new flags or env vars. ui inspect --interactiveancestor surfacing (#511) — Non-interactive ancestors are collapsed and surfaced asancestorPathon surviving descendants;+moremarkers indicate truncated subtrees in both text and JSON modes.
Bug Fixes
winapp runno longer pickscreatedump.exe(#496) — Fixed an issue wherewinapp runcould incorrectly selectcreatedump.exeover the intended application executable when multiple.exefiles existed. Detection logic is now shared withwinapp package.winapp register: accurate error for package-already-exists conflicts (#512) — HRESULT0x80073CFBwas being misreported as a Developer Mode error. The Developer Mode mapping is now correctly scoped to0x800704EC, and conflicts emit an actionable hint with the real package identity (parsed from the manifest).winapp unregister: safer per-package unregistration (#512) — Fixed two data-loss bugs: a per-package safety check that could be bypassed when multiple packages were classified together, and sibling-directory misclassification caused by a prefixStartsWithcontainment check. Rewritten as a two-pass classify-then-remove loop with segment-aware path containment.- Status output: real exception messages instead of
(null)(#512) — Failed operations now surfaceex.Message; falls back to"Operation failed without an error message."when no message is available. Stack traces are appended only at Debug log level. - NuGet version range parsing on cache-warm runs (#512) —
ParseMinimumVersionno longer silently breaks when brackets are pre-stripped (which only manifested aftergit cleanof.winappwhile the global NuGet cache still had the package). - WinAppSDK 2.0.1 forward compatibility (#512) — Supports the new major-only framework package naming (
Microsoft.WindowsAppRuntime.2instead ofMicrosoft.WindowsAppRuntime.2.0).
Compliance
- NuGet package metadata (#489) —
Microsoft.Windows.SDK.BuildTools.WinAppnow includes a compliant<Copyright>element required by Microsoft NuGet policy.
Installation Options
MSIX Installer (Recommended)
- Download
winappcli_x64.msixfor x64 orwinappcli_arm64.msixfor ARM64 - Double-click to install
- Automatically added to PATH
Standalone CLI Binaries
- Download
winappcli-x64.zipfor x64 orwinappcli-arm64.zipfor ARM64 - Extract to your desired location
- Add to PATH or run directly:
winapp.exe
NPM Package (for Electron or NodeJS)
npm install microsoft-winappcli.tgzWhat's Included
- MSIX installer packages (x64 and ARM64)
- Standalone CLI binaries (x64 and ARM64)
- NPM package for NodeJS/Electron integration
Release v0.3.0
Version: 0.3.0
Commit: f3ce442ddd1ea2aea3ada40a0d7a5a2a411cfe00
New Features
winapp runcommand (#341) — Introduces thewinapp runcommand allowing developers to pack a folder and run their application as a packaged app, streamlining the process of launching packaged applications. Usage example:winapp run .\bin\Debug\net10.0-windows10.0.26100.0\win-x64 --manifest .\appxmanifest.xml
- UI automation with
winapp ui(#380) — Adds a new command group for UI automation, enabling programmatic interaction with UI elements in Windows applications using Microsoft UI Automation (UIA). Key commands includeui list-windows,ui inspect, andui click.
Bug Fixes
- Fallback in
get-winapp-path(#475) — Fixes an issue where the command would fail if the local cache was missing, now gracefully falling back to the global cache.
Installation Options
MSIX Installer (Recommended)
- Download
winappcli_x64.msixfor x64 orwinappcli_arm64.msixfor ARM64 - Double-click to install
- Automatically added to PATH
Standalone CLI Binaries
- Download
winappcli-x64.zipfor x64 orwinappcli-arm64.zipfor ARM64 - Extract to your desired location
- Add to PATH or run directly:
winapp.exe
NPM Package (for Electron or NodeJS)
npm install microsoft-winappcli.tgzWhat's Included
- MSIX installer packages (x64 and ARM64)
- Standalone CLI binaries (x64 and ARM64)
- NPM package for NodeJS/Electron integration
Release v0.2.1
Version: 0.2.1
Commit: 765f8f5de86369dd154bec8af070d848133029c1
New Features
- Auto-generate npm Commands and Documentation (#302) — All
winapp CLIcommands are now exposed as typed JS/TS functions in the npm package. This enhancement allows seamless importing and usage of commands in projects with auto-generated exports to stay up-to-date.import { init, packageApp, certGenerate } from '@microsoft/winappcli';
- New
cert infoCommand (#305) — A new subcommand that displays detailed information about a PFX certificate, including subject, issuer, and validity, facilitating certificate verification before signing.winapp cert info ./devcert.pfx --password password
- Support SVG for Asset Generation (#326) — The
manifest update-assetscommand now supports SVG files, converting them to bitmap images for asset generation, expanding the capability to include vector graphics.winapp manifest update-assets .\image.svg - Add
--export-cerFlag and--jsonOutput for Cert Commands (#305) — Introduced a flag to export a public key as a.cerfile and a JSON output format forcert generateandcert infocommands enhances programmability and ease of integration with other tools. - Automatic WinRT Component Discovery (#334) — The
winapp CLIcan now automatically discover and register third-party WinRT components based on.winmdfiles during packaging, improving the packaging experience for developers using external libraries.
Bug Fixes
- Packaging Command Bug Fixes (#344) — Addressed several issues in the packaging command, including preventing the overwriting of existing PRI resources and checking executable architecture, ensuring smoother packaging workflows.
- Warning for
.pfxFiles in Input Folder (#338) — A warning is now printed when a.pfxfile is found in the input folder during packaging, improving user awareness without blocking the MSIX generation process.
Documentation
- Documentation Improvements (#333) — The introduction of a Copilot plugin enables improved reference management through skill-based documentation, streamlining user education and resource access.
Installation Options
MSIX Installer (Recommended)
- Download
winappcli_x64.msixfor x64 orwinappcli_arm64.msixfor ARM64 - Double-click to install
- Automatically added to PATH
Standalone CLI Binaries
- Download
winappcli-x64.zipfor x64 orwinappcli-arm64.zipfor ARM64 - Extract to your desired location
- Add to PATH or run directly:
winapp.exe
NPM Package (for Electron or NodeJS)
npm install microsoft-winappcli.tgzWhat's Included
- MSIX installer packages (x64 and ARM64)
- Standalone CLI binaries (x64 and ARM64)
- NPM package for NodeJS/Electron integration
Release v0.2.0
Version: 0.2.0
Commit: a4930bfb2ebf3c9a76678b9b9e20044b3219f238
New Features
- Support for Qualified Names in Appxmanifest (#320) — Allows qualified names in the
Appxmanifestfile, enhancing flexibility in defining app identities. - New
winapp create-external-catalogCommand (#312) — Introduces a new command to create an external catalog, streamlining asset management for developers. - Enable Running Microsoft Store Developer CLI Commands via a New 'store' Subcommand (#214) — Adds a
storesubcommand, enabling integrated commands for Microsoft Store development directly fromwinapp CLI. - Support for Manifest Placeholders (#294) — Adds the ability to use placeholders in manifests, improving the handling of dynamic content across applications.
- Add .NET Project Support (#285) — Expands
winapp CLIcapabilities to support .NET projects, broadening the range of applications developers can manage.
Breaking Changes
- winapp init no longer generates a certificate: init used to create a dev signing cert automatically. That’s been removed. Run winapp cert generate explicitly when you need to sign with a dev certificate. The --no-cert flag is also gone since there’s nothing to skip. If your scripts relied on init producing a cert, add a winapp cert generate step.
- winapp now uses the NuGet global cache for packages: when downloading NuGet packages, winapp used to store them in the %userprofile%/.winapp/packages folder which caused duplicate packages to be downloaded if the user already had those packages in their NuGet cache. With this release, winapp uses the NuGet global cache for all packages. If your code depends on the packages being in the global .winapp folder, you will need to update it.
- .NET projects skip winapp.yaml: When winapp init detects a .csproj, it configures NuGet packages in the project file directly instead of creating a winapp.yaml. This is the right behavior for .NET, but if you had a hybrid workflow, check the .NET guide for details.
Bug Fixes
- Fix Signing Success Message (#316) — Corrects the messaging related to successful signing, ensuring clarity for users post-signing.
- Filter Unlisted NuGet Versions (#323) — Fixes an issue where unlisted NuGet versions could be included, providing a more accurate package management experience.
- Fix Regression in
RunCommandAsync(#310) — Addresses a regression affecting command execution, restoring expected behavior. - Simplify Error Messages + Remove Repetition (#300) — Improves user experience by making error messages clearer and more concise.
Documentation
- Updated Short Description for All Commands (#295) — Adds brief command descriptions across the CLI for improved usability and understanding.
Infrastructure
- Bumped dependencies: minimatch (#330), webpack from 5.103.0 to 5.105.1 (#288), lodash from 4.17.21 to 4.17.23 in
/samples/electron(#255), bytes from 1.11.0 to 1.11.1 in/samples/tauri-app/src-tauri(#272), time from 0.3.44 to 0.3.47 in/samples/tauri-app/src-tauri(#276).
Installation Options
MSIX Installer (Recommended)
- Download
winappcli_x64.msixfor x64 orwinappcli_arm64.msixfor ARM64 - Double-click to install
- Automatically added to PATH
Standalone CLI Binaries
- Download
winappcli-x64.zipfor x64 orwinappcli-arm64.zipfor ARM64 - Extract to your desired location
- Add to PATH or run directly:
winapp.exe
NPM Package (for Electron or NodeJS)
npm install microsoft-winappcli.tgzWhat's Included
- MSIX installer packages (x64 and ARM64)
- Standalone CLI binaries (x64 and ARM64)
- NPM package for NodeJS/Electron integration
Release v0.1.10
🚀 Automated Release Build
Version: 0.1.10
Commit: 5af020978f5d9c2db8fdafa27c9eefc190446468
Installation Options
📦 MSIX Installer (Recommended)
- Download
winappcli_x64.msixfor x64 orwinappcli_arm64.msixfor ARM64 - Double-click to install
- Automatically added to PATH
📦 Standalone CLI Binaries
- Download
winappcli-x64.zipfor x64 orwinappcli-arm64.zipfor ARM64 - Extract to your desired location
- Add to PATH or run directly:
winapp.exe
📚 NPM Package (for Electron or NodeJS)
npm install microsoft-winappcli.tgzWhat's Included
- ✅ MSIX installer packages (x64 and ARM64)
- ✅ Standalone CLI binaries (x64 and ARM64)
- ✅ NPM package for NodeJS/Electron integration
Release v0.1.9
🚀 Automated Release Build
Version: 0.1.9
Commit: e54be238ec393c8f3172bedcd897ab3aec536d87
Installation Options
📦 MSIX Installer (Recommended)
- Download
winappcli_x64.msixfor x64 orwinappcli_arm64.msixfor ARM64 - Double-click to install
- Automatically added to PATH
📦 Standalone CLI Binaries
- Download
winappcli-x64.zipfor x64 orwinappcli-arm64.zipfor ARM64 - Extract to your desired location
- Add to PATH or run directly:
winapp.exe
📚 NPM Package (for Electron or NodeJS)
npm install microsoft-winappcli.tgzWhat's Included
- ✅ MSIX installer packages (x64 and ARM64)
- ✅ Standalone CLI binaries (x64 and ARM64)
- ✅ NPM package for NodeJS/Electron integration
Release v0.1.8
🚀 Automated Release Build
Version: 0.1.8
Commit: c9b6cffdfe44f77c40fdf97b6c9eb0b50a6a626a
Installation Options
📦 MSIX Installer (Recommended)
- Download
winappcli_x64.msixfor x64 orwinappcli_arm64.msixfor ARM64 - Double-click to install
- Automatically added to PATH
📦 Standalone CLI Binaries
- Download
winappcli-x64.zipfor x64 orwinappcli-arm64.zipfor ARM64 - Extract to your desired location
- Add to PATH or run directly:
winapp.exe
📚 NPM Package (for Electron or NodeJS)
npm install microsoft-winappcli.tgzWhat's Included
- ✅ MSIX installer packages (x64 and ARM64)
- ✅ Standalone CLI binaries (x64 and ARM64)
- ✅ NPM package for NodeJS/Electron integration