用途
该技能用于在 Peter 的 Mac 上自动化并验证 Parallels Desktop 虚拟机(guest)。核心工具是 prlctl,用于电源管理、快照、guest 命令执行、guest 截图和虚拟机信息查询;peekaboo 用于宿主侧对 Parallels 应用/窗口的 GUI 自动化;guest 内部则可通过 ssh、屏幕共享或 RDP 进行更稳健的控制。辅助封装脚本位于 ~/Projects/agent-scripts/skills/parallels-vm/scripts/,不会复制到各目标仓库的 scripts/ 目录。
主要能力
按 guest 操作系统区分封装:macOS guest 使用 prl-macos-,Linux guest 使用 prl-linux-,Windows guest 使用 prl-windows-*。未知 guest 需先用 prlctl exec 探测(如 uname -a、cat /etc/os-release)再选择封装。
核心命令包括:prlctl start/status/list -i/exec/capture,以及快照相关 snapshot、snapshot-list、snapshot-switch、snapshot-delete。
提供大量可复用辅助脚本,覆盖三类 guest:
- Linux:prl-linux-openclaw.sh、prl-linux-install-openclaw.sh、prl-linux-gateway-status-version.sh、prl-linux-openclaw-update-verify.sh。
- macOS:prl-macos-enter.sh、prl-macos-pnpm.sh、prl-macos-vitest.sh、prl-macos-repo-openclaw.sh、prl-macos-live-auth-seed.sh、prl-macos-download.sh、prl-macos-openclaw.sh、prl-macos-install-openclaw.sh、prl-macos-gateway-status-version.sh、prl-macos-openclaw-update-verify.sh、prl-macos-auth-seed.sh。
- Windows:prl-windows-install-openclaw.sh、prl-windows-overlay-openclaw.sh、prl-windows-openclaw.sh、prl-windows-gateway-status-version.sh、prl-windows-openclaw-update-verify.sh、prl-windows-onboard-verify.sh。
这些脚本针对 OpenClaw 的安装、更新、网关状态与版本验证、onboarding 验证等场景,处理了 PATH、shebang、shell 引号、CLIXML 解析、launchd 引导失败回退等常见问题。
使用方式
快速路径:先确认 prlctl 存在(which prlctl),列出虚拟机(prlctl list -a),查看目标虚拟机信息(prlctl list -i "<vm>")。优先使用 guest 原生控制:prlctl exec "<vm>" --current-user ... 或 ssh user@<guest-ip>;仅在需要 GUI 交互时使用 peekaboo。
guest exec 注意事项:不带 --current-user 常以 root 运行,对 macOS guest 的按用户 launchd 检查不正确;即使带 --current-user,PATH 也可能极简,Homebrew CLI 可能报 command not found 或 env: node: No such file or directory;对管道、重定向、heredoc 或交互流程,优先使用 prlctl enter "<vm>" --current-user --use-advanced-terminal;macOS guest 上 Homebrew 工具建议用绝对路径(如 /opt/homebrew/bin/openclaw、/opt/homebrew/bin/node、/usr/bin/grep、/usr/bin/plutil);需要 shell 特性或用户 PATH 时显式包裹真实 shell,如 prlctl exec "$VM" --current-user zsh -lc '<cmd>'。
SSH 引导:共享网络通常足以支持宿主到 guest 的 SSH,先从 prlctl list -i 获取 guest IP,用 nc -G 2 -vz "$(vmip "$VM")" 22 探测;若 macOS guest 关闭,可在 guest 中启用远程登录(系统设置 > 通用 > 共享 > 远程登录,或 sudo systemsetup -setremotelogin on),然后 ssh "$USER@$(vmip "$VM")"。若需要 localhost:2222 之类的稳定本地转发,应配置 Parallels NAT 端口转发规则。
macOS guest 调试:对 launchd 管理的服务使用 guest 控制台用户而非 root;可用 launchctl print gui/$(id -u)/<label> 证明“plist 存在但 launchd 丢失服务”;curl http://127.0.0.1:<port>/health 与 lsof -iTCP:<port> 在 prlctl exec 内 PATH/env 损坏时比应用专用 CLI 更可靠。
适用场景
适用于在 Parallels Desktop 虚拟机中执行 OpenClaw 的安装、更新、网关状态与版本验证、onboarding 验证,以及 macOS/Linux/Windows guest 的日常命令执行、快照管理与截图。也适用于需要按 guest 操作系统选择对应封装脚本的自动化验证流程。
限制
资料未提供该技能的收费、价格、平台支持范围或效果保证等信息。部分脚本行为依赖具体 guest 环境(如 Homebrew 路径、launchd 状态、umask 值),资料中已列出若干已知陷阱与回退策略,但未穷尽所有环境差异。