Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.celesto.ai/llms.txt

Use this file to discover all available pages before exploring further.

SmolVM

SmolVM gives AI agents their own disposable computer. Each boots in milliseconds, runs any code or software you throw at it, persists files and state across sessions, and disappears when you’re done — built for scale in production.

Sub-second boot

VMs ready in ~500 ms.

Hardware isolation

Stronger security than containers.

Network controls

Domain allowlists for network access control.

Browser sandbox

Full browser agents can see and control.

Host mounts

Give sandboxes access to local directories.

Snapshots

Save and restore VM state instantly.

Quickstart

1

Install SmolVM

curl -sSL https://celesto.ai/install.sh | bash
This installs everything you need and configures your machine. See Installation for manual install and requirements.
2

Run your first sandbox

Create quickstart.py:
quickstart.py
from smolvm import SmolVM

vm = SmolVM()
result = vm.run("echo 'Hello from the sandbox!'")
print(result.stdout.strip())
vm.stop()
Run it:
python quickstart.py
You should see:
Hello from the sandbox!

CLI usage

Create and manage sandboxes from the terminal:
smolvm create --name my-sandbox
smolvm ssh my-sandbox
smolvm list
smolvm stop my-sandbox
Run coding agents in an isolated sandbox:
smolvm claude start
smolvm codex start
smolvm pi start
Mount host directories for read-only access:
smolvm create --mount ~/Projects/my-app
smolvm create --mount ~/Projects/my-app:/code --mount ~/data:/mnt/data
Save and restore VM state with snapshots:
smolvm snapshot create my-sandbox
smolvm snapshot list
smolvm snapshot restore my-sandbox --snapshot-id snap_abc123
Start a browser session with live view:
smolvm browser start --live
smolvm browser list
smolvm browser stop sess_a1b2c3
See the CLI reference for the full command list.

Python SDK

Create and manage sandboxes from Python:
from smolvm import SmolVM

with SmolVM() as vm:
    result = vm.run("echo 'Hello from the sandbox!'")
    print(result.stdout.strip())
Customize memory and disk for heavier workloads:
vm = SmolVM(memory=2048, disk_size=4096)
Mount host directories:
with SmolVM(mounts=["~/Projects/my-app"]) as vm:
    result = vm.run("ls /workspace")
    print(result.stdout)
Expose a port from the sandbox to your host:
with SmolVM() as vm:
    vm.run("python3 -m http.server 8000 &")
    host_port = vm.expose_local(guest_port=8000)
    print(f"http://127.0.0.1:{host_port}/")
See the API reference for the full SDK documentation.

Next steps

AI agent integration

Plug SmolVM into PydanticAI, OpenAI Agents, LangChain, and more

Port forwarding

Expose services running inside a sandbox to your host machine

Custom images

Build specialized images with your own tools pre-installed

API reference

Explore the complete SmolVM API
Last modified on May 5, 2026