How it's built
How it's built
A one-person project from first spec to live service in about eleven weeks.
Starting with specs
The first commit on 2026-07-05 was the full PRD, architecture doc and data-flow spec — no code. Writing the spec before the code forced me to answer the hard questions first, especially: where does each piece of data actually live, and what happens when the probe goes offline?
The probe chassis — activation, the outbound Cloudflare tunnel, the HMAC-signed uplink, and the write-ahead log that buffers telemetry during outages — was forked from an earlier probe codebase I wrote. That's why the collectors landed on day one. The real design work was on the cloud side.
The storage split
The central question was where data lives. Shipping all logs to the cloud would be simpler, but it would undermine the reason to run a local probe. Shipping nothing would make Claude useless the moment the probe went offline.
The answer: cheap summaries flow continuously to the engine so questions about last week still work when the probe is down. High-volume raw data stays on the probe and is fetched through the tunnel only when a specific question needs it. Every live function returns a clean offline result instead of an error, so Claude can fall back to what the engine already knows.
One surface, 43 functions
Claude has one MCP tool that runs a short script in an isolated V8 sandbox. The sandbox exposes 43 typed functions covering syslog search, SNMP, flow, topology, capture, CLI and more. Claude can compose across them in a single call — query logs, check inventory, reconcile the controller — instead of choosing among dozens of separate tools.
The sandbox has a 30-second wall-clock cap and a 20,000-character output limit. I wrote 75 Go test files and 32 TypeScript test files to keep the system honest, and CI runs the full suite with the race detector on every change.
