Releases: openclaw/acpx
Releases · openclaw/acpx
acpx 0.11.0
v0.11.0
Changes
- Agents/built-ins: bump the default Claude ACP adapter range to
@agentclientprotocol/claude-agent-acp@^0.37.0. Thanks @trumpyla. - Runtime/embedding: surface cost, token usage breakdowns, and advertised command metadata on runtime status/events. Thanks @DaniAkash.
- Agents/built-ins: add
fast-agentas a built-in fast-agent ACP adapter viauvx fast-agent-mcp acp. - Agents/built-ins: add
muxas a built-in coder/mux ACP adapter vianpx -y mux@^0.27.0 acp. Thanks @ThomasK33. - CLI: add
acpx compareto run one prompt across multiple agents and summarize timing, token usage, stop reason, permissions, and final output side by side. Thanks @mvanhorn.
Fixes
- CLI/Claude: isolate built-in Claude ACP sessions from user settings by default so globally enabled channel and daemon plugins cannot interfere with a spawned session. Set
ACPX_CLAUDE_INCLUDE_USER_SETTINGS=1to restore user settings deliberately. Fixes #361. - ACP/models: support SDK 0.25 model config options while preserving
session/set_modelcompatibility for adapters that explicitly advertise legacy model metadata. - CLI/Claude: let Claude Code adjudicate model selectors missing from a stale advertised model list on later persistent turns, and preserve the adapter-reported current model after model switches. Thanks @oakif.
- Client/ACP: advertise scoped Devin/Windsurf-compatible client metadata and handle Devin extension requests/notifications without noisy method-not-found logs. Thanks @LivioGama.
- Runtime/sessions: treat corrupt public file-session records as missing while preserving genuine filesystem errors. Thanks @KrasimirKralev.
Verification
- npm: https://www.npmjs.com/package/acpx/v/0.11.0
- Registry tarball: https://registry.npmjs.org/acpx/-/acpx-0.11.0.tgz
- Integrity:
sha512-l42LJFmd6kvbr1UytvwWmr5Mdy/v9l3FM6Necs01PWbjUIkxjCdxg97duqoRfRqxtDAfnNPb1IlgIf2ZgMZQqA== - Candidate CI: https://github.com/openclaw/acpx/actions/runs/27676359224
- Trusted publish: https://github.com/openclaw/acpx/actions/runs/27676823793
- Packed CLI and real Codex ACP adapter E2E passed before tagging.
2026.5.23 (v0.10.0)
Changes
- CLI/sessions: add
sessions exportandsessions importfor moving portable session archives between machines. Thanks @mvanhorn.
Release Proof
- npm: https://www.npmjs.com/package/acpx/v/0.10.0
- registry tarball: https://registry.npmjs.org/acpx/-/acpx-0.10.0.tgz
- integrity:
sha512-hd48XV03gG3sd409T1lDrOKJTTz1ap4g0wrndXjxQ590tN85pBYlvfNLyerybvGRrtUGsZjNdt99r1jpIt6ukA== - release workflow: https://github.com/openclaw/acpx/actions/runs/26323055145
- CI: https://github.com/openclaw/acpx/actions/runs/26323053524
2026.5.22 (v0.9.0)
2026.5.22 (v0.9.0)
Changes
- Tooling: add Slophammer TypeScript quality gates for coverage, complexity,
unsafe types, mutation testing, DRY checks, and dependency boundaries. - Agents/built-ins: switch the default Codex adapter to
@agentclientprotocol/codex-acp, with Codex model selection handled through advertised ACP model ids, and bump the default Claude ACP adapter range. - Tooling: add a repo-local autoreview skill and helper for Codex-first
closeout review with acpx checks in parallel.
Breaking
Fixes
- CLI: treat
--versionafter--as prompt text instead of intercepting it as a top-level version request. - CLI: keep custom raw agent commands routed correctly when global flags such as
--system-prompt,--append-system-prompt,--prompt-retries, or--no-terminalappear before the agent name. Thanks @amknight. - CLI/API: avoid installing CLI-only process handlers when the package entrypoint is imported as a module.
- CLI/sessions: use agent-side ACP
session/listwhen available, including
cursor pagination, cwd filtering, and agent-native session metadata. Thanks
@amknight. - Sessions/reconnect: use ACP
session/resumewhen adapters advertise it, so resume-only agents can reuse saved sessions without requiringsession/load. Thanks @amknight. - CLI/ACP: validate rich prompt blocks against advertised ACP
promptCapabilitiesand support audio prompt content end-to-end. Thanks
@amknight. - CLI/status: hide stale cached session PIDs when no live helper process exists. Thanks @dutifulbob.
Verification
- Release commit: 00e4c94
- CI: https://github.com/openclaw/acpx/actions/runs/26296525270
- CodeQL: https://github.com/openclaw/acpx/actions/runs/26296524087
- Release workflow: https://github.com/openclaw/acpx/actions/runs/26296790573
- npm version: https://www.npmjs.com/package/acpx/v/0.9.0
- npm tarball: https://registry.npmjs.org/acpx/-/acpx-0.9.0.tgz
- npm integrity: sha512-y12XZ0hqtnDXkbap12YFjNCSePdoU2+9YPF+dAy8G/duytOMJhOnnysT+XWmX16NvMFQuRnW77B3rljunKPtCw==
- npm publish time: 2026-05-22T15:30:52.586Z
2026.5.15 (v0.8.0)
2026.5.15 (v0.8.0)
npm: https://www.npmjs.com/package/acpx/v/0.8.0
registry tarball: https://registry.npmjs.org/acpx/-/acpx-0.8.0.tgz
integrity: sha512-mI8ma3sDz8QfI2c40iiOAQ3iklpdv0XB7YFieOIcZZWw8dBTGsbFn4qqgbKQjDBX8S/yIWiKvmqi5j/L8c2kUQ==
published: 2026-05-15T15:51:32.704Z
release CI: https://github.com/openclaw/acpx/actions/runs/25927300574
commit: 994fc6c
Changelog
Changes
- Runtime/embedding: add an optional
onPermissionRequestcallback toAcpRuntimeOptionsandAcpClientOptionsso embedders can intercept ACP per-call permission requests with their own UI. Returning a decision short-circuits the mode-based resolver; returningundefinedfalls through to it, leaving CLI behavior unchanged. Thanks @DaniAkash. - Runtime/embedding:
AcpRuntime.ensureSessionnow acceptssessionOptions(systemPrompt,model,allowedTools,maxTurns) for fresh sessions, threading the values into_meta.systemPrompt(and_meta.claudeCode.options.*) on the underlyingsession/newrequest and persisting them onto the new record. Reusing an existing persistent record continues to ignoresessionOptionssince system prompts are fixed atnewSessiontime.SessionAgentOptionsandSystemPromptOptionare now re-exported fromacpx/runtime. Thanks @DaniAkash. - Runtime/embedding: surface advertised models on
AcpRuntimeStatus.modelsso embedders can build model pickers without reaching into private session records. Thanks @DaniAkash. - CLI/permissions: add
--permission-policy/--policyfor per-tool ACP permission rules withautoApprove,autoDeny,escalate, anddefaultAction; non-interactive escalations now surface structured tool name/input metadata for orchestrators.
Breaking
Fixes
- Runtime/embedding: preserve structured ACP
tool_call_updatedetails on public runtime events, including content, output, locations, kind, and raw payload fields, so embedders can display live tool progress. (#306) Thanks @joeia26. - CLI/sessions: checkpoint live assistant and tool updates while prompt turns are still running, so
sessions readandsessions historycan show in-flight progress instead of only the submitted prompt. (#314) Thanks @AndroidPoet. - Flows: keep external TypeScript flow modules that import
acpx/flowscompatible with currenttsxloader behavior. - Terminal: run no-argument
terminal/createcommand lines so agents that send an unsplit command do not fail withENOENT. Thanks @xdjyxu. - CLI/config: accept command-local
--formatonconfig showandconfig init. - CLI/sessions: accept the documented
-sshorthand onsessions newandsessions ensure. - Replay viewer: add help output for
pnpm viewer --helpwithout starting a server. - Replay viewer: make
pnpm viewer statusandpnpm viewer stopdispatch to the requested command instead of always prependingstart. - Package: keep
npm pack --jsonoutput parseable by running the prepack build quietly. - CLI/output: exit cleanly on broken pipes so common pipelines such as
acpx ... | grep -q ...do not crash with an unhandledEPIPE. - Tooling: document the current Node.js 22.13+ and pnpm 10.33.2 floor.
- Tooling/docs: document npm-based pnpm bootstrap for clean Node 22.13 setups with stale Corepack signing keys.
- Docs/auth: document the supported
authPolicyvalues and ACP credential selection behavior. - Docs/skills: make the quick setup skill-install command noninteractive and route unsupported harnesses to the reference URL.
- CLI/queue: honor per-request
--prompt-retrieswhen sending a prompt to an already-warm persistent queue owner. - Runtime/embedding: reject unsupported advertised config option keys before forwarding them to adapters, and map generic
thinkingcontrols to advertisedeffortoptions when available. (#293)
acpx 0.6.0
Changes
- CLI/claude: add
--system-prompt <text>and--append-system-prompt <text>global flags that forward through ACP_meta.systemPromptonsession/new, letting callers replace or append to the Claude Code system prompt without dropping out of persistent acpx sessions. The value is persisted insession_options.system_promptso ensure/reuse flows keep the override. Codex and other agents ignore the field. (#229) Thanks @Vercantez. - CLI/sessions: add
sessions prunewith--dry-run, age filters, and--include-historyso closed session records and optional event streams can be cleaned up explicitly. (#227) Thanks @coder999999999. - Runtime/embedding: add
startTurn(...)turn handles so embedders can observe live runtime events separately from terminal completion, cancel a turn, or close only the event stream while preservingrunTurn(...)compatibility. (#262) Thanks @enki. - CLI/ACP: add
--no-terminalto disable advertised ACP terminal capability for new agent clients. (#155) Thanks @DMQ. - Agents/built-ins: bump the default
@agentclientprotocol/claude-agent-acp,@zed-industries/codex-acp, andpi-acppackage ranges so fresh built-in launches pick up the latest adapter releases. (#253, #275) Thanks @flowforgelab. - Conformance/ACP: add a post-success drain case that catches late tool updates emitted after
session/promptresolves. (#252) Thanks @logofet85-ai. - Docs/session identity: clarify when CLI output shows ACPX runtime session IDs versus backend agent session IDs.
- Dependencies/CI: update ACP SDK, runtime dependencies, TypeScript-native tooling, formatter/lint tooling, and workflow actions.
Breaking
Fixes
- CLI/runtime: persist non-mode
session/set_config_optionvalues and replay them on fresh adapter sessions, so options such as Codexreasoning_effortsurvive session fallback/reuse. (#138) - CLI/prompt: honor
--modelwhen sending prompts to existing persistent sessions, including queued owner paths. (#211) Thanks @skywills. - Runtime/persistent sessions: keep reusable persistent ACP clients warm across turns and close pooled clients during runtime close. (#265) Thanks @Sway-Chan.
- Runtime/ACP: drain late post-success session updates before closing prompt turns so adapters that resolve
session/promptbefore final updates do not drop assistant output. (#251) Thanks @logofet85-ai. - Runtime/embedding: reuse the saved persistent session when sending runtime controls instead of creating a new backend session for control operations.
- CLI/sessions: persist the submitted prompt at turn start so
sessions historyandsessions readno longer reportNo historywhile an active prompt is already running. (#157) - Runtime/WSL: translate session cwd with
wslpathwhen running under WSL and spawning Windows.exeACP agents, sosession/newandsession/loadreceive paths the agent can access. (#232) - Client/auth: require explicit
ACPX_AUTH_*env vars or configauthentries for ACP auth-method selection, so ambient provider env likeOPENAI_API_KEYno longer triggers unintended login flows in adapters such ascodex-acp. - Config/agents: honor custom agent
argsarrays from config instead of silently dropping required adapter subcommands. (#199) Thanks @log-li. - CLI/queue: tighten persistent queue and IPC socket directories to owner-only permissions, including previously-created permissive directories. (#216) Thanks @garagon.
- CLI/queue: use cryptographically random owner generation IDs so rapid queue owner restarts cannot reuse a stale generation token. (#207) Thanks @Yuan-ManX.
- Output/errors: add text-mode remediation hints for auth-required, missing-session, ACP session failures, timeouts, provider rate limits, and invalid model names while keeping JSON error payloads stable. (#256) Thanks @SJeffZhang.
- CLI/quiet output: emit final token usage and cost metadata to stderr when adapters include it in the ACP prompt result, while keeping quiet stdout as assistant text only. (#257)
- CLI/status: report resumable persistent sessions as
idlewhen no queue owner is running, instead of marking pre-prompt or TTL-expired sessions as dead. (#185) - Client/ACP: use the locked ACP SDK close API path so session closing stays compatible with the current SDK.
- Runtime/doctor: guarantee
doctor().detailscontains strings even when probe failures include Error or object values. (#267) - Replay viewer: protect run-bundle file reads from run-id boundary escapes.
acpx 0.5.3
acpx 0.5.2
What's Changed
- fix: close backend sessions on reset by @dutifulbob in #228
Full Changelog: v0.5.1...v0.5.2
acpx 0.5.1
What's Changed
- fix: own built-in adapter launches by @dutifulbob in #226
Full Changelog: v0.5.0...v0.5.1
acpx 0.5.0
acpx 0.4.1
What's Changed
- chore(deps-dev): bump @typescript/native-preview from 7.0.0-dev.20260326.1 to 7.0.0-dev.20260328.1 by @dependabot[bot] in #203
- chore(deps): bump @agentclientprotocol/sdk from 0.17.0 to 0.17.1 in the production group by @dependabot[bot] in #200
- chore(deps-dev): bump typescript from 5.9.3 to 6.0.2 by @dependabot[bot] in #202
- feat: stream replay viewer runs live by @osolmaz in #205
- [codex] bump codex and claude ACP adapter pins by @osolmaz in #215
Full Changelog: v0.4.0...v0.4.1