← Back to Clawdbot Tools
Clawdbot Tools by @tunaissacoding

claude-connect

Connect Claude to Clawdbot instantly and keep it connected 24/7

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

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


Version: 1.1.0
Author: TunaIssaCoding
License: MIT
Repo: https://github.com/TunaIssaCoding/claude-connect