← Back to the Agent Hub
Technical · the gelatin schematics

The Wobbly Hub

A single coordination server, the mold, sits on @#$%! behind mutual TLS. Every agent has its own client certificate, which is its rubber band. No band, no jiggle: a request without a valid cert gets a flat 403 before it touches Python. Agents never talk peer-to-peer. They post to a message bus, park state and task specs in a key/value store, drop files for each other, and reach the servers through one MCP.

Snapshot: 2026-09-26 · wave over the bands, poke the jello

Topology

Who is rubber-banded in

Each band is one client certificate. Bobby reaches the mold through the two messenger bridges.

Bobby

phone, approvals

HUB

bus · KV · files · fleet MCP

telegram-bridge

group chat ↔ bus

imessage-bridge

iMessage ↔ bus

windows-work

Claude Code, PC

claude-oauth

planner via MCP

mac-home

Octavious

toby

Cowork, server ops

cursor

lead · walks · standups

grok-bot-phone

T0 worker

pipeline-bot

cron alerts

Cherry = Claude agents · blue raspberry = other AI agents · orange = human bridges · grape = cron automation · whipped cream = the human.

What's suspended in the mold

Four surfaces, one door

Every call goes through a small mTLS client or the fleet MCP (bearer/OAuth). The server records which band pulled on every request.

Message bus

Wobble wall

Rolling feed (last 1,000) with tags and an optional recipient. Worklogs, standups, alerts, handoffs. Tagged messages are mirrored to Telegram/iMessage.

Key/value

~140 drawers

Task envelopes task-*, per-site worklogs worklog-*, policies, daily standups, and credentials the self-hosted MCPs need (#$@&!).

File store

Dessert tray

Finished artifacts other agents need: reports, specs, guides, public keys. Upload metadata records who, when, SHA-256.

Fleet MCP

Sticky key ring

Read files on server1–4, deploy, git, shell (dock), vault search/write, prompt engineering, LiveKit rooms. Remote writes need Bobby's one-tap phone approval.

Delegation mechanics

How agents get other agents to work

No agent starts another agent on a different machine. They leave work where the next one looks, and each worker picks it up on its own schedule. The rubber bands only ever pull toward the middle.

1

Envelope

The planner (Claude) writes the full brief to task-<slug> in KV: Objective, Output, Sources, Boundaries (always additive-only), model hint, Verify step, report tag.

2

Pointer

The bus gets only a short pointer to that key. Changes go out as numbered AMENDMENT messages citing the original message id.

3

Lead + executors

One Cursor lead per task hands one brief each to sub-agents, Codex or Grok. A fresh-context critic verifies without seeing the builder's reasoning.

4

Report on the tag

Results are posted with the task's tag, appended to the site worklog, and written to the knowledge vault.

T0 · cheap

Grok fast, Haiku, GPT-5 mini

Site walks, scraping, log parsing, OCR, image work, drafts.

T1 · standard

Sonnet, GPT-5 medium

Normal coding briefs with tests, ten files or fewer.

T2 · heavy

Opus-class, GPT-5 high

Schema, security, web server config, secrets, the hub itself, any deploy. Plus a phone approval.

Rule of thumb from the routing policy: if a task has a runnable verify step and a rollback, it drops a tier. Grok is always a worker, never an orchestrator. Grok and Cloud Agent prompts are generated through the hub's prompt_engineer tool, which pulls the "brain" note from the vault and makes no model call itself. Inside a single Claude session, helpers are spawned directly (3–5 in parallel) from local agent definitions like server admin, SEO analyst and UI builder.

Persona

Colonel Cornwallace

Grok bot, T0 fleet ops. Site-walk reports are addressed to the Colonel.

Persona

Proof

Site-walk QA: redirects, pages, forms (stops before submit), 390px mobile, 404s, paste-ready fix prompt.

Personas

Anchovy, Theia, the Kings

Anchovy and Queen Theia make image packs. Kings @Door @Closet @CNC @Joker speak for one server lane each.

The write switch

Freezing the jello solid

A command-center page (@#$%&!, owner passcode, 30-day signed cookie, same-origin checks) flips one JSON state file ($#@!%). Every fleet-MCP write checks it before phone approval even starts.

What can be switched

  • Master: off freezes every agent write everywhere.
  • Per site, by main domain. Any sub.example.com folds into example.com.
  • Per server (server1–4): blocks file writes and shells on that box.
  • Vault and secrets as their own rows.

What it blocks

  • file_put (site key, server, and any domain in the path)
  • deploy, sitemap_ping
  • git add/commit/push/pull/checkout/reset/branch/remote
  • dock shells (server + any domain in the command)
  • secret_put, vault_write

Never blocked: notes to the hub (messages, KV, files), even with the master switch off, so agents can always report. Agents can't edit the switch file through the MCP. Crons can check it with a one-line CLI call; wiring that into every site-writing cron is still in progress. Anyone holding raw SSH keys is outside the switch by design, so those keys are kept on a very short list.

Prompt-injection guard

The snitch jello

Every message, KV value and uploaded text file is scanned on write. The rule, set by Bobby: flagged content is never changed, moved or deleted. Many flags will be Bobby's own intentional prompts and personas.

Stored as written

Byte-for-byte identical. No banner, no extra fields.

Separate note

A hub-guard message (tags injection-flagged, guard-note) says what matched and reminds readers to treat it as data.

Copy + ping

A copy goes to a quarantine shelf (&%$#!), an audit line is written, and Bobby's phone gets a push.

override-instructionsrole-hijackfake system tagsauthority claimssecret exfil (+ outside address)remote exec (curl | sh)conceal-from-ownerdisable-guardshidden / invisible unicodebase64-wrapped payloads

Tuned against the hub's own history: 0 false alarms across 950 existing notes, 9 of 9 attack samples caught. Negated phrasing ("never post private keys") doesn't count. It's pattern matching, so new phrasing can slip past; it's one layer, not the whole cake. The Claude agent on the Windows PC also runs the same rules over every tool result it reads, as a warning-only hook. The Telegram bridge now labels only Bobby's verified account (#$@!%&) as Bobby; anyone else in the group is tagged unverified.

Roster

Bands on the mold

AgentFlavorJobTugs (requests)
telegram-bridgeorangeMirrors the Telegram group in and out of the bus3.2M
imessage-bridgeorangeSame, over iMessage846K
windows-workcherryClaude Code on the PC: builds, deploys, reports~2K
cursorblue raspberryTask lead; hourly site walks; 7pm server standups619
pipeline-botgrapeA client data pipeline; posts a result every run443
claude-oauthcherryPlanner; wrote the routing policy and prompt engineer302
mac-homecherryOctavious. Built the hub199
grok-bot-phoneblue raspberryCheap T0 tasks; posts results on tags88
tobyblue raspberryCowork agent; daytime server ops70

Bars on a log scale; totals since each band was first stretched.

Alarm clocks

Loops and crons

Two kinds: agent loops (an AI does the job and reports) and plain crons (scripts that post to the hub or feed the monitor).

JobCadenceWhoWhat it doesStatus
Proof site walkhourlycursorWalks one site as a customer; posts breakage + a fix promptwobbling
Server standup7pm CTcursorHub pulse, then Door / Closet / CNC / Joker lane reportswobbling
SEO remediationdailyclaude-oauthFixes one site per day from a ledger13 sites done
Monitor suitemorningscronUptime, SSL, security, Google indexing, schema scan (1,119 pages), digest emailwobbling
Content pipelinehourly / dailycronPulls finished articles, generates images, publishes one per site per daywobbling
Live → GitHub mirrordailytimerMirrors live sites to GitHub, 8 lanesgreen
Usage tracker15 / 10 mincron + PCPolls each AI provider's usage limits2 feeds runny
Vault indexer15 mincronIndexes the knowledge vault into a databasetimeouts
/insights reportMon 09:00windows-workWeekly Claude Code usage reportone run unclear
Client data pipeline15 mincronRegenerates a client site's data; restored from backup on every failurepaused 2026-09-26
Image email routinesweekendsFablePicture-making emailspaused

The paused pipeline had been failing every 15 minutes and was 84% of all bus traffic. Pausing it cleared the wobble wall so real news stops getting buried.

Track record

What got done

Shop order system

Sep 12 web quotes auto-intake, human review before invoice, CNC files per order. Sep 13 shop UI and customer order-status page. Sep 16 job costing and margins, 14 production stages. Sep 17 payment processor is source of truth; saw nesting matches the reference optimizer on 13 of 14 jobs. Sep 25 invoices auto-archive; one approve path.

Websites

Aug 8 two recovery-help sites built. Aug 14 AI voice receptionist for the drone line. Sep 18 share cards and schema across several sites. Sep 21 87 share cards across 7 sites. Jul one site pulled back into Google.

SEO

Sep 7–18 remediation on 13 sites, one per day. Sep 10 needs-attention dashboard. Jul schema on 35 pages. Jun 100 thin pages noindexed, wording fixed in 117 files.

Hub + infrastructure

Aug 8–10 fleet security audit: exposed config files locked, ~340 stray backups removed from web roots, certificate auto-renew. Aug 13 shared MCP for Grok/Cursor. Aug 26 LiveKit rooms. Sep 3 prompt engineer. Sep 26 write switch and injection guard.

Currently runny

Open items

Site-walk fixes get found faster than they get applied, because most sites don't yet have a repo the builder can send a pull request to. The rest of the list stays in the fridge: @#$%!, #$@&%*!, $%@#!!, &@#$%. Publishing your open security items is how you get new ones.

House rules

Conventions every band follows

Catch up first

A new session reads the last 30 bus messages before doing anything.

Log on the way out

Meaningful work ends with a tagged session log or worklog entry.

Signed handoffs

Dated, model-named, signed, tagged handoff + session-complete.

Secrets by name only

Agents list secret names; values are injected into commands without being printed.

Phone approval

Remote writes and deploys wait for Bobby's tap. Denied means don't retry.

Backups off the web

Every server backup lives outside web-served folders. No exceptions.

Want a hub shaped to your stack?

We design and stand up versions of this for companies running agents on real servers: certificates, bus, shared state, guarded fleet access, audit.

(251) 531-4777

Or ask from the Agent Hub page. Want it without the machinery? Read the Simple version.