screenshot
crabbox screenshot captures a single PNG from a desktop lease without opening a VNC client. It is the fastest way to confirm what a remote box is rendering.
crabbox warmup --desktop
crabbox screenshot --id swift-crab
crabbox screenshot --id swift-crab --output desktop.png
crabbox screenshot --id swift-crab --network tailscale
#How it works
The command resolves and touches the lease the same way crabbox ssh does, claims it for the current repo if asked, then waits for the loopback desktop/VNC service to come up before grabbing a frame. The capture method depends on the target OS:
- Linux captures over SSH. It sources
/var/lib/crabbox/desktop.envwhen - macOS captures the managed Screen Sharing/VNC framebuffer through the lease
- Windows creates a one-shot scheduled task inside the logged-in
crabbox
present, prefers grim on Wayland, and otherwise screenshots DISPLAY=:99 with scrot (falling back to ImageMagick import). If no capture tool is found, it exits with a hint to warm a fresh --desktop lease.
SSH tunnel. EC2 Mac SSH sessions cannot reliably run screencapture against the login-window display, so the framebuffer path is used instead.
console session, because non-interactive SSH sessions cannot capture the visible desktop. The screenshot reflects that active console session.
Managed AWS and Azure Windows desktop leases enable auto-logon for the generated crabbox user, store that password under C:\ProgramData\crabbox, and use it only on the instance to run the scheduled capture task.
#Output path
If --output is omitted, Crabbox writes to the current directory as:
crabbox-<slug-or-id>-screenshot.png
--output accepts any path; missing parent directories are created. On success the command prints screenshot: <path>.
#Capability and target requirements
The lease must have the desktop capability (crabbox warmup --desktop); managed leases without it are rejected.
Static (provider=ssh) macOS and Windows targets are existing host machines, not Crabbox-created desktops, so screenshot rejects them rather than capturing your local or home-host desktop by accident. Static Linux hosts are still captured. Managed AWS/Azure Windows and AWS macOS desktop leases are Crabbox-created boxes and can be captured by lease id or slug.
The Blacksmith provider owns machine connectivity and does not support desktop screenshots.
#Flags
--id <lease-id-or-slug> Lease to capture (also accepts the first positional arg)
--provider <name> SSH-capable provider (defaults to configured provider)
--output <path> Local PNG output path
--reclaim Claim this lease for the current repo
--target linux|macos|windows
--windows-mode normal|wsl2
--static-host <host> provider=ssh: existing SSH host
--static-user <user> provider=ssh: SSH user
--static-port <port> provider=ssh: SSH port
--static-work-root <path> provider=ssh: work root on the host
--network auto|tailscale|public
Run crabbox screenshot --help for the provider list valid in your build; it is generated from the SSH-capable providers and varies by configuration.