windows-vm
Create, manage, or connect to a headless Windows 11 VM running in Docker with SSH access.
Skill by obra
Chalk Labs
Need help deploying windows-vm?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
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/obra-windows-vm
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: devops
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-vm
Tools it pre-approves 3
From allowed-tools in SKILL.md: the agent may use these without asking you each time.
Bash,Read,Write
What's inside
- Skill name
windows-vm- Description
- Create, manage, or connect to a headless Windows 11 VM running in Docker with SSH access. Use when the user wants to spin up, stop, restart, or SSH into a Windows VM.
- License
- MIT
- Allowed tools
- Bash,, Read,, Write
- Instructions
- 217 lines in SKILL.md · view on GitHub
Before installing
- Pre-approves some shell commands
- Instructions read files in your home folder (~/.ssh, ~/.aws…)
Agent Skills spec issues
- body: contains an absolute path from the author's machine
Files (1)
- SKILL.md
SKILL.md (first lines)
# Headless Windows 11 VM
Manage a headless Windows 11 VM running via [dockur/windows](https://github.com/dockur/windows) in Docker with KVM acceleration. The VM is accessible via SSH only — no RDP or GUI required.
## Host prerequisites
- Docker
- KVM support (`/dev/kvm` must exist — check with `ls /dev/kvm`)
- `sshpass` (`sudo apt install sshpass`)
- `imagemagick` (optional, for screenshot debugging: `sudo apt install imagemagick`)
## Configuration
- **Container name**: `windows11`
- **VM directory**: `$HOME/windows-vm/`
- `storage/` — VM disk image (managed by dockur, wiped on recreate)
- `iso/win11x64.iso` — cached Windows ISO (7.3GB, persists across recreates)
- `oem/install.bat` — post-install script (installs OpenSSH Server)
- **Credentials**: user / password
- **SSH**: `localhost:2222` (bound to 127.0.0.1 only)
- **RDP**: `localhost:3389` (bound to 127.0.0.1 only, fallback)
- **Web console**: `localhost:8006` (VNC in browser, for debugging)
- **Resources**: 8GB RAM, 4 CPU cores, 64GB disk
## Actions
### create — First-time setup or full recreate
1. Ensure directories exist:
```bash
mkdir -p "$HOME/windows-vm/oem" "$HOME/windows-vm/storage" "$HOME/windows-vm/iso"
```
2. Ensure `$HOME/windows-vm/oem/install.bat` exists with OpenSSH setup:
```bat
@echo off
echo Installing OpenSSH Server...
powershell -Command "Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0" 2>nul
powershell -Command "Get-WindowsCapability -Online -Name OpenSSH.Server* | Add-WindowsCapability -Online" 2>nul
dism /Online /Add-Capability /CapabilityName:OpenSSH.Server~~~~0.0.1.0 2>nul
powershell -Command "Start-Service sshd" 2>nul
powershell -Command "Set-Service -Name sshd -StartupType Automatic"
powershell -Command "New-ItemProperty -Path 'HKLM:\SOFTWARE\OpenSSH' -Name DefaultShell -Value 'C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe' -PropertyType String -Force"
powershell -Command "New-NetFirewallRule -Name 'OpenSSH-Server' -DisplayName 'OpenSSH Server' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22"
powershell -Command "Get-Service sshd" 2>nul
echo Done.
```
3. If recreating, remove the old container and disk:
```bash
docker stop windows11 && docker rm windows11
rm -f "$HOME/windows-vm/storage/data.img"
```
4. Launch the container. There are two cases:
**If cached ISO exists** (`$HOME/windows-vm/iso/win11x64.iso`):
```bash
docker run -d \
--name windows11 \
-p 127.0.0.1:3389:3389 \
-p 127.0.0.1:2222:22 \
-p 127.0.0.1:8006:8006 \
-e RAM_SIZE="8G" \
-e CPU_CORES="4" \
-e DISK_SIZE="64G" \
-e USERNAME="user" \
-e PASSWORD="password" \
--cap-add NET_ADMIN \
--device /dev/kvm \
-v "$HOME/windows-vm/storage:/storage" \
-v "$HOME/windows-vm/oem:/oem" \
-v "$HOME/windows-vm/iso/win11x64.iso:/boot.iso" \
dockurr/windows
```
**First time (no cached ISO)** — omit the `/boot.iso` mount and add `VERSION`:
```bash
docker run -d \
--name windows11 \
-p 127.0.0.1:3389:3389 \
-p 127.0.0.1:2222:22 \
-p 127.0.0.1:8006:8006 \
-e RAM_SIZE="8G" \
-e CPU_CORES="4" \
-e DISK_SIZE="64G" \
-e VERSION="win11" \
-e USERNAME="user" \
-e PASSWORD="password" \
--cap-add NET_ADMIN \
--device /dev/kvm \
-v "$HOME/windows-vm/storage:/storage" \
-v "$HOME/windows-vm/oem:/oem" \
dockurr/windows
```
After the ISO downloads and Windows boots, **immediately** copy the ISO out before
the container is ever stopped (dockur wipes `/storage` on recreate):
```bash
cp "$HOME/windows-vm/storage/win11x64.iso" "$HOME/windows-vm/iso/win11x64.iso"
```
5. Wait for Windows install + OpenSSH setup to complete. This takes **20-30 minutes** for a
fresh install (the OEM install.bat runs at the end of Windows OOBE and downloads OpenSSH
from Microsoft, which is slow). Monitor with:
```bash
docker logs -f windows11
```
You can also watch the VM screen via the web console at `http://localhost:8006`.
To check if SSH is up:
```bash
sshpass -p 'password' ssh -o StrictHostKeyChecking=no -o ConnectTimeout=5 -p 2222 user@localhost "whoami"
```
6. Once SSH is responding, install Node.js and Claude Code by piping a setup script via stdin
(avoids PowerShell escaping hell over SSH):
```bash
cat << 'PS' | sshpass -p 'password' ssh -o StrictHostKeyChecking=no -p 2222 user@localhost "powershell -ExecutionPolicy Bypass -Command -"
# Download and install Node.js silentlyFrom obra/superpowers-lab, MIT.
More from obra/superpowers-lab
- 0.632score
finding-duplicate-functions
obra
Use when auditing a codebase for semantic duplication - functions that do the same thing but have different names or implementations.
SkillDFreshness: D★ 433Claude Code +9 - 0.537score
mcp-cli
obra
Use MCP servers on-demand via the mcp CLI tool - discover tools, resources, and prompts without polluting context with pre-loaded MCP integrations
SkillDFreshness: D★ 433Claude Code +9 - 0.500score
using-tmux-for-interactive-commands
obra
Use when you need to run interactive CLI tools (vim, git rebase -i, Python REPL, etc.) that require real-time input/output - provides tmux-based approach for…
SkillFFreshness: F★ 433Claude Code +9
Signals
- Stars
- 433
- Forks
- 37
- Open issues
- 1
- Last commit (this folder)
- Mar 23, 2026 (7 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/obra/superpowers-lab
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from obra
- 0.891score
executing-plans
obra
Use when executing an implementation plan in the current session as the implementer yourself — your human partner chose inline execution, or no subagent tool…
SkillAFreshness: A★ 304.6KClaude Code +9 - 0.891score
diagnosing-superpowers
obra
Use when a superpowers session went wrong and your human partner wants to know why — repeated work, ignored plans, stumbles, poor results, a skill that didn't…
SkillAFreshness: A★ 304.6KClaude Code +9 - 0.750score
using-superpowers
obra
Use when starting any conversation - establishes how to find and use skills, requiring skill invocation before ANY response including clarifying questions
SkillAFreshness: A★ 304.6KClaude Code +9 - 0.750score
AGENTS.md · obra/superpowers
obra
AGENTS.md from obra/superpowers: 122 lines covering If You Are an AI Agent, Pull Request Requirements, What We Will Not Accept, New Harness Support and more.
TemplateAFreshness: A★ 304.6KCodex +5 - 0.749score
subagent-driven-development
obra
Use when executing implementation plans with independent tasks in the current session
SkillAFreshness: A★ 304.6KClaude Code +9 - 0.747score
brainstorming
obra
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or planning anything new, in…
SkillAFreshness: A★ 304.6KClaude Code +9
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get windows-vm running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
windows-vm skill. Agent Mart. https://agentmart.dev/skills/obra-windows-vm (last updated 2026-10-24)