A desktop and terminal control plane that keeps five AI coding agents, projects, documents and conversations in one place, with shared notes that survive when a conversation resets.
I run several agents from different companies on the same project, and for a while it felt broken. They lost context, paused mid-task, and reported work as done too early. Agent Hub is what I built so they could share one project without losing work when a conversation ends or resets. The log that changed my design, my typing overruling the system 393 times out of 441, is written up in Agents need direction more than anything. Two small pieces are public on GitHub: receipt-checker and compaction-guard. The drawings below show the rest, from the shared tool server to the checks that decide what lands.
(a) One shared server
Figure 1. Agents from five companies each run as their maker's own program in their own terminal, and they all share one tool server. It has 82 tools so far, 11 of them for the browser.
Numbers
8,738
tests, 0 failing
8,728 passed, 0 failed and 10 skipped across 659 test files, in the full check on the main branch that gated a landing.
82
tools in one shared server
Counted by loading the server's tool list, which includes 11 browser tools. The count goes up as tools are added.
5
companies’ coding agents
Claude Code, Codex CLI, Grok and Muse Code are built in, and Antigravity is recognised by its command. Gemini CLI runs as a plain preset, and the tests use screens captured from all five.
1
runtime dependency
The app's package list has one runtime dependency, the terminal library. The interface libraries are bundled at build time.
System diagram
(b) Work and receipts
An order carries the reason, the done-when checks and the bounds. If a lead's re-run of the declared check fails at the receipt's commit, the job reopens.
(c) Checked landing
The full check runs on the exact commit, and main moves fast-forward only. A landing is refused if the commit or main moved during the check, and the push guard refuses rewrites, deletions, tags and commits from outside the checked copy.
(d) A record that shows edits
Authorization records for pushes, app updates, delivery reviews and board decisions are SHA-256 hash-chained, so an edit shows. That makes them tamper-evident, not tamper-proof.
(e) Goals survive a restart
Each goal change is appended to a log and saved before it counts. A restart replays the log, and a damaged line halts all goal changes instead of guessing.
(f) Prompts stay with the person
Sign-in, trust and approval prompts stay with the person, and private projects are walled at the tool server.
(g) Browser and Agent Hub
Browser and Agent Hub talk over a paired link on the same computer, not through a server.
Figure 2. The rest of the system, from receipts to the paired link with Browser.
How it's built
Every tool on the shared server takes typed inputs. The tool list is built into the server script, so an agent that starts while the app is closed still gets the full list.
I wanted receipts that can't fake a pass. The mailbox refuses a receipt without a status, a commit, test counts and a note of what's still uncertain, and it refuses a PASS that reports a failed test. A lead can then re-run the check at the receipt's commit.
Messages use an 8-state delivery queue (`queued` through `replied`) that holds incoming agent messages in a preview queue while a person is typing in the terminal, so an agent never overwrites an unsent human draft. Alongside the desktop app, I built Agent OS (`agent-hub` and `agent-terminal`, 450 commits and 188 test files in zero-dependency Node 24 TypeScript) so the same five providers can be steered from any terminal or browser with an independent terminal session server that survives HTTP restarts.
Goals hold lines of intent in 10 states, from idea to landed, and a goal's record can be rebuilt from its log alone. By default up to 16 agents are awake, and a group runs at most 4. A start past the cap is refused, and the refusal names finished agents that could make room.
Limits
The counts on this page come from one Linux run in October 2026, so they say nothing about speed or about macOS and Windows. The hash chain shows an edit; it does not prevent one.