> ## Documentation Index
> Fetch the complete documentation index at: https://upstash.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Running Tests with Crabbox

[Crabbox](https://crabbox.sh) is a CLI tool that runs commands inside a remote box from your local machine. This guide shows how to use it with Upstash Box to run your test suite in a clean cloud environment without touching your local setup.

***

## 1. Install Crabbox

```bash theme={"system"}
brew install openclaw/tap/crabbox
```

***

## 2. Get Your API Key

Go to the [Upstash Console](https://console.upstash.com) and create a Box API key. Then export it in your terminal:

```bash theme={"system"}
export UPSTASH_BOX_API_KEY=your_api_key_here
```

***

## 3. Warm Up a Box

Create a box with the `warmup` command. This provisions the box ahead of time so it's ready when you need it.

```bash theme={"system"}
crabbox warmup --provider upstash-box --upstash-box-runtime node --upstash-box-size small
```

You can customize the box to match your project's needs:

| Flag                       | Description                              | Values                                                             |
| -------------------------- | ---------------------------------------- | ------------------------------------------------------------------ |
| `--upstash-box-runtime`    | Runtime environment                      | `node`, `python`, `golang`, `ruby`, `rust` (or `-alpine` variants) |
| `--upstash-box-size`       | Box size                                 | `small`, `medium`, `large`                                         |
| `--upstash-box-workdir`    | Working directory inside the box         | Any path (default: `/workspace/home/crabbox`)                      |
| `--upstash-box-keep-alive` | Keep the box up and running at all times | `true` / `false`                                                   |

***

## 4. Run Your Tests

Run your test command inside the box. Use `--env-from-profile` to load environment variables from a local `.env` file — they'll be injected into the box without being stored anywhere.

```bash theme={"system"}
crabbox run --provider upstash-box --env-from-profile .env -- pnpm test
```

You can use any package manager or test runner:

```bash theme={"system"}
# npm
crabbox run --provider upstash-box --env-from-profile .env -- npm test

# bun
crabbox run --provider upstash-box --env-from-profile .env -- bun test
```

***

For the full list of commands and options, see the [Upstash Box provider reference](https://crabbox.sh/providers/upstash-box.html).
