Skip to content

Commit 0ab05b7

Browse files
ThomasK33claude
andcommitted
feat: add coder/mux built-in adapter
Add `mux` to the built-in agent registry, resolving to `npx -y mux acp` (coder/mux's ACP stdio bridge). Follows the existing npx-backed adapter pattern (kilocode/opencode): no global install required and no core changes, since the command resolves through the generic spawn path. Also adds agents/Mux.md, the docs/agents.md + README + skills registry entries, an install note, a CHANGELOG entry, and a registry test. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent 1522159 commit 0ab05b7

9 files changed

Lines changed: 33 additions & 1 deletion

File tree

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ Repo: https://github.com/openclaw/acpx
1111
- Agents/built-ins: bump the default Claude ACP adapter range to `@agentclientprotocol/claude-agent-acp@^0.37.0`. Thanks @trumpyla.
1212
- Runtime/embedding: surface cost, token usage breakdowns, and advertised command metadata on runtime status/events. Thanks @DaniAkash.
1313
- Agents/built-ins: add `fast-agent` as a built-in fast-agent ACP adapter via `uvx fast-agent-mcp acp`.
14+
- Agents/built-ins: add `mux` as a built-in coder/mux ACP adapter via `npx -y mux acp`.
1415

1516
### Breaking
1617

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -356,6 +356,7 @@ Built-ins:
356356
| `kilocode` | `npx -y @kilocode/cli acp` | [Kilocode](https://kilocode.ai) |
357357
| `kimi` | native (`kimi acp`) | [Kimi CLI](https://github.com/MoonshotAI/kimi-cli) |
358358
| `kiro` | native (`kiro-cli-chat acp`) | [Kiro CLI](https://kiro.dev) |
359+
| `mux` | `npx -y mux acp` | [Mux](https://mux.coder.com) |
359360
| `opencode` | `npx -y opencode-ai acp` | [OpenCode](https://opencode.ai) |
360361
| `qoder` | native (`qodercli --acp`) | [Qoder CLI](https://docs.qoder.com/cli/acp) |
361362
| `qwen` | native (`qwen --acp`) | [Qwen Code](https://github.com/QwenLM/qwen-code) |

agents/Mux.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# Mux
2+
3+
- Built-in name: `mux`
4+
- Default command: `npx -y mux acp`
5+
- Upstream: https://mux.coder.com/integrations/acp
6+
7+
`acpx mux` starts coder/mux through its ACP stdio bridge (`mux acp`). `mux acp` auto-starts an in-process mux server, so a separate `mux server` is not required.
8+
9+
Configure at least one model provider before prompting (for example `ANTHROPIC_API_KEY`, `OPENAI_API_KEY`, or `OPENROUTER_API_KEY`); see https://mux.coder.com/config/providers. To target a remote mux server, override the command with `mux acp --server-url <url> --auth-token <token>` (or set `MUX_SERVER_URL` / `MUX_SERVER_AUTH_TOKEN`).

agents/README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ Built-in agents:
1515
- `kilocode -> npx -y @kilocode/cli acp`
1616
- `kimi -> kimi acp`
1717
- `kiro -> kiro-cli-chat acp`
18+
- `mux -> npx -y mux acp`
1819
- `opencode -> npx -y opencode-ai acp`
1920
- `qoder -> qodercli --acp`
2021
- `qwen -> qwen --acp`
@@ -33,6 +34,7 @@ Harness-specific docs in this directory:
3334
- [Kilocode](Kilocode.md): built-in `kilocode -> npx -y @kilocode/cli acp`
3435
- [Kimi](Kimi.md): built-in `kimi -> kimi acp`
3536
- [Kiro](Kiro.md): built-in `kiro -> kiro-cli-chat acp`
37+
- [Mux](Mux.md): built-in `mux -> npx -y mux acp`
3638
- [OpenCode](OpenCode.md): built-in `opencode -> npx -y opencode-ai acp`
3739
- [Qoder](Qoder.md): built-in `qoder -> qodercli --acp`
3840
- [Qwen](Qwen.md): built-in `qwen -> qwen --acp`

docs/agents.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ The default agent for top-level commands like `acpx exec …` and `acpx prompt
2424
| `kilocode` | `npx -y @kilocode/cli acp` | [Kilocode](https://kilocode.ai) |
2525
| `kimi` | `kimi acp` | [Kimi CLI](https://github.com/MoonshotAI/kimi-cli) |
2626
| `kiro` | `kiro-cli-chat acp` | [Kiro CLI](https://kiro.dev) |
27+
| `mux` | `npx -y mux acp` | [Mux](https://mux.coder.com) |
2728
| `opencode` | `npx -y opencode-ai acp` | [OpenCode](https://opencode.ai) |
2829
| `qoder` | `qodercli --acp` | [Qoder CLI](https://docs.qoder.com/cli/acp) |
2930
| `qwen` | `qwen --acp` | [Qwen Code](https://github.com/QwenLM/qwen-code) |
@@ -166,6 +167,16 @@ Configure model/provider settings through fast-agent environment variables, fast
166167
- Default command: `kiro-cli-chat acp`
167168
- Upstream: [kiro.dev](https://kiro.dev)
168169

170+
### Mux
171+
172+
- Built-in name: `mux`
173+
- Default command: `npx -y mux acp`
174+
- Upstream: https://mux.coder.com/integrations/acp
175+
176+
`acpx mux` starts coder/mux through its ACP stdio bridge (`mux acp`). `mux acp` auto-starts an in-process mux server, so a separate `mux server` is not required.
177+
178+
Configure at least one model provider before prompting (for example `ANTHROPIC_API_KEY`, `OPENAI_API_KEY`, or `OPENROUTER_API_KEY`); see https://mux.coder.com/config/providers. To target a remote mux server, override the command with `mux acp --server-url <url> --auth-token <token>` (or set `MUX_SERVER_URL` / `MUX_SERVER_AUTH_TOKEN`).
179+
169180
### OpenCode
170181

171182
- Built-in name: `opencode`

docs/install.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ Some older Corepack builds bundled with supported Node.js versions have stale
2121
package-signing keys and fail while preparing current pnpm releases. Installing
2222
pnpm with npm avoids that bootstrap failure.
2323

24-
`acpx` itself does not need a global install of every adapter. Built-in adapters that ship as npm packages (`pi-acp`, `@agentclientprotocol/codex-acp`, `@agentclientprotocol/claude-agent-acp`, `@kilocode/cli`, `opencode-ai`) are auto-fetched with `npx` on first use. The `fast-agent` built-in uses `uvx fast-agent-mcp acp`, so it requires `uvx` on `PATH`.
24+
`acpx` itself does not need a global install of every adapter. Built-in adapters that ship as npm packages (`pi-acp`, `@agentclientprotocol/codex-acp`, `@agentclientprotocol/claude-agent-acp`, `@kilocode/cli`, `opencode-ai`, `mux`) are auto-fetched with `npx` on first use. The `fast-agent` built-in uses `uvx fast-agent-mcp acp`, so it requires `uvx` on `PATH`.
2525

2626
## Global install (recommended)
2727

skills/acpx/SKILL.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,7 @@ Friendly agent names resolve to commands:
9292
- `kilocode` -> `npx -y @kilocode/cli acp`
9393
- `kimi` -> `kimi acp`
9494
- `kiro` -> `kiro-cli-chat acp`
95+
- `mux` -> `npx -y mux acp`
9596
- `opencode` -> `npx -y opencode-ai acp`
9697
- `qoder` -> `qodercli --acp`
9798
Forwards Qoder-native `--allowed-tools` and `--max-turns` startup flags from `acpx` session options.

src/agent-registry.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ export const AGENT_REGISTRY: Record<string, string> = {
4949
kilocode: "npx -y @kilocode/cli acp",
5050
kimi: "kimi acp",
5151
kiro: "kiro-cli-chat acp",
52+
mux: "npx -y mux acp",
5253
opencode: "npx -y opencode-ai acp",
5354
qoder: "qodercli --acp",
5455
qwen: "qwen --acp",

test/agent-registry.test.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,11 @@ test("fast-agent built-in runs the ACP entrypoint through uvx", () => {
5454
assert.equal(resolveAgentCommand("fast-agent"), "uvx fast-agent-mcp acp");
5555
});
5656

57+
test("mux built-in runs the coder/mux ACP stdio bridge through npx", () => {
58+
assert.equal(AGENT_REGISTRY.mux, "npx -y mux acp");
59+
assert.equal(resolveAgentCommand("mux"), "npx -y mux acp");
60+
});
61+
5762
test("listBuiltInAgents preserves the required example prefix and alphabetical tail", () => {
5863
const agents = listBuiltInAgents();
5964
assert.deepEqual(agents, Object.keys(AGENT_REGISTRY));
@@ -73,6 +78,7 @@ test("listBuiltInAgents preserves the required example prefix and alphabetical t
7378
"kilocode",
7479
"kimi",
7580
"kiro",
81+
"mux",
7682
"opencode",
7783
"qoder",
7884
"qwen",

0 commit comments

Comments
 (0)