I'm trying to set up a persistent ACP binding for Claude Code on a Discord channel. I have:
- OpenClaw v2026.3.13
- acpx v0.3.0 installed (plugin shows "acpx runtime backend ready" in logs)
- Claude Code CLI v2.1.76 installed
- ANTHROPIC_API_KEY set in environment
- acp.enabled: true, acp.backend: "acpx", acp.defaultAgent: "claude-code"
My config has a "claude" agent with runtime.type: "acp" and a binding:
json
{
"type": "acp",
"agentId": "claude",
"match": {
"channel": "discord",
"accountId": "default",
"peer": { "kind": "channel", "id": "1482768140008947932" }
}
}
The agent:
json
{
"id": "claude",
"runtime": {
"type": "acp",
"acp": {
"agent": "claude-code",
"backend": "acpx",
"mode": "persistent",
"cwd": "/home/aibot/clawd"
}
}
}
Problem: Messages sent in that channel produce zero log entries — the gateway completely ignores them. No errors, no ACP dispatch, nothing. Other channels (regular agent bindings) work fine. The acpx backend registers and shows ready.
What am I missing for persistent ACP channel bindings to actually dispatch messages to Claude Code?