OpenClaw ACP Architecture
The Dockyard
The Dockyard is the dedicated Telegram control surface for project-specific ACP harnesses. It separates coding-agent operations from The Ark’s general coordination space, so every topic maps cleanly to one repository, one runtime, and one durable session.
What The Dockyard does
It is a port for work: each topic docks one project/harness combination, keeping context, cwd, and routing predictable.
Why this exists
- 1Reduce cross-talk. The Ark remains the shared coordination/home base. The Dockyard is for operational ACP control, where messages should usually become coding-agent work.
- 2Keep topic names simple. A topic name should identify the project. The harness is inferred from the OpenClaw binding/runtime, not encoded in the public topic name.
- 3Preserve ongoing work. Existing BTA/zainf sessions are left untouched unless explicitly migrated. The Dockyard starts clean with Cafein.
- 4Keep the system self-describing. The architecture should be clear enough that any agent or human can understand the boundary without relying on chat history.
Current live state
Public version: Telegram numeric IDs and private repository details are intentionally redacted. Internal config retains the exact peer IDs, repository cwd, and remote URL.
Telegram group id [redacted]
Topic model
Cafein
Bound to pi-cafein. The configured runtime runs OpenCode through ACPX in the Cafein project repository.
zainf
Intended Codex ACP route. Existing topic/session should not be disturbed until explicitly migrated.
BTA
BTA still uses Claude because Zain has Claude Teams. Do not move or reset ongoing work casually.
Cafein binding details
Cafein runtime details
Operational rules for agents
- AOne topic = one workstream. Do not reuse Cafein’s topic for BTA, zainf, or generic bot chatter.
- BRespect persistent sessions. If cwd/runtime changes, old ACP sessions may need reset before the harness sees the new config.
- CDo not rename internal IDs just for aesthetics. IDs like pi-cafein may preserve bindings even if display/runtime changed.
- DVerify with a smoke prompt. Ask the topic to report cwd and repo root before assigning real work.
Smoke test
After creating or changing an ACP binding, send this in the target Dockyard topic:
The Cafein topic should report:
Future expansion model
Known caveats
- !Auth can be separate from routing. A topic may route correctly while a model/harness auth is expired.
- !SSH remotes may fail on this host. Cafein is currently bound over an HTTPS remote in internal config, which is intentional after SSH permission failure.
- !Persistent ACP state can outlive config changes. Reset sessions if a topic keeps reporting an old cwd.