Claude Code uses the @agentclientprotocol/claude-agent-acp adapter for ACP support.
docker build -f Dockerfile.claude -t openab-claude:latest .The image installs @agentclientprotocol/claude-agent-acp and @anthropic-ai/claude-code globally via npm.
helm install openab openab/openab \
--set agents.kiro.enabled=false \
--set agents.claude.discord.botToken="$DISCORD_BOT_TOKEN" \
--set-string 'agents.claude.discord.allowedChannels[0]=YOUR_CHANNEL_ID' \
--set agents.claude.command=claude-agent-acp \
--set agents.claude.workingDir=/home/node \
--set image.tag=betaSet
agents.kiro.enabled=falseto disable the default Kiro agent.
Use --set image.tag=<version> to set the image version globally.
The chart auto-appends -<agent> to produce the final tag (see image-tags.md for full details).
| Tag | Resolves to | Description |
|---|---|---|
beta |
beta-claude |
Floating beta channel (latest pre-release) |
0.9.0-beta.2 |
0.9.0-beta.2-claude |
Pinned to exact version |
0.9 |
0.9-claude |
Latest patch in minor (floating) |
stable |
stable-claude |
Floating stable channel |
To override a single agent's image instead of the global tag:
--set agents.claude.image=ghcr.io/openabdev/openab:beta-claude
⚠️ There is nolatesttag. Usebetaorstable, or pin to an exact version.
[agent]
# command defaults from OPENAB_AGENT_COMMAND="claude"
# Only override if you need non-default behaviorSign in interactively using the OAuth device flow. Credentials are stored on disk (persisted via PVC across pod restarts):
kubectl exec -it deployment/openab-claude -- sh -c "$OPENAB_AGENT_AUTH_COMMAND"After authenticating, restart the pod so the bot process loads the new credentials:
kubectl rollout restart deployment/openab-claudeNote:
claude setup-tokenis a different command — it generates a long-lived token for CI/scripts and prints it without saving locally. For container-based deployments,claude auth loginis the correct approach as it persists credentials to the filesystem.