# CLI ## Name `crabbox` One-liner: lease shared remote test boxes, sync local work, run commands, and clean up. ## Usage ```text crabbox [global flags] [args] ``` Global flags: ```text -h, --help --version ``` Primary output goes to stdout. Progress, diagnostics, and errors go to stderr. JSON output is stable enough for scripts. ## Commands ```text crabbox doctor crabbox login [--url ] [--provider hetzner|aws|azure] [--no-browser] crabbox login --url --token-stdin [--provider hetzner|aws|azure] crabbox logout crabbox whoami [--json] crabbox init [--force] crabbox config show [--json] crabbox config path crabbox config set-broker --url --token-stdin [--provider hetzner|aws|azure] crabbox warmup [--provider hetzner|aws|azure|ssh|blacksmith-testbox|daytona|islo] [--target linux|macos|windows] [--desktop] [--browser] [--code] [--tailscale] [--network auto|tailscale|public] [--profile ] [--idle-timeout ] [--timing-json] crabbox run [--id ] [--provider hetzner|aws|azure|ssh|blacksmith-testbox|daytona|islo] [--target linux|macos|windows] [--windows-mode normal|wsl2] [--desktop] [--browser] [--code] [--tailscale] [--network auto|tailscale|public] [--shell] [--checksum] [--debug] [--force-sync-large] [--timing-json] [--blacksmith-workflow ] -- crabbox desktop launch --id [--browser] [--url ] [--egress ] [--webvnc] [--open] [-- ] crabbox desktop doctor --id [--network auto|tailscale|public] crabbox desktop click --id --x --y [--network auto|tailscale|public] crabbox desktop paste --id --text [--network auto|tailscale|public] crabbox desktop paste --id [--network auto|tailscale|public] < input.txt crabbox desktop type --id --text [--network auto|tailscale|public] crabbox desktop key --id [--network auto|tailscale|public] crabbox code --id [--open] crabbox egress start --id [--profile |--allow ] [--listen ] [--coordinator ] [--daemon] crabbox egress host --id [--profile |--allow ] crabbox egress client --id [--listen ] [--ticket ] [--session ] crabbox egress status --id crabbox egress stop --id crabbox media preview --input