Install
openclaw skills install oauth-coder-bridgeRoutes OpenClaw Anthropic API calls through oauth-coder (Claude CLI with OAuth), no API key needed.
openclaw skills install oauth-coder-bridgeLocal HTTP bridge: OpenClaw → oauth-coder → real claude CLI (OAuth tokens, no API key).
Upstream: codeninja/oauth-cli-coder
oauth-coder installed and authenticated (claude login)OAUTH_CODER_BINbash scripts/setup.sh # copies bridge, adds claude-cli provider to openclaw.json
python3 ~/.openclaw/scripts/oauth-coder-bridge.py &
# Or: systemctl --user enable --now oauth-coder-bridge
curl http://127.0.0.1:8787/health # → {"status":"ok"}
openclaw models set claude # use alias
openclaw models set claude-cli/claude-opus-4-6 # or full path
Opus: claude-opus-4-6, claude-opus-4-5, claude-opus-4-1, claude-opus-4-0
Sonnet: claude-sonnet-4-6, claude-sonnet-4-5, claude-sonnet-4-0, claude-3-7-sonnet-latest, claude-3-5-sonnet-latest
Haiku: claude-haiku-4-5, claude-3-5-haiku-latest
All prefixed with claude-cli/ (e.g. claude-cli/claude-opus-4-6).
OpenClaw → HTTP :8787 → oauth-coder-bridge → oauth-coder → claude CLI
Bridge translates Anthropic-messages JSON → oauth-coder ask claude ... subprocess calls.
| Variable | Default | Description |
|---|---|---|
OAUTH_CODER_BIN | $HOME/bin/oauth-coder | Path to binary |
OAUTH_CODER_BRIDGE_PORT | 8787 | Listen port |
OAUTH_CODER_BRIDGE_HOST | 127.0.0.1 | Bind address |
OAUTH_CODER_BRIDGE_TIMEOUT | 300 | Request timeout (s) |
OAUTH_CODER_BRIDGE_MAX_PROMPT | 100000 | Max prompt length |
OAUTH_CODER_BRIDGE_LOG_FILE | (empty) | Log file (stderr only if unset) |
claude CLI subprocessLOG_FILE is set, prompts/responses may be logged locallycurl http://127.0.0.1:8787/health # check bridge
which oauth-coder # check binary
claude login # re-auth
oauth-coder stop-all # clear stuck sessions
scripts/oauth-coder-bridge.py — bridge serverscripts/setup.sh — installerscripts/update-openclaw-config.py — config updaterreferences/oauth-coder-bridge.service — systemd templateMIT License