Connect Claude to Clawdbot instantly and keep it connected 24/7. Run after setup to link your subscription, then auto-refreshes tokens forever.
Install
Documentation
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:
1. Reads OAuth tokens from macOS Keychain (where Claude CLI stores them)
2. Writes them to ~/.clawdbot/agents/main/agent/auth-profiles.json in proper OAuth format:
{
"profiles": {
"anthropic:claude-cli": {
"type": "oauth",
"provider": "anthropic",
"access": "sk-ant-...",
"refresh": "sk-ant-ort...",
"expires": 1234567890
}
}
}
3. Sets up auto-refresh (runs every 2 hours via launchd)
4. 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
1. Copy example config:
cp claude-oauth-refresh-config.example.json claude-oauth-refresh-config.json
2. Edit config (optional):
nano claude-oauth-refresh-config.json
3. Test refresh:
./refresh-token.sh --force
4. 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 activity - -
notifications.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
1. Read from Keychain: Gets OAuth tokens from Claude Code-credentials
2. Check Expiry: Only refreshes if < 30 minutes left (or --force)
3. Call OAuth API: Gets new access + refresh tokens
4. Update auth-profiles.json: Writes proper OAuth format
5. Update Keychain: Syncs new tokens back
6. Restart Gateway: Picks up new tokens
7. Notify: Sends success/failure message (optional)
Auto-Refresh (launchd)
Runs every 2 hours via ~/Library/LaunchAgents/com.clawdbot.claude-oauth-refresher.plist
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](QUICKSTART.md) - 60-second setup guide
- -[UPGRADE.md](UPGRADE.md) - Upgrading from older versions
- -[Clawdbot docs](https://docs.clawd.bot) - Model authentication
---
Version: 1.1.0 Author: TunaIssaCoding License: MIT Repo: https://github.com/TunaIssaCoding/claude-connectLaunch an agent with Claude Connect on Termo.