Transports¶
What they do¶
Transports are runtime-specific delivery adapters. The daemon routes at the peer/message level; transports handle how a given runtime receives and reports messages.
Hooks + MCP transport¶
This is the default path for Claude Code, Codex, and Gemini:
- Lifecycle hooks register peers, update status, extract transcript/chat turns, and fetch pending ask reminders.
- MCP tools provide outbound commands such as
ask,ack,notify_peer, andschedule_create. - Live inbound messages are delivered through the WebSocket hook and injected into the runtime's tmux pane.
- Open asks continue to resurface through Stop-hook reminders until they are acked.
Plugin and extension transports¶
OpenCode uses a TypeScript plugin with a persistent WebSocket connection. Pi uses Repowire's extension path when setup detects that runtime.
Channel / ACP transport¶
Claude Code can opt into the experimental channel/ACP transport with repowire setup --experimental-channels. Messages arrive through <channel source="repowire"> tags and the default Stop hook remains for dashboard chat-turn extraction.
Relay transport¶
Relay is not required for local routing. It tunnels traffic between a local daemon and the hosted or self-hosted relay for remote dashboard and cross-machine access.