Skill: tunaissacoding/claude-connect (version 1.1.0)

--- name: claude-connect description: "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:** ```bash clawdhub install claude-connect cd ~/clawd/skills/claude-connect ``` **2. Ensure Claude CLI is logged in:** ```bash claude auth # Follow the browser login flow ``` **3. Run installer:** ```bash ./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**: ```json { "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) ```bash 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: ```bash cp claude-oauth-refresh-config.example.json claude-oauth-refresh-config.json ``` 2. Edit config (optional): ```bash nano claude-oauth-refresh-config.json ``` 3. Test refresh: ```bash ./refresh-token.sh --force ``` 4. Install launchd job (optional - for auto-refresh): ```bash 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`: ```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 ```bash # Refresh now (even if not expired) ./refresh-token.sh --force # Refresh only if needed ./refresh-token.sh ``` ### Check Status ```bash # 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: ```json { "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:** ```bash # 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:** ```bash 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: ```bash 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: ```bash claude auth # Follow browser flow ``` Then run refresh again: ```bash ./refresh-token.sh --force ``` --- ## Uninstall ```bash cd ~/clawd/skills/claude-connect ./uninstall.sh ``` Or manually: ```bash # 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: ```bash 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-connect


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: suspicious | SkillSpector: suspicious (CRITICAL)