crabbox tunnel opens one foreground SSH local port-forward to a resolved
lease. The local listener and remote destination are both fixed to
127.0.0.1; only the port numbers vary.
crabbox tunnel --id blue-box 3000
crabbox tunnel --id blue-box --local-port 8080 3000
crabbox tunnel --provider ssh --id buildbox 4173The positional argument is the remote TCP port. --local-port is optional. If
it is omitted or set to 0, Crabbox chooses an available local port.
The command prints exactly one URL after the tracked SSH process owns an IPv4 loopback listener and a TCP connection to that listener succeeds:
http://127.0.0.1:49152
It does not print the URL merely because ssh launched. The URL is convenient
for HTTP development servers; the forward itself is ordinary TCP.
After printing readiness, the command stays in the foreground until Ctrl-C, SIGTERM, or parent context cancellation. Teardown uses the same owned process-group/job-object path as pond SSH forwards, so the SSH root and any ProxyCommand descendants are reaped together.
--id <lease-id-or-slug> required lease identifier
--local-port <port> local loopback port; omit or use 0 for automatic
--provider <name> provider selection
--network <mode> auto, public, or tailscale target resolution
--reclaim claim the lease for the current repository
Provider and target-specific SSH flags are also accepted. The provider must resolve an SSH target; delegated-only providers are rejected.
Crabbox resolves the target internally. Secret SSH usernames, ProxyCommand policy, key and certificate paths, and host-key settings live in a private temporary OpenSSH config rather than the Crabbox-launched ssh argv or environment variables. OpenSSH executes the provider-resolved ProxyCommand under that provider's existing transport contract. Config-backed targets materialize only route fields, so unrelated configured forwards, TTY requests, and remote commands are not inherited. The config is removed after the forward exits.
ssh- inspect the resolved SSH command.cp- copy files over native or resolved SSH transports.- SSH lease transport - shared transport and lifecycle contract.