A fresh machine boots in milliseconds with boxd new.
Create one and get in
- CLI
- SSH
exit or Ctrl-D to come back to your local shell.Work in your editor
The SSH alias is real SSH config, so any Remote-SSH editor sees your machines in its picker. In VS Code, Cursor, or Antigravity, run Remote-SSH: Connect to Host and pickmyapp.boxd. JetBrains Gateway and Zed work the same way. From the console you can also hit Open in Editor on any machine and land straight in it.
Open in Editor drops you into the machine over SSH.
Everything is already installed
Each machine ships developer-ready:- Languages. Python 3 with
uvandpipx, Go,build-essential, and Node.js 24 via nvm. - Agents. Claude Code, Codex, and OpenCode, already configured for the environment. See Coding agents.
- Containers. Docker, Compose, and Buildx with the daemon running. See Run Docker.
- Tools.
git,gh,jq,ripgrep,sqlite3,rsync,ffmpeg, ImageMagick, andagent-browser(a stealth Chromium). - Editors. vim and neovim on the machine, plus full SSH for everything remote.
boxd user with passwordless sudo, so anything you would install on a laptop installs here too.
Your app is live while you build it
There is no separate deployment target. Every machine serveshttps://myapp.boxd.sh the moment something listens on a common web port: the proxy detects 80, 443, 8080, 8000, 3000, 5000 and 5173, and falls back to 8000. TLS, HTTP to HTTPS redirects, and WebSockets are handled for you. Start your dev server and paste the URL into a DM. If your app uses another port, point the proxy at it:
api.myapp.boxd.sh. See Proxies.
Your laptop and boxd machines
With the client utilities enabled on your laptop, a boxd machine can reach back to your laptop. You can paste screenshots from your laptop’s clipboard straight into Claude Code running over SSH, read local files withboxd local read inside the machine, and drive a real Chrome on your laptop from inside the machine. See Launch a browser.
Persistence by default
The disk persists across reboots, standby, and hibernation, so your checkouts, dependencies, and dotfiles stay put. On top of that:- Snapshots. Save a configured workspace as a named snapshot. Create a fresh machine from it whenever you, a teammate, or an agent needs one.
- Checkpoints. Save one before a risky change and restore the same machine if it goes wrong.
- Env vars and secrets. Set each one once with a scope, and it is injected into the machines in that scope, so there are no
.envfiles to copy around. - Integrations. Connect GitHub, Linear, Slack, or any of over a hundred integrations once, and every private machine and automation of yours can act as them.