Public beta: free for registered users
Sandboxes for AI agents
Give your agent a real Linux machine for every task. edshell starts a Firecracker microVM in under a second, lets the agent run commands and move files in it, then throws it away.
Or from your terminal:
npx edshell login
import { Sandbox } from 'edshell-sdk';
// EDSHELL_API_KEY from the environment
const sb = await Sandbox.create({ template: 'python' });
const { exitCode, stdout } = await sb.run('python -c "print(6*7)"');
// 0 '42\n'
await sb.files.write('/tmp/data.json', json);
for await (const ev of sb.exec('pip install pandas')) {
process.stdout.write(ev.text);
}
await sb.kill();
# Create a sandbox
curl https://api.edshell.com/v1/sandboxes \
-H "Authorization: Bearer $EDSHELL_API_KEY" \
-H "Content-Type: application/json" \
-d '{"template": "python", "timeoutSeconds": 600}'
# → { "id": "sbx_…", "status": "running",
# "connection": { "dataUrl": "https://h1.edshell.com",
# "token": "…" } }
# Throw it away
curl -X DELETE https://api.edshell.com/v1/sandboxes/sbx_… \
-H "Authorization: Bearer $EDSHELL_API_KEY"
- Warm start
- < 1 second
- Isolation
- Own kernel per sandbox
- Billing unit
- Per second
- Price during beta
- $0
A computer your agent can break
Code written by a model should not run on your servers. Each edshell sandbox is a separate virtual machine, made for one task and gone when the task ends.
MicroVMs, not containers
Firecracker, the VMM behind AWS Lambda. Every sandbox has its own kernel and runs inside a jailer, so a breakout has to escape a hypervisor.
Fast from a warm pool
Booted VMs wait in a pool, so create usually returns in under a second. Docker sandboxes start fresh in about 20 s.
Run, stream, read and write
Run commands to completion or stream their output, read and write files, or open an interactive terminal over a WebSocket.
Root and the network
Passwordless sudo, outbound internet, and package managers that work: apt, pip,
npm, docker.
Gone when you are done
Kill it yourself, or let its timeout do it, so a sandbox you forget ends on its own. Nothing is kept after a sandbox ends.
A short path for data
The API only creates and ends sandboxes. Commands and files go straight to the host the sandbox runs on, with a token scoped to that sandbox.
How it works
-
01
Get a key
Run
npx edshell loginand approve the code, or sign in with Google and create a key in the dashboard (EDSHELL_API_KEY). -
02
Create a sandbox
Choose a template, and optionally the vCPUs, memory and a timeout. You get back the sandbox id and a token for its host.
-
03
Use it, then end it
Your agent runs commands and moves files. Kill the sandbox when the task is done; usage stops being counted that second.
Templates
All are Ubuntu 24.04 with a user that has sudo. Choose a size per sandbox: up to 2 vCPUs and 2 GiB during the beta.
| Template | What is inside | Default size |
|---|---|---|
| base | Ubuntu 24.04, git, curl, build tools | 1 vCPU, 512 MiB |
| python | base + Python 3.12, pip, venv | 1 vCPU, 1 GiB |
| node | base + Node.js 22 LTS, npm, pnpm | 1 vCPU, 1 GiB |
| docker | base + Docker Engine, Compose, buildx | 1 vCPU, 1 GiB |
Free while we are in beta
Sign in and use it. We record usage per second (vCPU-seconds and GiB-seconds) and show it in your dashboard, so you will know what it would cost before paid plans start. Nothing is billed during the beta.
Beta
$0 / month
- ✓2 sandboxes running at once
- ✓Up to 2 vCPUs and 2 GiB of memory each
- ✓Up to 1 hour per sandbox
- ✓5 API keys