Claude Connect OpenClaw Skill - ClawHub
Do you want your AI agent to automate Claude Connect workflows? This free skill from ClawHub helps with clawdbot tools tasks without building custom tools from scratch.
What this skill does
Connect Claude to Clawdbot instantly and keep it connected 24/7. Run after setup to link your subscription, then auto-refreshes tokens forever.
Install
npx clawhub@latest install claude-connectFull SKILL.md
Open original| name | description |
|---|---|
| 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. |
claude-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
clawdbot onboard(fixes OAuth auth-profiles bug)
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
When 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
~/.clawdbot/agents/main/agent/auth-profiles.jsonin proper OAuth format:{ "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_buffer_minutes: Refresh when token has this many minutes left (default: 30)log_file: Where to log refresh activitynotifications.on_success: Notify on successful refresh (default: true)notifications.on_failure: Notify on failure (default: true)notification_target: Your Telegram chat ID (or leave empty to disable)
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