JonathanRosado

Duet Agents — Communication skill for Claude Code

Communication community

Pair Claude Code and Codex CLI as peer agents collaborating in real time in adjacent tmux panes — inline messaging, turn-taking, interruption.

How to install Duet Agents

This entry records only its repository, not the path inside it, so there is no exact command to give. Open JonathanRosado/duet-agents and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

What Duet Agents does

Pair Claude Code and Codex CLI as peer agents collaborating in real time in adjacent tmux panes — inline messaging, turn-taking, interruption.

Alternatives in Communication

  • Lark Coding Agent Bridge — Bot that bridges Feishu/Lark messenger with a local Claude Code or Codex CLI 2.4k ★
  • Dsh Chat Import — Import 14+ external agent chat histories (Claude Code, Codex, ChatGPT, Cursor, Gemini, Reasonix, opencode, ZCo 114 ★
  • Whats New — Draft a "What's New" Discord community update across backend, frontend & infra for a time window 107 ★

README

duet-agents

Run **Claude Code**, **Codex CLI**, **Kimi CLI**, and **OpenCode** as a visible **mesh** of agents in tmux (macOS/Linux) or psmux (Windows). Every agent can message every other agent directly — to divide work, debate an approach, or cross-check one another. There is **no leader and no election**; the agent the task was given to coordinates by convention.

This repository ships an npx installer (`npx github:JonathanRosado/duet-agents`) that sets the mesh up for **Claude Code, Codex CLI, Kimi CLI, and OpenCode** alike — any of the four can install it, update it, and initiate a session. Installing adds a `duet` command to each selected CLI, which creates the panes, a durable brief, per-recipient message queues, and one delivery daemon.

**Platform status:** the v4 leaderless mesh ships on **macOS/Linux (Bash + tmux)** and **Windows (PowerShell + psmux)**. Native harness-session pairing/rejoin for Claude, Codex, and Kimi currently ships on the Bash/tmux path. OpenCode is a full fresh-session initiator and peer on both platforms, but its native pairing/rejoin is not supported. Steering a message into a busy Kimi peer's running turn — instead of only ever landing in its composer — ships on Windows; the `ref=` envelope field it depends on is emitted on both platforms, but the steer logic itself is not yet ported to Bash/tmux.

      ┌──────── one delivery daemon (per session) ────────┐
      │    per-recipient FIFO inboxes · at-least-once      │
      └──▲──────────▲──────────▲──────────▲────────────────┘
         │          │          │          │
      claude ◀───▶ codex-1 ◀─▶ kimi-1 ◀─▶ opencode-1
        any agent messages any agent by name, or broadcasts to `all`

Duet is deliberately small. v4 removed the leadership, election, failover, crash recovery, admission control, and cross-session fencing that had accreted over earlier versions. What remains is one job done well: reliably moving a message from one agent's queue int