windows-vm
作者 obra使用 windows-vm 技能在 Docker 中借助 KVM 加速创建、管理并通过 SSH 连接到无头的 Windows 11 虚拟机。它适合桌面自动化、Windows 应用安装,以及需要真实 Windows 环境但不想手动使用 RDP 的可重复 agent 工作流。
该技能评分为 79/100,说明它是目录用户的一个稳妥候选:VM 管理范围清晰、可操作性强,且有足够的运行细节,值得安装;但用户仍需预期主机侧会有一定配置摩擦。
- 触发性强:描述和 argument-hint 明确覆盖 Windows 11 虚拟机的 create、start、stop、restart、ssh 和 status 操作。
- 运行信息具体:文档说明了主机前置条件、容器命名、端口、存储路径,以及 SSH/RDP/web-console 的访问入口。
- 工作流深度不错:正文包含分步操作和约束,agent 不必只靠泛化提示去猜测怎么做。
- 没有安装命令或配套支持文件,用户需要手动对接环境,并严格按文档操作。
- 工作流依赖主机:需要 Docker、KVM(/dev/kvm)和 sshpass,因此可移植性有限,在不受支持的系统上也更容易失败。
windows-vm 技能概览
windows-vm 是做什么的
windows-vm 技能帮助你在 Docker 中借助 KVM 加速创建、管理并通过 SSH 登录到一台无头的 Windows 11 VM。它尤其适合桌面自动化工作流、Windows 应用安装配置,以及需要真实 Windows 环境但又不想手动使用 RDP 的 agent 驱动任务。
什么时候适合用这个技能
当你的工作是启动一台全新的 VM、重新连接到已有 VM、在一次失败的设置后重启,或者验证 SSH 是否可用时,适合使用 windows-vm 技能。它特别适合那些需要可复现的 Windows sandbox 的场景,因为它会保留 ISO 缓存,并且可以基于已知基线重新创建。
安装前最需要关注什么
最大的落地阻力来自宿主机支持和预期匹配:你需要 Docker、/dev/kvm 和 sshpass,而且这台 VM 是以 SSH 为主,不是以 GUI 为主。如果你的主工作流必须依赖交互式 RDP,或者你无法提供硬件虚拟化,那么这个技能并不适合你。
如何使用 windows-vm 技能
安装并先看对的文件
使用 npx skills add obra/superpowers-lab --skill windows-vm 安装 windows-vm 技能。然后先阅读 skills/windows-vm/SKILL.md,因为这里写明了操作流程、宿主机要求,以及精确的 create/start/stop/restart/ssh/status 动作。这个 repo 里没有 helper scripts 或 reference 文件夹,所以 SKILL.md 就是唯一的事实来源。
把你的请求写成技能能直接执行的样子
最好的 windows-vm usage 不是笼统地说“帮我处理一下”,而是从明确的动作和目标开始。好的 prompt 例如:Use windows-vm to create a clean Windows 11 VM and verify SSH login、Use windows-vm to restart the existing VM and check status,或者 Use windows-vm for Desktop Automation and prepare the machine for a browser-based task。要写清楚你是第一次创建、完整重建,还是只需要连接到已有 VM。
这个工作流需要什么输入
想要稳定完成 windows-vm install 和后续使用,技能需要知道宿主机是否已就绪、存储位置的默认假设,以及 VM 是否应当被视为一次性环境。若你在意保留 ISO 缓存、清空 VM 磁盘,或者继续使用默认的 windows11 容器名和端口,请明确说明。如果你要用它去自动化后续任务,还要写明 Windows 用户名/密码的预期,以及首次启动后必须预装的软件。
实用使用建议
在尝试任何动作前先读前置条件:确认 Docker 正常、检查 /dev/kvm 是否存在,并在你期待 SSH 步骤成功之前先安装 sshpass。只有在你确实需要完整 provisioning 流程时才用 create;如果 VM 已经存在,就用 start、stop、restart 或 status。排障时,localhost:8006 上的 web console 和可选的截图工具,能帮助你在 SSH 还没就绪时确认 VM 是否已经启动。
windows-vm 技能 FAQ
windows-vm 只适合 Desktop Automation 吗?
不是。windows-vm 技能对 Desktop Automation 很有用,但它的核心工作其实是管理 Docker 中的 Windows 11 VM 生命周期。如果你的任务既需要 Windows 特定执行,又需要稳定的远程访问,它就很合适;如果你只是需要一句 prompt 来描述 Windows 工作流,那更简单的 prompt 可能就够了。
使用它一定要有 GUI 吗?
通常不需要。这个技能是围绕对无头 VM 的 SSH 访问来设计的,RDP 和浏览器控制台只是排障时的备用路径。这也让它比手工桌面操作更适合 agent 工作流。
这个技能适合新手吗?
适合,但前提是你愿意按 VM 设置清单来操作,并且能检查宿主机前置条件。windows-vm 指南最有价值的地方在于它要求你先明确目标状态——新 VM、重启后的 VM,还是已连接的 VM——因为这个技能在生命周期意图清晰时效果最好。
什么情况下不该用 windows-vm?
如果你的机器无法提供 KVM 加速、Docker 不可用,或者你的任务依赖一个完整可交互的 Windows 桌面并把它作为主界面,就不要用 windows-vm。当你需要的是一台长期存在、深度定制、而且不应该被重建的 Windows 主机时,它也不是理想选择。
如何改进 windows-vm 技能
给技能一个更干净的起点状态
windows-vm 取得最好结果的前提,是你先说清楚 VM 应该从零创建还是按现状继续运行。如果省略这点,工作流可能会把时间浪费在错误路径上。像 create from scratch、recreate and wipe storage 或 start existing Windows VM 这样的说法,能直接消除歧义。
给出准确的结束条件
对 windows-vm usage 来说,最有效的改进就是定义成功检查方式。例如:create the VM and confirm SSH on localhost:2222、boot Windows and verify the OpenSSH Server service is reachable,或者 stop the container after confirming status is stopped。这样技能就会围绕你真正需要的结果来优化。
尽早说明环境限制
如果你的宿主机有非标准 Docker 路径、受限端口、内存不足,或者缺少 /dev/kvm,请提前说出来。windows-vm 技能在 provisioning 开始前就能根据真实宿主机限制做调整时,可靠性会更高。如果你是拿它做 Desktop Automation,也要说明你会依赖 SSH、RDP 还是 web console,这样设置才能和控制路径一致。
第一次运行后继续迭代
如果第一次运行失败,下一版 windows-vm prompt 要带上准确的失败点:ISO 下载、容器启动、SSH 登录,还是 Windows 启动时序问题。这样技能就能聚焦在坏掉的那一段,而不是把整套流程重新跑一遍。最有用的后续 prompt 通常是一个简短修正,加上清晰状态:现在已有什么、哪里失败了、下一步应该发生什么。
