windows-test-rig
Drive libvirt Windows 11 test VMs on this host or other Linux hosts - list and select VMs, boot, reset to a clean snapshot, run PowerShell over SSH, launch…
Skill by hurricanehrndz
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/hurricanehrndz-windows-test-rig
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: testing
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/windows-test-rig
What's inside
- Skill name
windows-test-rig- Description
- Drive libvirt Windows 11 test VMs on this host or other Linux hosts - list and select VMs, boot, reset to a clean snapshot, run PowerShell over SSH, launch GUI apps on the visible desktop, send keys, screenshot, and tunnel host services into the guest. Use when a change must be validated on real Windows, or when creating the VM on a new host.
- License
- MIT
- Instructions
- 85 lines in SKILL.md · view on GitHub
Before installing
- Instructions read files in your home folder (~/.ssh, ~/.aws…)
Files (6)
- SKILL.md
- autounattend.xml.in · provision/
- gui-driving.md · references/
- native-testing.md · references/
- provisioning.md · references/
- rig · scripts/
SKILL.md (first lines)
# Windows test rig
Windows 11 VMs under libvirt, driven entirely by `scripts/rig` (relative to this
file). Each VM autologs on to an interactive desktop, and the host key in
`RIG_KEY` has admin SSH access. A VM on another Linux host has
`RIG_URI=qemu+ssh://USER@HOST/system`, and guest SSH hops through that host
automatically, so every command works the same way.
Each VM is one config file, `~/.config/windows-test-rig/vms/NAME.env`, holding
its libvirt domain, user, key, URI and a `RIG_NOTE` that says what the VM is
for. Pass `-v NAME` before any command. `-v` may be omitted only when exactly
one VM is configured. `scripts/rig env` shows the resolved values.
## Start every session with
```bash
scripts/rig list
scripts/rig -v NAME doctor
```
Choose the VM by its note. Prefer a specialized VM, for example one whose note
lists a Go toolchain, over installing tools on a generic one. If no note fits
the task, ask the user. `doctor` checks every layer from libvirt to the desktop
session and names the fix for each failure. If no VM exists, create one by
following [references/provisioning.md](references/provisioning.md). If the VM is
shut off, run `scripts/rig -v NAME up`.
## Commands
| Need | Command |
| -- | -- |
| Clean state before a test | `rig reset` (reverts to the `clean` snapshot, about 30 s) |
| Run PowerShell, capture output | write a `.ps1`, then `rig ps FILE.ps1` |
| One-line query | `rig ssh 'Get-Service sshd'` (single-quote it locally) |
| Copy files | `rig put LOCAL [C:/dest/]`, `rig get REMOTE LOCAL` |
| Launch a GUI app visibly | write a `.ps1` that starts it, then `rig run-it FILE.ps1` |
| Wait for a desktop script to finish | `rig run-it --wait FILE.ps1` |
| Keyboard | `rig key KEY_TAB`, `rig key KEY_LEFTSHIFT KEY_TAB`, `rig type 'text'`, `rig type --enter` |
| Refocus a window | `rig focus PROCESSNAME` |
| Screenshot | `rig shot OUT.png`, then Read the PNG |
| Guest reaches a host service | `rig tunnel PORT` in the background; the guest uses `http://127.0.0.1:PORT/` |
| Same VM on another host, or another host driving this one | `rig copy`, `rig authorize`: see [references/provisioning.md](references/provisioning.md) |
| Finish | `rig cleanup` (removes `rig-*` tasks), then `rig down` unless told to leave it up |
## Rules the script cannot enforce
- **Never inline complex PowerShell in `rig ssh`.** The local shell eats `$` and
PS 5.1 mangles nested quotes. Put anything with variables, pipes or quotes in
a `.ps1` and use `rig ps` or `rig run-it`.
- **GUI apps started over SSH are invisible.** They run in the SSH session, not
on the desktop. Use `rig run-it` for anything you need to see or screenshot.
It runs as the logged-on user with a standard token. Add `--elevated` only
when the app must run as admin.
- **Pass multi-word arguments with an array splat.** In the `.ps1`, write
`$a = @('--title', 'Two Words'); & $exe @a`. Both
`Start-Process -ArgumentList` and cmd `start ""` split quoted arguments at
spaces on PS 5.1.
- **GUI-subsystem executables return immediately.** To wait for exit and capture
stdout over SSH, pipe them: `& $exe @a | Out-String`.
- **Distrust the first screenshot after motion.** Frames captured during a
scroll, dialog open, or window animation are torn and look like layout bugs.
Before reporting a visual defect, capture again with `rig shot --settle 5`.
- **Never print a password.** `RIG_PASSWORD` and `RIG_STD_PASSWORD` live only in
the 0600 VM config. Copy them into a guest script without echoing them, and
delete the script afterwards.
- **Keep extra snapshots off generic VMs.** `rig up` without a reset boots the
current snapshot, and `rig snapshot` with no name replaces `clean`. Clone a
specialized VM instead; see
[references/provisioning.md](references/provisioning.md#a-specialized-vm-on-the-same-host).
- **Keys go to the focused window.** If a screenshot shows another window in
front, run `rig focus` before sending keys. Alt+Tab through `rig key` is
unreliable.
Keyboard names, browser-in-guest checks and other GUI-driving details are in
[references/gui-driving.md](references/gui-driving.md). Running tests as SYSTEM,
safe toolchain locations, and Go test and race-detector setup are in
[references/native-testing.md](references/native-testing.md).
## Where project workflows live
This skill covers the VM, not any product. Build, deploy and smoke-test steps
for a project belong in that project's `AGENTS.md`, written in terms of `rig`
commands.From hurricanehrndz/agent-toolkit, MIT.
More from hurricanehrndz/agent-toolkit
- 0.570score
web
hurricanehrndz
Search the public web or read an HTTP(S) URL as static Markdown when the user explicitly requests web search, current external information, or URL inspection.
SkillAFreshness: AClaude Code +9 - 0.570score
macos-test-rig
hurricanehrndz
Drive remote macOS test hosts over SSH - run commands, copy files, capture the screen, launch an app and capture it, and send synthetic keys - through the…
SkillAFreshness: AClaude Code +9 - 0.565score
obsidian-cli
hurricanehrndz
Read, search, analyze, and safely edit the user's Obsidian vaults using the obsidian CLI.
SkillAFreshness: AClaude Code +9 - 0.533score
teach
hurricanehrndz
Teach the user a new skill or concept, within this workspace.
SkillAFreshness: AClaude Code +9 - 0.524score
writing-for-agents
hurricanehrndz
Write or revise documents that agents consume, including skills, AGENTS.md, CLAUDE.md, specifications, prompts, and README files.
SkillBFreshness: BClaude Code +9 - 0.524score
diagrams
hurricanehrndz
Use when creating or updating diagrams, including architecture, infrastructure, sequence, flowchart, state, or entity-relationship diagrams.
SkillBFreshness: BClaude Code +9 - 0.523score
osquery-dev
hurricanehrndz
Use when writing, testing, debugging, or verifying osquery SQL queries.
SkillBFreshness: BClaude Code +9 - 0.521score
subagent
hurricanehrndz
Spawns pi as a separate subagent process for edits, verification, reviews, research, or any delegated task whenever the user mentions a subagent, asks to…
SkillBFreshness: BClaude Code +9 - 0.518score
review
hurricanehrndz
Run a read-only subagent review of the current branch diff against main or master.
SkillBFreshness: BClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Oct 12, 2026 (16 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/hurricanehrndz/agent-toolkit
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from hurricanehrndz
- 0.570score
web
hurricanehrndz
Search the public web or read an HTTP(S) URL as static Markdown when the user explicitly requests web search, current external information, or URL inspection.
SkillAFreshness: AClaude Code +9 - 0.570score
macos-test-rig
hurricanehrndz
Drive remote macOS test hosts over SSH - run commands, copy files, capture the screen, launch an app and capture it, and send synthetic keys - through the…
SkillAFreshness: AClaude Code +9 - 0.565score
obsidian-cli
hurricanehrndz
Read, search, analyze, and safely edit the user's Obsidian vaults using the obsidian CLI.
SkillAFreshness: AClaude Code +9 - 0.533score
teach
hurricanehrndz
Teach the user a new skill or concept, within this workspace.
SkillAFreshness: AClaude Code +9 - 0.524score
writing-for-agents
hurricanehrndz
Write or revise documents that agents consume, including skills, AGENTS.md, CLAUDE.md, specifications, prompts, and README files.
SkillBFreshness: BClaude Code +9 - 0.524score
diagrams
hurricanehrndz
Use when creating or updating diagrams, including architecture, infrastructure, sequence, flowchart, state, or entity-relationship diagrams.
SkillBFreshness: BClaude Code +9
Cite this page
windows-test-rig skill. Agent Mart. https://agentmart.dev/skills/hurricanehrndz-windows-test-rig (last updated 2026-10-24)