Prepared for #3192. This is local maintainer prep only; do not open or push the
external agentclientprotocol/registry PR from this train.
Checked against agentclientprotocol/registry on 2026-06-14:
- New entries live in a directory whose name matches the
idfield. - Each entry needs
agent.jsonplus a requiredicon.svg. agent.jsonrequiresid,name,version,description, and at least onedistributionmethod.- Supported distribution methods are
binary,npx, anduvx. - Package and binary versions must match the entry version, and
latestis not allowed. - Binary platform ids are
darwin-aarch64,darwin-x86_64,linux-aarch64,linux-x86_64,windows-aarch64, andwindows-x86_64. - Icons must be 16x16 SVG, square, monochrome, and use
currentColor. - Registry CI runs an auth check:
initializemust return at least oneauthMethodsentry withtype: "agent"ortype: "terminal".
Sources for the external PR author:
- https://github.com/agentclientprotocol/registry
- https://github.com/agentclientprotocol/registry/blob/main/FORMAT.md
- https://github.com/agentclientprotocol/registry/blob/main/CONTRIBUTING.md
- https://github.com/agentclientprotocol/registry/blob/main/AUTHENTICATION.md
- https://github.com/agentclientprotocol/registry/blob/main/agent.schema.json
CodeWhale already exposes ACP through codewhale serve --acp.
Implemented locally:
crates/tui/src/main.rsacceptsserve --acpand dispatches to the ACP server.crates/tui/src/acp_server.rsimplements JSON-RPC 2.0 over newline-delimited stdio.initializeadvertises:agentInfo.name = "codewhale"agentInfo.title = "codewhale"agentInfo.version = env!("CARGO_PKG_VERSION")promptCapabilities.embeddedContext = trueloadSession = falsemcpCapabilities.http = falsemcpCapabilities.sse = falseauthMethodswith terminal auth:auth set --provider <provider>
session/newcreates an in-memory session with a cwd.session/promptaccepts string prompts plus text/resource/resource_link blocks, routes through the configured CodeWhale client, emits onesession/updateagent message chunk, then returnsstopReason: "end_turn".session/cancelcurrently returnsnull.
Known limitations to state clearly:
- The adapter is baseline ACP, not the full interactive TUI/runtime surface.
session/cancelis accepted but does not cancel an in-flight provider call yet.- The response is emitted after the provider completes; it is not token streaming.
- ACP does not expose shell tools, file-write tools, checkpoint replay, session loading, or the HTTP/SSE runtime API.
- Registry submission should be gated on a local run of the upstream registry auth-check before opening the external PR.
Recommendation: submit an npx distribution first after the matching npm
version is published. It avoids direct release-asset URL churn and lets the npm
wrapper handle platform selection, checksums, mirrors, and glibc preflight.
Create this directory in agentclientprotocol/registry:
codewhale/
agent.json
icon.svg
Replace 0.8.61 with the final published CodeWhale version. Do not use
@latest.
{
"id": "codewhale",
"name": "CodeWhale",
"version": "0.8.61",
"description": "Provider-agnostic terminal coding agent with first-class DeepSeek support.",
"repository": "https://github.com/Hmbown/CodeWhale",
"website": "https://github.com/Hmbown/CodeWhale/blob/main/docs/RUNTIME_API.md#acp-stdio-adapter-codewhale-serve---acp",
"authors": ["Hunter Bown"],
"license": "MIT",
"distribution": {
"npx": {
"package": "codewhale@0.8.61",
"args": ["serve", "--acp"]
}
}
}<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none">
<path d="M2 9.5c0-3.3 2.7-6 6-6h4.5v2H8a4 4 0 0 0-4 4v.5h7.5a2.5 2.5 0 0 0 2.4-1.8l.6-2.2H16l-.7 2.7A4 4 0 0 1 11.5 12H4.2A3 3 0 0 1 2 9.5Z" fill="currentColor"/>
<path d="M5 7h1.5v1.5H5V7Zm3 0h1.5v1.5H8V7Z" fill="currentColor"/>
</svg>Title:
Add CodeWhale ACP agent
Body:
Adds CodeWhale to the ACP registry.
CodeWhale is a provider-agnostic terminal coding agent with first-class
DeepSeek support. The submitted distribution uses the published npm package and
runs `codewhale serve --acp`.
Local readiness checked in Hmbown/CodeWhale:
- ACP stdio adapter exists at `codewhale serve --acp`.
- `initialize` returns terminal auth via `auth set --provider <provider>`.
- `session/new`, `session/prompt`, and `session/cancel` are implemented.
- The adapter is intentionally baseline: no ACP shell/file tools, no session
load, and no provider-token streaming yet.
Version: 0.8.61
- Confirm
codewhale@0.8.61is published to npm, or switch the draft to versioned GitHub Release binary URLs that exist. - Run the upstream registry validator:
python3 .github/workflows/verify_agents.py --auth-check --agent codewhale - Verify
npx codewhale@0.8.61 serve --acpreturnsauthMethodsfrominitializeon a clean machine. - Keep the external PR body explicit that ACP support is baseline and does not imply the full TUI/runtime API is available inside ACP.