ClawKeeper openclaw-parallels-smoke
End-to-end Parallels smoke, upgrade, and rerun workflow for OpenClaw across macOS, Windows, and Linux guests. Use when Codex needs to run, rerun, debug, or interpret VM-based install, onboarding, gateway smoke tests, latest-release-to-main upgrade checks, fresh snapshot retests, or optional Discord roundtrip verification under Parallels.
install
source · Clone the upstream repo
git clone https://github.com/SafeAI-Lab-X/ClawKeeper
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/SafeAI-Lab-X/ClawKeeper "$T" && mkdir -p ~/.claude/skills && cp -r "$T/clawkeeper-watcher/.agents/skills/openclaw-parallels-smoke" ~/.claude/skills/safeai-lab-x-clawkeeper-openclaw-parallels-smoke && rm -rf "$T"
OpenClaw · Install into ~/.openclaw/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/SafeAI-Lab-X/ClawKeeper "$T" && mkdir -p ~/.openclaw/skills && cp -r "$T/clawkeeper-watcher/.agents/skills/openclaw-parallels-smoke" ~/.openclaw/skills/safeai-lab-x-clawkeeper-openclaw-parallels-smoke && rm -rf "$T"
manifest:
clawkeeper-watcher/.agents/skills/openclaw-parallels-smoke/SKILL.mdsource content
OpenClaw Parallels Smoke
Use this skill for Parallels guest workflows and smoke interpretation. Do not load it for normal repo work.
Global rules
- Use the snapshot most closely matching the requested fresh baseline.
- Gateway verification in smoke runs should use
unless the stable version being checked does not support it yet.openclaw gateway status --deep --require-rpc - Stable
pre-upgrade diagnostics may require a plain2026.3.12
fallback.gateway status --deep - Treat
on that stable pre-upgrade lane as baseline, not automatically a regression.precheck=latest-ref-fail - Pass
for machine-readable summaries.--json - Per-phase logs land under
./tmp/openclaw-parallels-* - Do not run local and gateway agent turns in parallel on the same fresh workspace or session.
macOS flow
- Preferred entrypoint:
pnpm test:parallels:macos - Default to the snapshot closest to
.macOS 26.3.1 latest - On Peter's Tahoe VM,
can hang infresh-latest-march-2026
; if restore times out there, rerun withprlctl snapshot-switch
before blaming auth or the harness.--snapshot-hint 'macOS 26.3.1 latest'
is fine for deterministic repo commands, but use the guest Terminal orprlctl exec
when installer parity or shell-sensitive behavior matters.prlctl enter- On the fresh Tahoe snapshot,
exists butbrew
may be missing from PATH in noninteractive exec. Usenode
when needed./opt/homebrew/bin/node - Fresh host-served tgz installs should install as guest root with
, then run onboarding as the desktop user viaHOME=/var/root
.prlctl exec --current-user - Root-installed tgz smoke can log plugin blocks for world-writable
; do not treat that as an onboarding or gateway failure unless plugin loading is the task.extensions/*
Windows flow
- Preferred entrypoint:
pnpm test:parallels:windows - Use the snapshot closest to
.pre-openclaw-native-e2e-2026-03-12 - Always use
; plainprlctl exec --current-user
lands inprlctl exec
.NT AUTHORITY\\SYSTEM - Prefer explicit
andnpm.cmd
.openclaw.cmd - Use PowerShell only as the transport with
, then call the-ExecutionPolicy Bypass
shims from inside it..cmd - Keep onboarding and status output ASCII-clean in logs; fancy punctuation becomes mojibake in current capture paths.
Linux flow
- Preferred entrypoint:
pnpm test:parallels:linux - Use the snapshot closest to fresh
.Ubuntu 24.04.3 ARM64 - If that exact VM is missing on the host, fall back to the closest Ubuntu guest with a fresh poweroff snapshot. On Peter's host today, that is
.Ubuntu 25.10 - Use plain
;prlctl exec
is not the right transport on this snapshot.--current-user - Fresh snapshots may be missing
, andcurl
can fail on clock skew. Bootstrap withapt-get update
and installapt-get -o Acquire::Check-Date=false update
.curl ca-certificates - Fresh
tgz smoke still needs the latest-release installer first because the snapshot has no Node or npm before bootstrap.main - This snapshot does not have a usable
session; managed daemon install is unsupported.systemd --user
reaps detached Linux child processes on this snapshot, so detached background gateway runs are not trustworthy smoke signals.prlctl exec- Treat
plusgateway=skipped-no-detached-linux-gateway
as baseline on that Linux lane, not a regression.daemon=systemd-user-unavailable
Discord roundtrip
- Discord roundtrip is optional and should be enabled with:
--discord-token-env--discord-guild-id--discord-channel-id
- Keep the Discord token only in a host env var.
- Use installed
, notopenclaw message send/read
.node openclaw.mjs message ... - Set
as one JSON object, not dotted config paths with snowflakes.channels.discord.guilds - Avoid long
or expect-driven Discord config scripts; preferprlctl enter
with short commands.prlctl exec --current-user /bin/sh -lc ... - For a narrower macOS-only Discord proof run, the existing
skill is the deep-dive companion.parallels-discord-roundtrip