Peekaboo is a macOS command-line tool and menu-bar app that captures screens, inspects accessibility information, and controls native user interfaces. AI agents and MCP clients use it to observe applications and carry out interactions on a Mac.
Borrowing it
Nothing to install: this file belongs to openclaw/Peekaboo. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/openclaw/Peekaboo/main/.agents/skills/crabbox/SKILL.mdgit clone --depth 1 https://github.com/openclaw/PeekabooWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/openclaw/peekaboo/crabbox)<a href="https://agentmods.dev/skills/openclaw/peekaboo/crabbox"><img src="https://agentmods.dev/badge/skills/openclaw/peekaboo/crabbox/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/openclaw/peekaboo/crabbox"><img src="https://agentmods.dev/badge/skills/openclaw/peekaboo/crabbox.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00043 | $0.08290 |
| Opus 5.5 | $0.00017 | $0.03316 |
| Sonnet 5.5 | $0.00009 | $0.01658 |
| Haiku 4.5 | $0.00004 | $0.00829 |
Grade B, and why
crabbox scanned grade B with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Asks for rootmediumPrivilege escalation
A mod that escalates privileges can change anything on the machine, not only the project.
sudo ln -sf \"\$PWD/<cli-entry>\" /usr/local/bin/<expected-command> This is a copy
100% identical to crabbox — 0 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.
How it starts
The opening of the file, as written. The whole thing — 712 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Crabbox
Use the Crabbox wrapper when OpenClaw needs remote Linux proof for broad tests, CI-parity checks, secrets, hosted services, Docker/E2E/package lanes, warmed reusable boxes, sync timing, logs/results, cache inspection, or lease cleanup.
Crabbox is the transport/orchestration surface. The actual backend can be:
- brokered AWS Crabbox: direct provider,
provider=aws, lease ids likecbx_...,syncDelegated=false - Blacksmith Testbox through Crabbox: delegated provider,
provider=blacksmith-testbox, ids liketbx_...,syncDelegated=true
For OpenClaw maintainer broad pnpm gates, Blacksmith Testbox through the
Crabbox wrapper is acceptable and often preferred when the standing Testbox
rules apply. Do not describe those runs as "AWS Crabbox"; report them as
Testbox-through-Crabbox with the tbx_... id and Actions run.
Use the repo .crabbox.yaml brokered AWS path when the task specifically needs
direct AWS Crabbox behavior, persistent direct-provider leases, --fresh-pr,
--full-resync, environment forwarding, capture/download support, or provider
comparison. Use --provider blacksmith-testbox when the task needs OpenClaw
maintainer Testbox proof, prepared CI environment, broad/heavy pnpm gates, or
the user asks for Testbox/Blacksmith.
First Checks
- Run from the repo root. Crabbox sync mirrors the current checkout.
- Check the wrapper and providers before remote work:
command -v crabbox
../crabbox/bin/crabbox --version
pnpm crabbox:run -- --help | sed -n '1,120p'
../crabbox/bin/crabbox desktop launch --help
../crabbox/bin/crabbox webvnc --help
- OpenClaw scripts prefer
../crabbox/bin/crabboxwhen present. The user PATH shim can be stale. - Check
.crabbox.yamlfor direct-provider defaults. Omitting--providermeans brokered AWS today. - The brokered AWS default is a Linux developer image in
eu-west-1; the repo config pins hoteu-west-1a/b/cplacement so Fast Snapshot Restore can apply. If warmup drifts well past the minute-scale path, verify image promotion, region/AZ placement, and FSR state before blaming OpenClaw. - For broad OpenClaw maintainer
pnpmgates, prefer the repo wrapper with--provider blacksmith-testboxor the repo Testbox helpers when the standing Testbox policy applies. - Always report the actual provider and id.
cbx_...means AWS Crabbox;tbx_...means Blacksmith Testbox through Crabbox. If the output only saysblacksmith testbox list, useblacksmith testbox list --allbefore concluding no box exists. - If a warm direct-provider lease smells stale, retry with
--full-resync(alias--fresh-sync) before replacing the lease. This resets the remote workdir, skips the fingerprint fast path, reseeds Git when possible, and uploads the checkout from scratch. - For live/provider bugs, use the configured secret workflow before downgrading to mocks. Copy only the exact needed key into the remote process environment for that one command. Do not print it, do not sync it as a repo file, and do not leave it in remote shell history or logs. If no secret-safe injection path is available, say true live provider auth is blocked instead of silently using a fake key.
- Prefer local targeted tests for tight edit loops. Broad gates belong remote.
- Do not treat inherited shell env as operator intent. In particular,
OPENCLAW_LOCAL_CHECK_MODE=throttledfrom the local shell is not permission to move broadpnpm check:changed,pnpm test:changed, fullpnpm test, or lint/typecheck fan-out onto the laptop. - Only use
OPENCLAW_LOCAL_CHECK_MODE=throttled|fullwhen the user explicitly asks for local proof in the current task. If Testbox is queued or capacity is constrained, report the blocker and keep only targeted local edit-loop checks running.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2mo ago First seen · 712 lines · 43 tokens per session scan B ed512c0b0385
crabbox is a skill published in the GitHub repository openclaw/Peekaboo (5,403 stars, last pushed 2d ago), licensed MIT. It adds 43 tokens to every session and 8,290 once invoked, about $0.0002 per session on Opus 5.5. A static security scan graded it B with 1 finding (asks for root). It is 100% identical to crabbox, differing in 0 lines, and is treated as a copy.
Other skills, from other repositories
verify-ui-change-in-cloud
Verifies user-facing Warp client changes by spawning a cloud agent with computer use to test Warp. Use only when the user explicitly requested computer-use verification or accepted an offer to run it, and ONLY in non-sandboxed environments and local environments. Triggers a cloud agent that runs the test-warp-ui skill.
test-warp-ui
Guides testing Warp UI features and changes using the computer use tool. Use this skill only when computer-use testing was requested (explicit request or accepted offer) and the computeruse tool is available to the agent. Covers launching Warp and verifying UI behavior.
walkthrough
Generate a hands-on browser walkthrough of a PR's user-facing changes to exercise before review; --publish posts the final version to the PR for QA.
browser-qa
Drive a real headless browser against a locally-served web UI and capture screenshot evidence, reporting step-level PASS/FAIL/BLOCKED with extracted DOM text and console errors. Use when a phase on the docker QA image must exercise a rendered UI and attach screenshots — it complements the text-evidence verify/qa-test…
ios-simulator-ui-automation
Drive a booted iOS Simulator like a user with the axe CLI (describe-ui, tap, swipe, type, screenshot, record-video) to verify UI flows, reproduce bugs and capture screenshots. Use when asked to tap, scroll, type into, screenshot or smoke-test a running iOS app.
write-scrut-tests
Apply scrut test conventions when creating, editing, or reviewing scrut tests in tests/scrut/ for CLIs, zsh plugins, and sourced libraries. To set up scrut, use add-scrut-cli-tests.