Clawdbot ToolsDocumentedScanned

claude-connect

Connect Claude to Clawdbot instantly and keep it connected.

Share:

Installation

npx clawhub@latest install claude-connect

View the full skill documentation and source below.

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:

  • Reads OAuth tokens from macOS Keychain (where Claude CLI stores them)

  • 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
           }
         }
       }

  • 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 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

  • 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

    Repo: