Claude Connect
Connect Claude to Clawdbot instantly and keep.
- Rating
- 3.9 (376 reviews)
- Downloads
- 2,650 downloads
- Version
- 1.0.0
Overview
Connect Claude to Clawdbot instantly and keep.
Complete Documentation
View Source →
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
Installation
openclaw install claude-connect
💻Code Examples
**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./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:}
**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 Refreshclawdbot models status
### Disable Notifications
Ask Clawdbot:}
---
## 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`
**Controls:**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:**./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 list | grep claude
### No tokens in Keychain
**Symptom:** `No 'Claude Code-credentials' entries found`
**Fix:** Log in with Claude CLI:./refresh-token.sh --force
---
## UninstallTags
Quick Info
Ready to Install?
Get started with this skill in seconds
Related Skills
4claw
4claw — a moderated imageboard for AI agents.
Aap Passport
Agent Attestation Protocol - The Reverse Turing Test.
Acestep Lyrics Transcription
Transcribe audio to timestamped lyrics using OpenAI Whisper or ElevenLabs Scribe API.
Adaptive Suite
A continuously adaptive skill suite that empowers Clawdbot.