Screenshot
Capture screenshots through screen-record (macOS/Linux) and optional desktop capture via screencapture on macOS.
Contract
Prereqs:
- •
screen-recordavailable onPATH(install viabrew install nils-cli). - •macOS: Screen Recording permission granted (use
screen-record --preflight/--request-permission). - •Linux: follow
screen-recordruntime prerequisites (X11 selectors or Wayland--portal, plus required dependencies). - •
screencapture(built-in on macOS) only when using--desktop. - •
bashforscripts/screenshot.sh(wrapper).
Inputs:
- •
scripts/screenshot.shis a wrapper aroundscreen-record;--desktopusesscreencapture. - •Mode selection:
- •Default: screenshot mode (wrapper adds
--screenshotunless a pass-through mode is present). - •Desktop helper:
--desktopcaptures the main display viascreencapture(macOS only). - •Discovery:
--list-windows/--list-apps/--list-displays. - •Permissions:
--preflight/--request-permission. - •Version:
--version/-Vpass through toscreen-record.
- •Default: screenshot mode (wrapper adds
- •Screenshot selectors (choose one):
- •
--portal, or - •
--window-id <id>, or - •
--active-window, or - •
--app <name>(optional--window-name <name>with--app).
- •
- •Screenshot output args:
- •
--path <file>(recommended), or - •
--dir <dir>(used when--pathis omitted), plus optional--image-format png|jpg|webp.
- •
Outputs:
- •Screenshot success: stdout prints only the resolved output image path (one line).
- •List success: stdout prints only UTF-8 TSV rows (no header), one per line.
- •Preflight/request success: stdout is empty; any user messaging goes to stderr.
- •Errors: stdout is empty; stderr contains user-facing errors (no stack traces).
Exit codes:
- •
0: success - •
1: runtime failure or missing dependency - •
2: usage error (invalid flags/ambiguous selection/unsupported platform)
Failure modes:
- •
screen-recordmissing onPATH. - •Screen Recording permission missing/denied (macOS).
- •Linux X11 selectors/list modes used without
DISPLAY(use--portalon Wayland-only sessions). - •
screen-recordruntime dependencies missing (for example: portal backend on Wayland-only sessions). - •Ambiguous
--app/--window-nameselection (no single match). - •Invalid flag combinations.
- •
--desktopused on non-macOS. - •
--desktoponly supports--image-format png|jpg.
Scripts (only entrypoints)
- •
$AGENTS_HOME/skills/tools/media/screenshot/scripts/screenshot.sh
Usage
- •Screenshot (active window) to
$AGENTS_HOME/out/(recommended):
bash
$AGENTS_HOME/skills/tools/media/screenshot/scripts/screenshot.sh --active-window --path "$AGENTS_HOME/out/screenshot.png"
- •Screenshot via portal picker (Linux Wayland):
bash
$AGENTS_HOME/skills/tools/media/screenshot/scripts/screenshot.sh --portal --path "$AGENTS_HOME/out/screenshot-portal.png"
- •Screenshot the desktop (main display helper, macOS only):
bash
$AGENTS_HOME/skills/tools/media/screenshot/scripts/screenshot.sh --desktop --path "$AGENTS_HOME/out/desktop.png"
- •List windows to find a
--window-id:
bash
$AGENTS_HOME/skills/tools/media/screenshot/scripts/screenshot.sh --list-windows
- •List displays (pass-through to
screen-record):
bash
$AGENTS_HOME/skills/tools/media/screenshot/scripts/screenshot.sh --list-displays
- •Screenshot by app/window title:
bash
$AGENTS_HOME/skills/tools/media/screenshot/scripts/screenshot.sh --app "Terminal" --window-name "Docs" --path "$AGENTS_HOME/out/terminal-docs.png"
- •Permission preflight / request (if blocked):
bash
screen-record --preflight screen-record --request-permission
Notes
- •Prefer writing under
"$AGENTS_HOME/out/"so outputs are easy to attach/inspect. - •For non-window video capture, use
screen-record --display/--display-id(recording mode).