Agent Box
Claude Code, opencode, and Kilo CLI in a persistent web terminal - start agent runs from anywhere, close the tab, reattach later.
One-click deploy, from $13/mo on a Miget plan.
Coding agents got good enough that the bottleneck moved: your laptop has to stay open while they work. Agent Box moves the agent to the platform - a persistent container with Claude Code, opencode, and Kilo CLI preinstalled, reachable from any browser as a web terminal (ttyd + tmux) behind basic auth.
The workflow it unlocks: kick off a long agent run from a laptop or phone, close the tab, and reattach later - the tmux session keeps running server-side, and the 10 GB /workspace volume survives redeploys. Clone your repos once; your agents and their context live there.
Two variables - TTYD_PASSWORD for the terminal and ANTHROPIC_API_KEY for the agents (billed to you) - and you have a development box that never sleeps.
Upstream project: Claude Code + opencode + Kilo CLI
#what you get
- Claude Code, opencode, and Kilo CLI preinstalled and updated
- Browser terminal via ttyd - works from phones and tablets
- tmux sessions persist across disconnects: start, close tab, reattach
- 10 GB /workspace volume survives redeploys
- Basic auth on the terminal; API key stays server-side
- git, gh, and the usual toolchain included
#topology
| Service | Role | Public |
|---|---|---|
| agent-box | web terminal (ttyd + tmux) with agents inside | yes (basic auth) |
#miget sizing
// this stack needs
2 GiB RAM · 10 GB disk · 1 service
2 GiB covers agents plus typical build tooling. Heavy compiles or test suites inside the box may want the next plan up - agents are only as fast as the box they think in.
Hobby - recommended fit
$13/mo
1 vCPU · 2 GiB · 50 GiB disk
Headroom for your own apps: 2 GiB at $19/mo
Professional - production
$22/mo
1 vCPU · 2 GiB · 10 GiB disk
Dedicated resources, production SLOs - plan details
One Miget plan is a fixed pool of compute - the whole stack (managed databases included) deploys inside it, and anything left over runs your other apps. No per-service or per-seat math.
#vs. other PaaS
Estimated monthly cost of running this exact stack (2 GiB RAM, 10 GB disk, 1 container) elsewhere, from published June 2026 rates.
| Platform | Est. monthly | Notes |
|---|---|---|
| Miget ★ | $13 flat | compose stacks first-class: one deploy, dedicated vCPU, managed Postgres/Valkey, volumes and TLS all included in the plan |
| Heroku | ~$100 | no volumes; nothing between 1 GB ($50) and 2.5 GB ($250) dynos - 2 GB containers cost far more than shown |
| DO App Platform | ~$29 | no persistent volumes - stateful containers need managed DBs/Spaces (base $5 Spaces included here) |
| Render | ~$28 | per-service instances (0.5 GB $7, 2 GB $25) - every container is its own paid service |
| Railway | ~$22 | usage-based ($10/GB RAM-mo); vCPU billed separately at $20/vCPU-mo on top |
| Fly.io | ~$13 | cheapest sticker price - but burstable shared CPUs (1/16 core; dedicated vCPUs cost ~2-3×), no compose deploys (one app per container, manual wiring), managed DBs billed extra |
Estimates assume RAM fully allocated at published on-demand rates - and sticker price isn't the whole comparison: the cheaper rows buy burstable shared CPUs, per-service wiring instead of a compose deploy, and managed databases billed separately. Heroku and DO App Platform have no persistent volumes at all - stateful stacks like this one need workarounds there.
#deploy it
On Miget
- Create a Compose Stack in app.miget.com pointing at the templates repository
- Set the stack path to
agent-box -
Set the required variables:
TTYD_PASSWORD, terminal basic authANTHROPIC_API_KEY, used by the agents, billed to you
- Deploy. Miget layers
compose.miget.yaml(RAM, privacy, volumes, managed services) automatically
Locally first?
Every template is portable, vanilla Docker Compose - the Miget overrides are ignored locally:
git clone https://github.com/deployable-sh/stacks
cd miget-compose-templates/agent-box
docker compose up -d Same files, same behavior. The template README covers connection strings and scaling notes.
#faq
Why run Claude Code on a server instead of my laptop?
Long runs survive sleep, network drops, and closed lids. The tmux session keeps executing while you are away, and reattaching from any device shows you what happened - agent time stops being coupled to laptop-open time.
Is it safe to expose a terminal to the internet?
The terminal sits behind basic auth over HTTPS, and the API key lives only in server env. Use a long random TTYD_PASSWORD and treat the box like any dev machine: real credentials only where needed, and remember the agents inside can run arbitrary commands - that is the point.
How do I reattach to a running agent session?
Open the app URL, authenticate, and you land back in tmux - the session never ended. From a second device the same applies; tmux multiplexes happily.
What does it cost to run?
The box itself is $13/month (2 GiB hobby plan). The real cost is API usage by the agents, billed to your Anthropic key - the box just keeps them running while your laptop does not have to.
Ship Agent Box today
One compose stack, 2 GiB of RAM, from $13/month flat, and it runs on your laptop with the same files.