Real Windows
Not Wine. Not mocked APIs. Your command executes against a genuine Windows ARM64 kernel with native Windows filesystem, registry, process and API behaviour.
Run real Windows commands, builds, tests and desktop apps locally. Every run starts clean. No VM to manage. No remote Windows machine. No waiting for a desktop to boot.
WinQuick hides the virtualization layer and gives developers and coding agents a simple primitive: run this inside real Windows and return the result.
Not Wine. Not mocked APIs. Your command executes against a genuine Windows ARM64 kernel with native Windows filesystem, registry, process and API behaviour.
Files, registry changes and environment mutations disappear after every run. The base environment stays pristine.
A prepared Windows state restores in milliseconds. Fast enough to sit inside edit → test → fix loops without feeling like a VM.
Add only what a workload needs: PowerShell, .NET runtime, .NET SDK, desktop support and dependency caches remain modular.
Claude Code, Codex and other agents can use the same CLI humans use. No special VM API and no remote desktop orchestration required.
Cross-build when it makes sense. Build inside Windows when it matters. Either way, WinQuick gives your tests the Windows kernel they actually need.
Automated testing of a Windows GUI normally needs a Windows machine with a logged-in desktop. WinQuick builds a WPF or WinForms application, runs it in a real Windows desktop and drives it through Microsoft UI Automation — the interface Windows' own accessibility tools use. Controls are addressed by AutomationId, so a test does not depend on pixel positions or window layout, and a selector matching two elements is an error rather than a guess. Nothing appears on your screen: no QEMU window, no RDP, no VNC.
A session is ready in about 350 ms. Launching an application takes a further ~27 ms and its first window appears about 660 ms later; UI Automation reads and clicks are ~20 ms, and a window screenshot ~59 ms. Preparing the desktop environment is a one-time ~17 seconds.
winquick desktop screenshot app.png
winquick desktop tree --title "Device Configuration"
winquick desktop click --automation-id SaveButton
winquick desktop get --automation-id StatusText
Saved: PLC-01
Captured by scripts/capture-screenshots.sh in the repository. The timings were measured while the image was being made, and the Windows pictures come from the guest's own framebuffer.
WinQuick restores a prepared Windows environment instead of cold-booting a full workstation for every command. The result feels closer to a local tool than a virtual machine.
Current measured Apple Silicon development results. Exact timings vary by machine, command and enabled capabilities.
An agent can often reason about a Windows bug from source. WinQuick lets it verify the fix against real Windows — including WPF and WinForms UI.
WinQuick is a native MCP server, so agents get structured tools rather than shell syntax: build and test on real Windows, launch a WPF or WinForms application, read and drive it through Microsoft UI Automation, and capture real Windows screenshots. Verified with Claude Code.
Apple Silicon macOS is where WinQuick is developed, and where every figure on this page was measured. Linux and Windows run the same CLI on their own native accelerator. A Windows host boots the guest from scratch on every run, which costs about 17 seconds and is deliberate — a resumed guest there stalls on timers. On Linux the host side is verified, in that it builds, the tests pass and the diagnostics are correct, but a guest has not yet been booted on real Linux hardware.
WinQuick handles the runtime setup and verifies it with a real Windows command before declaring it ready. Install it with Homebrew on any Apple Silicon Mac. The build is not signed or notarized, but Homebrew fetches the archive itself, so there is no Gatekeeper step.