chore: switch codex adapter to agentclientprotocol#336
Merged
osolmaz merged 2 commits intoMay 21, 2026
Conversation
3b514d2 to
e517ffe
Compare
Member
|
Landed via temp rebase onto main.
Thanks @dutifulbob! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
ACPX still used the Zed Codex ACP adapter as its built-in Codex backend.
This changes the built-in Codex command to the Agent Client Protocol package and updates the matching docs, tests, and local agent guidance.
It also bumps the built-in Claude ACP adapter range to the latest published
@agentclientprotocol/claude-agent-acppackage.What Changed
The built-in
codexregistry entry now resolves to the Agent Client Protocol package.Codex model selection is documented as normal ACP model selection through advertised model ids and
session/set_model.The built-in
clauderegistry entry now resolves to the current Claude ACP adapter range.src/agent-registry.tstonpx -y @agentclientprotocol/codex-acp@^0.0.44.@agentclientprotocol/claude-agent-acpfrom^0.31.0to^0.36.1.thought_level -> reasoning_effortalias to legacy@zed-industries/codex-acpcommands.Verification
The normal code and docs gates pass, and the published Codex adapter starts successfully through the new default command.
I also ran a real authenticated one-shot Codex message through the published adapter and got the expected response.
The published Claude adapter package at
0.36.1resolves and starts from its package binary.pnpm run checkpnpm run check:docspnpm run build:test && node --test dist-test/test/agent-registry.test.jsnpm view @agentclientprotocol/claude-agent-acp version time --jsonnpx -y --package @agentclientprotocol/codex-acp@0.0.44 codex-acp --versiontimeout 15s npx -y --package @agentclientprotocol/claude-agent-acp@0.36.1 claude-agent-acp --helppnpm run conformance:run -- --case acp.v1.initialize.handshake --agent-command "npx -y @agentclientprotocol/codex-acp@0.0.44" --cwd /tmp/acpx-codex-conformanceHOME=/tmp/acpx-codex-default-home CODEX_HOME=/tmp/acpx-codex-default-home ACPX_HOME=/tmp/acpx-codex-default-acpx timeout 30s node dist/cli.js --cwd /tmp/acpx-codex-default-work --auth-policy fail --format json codex sessions newtimeout 120s node dist/cli.js --agent "npx -y @agentclientprotocol/codex-acp@0.0.44" --cwd /tmp/acpx-codex-message --approve-all --format quiet exec "Reply with exactly acpx-codex-ok and nothing else."Behavior addressed: default
acpx codexnow launches@agentclientprotocol/codex-acpinstead of@zed-industries/codex-acp, and defaultacpx claudenow launches@agentclientprotocol/claude-agent-acp@^0.36.1.Real environment tested: local Linux checkout with the published
@agentclientprotocol/codex-acp@0.0.44package, isolated temp directories for startup/auth smoke, a real authenticated one-shot Codex prompt in/tmp/acpx-codex-message, and the published@agentclientprotocol/claude-agent-acp@0.36.1package binary.Exact steps or command run after this patch:
pnpm run check,pnpm run check:docs, focused registry test rebuild/run, published package version/binary smokes, ACP conformance initialize handshake, isolatedacpx codex sessions newstartup/auth-required smoke, and a real Codexexecprompt.Evidence after fix: conformance reported
Cases: 1 Passed: 1 Failed: 0; the defaultacpx codex sessions newpath returned structuredAUTH_REQUIREDfrom the new adapter instead of failing to spawn; the real prompt returnedacpx-codex-okand exit code 0; the Claude package binary resolved and exited 0.Observed result after fix: the new Codex adapter package is reachable from the built-in command path, ACP initialize/auth negotiation works, a real Codex message turn completes successfully, and the Claude built-in range points at the latest published adapter.
What was not tested: multi-turn persistent Codex session reuse with the new adapter, and a live Claude Code prompt through the bumped Claude adapter.
Risks
The main compatibility risk is users relying on the old Zed adapter's
thought_levelalias through the built-incodexname.That alias is kept only for explicit legacy Zed adapter commands, while the new default follows the current adapter's advertised ACP model ids.