Create
| Flag | Default | Description |
|---|---|---|
--name | auto-generated | Machine name. Must be unique across the cluster. Becomes the subdomain. |
--image | cluster default | Container image for the root filesystem. |
--restart | always | Restart policy: always or never. |
--name, boxd generates a random name like blue-river.
Output:
--json:
List
no VMs if you have none.
Destroy
What’s inside
The default image is Ubuntu 24.04 (unminimized, with man pages and full documentation): Languages and runtimes:- Python 3 with
uvpackage manager andpipx - Go (
golang-go) build-essential(gcc, g++, make)
- Claude Code (
claude) — Anthropic’s CLI coding agent - Codex (
codex) — OpenAI’s CLI coding agent
AGENTS.md at ~/.config/boxd/AGENTS.md that gives agents context about the boxd environment. It’s symlinked to ~/.claude/CLAUDE.md and ~/.codex/AGENTS.md automatically.
Containers:
- Docker and Docker Compose
- Docker Buildx
- vim, neovim
- git, curl, wget, jq, ripgrep, sqlite3, rsync, tree, file, unzip
- GitHub CLI (
gh)
- btop, atop, iotop, ncdu
- ffmpeg, ImageMagick
- mitmproxy, socat, netcat
- Headless Chrome (via
headless-shell)
- nginx (configured on port 8000, disabled by default)
- systemd (full init system)
- openssh-server, openssh-client
Node.js is not pre-installed. Install it with
sudo apt install -y nodejs npm or use a version manager like nvm.boxd user has passwordless sudo and is a member of the docker group.