ニュース

UIをコマンドでタッチ・ドラッグ、JS/TSからWinRT APIを直接呼び出し ~「winapp CLI 0.5.0」が公開

「Claude Code」向けプラグインを追加、「VS Code」拡張機能も拡充

「Windows App Development CLI」(winapp)v0.5.0

 米Microsoftは7月22日(現地時間)、「Windows App Development CLI」(winapp CLI)の最新版v0.5.0をリリースした。UI自動化の拡充、JavaScript/TypeScriptバインディングの追加などが行われている。

 「Windows App Development CLI」は、Windowsアプリの開発に必要なSDK管理やパッケージング、アプリID・マニフェスト・証明書の生成などを、さまざまなフレームワークから扱えるようにするコマンドラインツール。近年は「Rust」や「Dart」「Flutter」、「Electron」でWindowsアプリを構築する例が増えているが、そうした開発シナリオもサポートする。

 「Windows App Development CLI」は現在、パブリックプレビューとして提供中。パッケージ管理ツール「WinGet」(winget install microsoft.winappcli)からインストールできる。

「winapp ui」コマンドの拡充

 v0.5.0では「winapp ui」コマンドが大幅に拡充。これまではUI要素の取得・確認(inspect)、クリック(click)、スクリーンショットの撮影(screenshot)しかサポートされていなかったが、新たに以下のコマンドがサポートされた。

  • winapp ui record:セッションをMP4として録画
  • winapp ui touch:ピンチやスワイプなど、実際のタッチジェスチャーを合成
  • winapp ui pen:ペン・スタイラスでの描画や消去をシミュレート
  • winapp ui send-keys:ショートカットキーやテキスト入力を送信
  • winapp ui hover:ツールチップやフライアウトを表示
  • winapp ui drag:要素間、または座標間でのドラッグ操作
  • winapp ui scroll --wheel:マウスホイールでのスクロール

 ターミナルやAIエージェントがWindowsアプリを操作・検証するのが簡単になる。

JavaScript/TypeScriptからWinRT APIを直接呼び出し

 さらに、v0.5.0では以下のコマンドでJavaScript/TypeScriptプロジェクトに型付きのWindows Runtime(WinRT)APIバインディングを追加できるようになった。

npx winapp init . --use-defaults --add-js-bindings

 このバインディングがあれば、「Electron」や「Node.js」でWindowsアプリを開発している場合に、通知やファイルピッカーといったWindows機能へアクセスすることが可能。「Windows AI」や「Windows ML」といった最新のAPIにもアクセスできる。

 バインディングは「WinAppSDK」のメタデータから生成され、「@microsoft/dynwinrt」経由で実行時にWinRTを呼び出す仕組みとなっており、コード補完機能「IntelliSense」にも対応する。

そのほかの変更

 そのほかにも、以下の改善が実施された。

  • WinUIのクラッシュ診断を強化
  • 「winapp ui screenshot」で存在しない出力ディレクトリを指定した場合、エラーではなく自動作成されるように
  • 「Claude Code」向けプラグインを追加。「GitHub Copilot CLI」向けプラグインと自動的に同期されるように
  • 「Visual Studio Code」用の「WinApp」拡張機能を独立したリポジトリ(microsoft/WinAppVSCE)に移動。AppxManifestエディターを追加

 なお、UI関連コマンドの座標を表す用語が「app」から「screen」に変更されている点には注意。これは破壊的変更で、スクリプトで旧用語を参照している場合は更新が必要となる可能性がある。