manaflow-ai

Cmux Codex Acp — Development skill for Claude Code

Development community

Codex app-server as an ACP agent: Rust library and stdio binary (GPL-3.0-or-later).

How to install Cmux Codex Acp

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

What Cmux Codex Acp does

Codex app-server as an ACP agent: Rust library and stdio binary (GPL-3.0-or-later).

Alternatives in Development

  • Claude Code Rust — 🚀 Rust 全量重构的 Claude Code - 性能提升 2.5x,体积减少 97% High-performance Rust implementation of Claude Code with 2.5x f 1.4k ★
  • Obsidian MCP Server — Read, write, search, and surgically edit Obsidian vault notes, tags, and frontmatter via MCP 686 ★
  • Pubmed MCP Server — Search PubMed/Europe PMC, fetch articles and full text (PMC/EPMC/Unpaywall), citations, MeSH terms via MCP 150 ★

README

cmux-codex-acp

Codex as an [Agent Client Protocol](https://agentclientprotocol.com) (ACP) agent, built directly on `codex app-server`.

  • Library (cmux_codex_acp::Translator): translates between ACP and the Codex app-server JSON-RPC protocol. It does no I/O; the caller owns the codex app-server process and passes lines in and out. acpmux (cmux's agent session daemon) links it in process, so there is no extra process between the client and Codex.
  • Binary (cmux-codex-acp): the translator over stdio for any ACP client.
cargo install --git https://github.com/manaflow-ai/cmux-codex-acp
cmux-codex-acp --codex "$(command -v codex)"

Options: `--codex PATH` (else `$CODEX_PATH`, else `codex` on `PATH`), `-c key=value` (passed to `codex app-server`), `--model`, `--effort`, `--mode`.

Tested with Codex `0.162.1`.

Design

One `codex app-server` process carries every session of a translator. Each ACP session is one Codex thread; the ACP session id is the thread id. Text, reasoning and command output stream to the client as each delta arrives.

Subagents are native: when Codex starts a subagent (a child thread), the client gets `subagent_spawned` under the parent session, every update of the child under the child's own session id, and `subagent_state_update` when it ends (ACP draft `subagents` capability).

Approvals go through the client: Codex's command, file change, permission and question requests become `session/request_permission`, with options built from the decisions Codex offers for that request.

Sessions and modes

Mode Approval policy Sandbox
ask untrusted: asks before every command that is not a known-safe read, and before every edit workspace-write
read-only on-request read-only
agent (default) on-request workspace-write
agent-full-access never danger-full-access

Config options: `model` (from `model/list`), `reasoning_effort` (the model's supported effort