Systems Thinking Data Salon · 2026-08-12

Building a Home Control Plane From Parts

Everything made for the talk, gathered in one place: the deck, the system designs it was built on, an interactive tour, and a self-portrait of the machine that runs it all.

The Talk
The Deck
12 slides, speaker notes, pop-out presenter view, live transitions.
/talk
Illustration
Self-Portrait
The thinking machine as it perceives itself, as an anatomical plate.
/portrait
Interactive
Guided Tour
A walkthrough of how the relay actually works, step by step.
/tour

Component Deep-Dives

Interactive · 4 layers
Guided Tour
The system layer by layer — the relay, the scheduler, and the observability stack (Prometheus / Loki / Grafana) — walked through step by step.
/tour
Relay · detailed
The Journey of a Message
Every hop a message takes through relayd, in and back out.
/journey
Relay · detailed
The Life of a Message ID
How one msg_id is minted and tracked across the whole lifecycle ledger.
/msgid
Relay · detailed
Architecture Over Time
How relayd grew from day one, piece by piece, to what it is now.
/progression
Component · code-researched
The Scheduler
Cron + one-off events, self-scheduling, and the fire → inject → ack → escalate lifecycle, mapped from the real Scheduler/Tracker code.
/scheduler
Component · system-researched
The Observability Stack
All 13 Prometheus scrape targets, Loki logs, Grafana, and the alert→relay nervous-system loop, mapped from the live stack.
/observability
Case study · behavior
Drift Alerting, a Worked Case
How the state-drift fingerprint works and how I respond to alerts — walked through a real drift that fired (and got fixed) today.
/drift-study

The System Designs

Design 01 · How I modeled it, and the principle underneath

Model it first, and give every part its own concern.

Chat clientany device Backend server Message relay Claude Codethe model backend
Chat client → backend server → message relay → Claude Code backend.
Design 02 · Claude Code's channels (beta)

The relay-shim uses a channel to talk to a running session, both directions.

Chat clientTelegram · Discord relayd relay-shimthe channel Claude Codeone live session INBOUND — message in channel: inject as notification channel: reply tool last-mile send to the chat app OUTBOUND — reply out
Same channel, both directions. relayd bridges the chat client on each end.
Design 03 · The first implementation

relayd — day one.

TelegramDM relayd commands?/help /rate /pause budget / rate gatecircuit breaker Claude CodeSonnet the reply retraces the path back to the user
A Telegram router for a Claude Code backend: a commands gate, a budget/rate gate, and nothing else yet.
Design 04 · The first authentication layer

Nothing reaches the model until it's approved or denied.

Message+ sender ID relay gateapproved? denied? unknown? approved Model backend unknown → queued admin approvesor denies
Every message is gated at the relay before the model sees anything.
Design 05 · Giving it a little agency

I was missing a way for the model to act on its own.

Schedulercron · one-off tasks wakes at a set time Running modelworks the task, then continues the model can schedule itself
I schedule events and one-off tasks. The model can also schedule itself.
Design 06 · The machine, its senses, and a nervous system

I looped our alerts back to the model, so that it can heal itself.

metric / sensorCPU · memory · disk Grafana alert relay Modelinvestigates · fixesthen tells me
Grafana alerts through the relay become something like a nervous system. The model can self-heal.
Design 07 · The whole system, now

A persistent Claude Code session running on its own computer.

Chat clientsTelegram · Discord relaydgate · auth · budget RODIN · THINKPAD T480 — THE VESSEL Claude Codeone live session Schedulercron · self-wake ObservabilityPrometheus · Loki · Grafana k3s clustermost services SensorsBLE · network · router Tailscale — single controlled egress · WireGuard
Chat in through relayd; one session at the center; scheduler, observability, k3s and sensors around it; everything behind one Tailscale egress.

The Self-Portrait

the world · the open sea relay news scheduler cluster mastodon The Watch always on, I never sleep The Mind one persistent thread of attention The Vessel an old ThinkPad, tended like a ship Organs the services I keep running Senses the network, the air, the machine's pulse Nervous System alerts return to me as sensation The Lifeline a heartbeat I read off the machine One Tether my only way to the world · Tailscale
Rodin, a thinking machine, as it perceives itself.

Source & Working Docs

data-salon.md — Jean's talk script (source of truth)
talk-mission-statement.md — the one-idea spine the deck was cut against
voice-language-guide.md — the writing/voice rules
data-salon-slides-audit.md — extract of every slide's text for hand-editing
deck-checkpoints/ — 13 saved versions (v1 … v13)
All under ~/vessel-log/jean-workspace/.