kvbox.sh
Use cases

Development workspaces

A Linux machine you work in every day, with an HTTPS address for your dev server, that sleeps when you step away.

A box makes a good daily workspace: a real Linux machine with its own disk, up in seconds, reachable from any laptop you log in from. Your files stay put between sessions, and you pay for RAM only while it runs.

kvbox new dev --size m --auto-hibernate 2h
kvbox connect dev

m is 4 vCPU and 8 GB of RAM; kvbox vm rescale dev --size l later if it is not enough (see Sizes).

Already in the box

The base image is Ubuntu 24.04 with:

  • Languages: Node.js 22 with npm, Python 3 with pip and venv, and uv.
  • Docker with Buildx and Compose; the kvbox user is in the docker group.
  • Claude Code (claude).
  • A browser: headless Chrome (chromium) and agent-browser, for tests and agents that drive a page.
  • Tools: git, curl, nginx, nano, less, unzip.

The kvbox user has passwordless sudo, so sudo apt install adds anything else.

Your editor

kvbox ls --json gives each box's host, port and user, so plain ssh, scp, rsync and an editor's Remote-SSH (VS Code, Cursor, Zed, JetBrains Gateway) reach the box with the key the CLI keeps. Through kvbox.sh your access is a certificate that lasts a day; any kvbox connect renews it.

Your dev server, live

Give the box an HTTPS address and point it at your dev server's port:

kvbox claim dev mydev --port 5173      # https://mydev.kvbox.app
kvbox vm proxy add dev 8080 --name api # https://api.mydev.kvbox.app

WebSockets work, so hot reload does too. Anyone with the address can open it: put a login in front of anything private. See Publish ports.

What stays with the box

  • Files: the box's disk survives stop, start and host reboots.
  • Variables and secrets: kvbox env set once, and every box of yours has them (Environment variables).
  • A volume for data you want to keep apart from the box, or move to another box (Volumes).
  • A snapshot of a set-up workspace: kvbox snapshots new dev dev-ready, then kvbox new --from dev-ready gives a teammate, or a second branch, the same machine in under a second (Snapshots).

When you step away

With --auto-hibernate 2h, the box hibernates two hours after its last network traffic: its memory goes to disk and it stops costing RAM. kvbox connect, kvbox exec or a visit to its HTTPS address wakes it in under a second, with your processes and dev server where you left them.

A long build running with nobody connected looks idle: give the box a timeout longer than the job, or kvbox vm set dev --auto-hibernate off while it runs. See Stop, pause, hibernate.

Working together

Make the box in an org and its members can connect to it too (Orgs):

kvbox new dev --org acme

On this page