Crabbox docs

Provider Reference

Provider Reference

Read when:

  • choosing a Crabbox provider for a repo or one-off command;
  • debugging provider-specific provisioning, sync, or command execution;
  • changing provider registration, flags, config, or backend behavior.

Crabbox supports managed SSH lease providers, delegated run providers, and one static SSH provider for existing machines.

ProviderBackend kindTargetsBest for
AWSSSH leaseLinux, Windows, macOSbroad managed capacity, Windows, EC2 Mac
AzureSSH leaseLinux, WindowsAzure-backed Linux and Windows capacity
Google CloudSSH leaseLinuxGCP-backed Linux Compute Engine capacity
HetznerSSH leaseLinuxfast Linux capacity at low cost
ProxmoxSSH leaseLinuxprivate Proxmox VE QEMU VM templates
Static SSHSSH leaseLinux, macOS, Windowsreusing an existing host
Blacksmith Testboxdelegated runLinuxexisting Blacksmith Testbox workflows
Namespace DevboxSSH leaseLinuxNamespace-managed dev environments with Crabbox sync
SemaphoreSSH leaseLinuxSemaphore CI environments with project secrets and cache
SpritesSSH leaseLinuxfast Sprites microVMs through sprite proxy
Daytonahybrid delegated run + SSHLinuxDaytona snapshot sandboxes
Islodelegated runLinuxIslo-owned sandbox execution
E2Bdelegated runLinuxE2B-owned sandbox execution
Modaldelegated runLinuxModal Sandbox execution through the local Python client
Tensorlakedelegated runLinuxTensorlake Firecracker sandbox execution via the tensorlake CLI

#Shared Rules

Core Crabbox owns provider selection, config loading, friendly slugs, local repo claims, timing summaries, command rendering, and normalized list/status output. Providers own only their backend boundary: provisioning or delegated command execution.

Use --provider <name> for one command, or set provider: <name> in Crabbox config. Provider flags are registered by provider packages before command-line parsing, so provider-specific flags work even when that provider is not the default.

crabbox warmup --provider aws --class beast
crabbox run --provider hetzner -- pnpm test
crabbox run --provider blacksmith-testbox --id tbx_123 -- pnpm test
crabbox run --provider namespace-devbox --id blue-lobster -- pnpm test

#Brokered Versus Direct

AWS, Azure, Google Cloud, and Hetzner can run through the Crabbox coordinator or directly from the CLI. Coordinator mode is the normal shared-team path: the Worker owns cloud credentials, cost state, cleanup alarms, and lease accounting.

Direct mode is for local operator debugging or non-brokered setups. It uses local provider credentials and best-effort cleanup through provider labels.

Proxmox and delegated providers do not use the Crabbox coordinator:

  • Proxmox clones private QEMU VM templates through the Proxmox VE REST API.
  • Blacksmith uses the authenticated Blacksmith CLI.
  • Daytona uses Daytona API and SDK/toolbox APIs.
  • Islo uses the Islo API and SDK auth.
  • E2B uses E2B's sandbox REST and envd APIs.
  • Modal uses the local Modal Python client and Modal Sandbox APIs.
  • Sprites uses the authenticated sprite CLI plus Sprites API.
  • Tensorlake uses the tensorlake CLI (tensorlake sbx ...) for sandbox lifecycle and command exec.

Namespace Devbox and Semaphore are SSH lease providers that do not use the Crabbox coordinator. Namespace provisions through the authenticated devbox CLI; Semaphore provisions through the Semaphore REST API; Sprites provisions through the Sprites API and reaches SSH through sprite proxy.

#Feature Matrix

ProviderrunwarmupsshVNC/codeCrabbox syncProvider sync
AWSyesyesyesyesyesno
AzureyesyesyesLinux/Windows VNC; Linux codeyesno
Google Cloudyesyesyesnoyesno
HetzneryesyesyesLinux VNC/codeyesno
Proxmoxyesyesyesnoyesno
Static SSHyesresolves hostyeshost-dependentyesno
Blacksmith Testboxyesyesnononoyes
Namespace Devboxyesyesyesnoyesno
Semaphoreyesyesyesnoyesno
Spritesyesyesyesnoyesno
Daytonayesyesyesnoarchive via Daytona toolboxno
Isloyesyesnononoyes
E2Byesyesnonoarchive via E2B envdno
Modalyesyesnonoarchive via Modal Sandbox execno
Tensorlakeyesyesnonoarchive via tensorlake sbx cpno

Actions runner hydration requires a normal SSH lease on Linux and is core-over-SSH. Use AWS, Google Cloud, Hetzner, Proxmox, Static SSH, Namespace Devbox, Semaphore, or Sprites for that path.

#Implementation

Provider implementation lives under internal/providers/<name>. The command orchestration and renderer surface stays in internal/cli.

Related docs: