Command Center integration
WatchTower runs from a plain terminal with nothing else installed. Claude Command Center (CCC) is a desktop app that sits on top of it: it delegates durable delivery to WatchTower and adds a UI, transcript rendering, and local desktop transports. Neither owns the other. This page is the exact boundary, taken from the canonical ownership contract.
Ownership
Addressing (worker ids, registered agents, session ids, queue refs). Message delivery intent:
send, ask, chats, nudges, outbox retry, TTL, dead-letter, and receipts.
Queue-worker lifecycle: config, claim, close, reap, and spawn policy. The durable ledgers under
~/.watchtower.
HTTP and UI entry points such as /api/inject-input, conversation panes, status
pills, and transcript rendering. Local desktop transports WatchTower cannot own portably, like
terminal keystroke injection. The managed Codex app-server connection when CCC is running. Local
conversation archives and rendering caches.
Call direction
when it wants durable delivery semantics: dormant or unknown sessions, queue-worker messages, anything that should survive a CCC restart via outbox retry, or anything that needs a WatchTower receipt.
only as a delegate or broker: desktop-only transports like a live terminal tab it cannot type into directly, or managed Codex app-server access when CCC is the local broker. If CCC is absent, WatchTower delivers through a native adapter or parks the message in its outbox.
origin=wt, which CCC honors by never calling back into wt send for the same
delivery. If delivery cannot be proven and queueing is disabled, the result is a failure, not a
delivered toast.
Reporting success
The whole contract exists to prevent two classes of bug: duplicate writers against one session, and delivery paths that report success before a message has landed or been durably queued.
| State | What it means |
|---|---|
| accepted | WatchTower accepted the message for durable handling. CCC may say "accepted". |
| queued / outbox | WatchTower could not deliver yet and parked the message for retry. CCC should surface queued state, not "delivered". |
| delivered | A direct local transport succeeded, or WatchTower returned a receipt-backed result. Only then is it "delivered". |
WatchTower receipts are the durable delivery ledger; CCC may render them, but WatchTower owns their state transitions. Codex durable truth is its own on-disk rollout store: app-server notifications are useful for fast UI and receipts, but are not canonical unless persisted and reconciled with the rollout.