Skip to content

Releases: microsoft/winappCli

Release v0.5.0

Choose a tag to compare

@azchohfi azchohfi released this 20 Jul 18:27

Version: 0.5.0
Commit: fd7cb6f235fa54dd2c6e26386e65e967a2c8797a

New Features

  • Add ui record command 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 touch and ui pen commands (#600) — New commands allow for simulation of touch and pen inputs, making it easier to automate scenarios for touch-enabled applications.
  • Add --allow-system-keys to ui 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-input silently dropping characters (#657) — This fix ensures all characters are sent accurately, particularly for longer texts, improving automation reliability.
  • Fix ui send-keys --via post-message silently 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 winget cmdlet, 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)

  1. Download winappcli_x64.msix for x64 or winappcli_arm64.msix for ARM64
  2. Double-click to install
  3. Automatically added to PATH

Standalone CLI Binaries

  1. Download winappcli-x64.zip for x64 or winappcli-arm64.zip for ARM64
  2. Extract to your desired location
  3. Add to PATH or run directly: winapp.exe

NPM Package (for Electron or NodeJS)

npm install microsoft-winappcli.tgz

What's Included

  • MSIX installer packages (x64 and ARM64)
  • Standalone CLI binaries (x64 and ARM64)
  • NPM package for NodeJS/Electron integration

Release v0.4.0

Choose a tag to compare

@azchohfi azchohfi released this 25 Jun 17:09

Version: 0.4.0
Commit: 6bcad3ae827f0ecf34773ad5e7dbfe9e1920a712

New Features

  • Integrate JS/TS WinRT bindings (#536) — The winapp init command 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 hover to capture tooltips, flyouts, and other UI elements, enhancing debugging and interaction testing.
  • List visible windows option (#571) — The list windows command now shows visible windows without titles by default and includes a new --show-hidden flag 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 screenshot command 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), and esbuild (#577) to their latest versions, improving overall performance and security.

Installation Options

MSIX Installer (Recommended)

  1. Download winappcli_x64.msix for x64 or winappcli_arm64.msix for ARM64
  2. Double-click to install
  3. Automatically added to PATH

Standalone CLI Binaries

  1. Download winappcli-x64.zip for x64 or winappcli-arm64.zip for ARM64
  2. Extract to your desired location
  3. Add to PATH or run directly: winapp.exe

NPM Package (for Electron or NodeJS)

npm install microsoft-winappcli.tgz

What's Included

  • MSIX installer packages (x64 and ARM64)
  • Standalone CLI binaries (x64 and ARM64)
  • NPM package for NodeJS/Electron integration

Release v0.3.2

Choose a tag to compare

@azchohfi azchohfi released this 03 Jun 00:36
1c6e75e

Version: 0.3.2
Commit: 1c6e75e90f3d0eff890021335261254fa01dd8c7

New Features

  • MSIX Bundle Support for pack Command (#546) — The pack command 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 init Behavior (#530) — Improved project detection and file placement during initialization, along with warnings for incompatible directories, enhances the usability of the init command.
  • Higher quality screenshots for winapp ui screenshot (#522) — Updated ui screenshot command to produce higher quality screenshots, and added support for --focus flag.

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 SkipVscRelease parameter in the pipeline configuration, which defaults to true until they are ready for publishing:
    parameters:
      - name: SkipVscRelease
        displayName: Skip VSC Release
        type: boolean
        default: true

Bug Fixes

  • winapp init Crash Fixed (#559) — Resolved an issue that caused winapp init to 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), and fast-uri (#527, #528).

Installation Options

MSIX Installer (Recommended)

  1. Download winappcli_x64.msix for x64 or winappcli_arm64.msix for ARM64
  2. Double-click to install
  3. Automatically added to PATH

Standalone CLI Binaries

  1. Download winappcli-x64.zip for x64 or winappcli-arm64.zip for ARM64
  2. Extract to your desired location
  3. Add to PATH or run directly: winapp.exe

NPM Package (for Electron or NodeJS)

npm install microsoft-winappcli.tgz

What's Included

  • MSIX installer packages (x64 and ARM64)
  • Standalone CLI binaries (x64 and ARM64)
  • NPM package for NodeJS/Electron integration

Release v0.3.1

Choose a tag to compare

@azchohfi azchohfi released this 01 May 19:10
c8ada4a

Version: 0.3.1
Commit: c8ada4a403c43b96780b87abc454cba51f649c60

Breaking Changes

  • winapp ui --json envelope 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-element id, depth, parentSelector, and windowHandle fields have been removed — selector is the public handle.
    • ui inspect --ancestors --json — ancestors are now nested via a Depth=i parent → child chain (previously emitted as sibling roots).
    • ui get-focused --json — emits a { hasFocus: false } or { hasFocus: true, element: {...} } envelope (was a bare null when nothing was focused).
    • ui search --json / ui wait-for --json — internal id, parentSelector, and windowHandle fields are scrubbed from results (top-level and nested invokableAncestor).

New Features

  • winapp run support for -- passthrough arguments (#506) — Pass application arguments directly using -- without escaping them in quotes. For example, instead of:
    winapp run . --args "--my-flag value"
    you can now write:
    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 / --json remain silent. No new flags or env vars.
  • ui inspect --interactive ancestor surfacing (#511) — Non-interactive ancestors are collapsed and surfaced as ancestorPath on surviving descendants; +more markers indicate truncated subtrees in both text and JSON modes.

Bug Fixes

  • winapp run no longer picks createdump.exe (#496) — Fixed an issue where winapp run could incorrectly select createdump.exe over the intended application executable when multiple .exe files existed. Detection logic is now shared with winapp package.
  • winapp register: accurate error for package-already-exists conflicts (#512) — HRESULT 0x80073CFB was being misreported as a Developer Mode error. The Developer Mode mapping is now correctly scoped to 0x800704EC, 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 prefix StartsWith containment 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 surface ex.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) — ParseMinimumVersion no longer silently breaks when brackets are pre-stripped (which only manifested after git clean of .winapp while 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.2 instead of Microsoft.WindowsAppRuntime.2.0).

Compliance

  • NuGet package metadata (#489) — Microsoft.Windows.SDK.BuildTools.WinApp now includes a compliant <Copyright> element required by Microsoft NuGet policy.

Installation Options

MSIX Installer (Recommended)

  1. Download winappcli_x64.msix for x64 or winappcli_arm64.msix for ARM64
  2. Double-click to install
  3. Automatically added to PATH

Standalone CLI Binaries

  1. Download winappcli-x64.zip for x64 or winappcli-arm64.zip for ARM64
  2. Extract to your desired location
  3. Add to PATH or run directly: winapp.exe

NPM Package (for Electron or NodeJS)

npm install microsoft-winappcli.tgz

What's Included

  • MSIX installer packages (x64 and ARM64)
  • Standalone CLI binaries (x64 and ARM64)
  • NPM package for NodeJS/Electron integration

Release v0.3.0

Choose a tag to compare

@azchohfi azchohfi released this 22 Apr 06:19

Version: 0.3.0
Commit: f3ce442ddd1ea2aea3ada40a0d7a5a2a411cfe00

New Features

  • winapp run command (#341) — Introduces the winapp run command 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 include ui list-windows, ui inspect, and ui 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)

  1. Download winappcli_x64.msix for x64 or winappcli_arm64.msix for ARM64
  2. Double-click to install
  3. Automatically added to PATH

Standalone CLI Binaries

  1. Download winappcli-x64.zip for x64 or winappcli-arm64.zip for ARM64
  2. Extract to your desired location
  3. Add to PATH or run directly: winapp.exe

NPM Package (for Electron or NodeJS)

npm install microsoft-winappcli.tgz

What's Included

  • MSIX installer packages (x64 and ARM64)
  • Standalone CLI binaries (x64 and ARM64)
  • NPM package for NodeJS/Electron integration

Release v0.2.1

Choose a tag to compare

@azchohfi azchohfi released this 30 Mar 18:13

Version: 0.2.1
Commit: 765f8f5de86369dd154bec8af070d848133029c1

New Features

  • Auto-generate npm Commands and Documentation (#302) — All winapp CLI commands 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 info Command (#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-assets command 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-cer Flag and --json Output for Cert Commands (#305) — Introduced a flag to export a public key as a .cer file and a JSON output format for cert generate and cert info commands enhances programmability and ease of integration with other tools.
  • Automatic WinRT Component Discovery (#334) — The winapp CLI can now automatically discover and register third-party WinRT components based on .winmd files 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 .pfx Files in Input Folder (#338) — A warning is now printed when a .pfx file 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)

  1. Download winappcli_x64.msix for x64 or winappcli_arm64.msix for ARM64
  2. Double-click to install
  3. Automatically added to PATH

Standalone CLI Binaries

  1. Download winappcli-x64.zip for x64 or winappcli-arm64.zip for ARM64
  2. Extract to your desired location
  3. Add to PATH or run directly: winapp.exe

NPM Package (for Electron or NodeJS)

npm install microsoft-winappcli.tgz

What's Included

  • MSIX installer packages (x64 and ARM64)
  • Standalone CLI binaries (x64 and ARM64)
  • NPM package for NodeJS/Electron integration

Release v0.2.0

Choose a tag to compare

@azchohfi azchohfi released this 27 Feb 20:25

Version: 0.2.0
Commit: a4930bfb2ebf3c9a76678b9b9e20044b3219f238

New Features

  • Support for Qualified Names in Appxmanifest (#320) — Allows qualified names in the Appxmanifest file, enhancing flexibility in defining app identities.
  • New winapp create-external-catalog Command (#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 store subcommand, enabling integrated commands for Microsoft Store development directly from winapp 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 CLI capabilities 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)

  1. Download winappcli_x64.msix for x64 or winappcli_arm64.msix for ARM64
  2. Double-click to install
  3. Automatically added to PATH

Standalone CLI Binaries

  1. Download winappcli-x64.zip for x64 or winappcli-arm64.zip for ARM64
  2. Extract to your desired location
  3. Add to PATH or run directly: winapp.exe

NPM Package (for Electron or NodeJS)

npm install microsoft-winappcli.tgz

What's Included

  • MSIX installer packages (x64 and ARM64)
  • Standalone CLI binaries (x64 and ARM64)
  • NPM package for NodeJS/Electron integration

Release v0.1.10

Choose a tag to compare

@azchohfi azchohfi released this 22 Jan 02:42

🚀 Automated Release Build

Version: 0.1.10
Commit: 5af020978f5d9c2db8fdafa27c9eefc190446468

Installation Options

📦 MSIX Installer (Recommended)

  1. Download winappcli_x64.msix for x64 or winappcli_arm64.msix for ARM64
  2. Double-click to install
  3. Automatically added to PATH

📦 Standalone CLI Binaries

  1. Download winappcli-x64.zip for x64 or winappcli-arm64.zip for ARM64
  2. Extract to your desired location
  3. Add to PATH or run directly: winapp.exe

📚 NPM Package (for Electron or NodeJS)

npm install microsoft-winappcli.tgz

What's Included

  • ✅ MSIX installer packages (x64 and ARM64)
  • ✅ Standalone CLI binaries (x64 and ARM64)
  • ✅ NPM package for NodeJS/Electron integration

Release v0.1.9

Release v0.1.9 Pre-release
Pre-release

Choose a tag to compare

@azchohfi azchohfi released this 21 Jan 00:21
e54be23

🚀 Automated Release Build

Version: 0.1.9
Commit: e54be238ec393c8f3172bedcd897ab3aec536d87

Installation Options

📦 MSIX Installer (Recommended)

  1. Download winappcli_x64.msix for x64 or winappcli_arm64.msix for ARM64
  2. Double-click to install
  3. Automatically added to PATH

📦 Standalone CLI Binaries

  1. Download winappcli-x64.zip for x64 or winappcli-arm64.zip for ARM64
  2. Extract to your desired location
  3. Add to PATH or run directly: winapp.exe

📚 NPM Package (for Electron or NodeJS)

npm install microsoft-winappcli.tgz

What's Included

  • ✅ MSIX installer packages (x64 and ARM64)
  • ✅ Standalone CLI binaries (x64 and ARM64)
  • ✅ NPM package for NodeJS/Electron integration

Release v0.1.8

Choose a tag to compare

@azchohfi azchohfi released this 17 Dec 18:31
c9b6cff

🚀 Automated Release Build

Version: 0.1.8
Commit: c9b6cffdfe44f77c40fdf97b6c9eb0b50a6a626a

Installation Options

📦 MSIX Installer (Recommended)

  1. Download winappcli_x64.msix for x64 or winappcli_arm64.msix for ARM64
  2. Double-click to install
  3. Automatically added to PATH

📦 Standalone CLI Binaries

  1. Download winappcli-x64.zip for x64 or winappcli-arm64.zip for ARM64
  2. Extract to your desired location
  3. Add to PATH or run directly: winapp.exe

📚 NPM Package (for Electron or NodeJS)

npm install microsoft-winappcli.tgz

What's Included

  • ✅ MSIX installer packages (x64 and ARM64)
  • ✅ Standalone CLI binaries (x64 and ARM64)
  • ✅ NPM package for NodeJS/Electron integration