agent-transcript
Requested GitHub PR/issue agent transcripts: redact, trim, preview, and insert safely.
Parallels macOS VM lab: GUI automation, Peekaboo, TCC, Ghostty.
$ npx -y skills add steipete/agent-scripts --skill vm-lab --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/vm-labContext preview
The summary Claude sees to decide when to auto-load this skill.
Parallels macOS VM lab: GUI automation, Peekaboo, TCC, Ghostty.
name: vm-lab description: "Parallels macOS VM lab: GUI automation, Peekaboo, TCC, Ghostty."
Use this when the task needs a clean macOS VM to test GUI automation, TCC prompts, screenshot capture, clicking, typing, performance, or "two-way validation" of Peekaboo-like tools.
Core idea: run the tool under test inside the guest, but verify it from outside the guest with Parallels screenshots and host-side observations. Do not close apps you do not own.
Before guest automation, confirm the exact task-owned VM UUID and snapshot provenance; the names below are examples, not permission to operate an existing VM.
Use [Bootstrap diagnostics](references/bootstrap-diagnostics.md) for read-only checks, evidence limits, and narrowly scoped recovery boundaries.
List VMs:
prlctl list --all
Get VM status/IP:
prlctl list --info "macOS Tahoe"
Run guest commands as Peter:
prlctl exec "macOS Tahoe" \ 'sudo -u steipete -H /bin/zsh -lc '\''source ~/.zprofile 2>/dev/null || true; uname -a'\'''
Capture an independent host-side screenshot:
prlctl capture "macOS Tahoe" --file /tmp/vm-reference.png sips -g pixelWidth -g pixelHeight /tmp/vm-reference.png
For macOS Screen Recording and Accessibility, the responsible process matters.
Open the Screen Recording pane:
prlctl exec "macOS Tahoe" \ 'sudo -u steipete -H open "x-apple.systempreferences:com.apple.preference.security?Privacy_ScreenCapture"'
Open Ghostty:
prlctl exec "macOS Tahoe" 'sudo -u steipete -H open -a Ghostty'
Best path: create a guest script with `prlctl exec`, open/focus Ghostty, then type only a short launcher path into the visible terminal.
Guest script pattern:
prlctl exec "macOS Tahoe" 'sudo -u steipete -H /bin/zsh -lc '\''cat > /tmp/run-vm-lab.zsh <<EOF #!/bin/zsh source ~/.zprofile 2>/dev/null || true cd ~/Projects/Peekaboo || exit 1 Apps/CLI/.build/debug/peekaboo image --path /tmp/peekaboo-vm.png --json rc=$? echo "EXIT:$rc" [ -f /tmp/peekaboo-vm.png ] && sips -g pixelWidth -g pixelHeight /tmp/peekaboo-vm.png echo "Press return to close..." read _ exit $rc EOF chmod +x /tmp/run-vm-lab.zsh ln -sf /tmp/run-vm-lab.zsh /tmp/r open -a Ghostty'\'''
Then link the launcher into Ghostty's home directory and type `./r` with `scripts/parallels_type.py`. This avoids unreliable path characters in Parallels key injection.
prlctl exec "macOS Tahoe" \ "sudo -u steipete -H /bin/zsh -lc 'ln -sf /tmp/run-vm-lab.zsh ~/r'" python3 skills/vm-lab/scripts/parallels_type.py "macOS Tahoe" $'./r\n'
Avoid long command typing. Parallels key injection uses its own key-code table and can be layout-sensitive.
For each GUI action, verify through two independent signals:
Shared agent instructions, skills, and small portable helpers for Peter's local workspaces.
Repo: steipete/agent-scripts
Requested GitHub PR/issue agent transcripts: redact, trim, preview, and insert safely.
Control the user's existing signed-in Chrome: callable Codex Chrome plugin first, then…
ClawSweeper status: URLs, workflow health, active workers, ops snapshot.
ClickClack ops: chat app, Cloudflare Workers deploy, DNS/docs/app, container rollout.
Cloudflare Registrar: domain availability, prices, registration via mcporter.