Skip to main content
Crabbox is an open-source CLI from OpenClaw whose whole loop is warm a box, sync the diff, run the suite. Its Tensorlake provider delegates the sandbox to the tensorlake CLI, so one command puts your test run in an isolated Firecracker microVM:
tl-crabbox is a public image we publish for Crabbox — the standard Ubuntu base plus a writable /workspace (Crabbox’s default workdir) and pnpm preinstalled. Crabbox owns the local workflow — config, repo claims, sync manifests, and guardrails. Tensorlake owns the microVM and command transport: under the hood, Crabbox shells out to tensorlake sbx create, cp, exec, and terminate. See Sandbox lifecycle for what happens on the Tensorlake side.

Prerequisites

  • A Tensorlake account and API key — sign up at cloud.tensorlake.ai.
  • Run Crabbox from inside a git repository. It builds its sync file list from git ls-files, so a plain directory fails with build sync file list: exit status 128.

Setup

1

Install Crabbox and the Tensorlake CLI

No Homebrew? Grab a release archive from Crabbox’s GitHub releases. The tensorlake CLI must be on your PATH, or point Crabbox at it with --tensorlake-cli.
2

Set your API key

Crabbox passes the key to the CLI through the environment — it never appears on the command line. If your account spans multiple organizations or projects, also set TENSORLAKE_ORGANIZATION_ID and TENSORLAKE_PROJECT_ID.
3

Configure the provider

Add a .crabbox.yaml at your repo root:
Pinning tl-crabbox here means every run and warmup picks it up — no --tensorlake-image flag to retype.
The image line matters. Crabbox’s default workdir is /workspace/crabbox, and in Tensorlake’s standard images commands run as tl-user, which cannot create /workspace — without the pin, every run fails with tensorlake exec "mkdir -p '/workspace/crabbox'" exited 1. Prefer a standard image anyway? Set tensorlake.workdir: /home/tl-user/crabbox instead.
4

Warm up a sandbox

Crabbox creates a named sandbox and prints a friendly slug (like harbor-barnacle) you can reuse across runs with --id <slug>. Every tensorlake.* config field has a matching --tensorlake-* flag and CRABBOX_TENSORLAKE_* environment override.
5

Run your tests

Crabbox syncs your git-tracked files into the sandbox and streams output back as the command runs. For shell pipelines, use --shell:
tl-crabbox ships with node, npm, pnpm, corepack, python3, and git. Need more toolchain? Register your own image with tensorlake sbx image create and pin it via tensorlake.image instead. To forward secrets from your shell, allowlist them with --allow-env API_TOKEN — values are injected for the command and removed after.
6

Release the sandbox

One-off runs lease a sandbox and terminate it automatically. Warmed sandboxes stick around until you release them:
Add --keep-on-failure to a run to keep the sandbox alive after a failing command.

Troubleshooting

For every flag, gotcha, and lifecycle detail, see Crabbox’s Tensorlake provider reference.