macOS screen capture, window recording, GIF conversion, and agent evidence bundles from the terminal. Built on ScreenCaptureKit for window-level targeting ffmpeg cannot do. Use when the user wants a screenshot of a specific window or app, a screen recording, a GIF conversion, a before/after diff, an evidence bundle for a PR, OCR text from a window, a terminal VHS recording, a Remotion render, or wants to watch a UI for changes. Requires macOS Screen Recording permission on first run.
How this skill is triggered — by the user, by Claude, or both
Slash command
/printing-press-library:pp-agent-capture <command> [args] | install cli|mcp<command> [args] | install cli|mcpThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Consolidates macOS screen capture, window recording, GIF conversion, frame stitching, and styled code screenshots into one agent-native CLI. Built on ScreenCaptureKit for window-level targeting that ffmpeg alone cannot do. Every command supports `--json` for machine parsing.
Consolidates macOS screen capture, window recording, GIF conversion, frame stitching, and styled code screenshots into one agent-native CLI. Built on ScreenCaptureKit for window-level targeting that ffmpeg alone cannot do. Every command supports --json for machine parsing.
Reach for this when the user wants:
screenshot, batch for multiple)record)convert)pipeline)diff) for before/after evidenceevidence)find)stitch)ocr)vhs)remotion)watch)preset)Skip it on non-macOS hosts; the CLI uses ScreenCaptureKit (macOS only). On first run it will prompt for Screen Recording permission; the permissions command guides that flow.
Parse $ARGUMENTS:
help, or --help -> show agent-capture --helpinstall -> CLI installation (no MCP server ships today)Check Go is installed: go version (requires Go 1.23+).
Install:
go install github.com/mvanhorn/printing-press-library/library/developer-tools/agent-capture/cmd/agent-capture@latest
If @latest installs a stale build (Go module proxy cache lag):
GOPRIVATE='github.com/mvanhorn/*' GOFLAGS=-mod=mod \
go install github.com/mvanhorn/printing-press-library/library/developer-tools/agent-capture/cmd/agent-capture@main
Verify: agent-capture --version.
Ensure $GOPATH/bin (or $HOME/go/bin) is on $PATH.
Grant macOS Screen Recording permission:
agent-capture permissions
The CLI opens System Settings -> Privacy & Security -> Screen & System Audio Recording and walks the grant. The first capture after granting permission succeeds; the process does not need a restart.
Verify: agent-capture health (machine-readable) or agent-capture doctor.
which agent-capture. If missing, offer CLI installation.agent-capture permissions first.agent-capture list to see available capture targets (open windows, displays).agent-capture find <text> to fuzzy-match a window title before capturing.--json for structured output (agent-native default):
agent-capture <command> [args] --json
| Command | What it does |
|---|---|
screenshot | Capture a window, app, display, or region |
record | Record video of a window, app, display, or region |
pipeline | Record + convert + optimize in one command |
convert | Video -> optimized GIF (two-pass palette) |
diff | Capture + diff against a baseline |
evidence | Full bundle (screenshots + recording + GIF) for a PR |
batch | Screenshot multiple apps in one invocation |
find | Fuzzy search open window titles |
list | List available capture targets |
ocr | Extract text from a window using macOS Vision |
stitch | Combine screenshots into an animated GIF |
vhs | Run a VHS tape file for terminal recording |
remotion | Render Remotion compositions |
watch | Periodic capture for UI monitoring |
preset | Save / load capture configs |
permissions | Guide Screen Recording permission setup |
health | Machine-readable CI / agent preflight |
Run any command with --help for full flag documentation.
Add --agent to any command. Expands to: --json --compact --no-input --no-color --yes.
--select keeps a subset of fields, with dotted-path support (see below)--dry-run shows the request without sending--no-cache--select accepts dotted paths to descend into nested responses; arrays traverse element-wise:
<cli>-pp-cli <command> --agent --select id,name
<cli>-pp-cli <command> --agent --select items.id,items.owner.name
Use this to narrow huge payloads to the fields you actually need — critical for deeply nested API responses.
| Code | Meaning |
|---|---|
| 0 | Success |
| 2 | Usage error (wrong arguments) |
| 3 | Target not found (no matching window or display) |
| 4 | Permissions missing (Screen Recording not granted) |
| 5 | Capture error (ScreenCaptureKit failure, ffmpeg failure) |
npx claudepluginhub ai-integr8tor/mvanhorn-printing-press-libraryCreates bite-sized, testable implementation plans from specs or requirements, with file structure and task decomposition. Activates before coding multi-step tasks.