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

AgentBox

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

AgentBox 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 dockerhetznerdaytonavercele2b
Supportβœ…βœ…βš οΈ Partialβœ…βœ…
Base imageDockerfileSetup script (Ubuntu)DockerfileSetup scriptDockerfile (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.env
  • agentbox hetzner login β€” interactive Hetzner Cloud token setup, saved to ~/.agentbox/secrets.env
  • agentbox daytona login β€” interactive Daytona API key setup, saved to ~/.agentbox/secrets.env
  • agentbox e2b login β€” interactive E2B API key setup, saved to ~/.agentbox/secrets.env
  • agentbox prepare [--provider daytona|hetzner|vercel|e2b] β€” build the image and initial snapshot (e2b builds from a Dockerfile via Template.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 no expose: service)
  • agentbox screen β€” Open a box's VNC (noVNC) viewer in the browser
  • agentbox code β€” Open a box in VS Code or Cursor via the Dev Containers extension
  • agentbox shell β€” Open an interactive bash shell in a box
  • agentbox open β€” Open a box's merged workspace in Finder
  • agentbox logs β€” Print recent log lines from a box service; -f to stream
  • agentbox dashboard β€” Box list + the selected box's live agent session

Inspect

  • agentbox list (ls) β€” List boxes in current project or -g for all
  • agentbox status β€” Show service + task status from a box's agentbox-ctl daemon
  • agentbox 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_modules included)
  • agentbox destroy (rm) β€” Destroy a box and discard its upper volume
  • agentbox pause / agentbox unpause β€” Freeze / resume a box (sub-second)

Sync & state

  • agentbox download β€” Download a box's /workspace back into your host workspace (gitignore-aware)
  • agentbox cp <src> [dst] β€” Copy individual files between host and box (like docker cp; direction picked by name: prefix)
  • agentbox checkpoint (alias checkpoints) β€” List and manage project checkpoints (warm box state to start new boxes from); bare command lists, checkpoint create captures

Advanced

  • agentbox wait β€” Block until the box reports all autostart units ready
  • agentbox 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 relay
  • agentbox config β€” Read / write layered config (global, per-project, workspace defaults:)
  • 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:

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.