sandboxd
A self-hosted engine that lets coding agents build live apps in isolated Docker sandboxes.
What does this agent do, and when should you use it?
sandboxd is an open-source, self-hosted AI app-building engine that creates an isolated container and preview URL for each application on your own server. Its documented core is one Go program driving Docker, with Traefik for URL routing and SQLite for state, without Kubernetes, a separate database, or a queue. The product exposes a scriptable /v1 HTTP API and an optional web console that acts as a pure API client. In the console, users can create apps, chat with a coding agent, view a live preview, edit files, inspect Git diffs, and commit or push changes. Idle sandboxes sleep and wake on demand; the repository describes the project as single-server Beta 0.x software.
A caller creates a sandbox through the API with ports such as 3000, then posts a prompt and agent name to /v1/sandboxes/$ID/tasks. sandboxd starts a Docker container with its own filesystem and limits, runs the coding agent inside it, and produces a live preview URL for the resulting app. The console can also start React/Vite, Next.js, and FastAPI presets, import a public Git repository, or launch curated open-source apps. Documented built-in agents are OpenCode and Claude Code; credentials are injected by a proxy on the wire rather than placed in the sandbox. The product also documents checkpointed and revertible tasks, snapshots, fork and restore, process logs, activity history, browser file editing, and Git commit/push workflows.
- A team building an AI app-builder product that needs an isolated, URL-addressable preview environment for each customer or project.
- A developer-platform team integrating the /v1 API so a coding agent can create and iterate on apps from product prompts.
- An engineering team creating per-branch or temporary preview environments that can sleep while idle.
- A self-hosting user who wants to launch curated applications such as Ghost, n8n, or Grafana from a browser instead of assembling each container workflow manually.
- A developer importing a public Git repository, asking an agent to modify it, reviewing the diff, and committing or pushing from the console.
What are this agent's strengths and limitations?
- Each app receives a distinct Docker container and live preview URL, which directly supports multi-app and multi-user workflows.
- Idle sandbox sleep and on-demand wake behavior is designed to let one ordinary server host many apps.
- The same engine is available through a /v1 API and an optional no-code web console, allowing either product integration or hands-on use.
- It documents an end-to-end iteration workflow: files, Git diffs, commits and pushes, snapshots, fork/restore, task undo, activity history, and process logs.
- The documented credential design keeps agent credentials out of sandboxes by injecting them through a proxy.
- The project is explicitly Beta 0.x and warns of possible breaking changes before 1.0, so adopters should pin versions and upgrade deliberately.
- Isolation is container-based rather than VM-based, requiring additional hardening before use with untrusted multi-tenancy.
- API authentication is off by default, and the project explicitly advises tightening the deployment before exposing it to untrusted users.
- It is a single-server deployment that requires Linux, Docker, the Docker Compose plugin, and Git; macOS support via Docker Desktop is best-effort.
- The supplied evidence documents OpenCode and Claude Code only; it does not document setup paths for other coding-agent or model providers.
How do you install or deploy this agent?
On a Linux host with Docker, the Docker Compose plugin, and Git, run:
curl -fsSL https://raw.githubusercontent.com/tastyeffectco/sandboxd/main/install.sh | bash
The installer builds images, starts the stack with the web console, and prints a console URL and generated login. The default API is http://127.0.0.1:9090; verify it with curl http://127.0.0.1:9090/healthz. The console is available at http://console.localhost, and ./console-login.sh displays the login again. The README documents native amd64 and arm64 support; macOS through Docker Desktop is best-effort.
How do you use this agent?
Connect an agent in the console under Settings, or configure Claude Code credentials through the API. The following documented sequence creates a sandbox exposing port 3000 and asks OpenCode to build a todo app; replace sk-ant-... with a valid key:
API=http://127.0.0.1:9090
curl -s -XPOST $API/v1/agents/claude-code/api-key -d '{"api_key":"sk-ant-..."}'
ID=$(curl -s -XPOST $API/sandbox -d '{"ports":[3000]}' | sed -E 's/.*"id":"([^"]+)".*/\1/')
curl -s -XPOST $API/v1/sandboxes/$ID/tasks -d '{"prompt":"build a todo app on port 3000","agent":"opencode"}'
Open the result at http://s-$ID-3000.preview.localhost. For headless operation, disable the console with SANDBOXD_CONSOLE=0 or --no-console.
How does this agent compare with similar options?
The README positions sandboxd as the self-hosted engine behind the kind of prompt-to-running-site experience associated with Lovable, Bolt, v0, and Replit. Its stated distinction is that the infrastructure, code, and data run on your server, with management through its API or local console rather than being described as a hosted product boundary.