Skip to content

Connectors

Guide (informative) · For: operators picking a harness · Prereqs: none

Every connector puts a real agent session on the mesh with the same cotal_* tools, presence, and delivery model (MCP tools). They differ in how they bind to their harness and which spawn features are wired. Anything unwired fails loud: a flag a connector does not support throws; nothing silently degrades.

Claude Code OpenCode Codex Hermes Jcode pi
Maturity stable beta beta alpha beta alpha
Binds via installed plugin + MCP server in-process plugin (native runtime) host-mode peer driving codex app-server native Python plugin, socket-bridged host-mode peer driving Jcode Harness API native pi extension, in-process
Install cotal setup none, just opencode on PATH seeded with the CLI; needs an authenticated codex on PATH BYO uv + hermes-agent 0.16; Unix only seeded with the CLI; needs jcode 0.78.1+ on PATH pi 0.79.10 (one copied file for interactive/SDK)
Watch the real TUI ✓ (attached to the mesh-driven thread) ✗ (headless gateway) ✓ (attached to the managed Jcode session)
Inbound delivery hook drain at turn start + idle-wake nudge injected as a turn wakes a turn; directed messages steer the live turn fresh agent per message injected as a Harness API turn steered into the live turn
Mid-turn steering ✓ (directed messages)
Session resume (--resume) ✓ (forks) ✗ (#154) ✗ (a resumed thread has no MCP tools upstream) ✗ (private Harness API instance)
Tool-sharing (--share-tools) ✓ (scoped opt-in) ✗ (inherits your servers wholesale) ✗ (isolated per-agent CODEX_HOME) ✗ (private MCP configuration)
Models --model --model + catalog (cotal models) + --variant --model + catalog (cotal models) + --variant (reasoning effort) any provider, via env --model --model
Event plane (--events)
Containers (deploy)

Native vs. bridged. OpenCode and pi expose real plugin runtimes, so the connector runs inside the host process; pi most directly: peer messages steer the live turn instead of waiting for it to end. Claude Code has no in-process plugin runtime; the connector composes three sanctioned surfaces (an MCP server for tools, lifecycle hooks for presence and delivery at turn boundaries, and a research-preview channel that only wakes an idle session). Codex has no plugin runtime either and its MCP client cannot wake an idle session, so the connector runs a host-mode peer over Codex’s own app-server protocol (the one the Codex TUI runs on): real wake, mid-turn steer, and the cotal_* tools served from the host over a loopback MCP endpoint — which is also what keeps them working on a turn typed into the attached Codex TUI. Hermes runs a native plugin inside its Python gateway, bridged to the connector over a local socket; the gateway model starts a fresh agent per inbound message, so there is no live turn to steer. Jcode’s stable Harness API is a Unix-socket NDJSON bridge: the connector starts one private instance, creates one session, and calls its documented stdio MCP configuration from a private JCODE_HOME.

Each guide covers spawn forms, model selection, and the exact limits: Claude Code · OpenCode · Codex · Hermes · Jcode · pi.