Also use a cloud:
June 3, 2026 Β· View on GitHub
AgentBoxΒ
Run multiple agents in parallel, with a single command, on your PC, self-hosted, or in the cloud
Works with iterm2 - cmux - tmux

How it works
agentbox claude # launch a new VM with claude and your project inside
- π¦ Teleport - Move your project to a dedicated VM, local or in the cloud, with a single command.
- π€ Automatic - Bring all your skills, plugins, and settings for Claude Code, Codex, Open Code
- π A full Computer β Dedicated browser, screen sharing, persistent shells and warmed up VS Code / Cursor IDE, with each box.
- πΎ Checkpoints β Sub <1s startup of new boxes from a previous checkpoint, auto pause to save cost/resources when not in use.
- π Safe - Your git credentials are kept on your local machine, with permission requests to push to the remote repository.
Full Documentation
Complete setup:
npm -g install @madarco/agentbox
agentbox install
# Launch a new VM with claude, copy all your settings and workspace
agentbox claude
# Also install required project libraries and launch your dev server
> Run setup wizard? -> Yes
# Also use a cloud:
agentbox hetzner claude # or vercel, daytona
# Ctrl+aΒ d to detach, claude keep going, to reconnect later:
agentbox claude attach 1
# To open a persistent shell inside the box:
agentbox shell 1
# Create a second box:
agentbox claude
agentbox claude attach 2
agentbox shell 2
# Open your web project on a .local url tunnel on your pc
agentbox url 2
# Or the in-box browser via webVNC:
agentbox screen 2
# Or connect to vscode/cursor inside the box:
agentbox code 2
# See status and quickly switch between agents:
agentbox dashboard
Demo

Install
npm -g install @madarco/agentbox
Requirements: macOS (arm64 or Intel) or Linux, Docker (Docker Desktop or OrbStack), Node >=20.10. The first agentbox create / agentbox claude builds the agentbox/box:dev image (~1 GB, one-time).
Uses portless to give box web apps the same URL from inside the box and on the host.
Cloud Providers
| local docker | hetzner | daytona | vercel | e2b | |
|---|---|---|---|---|---|
| Support | β | β | β οΈ Partial | β | β |
| Base image | Dockerfile | Setup script (Ubuntu) | Dockerfile | Setup script | Dockerfile (Template.build) |
| Live snapshots | β | β | π§ͺ Experimental | β | β |
| Private preview URLs | β (portless or OrbStack) | β (portless) | β (native) | β (native) | β (native) |
Cloud setup (optional β skip for local Docker)
agentbox installβ interactive setup wizard to choose which providers to use and configure them.agentbox vercel loginβ interactive Vercel Sandbox token setup, saved to~/.agentbox/secrets.envagentbox hetzner loginβ interactive Hetzner Cloud token setup, saved to~/.agentbox/secrets.envagentbox daytona loginβ interactive Daytona API key setup, saved to~/.agentbox/secrets.envagentbox e2b loginβ interactive E2B API key setup, saved to~/.agentbox/secrets.envagentbox prepare [--provider daytona|hetzner|vercel|e2b]β build the image and initial snapshot (e2b builds from a Dockerfile viaTemplate.build())agentbox hetzner claude,agentbox hetzner codex,agentbox hetzner create, etc.
How to use
<box> is optional almost everywhere β it defaults to the box for the current project, or use its short index (1, 2, β¦), name, or id prefix.
Create & run
agentbox createβ Create and start a new agent box (Docker container with FUSE overlay)agentbox claudeβ Create a sandboxed box and launch Claude Code in a detachable tmux session
Access
agentbox urlβ Open a box's web app URL in the browser (even with noexpose:service)agentbox screenβ Open a box's VNC (noVNC) viewer in the browseragentbox codeβ Open a box in VS Code or Cursor via the Dev Containers extensionagentbox shellβ Open an interactive bash shell in a boxagentbox openβ Open a box's merged workspace in Finderagentbox logsβ Print recent log lines from a box service;-fto streamagentbox dashboardβ Box list + the selected box's live agent session
Inspect
agentbox list(ls) β List boxes in current project or-gfor allagentbox statusβ Show service + task status from a box'sagentbox-ctldaemonagentbox topβ Live resource monitor (cpu/mem/pids/disk) for a box, project, or all boxes
Lifecycle
agentbox startβ Start a stopped box (docker start + re-mount the FUSE overlay)agentbox stopβ Stop a box (preserves the upper volume,node_modulesincluded)agentbox destroy(rm) β Destroy a box and discard its upper volumeagentbox pause/agentbox unpauseβ Freeze / resume a box (sub-second)
Sync & state
agentbox downloadβ Download a box's/workspaceback into your host workspace (gitignore-aware)agentbox cp <src> [dst]β Copy individual files between host and box (likedocker cp; direction picked byname:prefix)agentbox checkpoint(aliascheckpoints) β List and manage project checkpoints (warm box state to start new boxes from); bare command lists,checkpoint createcaptures
Advanced
agentbox waitβ Block until the box reports all autostart units readyagentbox pruneβ Clean up orphan state records (and with--all, orphan docker resources)agentbox self-updateβ Update agentbox, wipe the box image so it rebuilds, reload the relayagentbox configβ Read / write layered config (global, per-project, workspacedefaults:)agentbox relayβ Manage the host relay process (status/stop/start/restart)
Run agentbox <command> --help for command-specific options.
Documentation
Full documentation lives at agent-box.sh/docs:
- Quickstart and Core concepts
- Teleport a project, Run an agent, Access your box
- Configuration, Services & tasks, Sync & git
- Cloud providers: Hetzner, Daytona, Vercel, E2B
- Full CLI reference
Development
git clone https://github.com/madarco/agentbox && cd agentbox
pnpm install && pnpm build
node apps/cli/dist/index.js --help
The full development workflow, stack, end-to-end smoke tests, and teardown live in docs/development.md.
Author
Marco D'Alia - @madarco - Linkedin
License
MIT. See LICENSE.