Provider comparison
Session lifecycle
pause is the default — you keep everything across restarts.
Quick start
1
Configure a provider
Go to Settings → Sandbox in the Web UI. Expand the provider card and fill in the required fields:
Set
LEON_SANDBOXES_DIR to the sandbox provider config directory. Config is stored as <provider>.json inside that directory.2
Start a sandboxed thread
In the new conversation view, use the sandbox dropdown in the input area to select your provider. Send your first message — the Thread is now permanently bound to that sandbox.
3
Monitor resources
Go to Resources (sidebar). Live CPU/RAM/disk metrics and a file browser per sandbox runtime.
Provider configuration
- Docker
- E2B
- Daytona SaaS
- Daytona self-hosted
- AgentBay
Requires Docker on the host. No API key needed.
API key resolution
API keys are resolved in order:- Config file field (
e2b.api_key,daytona.api_key, etc.) - Environment variable (
E2B_API_KEY,DAYTONA_API_KEY,AGENTBAY_API_KEY)
Sandbox runtime management
Web UI
From Resources:- Unified grid of sandbox runtimes across all providers
- Click a runtime card → detail sheet with metrics and file browser
- Pause / Resume / Destroy via UI or API
API endpoints
Architecture
Middleware owns policy. The sandbox backend owns I/O. Swapping the backend changes where operations run without touching any middleware logic. When SQLite sandbox storage is enabled, setLEON_SANDBOX_DB_PATH to the sandbox runtime database: