Awesome-openclaw-skills claude-connect
Connect Claude to Clawdbot instantly and keep it connected 24/7. Run after setup to link your subscription, then auto-refreshes tokens forever.
git clone https://github.com/sundial-org/awesome-openclaw-skills
T=$(mktemp -d) && git clone --depth=1 https://github.com/sundial-org/awesome-openclaw-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/claude-connect" ~/.claude/skills/sundial-org-awesome-openclaw-skills-claude-connect && rm -rf "$T"
T=$(mktemp -d) && git clone --depth=1 https://github.com/sundial-org/awesome-openclaw-skills "$T" && mkdir -p ~/.openclaw/skills && cp -r "$T/skills/claude-connect" ~/.openclaw/skills/sundial-org-awesome-openclaw-skills-claude-connect && rm -rf "$T"
skills/claude-connect/SKILL.mdclaude-connect
Connect your Claude subscription to Clawdbot in one step.
Automatically:
- ✅ Reads Claude OAuth tokens from Keychain
- ✅ Writes them to Clawdbot in proper OAuth format
- ✅ Auto-refreshes every 2 hours (before expiry)
- ✅ Notifies you on success/failure
- ✅ Works with
(fixes OAuth auth-profiles bug)clawdbot onboard
Quick Start
1. Install the skill:
clawdhub install claude-connect cd ~/clawd/skills/claude-connect
2. Ensure Claude CLI is logged in:
claude auth # Follow the browser login flow
3. Run installer:
./install.sh
That's it! Tokens will refresh automatically every 2 hours.
What It Does
Fixes clawdbot onboard
OAuth Bug
clawdbot onboardWhen you run
clawdbot onboard --auth-choice claude-cli, it sometimes doesn't properly write OAuth tokens to auth-profiles.json.
This skill:
- Reads OAuth tokens from macOS Keychain (where Claude CLI stores them)
- Writes them to
in proper OAuth format:~/.clawdbot/agents/main/agent/auth-profiles.json{ "profiles": { "anthropic:claude-cli": { "type": "oauth", "provider": "anthropic", "access": "sk-ant-...", "refresh": "sk-ant-ort...", "expires": 1234567890 } } } - Sets up auto-refresh (runs every 2 hours via launchd)
- Keeps your connection alive 24/7
Installation
Automatic (Recommended)
cd ~/clawd/skills/claude-connect ./install.sh
The installer will:
- ✅ Verify Claude CLI is set up
- ✅ Create config file
- ✅ Set up auto-refresh job (launchd)
- ✅ Run first refresh to test
Manual
-
Copy example config:
cp claude-oauth-refresh-config.example.json claude-oauth-refresh-config.json -
Edit config (optional):
nano claude-oauth-refresh-config.json -
Test refresh:
./refresh-token.sh --force -
Install launchd job (optional - for auto-refresh):
cp com.clawdbot.claude-oauth-refresher.plist ~/Library/LaunchAgents/ launchctl load ~/Library/LaunchAgents/com.clawdbot.claude-oauth-refresher.plist
Configuration
Edit
claude-oauth-refresh-config.json:
{ "refresh_buffer_minutes": 30, "log_file": "~/clawd/logs/claude-oauth-refresh.log", "notifications": { "on_success": true, "on_failure": true }, "notification_target": "YOUR_CHAT_ID" }
Options:
: Refresh when token has this many minutes left (default: 30)refresh_buffer_minutes
: Where to log refresh activitylog_file
: Notify on successful refresh (default: true)notifications.on_success
: Notify on failure (default: true)notifications.on_failure
: Your Telegram chat ID (or leave empty to disable)notification_target
Usage
Manual Refresh
# Refresh now (even if not expired) ./refresh-token.sh --force # Refresh only if needed ./refresh-token.sh
Check Status
# View recent logs tail ~/clawd/logs/claude-oauth-refresh.log # Check auth profile cat ~/.clawdbot/agents/main/agent/auth-profiles.json | jq '.profiles."anthropic:claude-cli"' # Check Clawdbot status clawdbot models status
Disable Notifications
Ask Clawdbot:
Disable Claude refresh success notifications
Or edit config:
{ "notifications": { "on_success": false, "on_failure": true } }
How It Works
Refresh Process
- Read from Keychain: Gets OAuth tokens from
Claude Code-credentials - Check Expiry: Only refreshes if < 30 minutes left (or
)--force - Call OAuth API: Gets new access + refresh tokens
- Update auth-profiles.json: Writes proper OAuth format
- Update Keychain: Syncs new tokens back
- Restart Gateway: Picks up new tokens
- Notify: Sends success/failure message (optional)
Auto-Refresh (launchd)
Runs every 2 hours via
~/Library/LaunchAgents/com.clawdbot.claude-oauth-refresher.plist
Controls:
# Stop auto-refresh launchctl unload ~/Library/LaunchAgents/com.clawdbot.claude-oauth-refresher.plist # Start auto-refresh launchctl load ~/Library/LaunchAgents/com.clawdbot.claude-oauth-refresher.plist # Check if running launchctl list | grep claude
Troubleshooting
OAuth not working after onboard
Symptom:
clawdbot onboard --auth-choice claude-cli completes but Clawdbot can't use tokens
Fix:
cd ~/clawd/skills/claude-connect ./refresh-token.sh --force
This will write tokens in proper OAuth format.
Tokens keep expiring
Symptom: Auth keeps failing after 8 hours
Fix: Ensure launchd job is running:
launchctl load ~/Library/LaunchAgents/com.clawdbot.claude-oauth-refresher.plist launchctl list | grep claude
No tokens in Keychain
Symptom:
No 'Claude Code-credentials' entries found
Fix: Log in with Claude CLI:
claude auth # Follow browser flow
Then run refresh again:
./refresh-token.sh --force
Uninstall
cd ~/clawd/skills/claude-connect ./uninstall.sh
Or manually:
# Stop auto-refresh launchctl unload ~/Library/LaunchAgents/com.clawdbot.claude-oauth-refresher.plist rm ~/Library/LaunchAgents/com.clawdbot.claude-oauth-refresher.plist # Remove skill rm -rf ~/clawd/skills/claude-connect
Upgrade
If you previously installed an older version:
cd ~/clawd/skills/claude-connect ./validate-update.sh # Check what changed clawdhub update claude-connect # Update to latest ./install.sh # Re-run installer if needed
See Also
- QUICKSTART.md - 60-second setup guide
- UPGRADE.md - Upgrading from older versions
- Clawdbot docs - Model authentication
Version: 1.1.0
Author: TunaIssaCoding
License: MIT
Repo: https://github.com/TunaIssaCoding/claude-connect