Skip to main content
bunny sandbox manages on-demand cloud sandbox environments backed by Bunny Magic Containers. Each sandbox is a fully isolated Ubuntu container with Node.js, Bun, Python, and Claude Code pre-installed. A 10 GB persistent volume is mounted at /workplace, your default working directory. Claude Code is pre-installed but needs your own Anthropic credentials before it can do anything: pass an API key at create time (prefer --env-file .env so the key stays out of your shell history), or run claude inside the sandbox and complete the login prompt it prints. Both survive restarts and redeploys: baked env vars live on the container, and the login flow writes to /workplace/.claude on the persistent volume. Sandbox credentials (app ID, SSH endpoint, agent token) are stored in the CLI’s local config file (~/.config/bunnynet.json by default) so you can reconnect without re-creating.

bunny sandbox create

Create and start a new sandbox. Waits for the container’s SSH port to become reachable before returning.
Variables set at creation are baked into the container and persist across restarts. Values from --env override those loaded from --env-file. To change them later, use bunny sandbox env. Once ready, the output shows the app ID and SSH address. Public URLs come later via bunny sandbox url add.

bunny sandbox list

List all sandboxes saved in your local config.

bunny sandbox delete

Delete a sandbox and permanently destroy the underlying Magic Containers app.

bunny sandbox exec

Run a shell command inside a sandbox over SSH. Defaults to /workplace as the working directory.
The command’s stdout and stderr stream to your terminal unchanged, and its exit code is propagated, so exec works in scripts and pipes. Variables passed here apply only to that single command and are not persisted. For persistent variables, use bunny sandbox env.

bunny sandbox cp

Copy a file between your machine and a sandbox over SFTP. Exactly one of the two paths must reference a sandbox as <sandbox>:<path>; the other is a local path. Remote paths follow the same rules as elsewhere: relative paths resolve against /workplace.
Uploads preserve the local file’s Unix mode (so executables stay executable). Only single files are supported; directory and sandbox-to-sandbox copies are not.

bunny sandbox files

Manage files inside a sandbox over SFTP. A bare sandbox name targets /workplace; use <sandbox>:<path> for a specific directory (relative paths resolve against /workplace).
To copy files in and out, use bunny sandbox cp.

bunny sandbox ssh

Open a full interactive SSH session. Drops you into a bash shell at /workplace. Type exit or press Ctrl-D to close.
Variables apply only to the session and are not persisted.

bunny sandbox url

Manage public CDN endpoints for ports running inside a sandbox. Useful for exposing a dev server or API to the internet.

bunny sandbox url add

Expose a container port as a public HTTPS endpoint. Waits until the URL is provisioned and prints it.

bunny sandbox url list

List all user-created endpoints for a sandbox (built-in api and ssh endpoints are hidden).

bunny sandbox url delete

Delete a public endpoint by name.

bunny sandbox env

Manage a sandbox’s persistent environment variables, the ones baked into the container. Unlike the temporary --env passed to exec/ssh, these survive across sessions. Changing them redeploys the sandbox with the new environment (running processes restart).

bunny sandbox env set

Set one or more persistent variables, merging with the existing set.

bunny sandbox env list

List the sandbox’s persistent variables. The internal AGENT_TOKEN is hidden.

bunny sandbox env delete

Remove one or more persistent variables. Names that are not set are reported and skipped; if none match, the command errors and nothing is redeployed.
Last modified on July 16, 2026