Install
Basic Install​
Install Code Sandboxes using pip:
pip install code-sandboxes
Optional Dependencies​
Code Sandboxes supports different execution backends via extras:
# With Cloudflare variant support (an HTTP client for the sandbox bridge)
pip install code-sandboxes[cloudflare]
# With CoreWeave variant support
pip install code-sandboxes[coreweave]
# With Datalayer variant support
pip install code-sandboxes[datalayer]
# With Daytona variant support
pip install code-sandboxes[daytona]
# With Docker variant support
pip install code-sandboxes[docker]
# With E2B variant support
pip install code-sandboxes[e2b]
# With Kaggle support
pip install code-sandboxes[kaggle]
# With Modal variant support
pip install code-sandboxes[modal]
# With Monty (secure in-process interpreter) support
pip install code-sandboxes[monty]
# All features
pip install code-sandboxes[all]
Requirements​
- Python 3.10 or higher
- For Cloudflare variant:
code-sandboxes[cloudflare], a deployed sandbox bridge Worker (npm create cloudflare -- sandbox-bridge --template=cloudflare/sandbox-sdk/bridge/worker), and bothCLOUDFLARE_SANDBOX_API_URLandCLOUDFLARE_SANDBOX_API_KEY. Cloudflare's own SDK is a Workers binding, which a Python process cannot hold — the bridge is what it talks to instead - For CoreWeave variant:
code-sandboxes[coreweave]andCWSANDBOX_API_KEY, an access token from the CoreWeave console - For Datalayer variant: valid
DATALAYER_API_KEY - For Daytona variant:
code-sandboxes[daytona]and a Daytona API key (DAYTONA_API_KEY, from app.daytona.io) - For Docker variant: Docker installed and running
- For E2B variant:
code-sandboxes[e2b]and an E2B API key (E2B_API_KEY, from e2b.dev) - For Google Colab variant: a Colab runtime assignment (server URL, kernel id, proxy token)
- For Kaggle variant:
code-sandboxes[kaggle]and Kaggle credentials (for batch mode) or runtime connection values (for interactive mode) - For Modal variant:
code-sandboxes[modal]and Modal credentials (modal token neworMODAL_TOKEN_ID/MODAL_TOKEN_SECRET) - For Monty variant:
code-sandboxes[monty](no credentials required)
Configuration​
Environment Variables​
| Variable | Description |
|---|---|
DATALAYER_API_KEY | API key for Datalayer runtime authentication |
DATALAYER_RUN_URL | Custom Datalayer service URL (optional) |
MODAL_TOKEN_ID | Modal token id (Modal variant) |
MODAL_TOKEN_SECRET | Modal token secret (Modal variant) |
DAYTONA_API_KEY | Daytona API key (Daytona variant) |
DAYTONA_API_URL | Daytona API URL (optional, defaults to app.daytona.io) |
DAYTONA_TARGET | Daytona region (optional) |
E2B_API_KEY | E2B API key (E2B variant) |
E2B_DOMAIN | E2B domain (optional, for a self-hosted cluster; defaults to e2b.dev) |
CWSANDBOX_API_KEY | CoreWeave access token (CoreWeave variant) |
CWSANDBOX_BASE_URL | CoreWeave control plane (optional, defaults to api.cwsandbox.com) |
CLOUDFLARE_SANDBOX_API_URL | Where the deployed sandbox bridge Worker answers (Cloudflare variant) |
CLOUDFLARE_SANDBOX_API_KEY | The key that bridge was deployed with (Cloudflare variant) |
Programmatic Configuration​
from code_sandboxes import Sandbox, SandboxConfig
config = SandboxConfig(
timeout=30.0,
environment="ai-agents-env",
memory_limit=4 * 1024**3, # 4GB
cpu_limit=2.0,
working_dir="/workspace",
env_vars={"DEBUG": "1"},
)
sandbox = Sandbox.create(config=config)
Verifying Installation​
from code_sandboxes import Sandbox
with Sandbox.create() as sandbox:
result = sandbox.run_code("print('Installation successful!')")
print(result.stdout)