HATCH
  ██╗  ██╗ █████╗ ████████╗ ██████╗██╗  ██╗
  ██║  ██║██╔══██╗╚══██╔══╝██╔════╝██║  ██║
  ███████║███████║   ██║   ██║     ███████║
  ██╔══██║██╔══██║   ██║   ██║     ██╔══██║
  ██║  ██║██║  ██║   ██║   ╚██████╗██║  ██║
  ╚═╝  ╚═╝╚═╝  ╚═╝   ╚═╝    ╚═════╝╚═╝  ╚═╝
v0.1.0-alpha · api-first · firecracker-backed

Lightweight microVM orchestration for AI agents.

Spin up isolated Firecracker microVMs. Snapshot and restore agent state. Route traffic to any VM via its own subdomain — with auto-wake on the first request.

view on github
── FEATURES
$curl -X POST api.hatchvm.com/vms
Fast lifecyclefirecracker

Lightweight microVM boot via Firecracker. Create, stop, and destroy VMs with a single API call.

$curl -X POST .../vms/{id}/snapshot
Snapshot / restores3-backed

Freeze a running VM's full memory and disk state. Restore it later — agents resume exactly where they left off.

$curl -X POST .../vms -d '{"user_data":"..."}'
Isolated runtimeper-agent kernel

Every agent gets a fresh, ephemeral microVM with its own kernel. Pass cloud-init user data to provision packages, users, and SSH keys.

$curl -X POST .../vms/{id}/routes
Subdomain routingauto-wake

Map a custom subdomain to any port on your VM. The reverse proxy routes traffic and auto-wakes snapshotted instances on the first hit.

── QUICKSTART
terminal
# create a microVM with cloud-init user data
$curl -X POST https://api.hatchvm.com/vms \
-H "Authorization: Bearer $HATCH_API_KEY" \
-H "Content-Type: application/json" \
-d '{"vcpu_count":2,"mem_mib":1024,"user_data":"#cloud-config\n..."}'
{ "id": "vm-a1b2c3", "state": "running" }
# snapshot it
$curl -X POST https://api.hatchvm.com/vms/vm-a1b2c3/snapshot \
-H "Authorization: Bearer $HATCH_API_KEY"
{ "id": "snap-x9y8z7", "vm_id": "vm-a1b2c3" }
# hit it via its subdomain — auto-wakes if snapshotted
$curl https://hatchvm.com/healthz
{ "status": "ok" }
$

Ready to spin up your first VM?

Free to start.