GET/chordv0.68.0 · macOS · Linux · MIT
$ chord

One terminal for every coding agent.

Claude Code, Codex, Gemini CLI, Cursor, OpenCode and 30+ more, in one keyboard-driven window — side by side, or working as a team. chord talks to them over the Agent Client Protocol, so every agent gets the same transcript, diffs and permission prompts.

runtime:TypeScript on Bun, one binary — macOS and Linux, arm64 and x64ui:[ OpenTUI ] in your terminal, no Electronsource:[ github.com/IKatsuba/chord ] — MITinstall:npm, as [ @chorded/chord ] — signed and notarised on macOSsibling:[ Chorded ] — the native macOS workspace it grew up beside
chord handing an issue to a team: a lead, a tester and a reviewer on Claude and a coder on Codex, each with its state listed under the prompt, and the tester waiting on a permission.
An issue handed to a saved team. The lead reports back to the main conversation; the list under the prompt says who is idle, who has news, and who is waiting on you.
/chord/features6 items · application/json
01any agent, one interface

Claude Code, Codex, Gemini CLI and the rest of the ACP Registry, plus riff — chord's own agent on a ChatGPT or Grok plan. The same transcript, diffs, permission prompts, slash commands and @ mentions for all of them. Switch agents without relearning keys.

02agents that work together

Open a second agent beside the one you talk to, or hand a job to a saved team — Codex writes the fix, Claude reviews it, each with its own model and role. Messages go between them; permissions still come to you.

03you stay in charge

Every permission an agent asks for is a choice under the transcript, answered with a number. Proposed diffs scroll above the choices, and between turns it leaves your typing alone.

04diffs you can read

Edits arrive as whole, numbered, highlighted diffs. Subagents fold into one tree you can open, and background work sits in a summary under the agents list.

05every action has a key

Nothing on screen needs a mouse. ? lists every binding, and a keybindings file moves them.

06nothing to set up

One binary, no account, no daemon. chord starts the agent, records the session, and gives it back with --continue. It also scripts: -p prints one reply to stdout.

A permission prompt under the transcript: Allow, Always allow, Deny, each picked with a number.
A permission is a choice under the transcript, not a modal. Answer with a number, or move into it with ctrl+x a.
/chord/keys9 bindings · ? for the rest
?every key, on an empty prompt
/slash commands, chord's and the agent's
@ · @@mention a file · an agent
!run a shell command, its output for the agent
tabsend the oldest queued message into the running turn
shift+tabcycle the permission mode
ctrl+oexpand Read output and subagents
ctrl+x ago to what waits on you
escinterrupt the turn
POST/chord/installnpm · bun · pnpm
npm install -g @chorded/chord
chord            # choose an agent, here
chord codex      # or start one directly

The package carries a prebuilt binary for macOS and Linux, and chord upgrade updates it through whichever package manager installed it. Sign in to Claude Code, Codex or Gemini the way you normally would — chord starts their own CLIs. For riff, sign in to a ChatGPT or Grok plan inside chord; credentials stay in the system store.

POST/chord/runsh · scripts too
chord --continue                      # the latest session here, again
chord --resume                        # pick an earlier one
chord agents                          # what is installed and runnable
chord -p "Explain src/main.tsx"       # one reply on stdout
git diff | chord -p "Review this" --output-format json

Every flag, setting and key, the team file format and chord's own MCP tools for agents are in the guide.