Harnesses and muxes
Claude Code, Codex, OpenCode and Pi are equal citizens. Each gets replies in the chat, voice both ways, status, history, context and model shown, and permission prompts surfaced as answerable questions. Adding a harness is adding an adapter, never a special case.
Choosing a mux
CYC_MUX=tmux # default CYC_MUX=herdr # opt-in upgrade
Both work at once. Sessions come from the mux, hand-started panes included; the transcripts are the harnesses’ own. Killing cyc loses nothing.
Agent tools
The agent replies through tools cyc gives it: chat for text, speak for a spoken summary, show for a file, diff, image or interactive page, and info for status.