APM for operators, not nostalgia.
StarCraft trained a generation of operators to think in actions per minute: select, move, build, scout, expand. Production infrastructure has the same shape at a slower clock — hypervisor health, VM sprawl, cert expirations, deploy queues, agent dispatches — but our tools are still tables, tabs, and infinite Grafana dashboards.
Gridcraft started as a personal experiment: if I render hypervisors, VMs, and apps as units on a battlefield, do I get better at macro? Can I practice the same muscle I need when I am supervising dozens of JARVIS agents — knowing what is stale, what needs a visit, and which model tier should handle it?
The answer is not “replace Grafana with a game.” The answer is give the management plane a spatial metaphor that matches how humans already reason about contested attention.
Bases, districts, and apps.
One JSON snapshot drives the entire canvas. The sample fleet ships in the browser; a optional Python collector replaces infra with live data from your ~/.ssh/config and read-only Proxmox queries.
- HypervisorsProxmox (or libvirt) hosts are bases on the map — CPU, memory, disk, handler scripts, and a generated “codebase” view that is really an event-driven shell (no model inference on the host tile itself).
- Virtual machinesVMs are districts inside a base: web pools, API gateways, databases, mail, RDP farms. Color and layout encode role.
- Apps & sitesIndividual websites, API routes, and services are the smallest selectable units — the things you would open an incident on.
- Decks & yardsSide areas model product work: git branches, lab DNS, promotion lanes from “review” to “on a hypervisor” — the same governance story as the management layer case study, but visible as terrain.
SCVs that inspect context windows.
In the demo, four model personas — Opus, Sonnet, Haiku — are literal SCV units at a model bay. They differ in speed, inspection depth, and token burn, the same way you would pick a model tier for a task in production.
Select a model (keys 1–4), right-click a base or unit, and the SCV paths across the map. When it arrives, it loads that entity’s context stack: a simulated context.md, optional sub-context files, token budget bars, and dispatch counters. Purple “thinking” states are visible on the map — fog of war hides units you have not visited recently, nudging you to scout stale infrastructure the way you would scout an unexplored corner of the map.
This is the visualization Matt wanted: models are not the buildings. The hypervisor codebase runs on events. Models visit, read, and recommend; they do not become the control plane.
Same ideas as JARVIS, different camera angle.
Gridcraft reuses the vocabulary we document in the open-source JARVIS v4 harness:
- ChannelsRocket.Chat (and other feeds) appear as map structures you can route — incoming messages become events on the battlefield instead of another browser tab.
- Context filesEvery unit exposes markdown context you can open in-place — the same “directory is the program” idea as Agent OS.
- Token economicsTop-bar resources track inbound traffic, open alerts, and model token spend — tying agents · context · tokens to something you can glance at while panning the map.
- Alerts & handlersHypervisors declare handler types (
disk.usage,http.5xx,cert.expiring, …). Events raise alerts you resolve from the UI — practice for fleet on-call without mixing it with model chat.
Wire your real fleet (optional).
The browser demo is self-contained. To map your Proxmox cluster, tag hosts in SSH config (# gridcraft: role=hypervisor / role=vm) and run the collector bundled under /gridcraft/collector/:
python3 gridcraft_collect.py hosts
python3 gridcraft_collect.py snapshot -o snapshot.json
python3 gridcraft_collect.py serve --port 8787
Collection is read-only SSH: pvesh, nginx/apache site lists, running systemd units. Serve mode pushes live CPU and request-rate samples over Server-Sent Events so the map breathes. Bind locally by default; use a token if you expose it wider.
Later phases in the schema (business, operations, headoffice, playground) layer billing, vault metadata, OKRs, and lab branches — all optional sections in the same snapshot format.
Play with it now.
The interactive build is hosted on this site — no install required. Pan the battlefield, toggle fog and traffic heat, open the Data panel to load your own snapshot.json, or explore hypervisor “codebase” dialogs to see the event-driven shell.
Controls: left-click select, drag box select, right-click move or inspect, arrow keys / screen edge scroll. Works on desktop; touch uses a simplified tap scheme.
The harness is the work — the map is how you see it.
Gridcraft is an experiment in operable visualization: if AI agents multiply, the bottleneck is management — who is looking at which host, with which model, under which token budget. An RTS UI will not replace audit logs or SSH sandboxes, but it might train the reflexes you need to run them.
We published the case study and demo together so you can steal the metaphor: build your own camera on top of the same snapshot schema, or tag your SSH config and point the collector at a homelab cluster tonight.
Launch Gridcraft All case studies