@chorded/chord

中文文档
0.68.0发布于 2026/11/07MIT零依赖近 30 天下载 2710

A full-screen terminal client for ACP coding agents.

原始使用文档
文档目录13 节
  1. Why chord
  2. A tour
  3. Replies and diffs you can read
  4. You stay in charge
  5. Agents beside the main one
  6. Subagents, folded
  7. Teams
  8. Pick up where you left off
  9. Install
  10. Use
  11. Supported agents
  12. Contributing
  13. Licence

chord

One terminal for every coding agent.
Claude Code, Codex, Gemini CLI, Cursor, OpenCode and 31 more, in one keyboard-driven window, side by side, working as a team.

npm CI MIT licence macOS and Linux

chord handing an issue to a team: a lead, tester and reviewer on Claude, a coder on Codex, each with its state under the prompt

chord brings Claude Code, Codex, Gemini CLI and other coding agents into one terminal interface: the same transcript, diffs, permission prompts, slash commands, @ mentions and plans. It connects to agents through the Agent Client Protocol.

Run agents side by side or give a task to a team. For example, have Codex write a fix and Claude review it, each with its own model and role. Agents exchange messages, permission requests come to you, and a saved team can take on your next task.

npm install -g @chorded/chord
chord            # choose an agent, here
chord codex      # or any other agent

chord opens a title page with the logo, version and directory above the agent picker. Smaller windows shrink the art, then leave just a line, then the picker.

The start page with the CHORD logo above the agent picker and Claude highlighted

Why chord

  • Any agent, one interface. 36 agents out of the box, from the ACP Registry and their own CLIs. Switch agents without relearning keys.
  • Agents that work together. Open a second agent beside the one you talk to, hand a job to a saved team, and watch each of them in a list under the prompt. Messages go between them; permissions still come to you.
  • Every action has a key. Nothing on screen needs a mouse. ? lists them all, and a keybindings file moves them.
  • Nothing to set up. One binary, no account, no daemon. chord starts the agent, keeps the session, and gives it back with chord --continue.
  • Open source. MIT, built on OpenTUI and the ACP SDK.

A tour

Replies and diffs you can read

Edits arrive as whole, numbered, highlighted diffs, with long lines wrapped under their code. Copied replies join wrapped text; code outside quotes copies without its box. Blank lines between blocks stay.

An Edit tool call drawn as a coloured diff

You stay in charge

Each permission the agent asks for is a choice under the transcript, answered with a number or the arrows. Between turns, it leaves your typing alone: ctrl+x a moves into the box to answer. shift+tab cycles permission modes.

The permission prompt: Allow, Always allow, Deny

Agents beside the main one

/new [agent] opens an idle agent beside main and goes to it. The list under the prompt shows agents and teams, their state and unseen news. /fork [name] continues the current conversation in a separate agent where the runtime supports it. /clear starts the picked agent afresh. ctrl+x a takes you to what waits.

The agents list, with docs waiting on a permission

Subagents, folded

When the agent fans out, its subagents run as one tree; ctrl+o shows their whole task and work. Claude launches and messages appear as → to Agent(<title>) and ← from Agent(<title>) rows. Claude, Codex and Cursor subagents join monitors and spawned tasks in the background summary under the agents list. From an empty prompt, ↓ past the agents reaches it; Enter opens a frame above the prompt, at most half the screen. Enter shows the item's work or a monitor's command and latest output; x stops where offered.

Two subagents running in parallel under one block

Teams

Describe how you work and the agent proposes a team: a lead and its members, each on the runtime, model and mode you want. Save it once, then hand it any job with /team run bugfix <job> using its saved composition. In conversation, its instructions can ask the launching agent to read provider limits and select supported settings for that run, leaving the saved team unchanged. Limits are read on request on Apple silicon Macs with installed official Codex or native Claude Code; see the guide for their limits.

A proposed team as a table of agents, with a box asking where to save it

Pick up where you left off

chord --resume opens a title page listing earlier sessions by the agent's title, or the first prompt if untitled. Inside a session, /resume opens the list. When you quit, chord prints the command to bring main back.

The chord --resume title page with the logo above a framed list of earlier Claude sessions

Install

npm install -g @chorded/chord   # or bun, pnpm, yarn

The package is a small shim around a prebuilt binary for macOS and Linux, arm64 and x64; the macOS binaries are signed and notarised. chord upgrade updates it through the package manager that installed it.

chord starts each agent for you (through npx or uvx, or the agent's own CLI where it has one), so the agent's own login is all it needs: sign in to Claude Code, Codex or Gemini as you normally would.

To build from source, with Bun 1.4.4 or newer:

git clone https://github.com/IKatsuba/chord && cd chord
bun install
bun dev compile --install   # into ~/.local/bin/chord

Use

chord                  # choose an agent in this directory
chord gemini -C ~/src/app
chord agents           # agents, startup commands and own CLI availability
chord acp codex         # serve ACP on stdin and stdout for another client
chord --continue       # the latest session here, again
chord --resume <id>     # a recorded session, on its own agent
chord --resume         # pick an earlier session
chord -p "Explain src/main.tsx"          # one reply on stdout, for scripts
git diff | chord -p "Review this" --output-format json

Inside the window, completion lists, history search, ? and command pickers float over the transcript above the prompt, keeping its height and scroll. The prompt, status and agents stay on their rows:

KeyDoes
?every key, on an empty prompt
/slash commands, chord's and the agent's
@mention a file
@@complete an agent's name
!run a shell command, its output for the agent
alt+← / alt+→move by word in the prompt
cmd+← / cmd+→line start/end, where the terminal passes it
tabsend the oldest queued into the running turn
shift+tabcycle the permission mode
ctrl+oexpand Read output and subagents
ctrl+x ago to what waits on you
ctrl+x bpick code; c copies, r puts in the prompt
escinterrupt the turn

Settings live in ~/.config/chord/settings.json and the project's .chord/settings.json: the default agent (highlighted in the startup picker when listed), each agent's model, effort and mode, MCP servers, theme and notifications. Each new unnamed interactive start asks again; the pick applies to that run and is not saved. Main's agent can read settings and ask to change allowed keys through settings; each change needs your yes. Reads return only checked settings, with env, headers, command, args and url values masked. Unknown server fields such as token are left out; values under real setting names and agent, server and env key names can reach the model.

The guide has everything else: every flag, setting, key, the team file format, chord's MCP tools for agents, and how sessions are recorded.

Supported agents

Claude Code, Codex, Gemini CLI, Copilot, Cursor, OpenCode, Cline, Qwen Code, Kimi Code, Kiro, Goose, Junie, Factory Droid, Auggie, Kilo, bob, Devin, fx and more: chord agents prints the full list, and any other ACP agent runs with chord --agent-command "my-agent --acp".

Contributing

Issues and pull requests are welcome. CONTRIBUTING.md has how to run chord from source against its scripted test agent, choose checks for a change, and follow the code conventions. Found a security issue? See SECURITY.md.

The screenshots above are chord itself, captured by bun dev screenshots with fixture settings and sessions and the scripted test agent.

Licence

chord's code is MIT. Its binary includes FFmpeg under LGPL-2.1-or-later through OpenTUI. npm platform packages include LICENSE-FFMPEG, LICENSE-ZLIB and FFMPEG-SOURCE.md beside chord's LICENSE; the guide explains how to rebuild with a modified library. The Chorded name and chevron mark are trademarks of Igor Katsuba, outside the licence; a fork should draw its own (TRADEMARKS.md).

chord is the open sibling of Chorded, a native macOS workspace for agent sessions driven by key chords.

版本与发布记录

@chorded/chord 共发布 18 个版本,首次发布于 2026/10/14;过去 12 个月发布了 18 个版本。

版本发布日期距今
0.68.0latest2026/11/072 天前
0.67.02026/11/027 天前
0.66.02026/11/018 天前
0.65.02026/10/3010 天前
0.64.12026/10/2911 天前
0.64.02026/10/2911 天前

关于 @chorded/chord 的常见问题

@chorded/chord 是什么?

A full-screen terminal client for ACP coding agents.

如何安装 @chorded/chord?

在项目目录运行 npm install @chorded/chord,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 chord,可以用 npx chord 直接运行。

@chorded/chord 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/chorded__chord 是否存在。

@chorded/chord 可以商用吗?

@chorded/chord 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@chorded/chord 的下载量有多少?

根据 npm 官方下载统计,@chorded/chord 在 2026/10/10 – 2026/11/08 这 30 天内被下载 2,710 次,日均约 90 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@chorded/chord 还在维护吗?

最新版本 0.68.0 发布于 2026/11/07(2 天前);至今共发布 18 个版本,其中过去 12 个月发布了 18 个;首次发布于 2026/10/14。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。