OpenClaw Self-Management
Use this skill when something feels wrong — gateway timeouts, channel disconnects, auth errors.
STEP 1 — Health check (always start here)
openclaw health 2>&1
| Output | Meaning | Go to |
|---|---|---|
OK |
Gateway healthy | Done ✅ |
gateway timeout after 10000ms |
Gateway not responding or device not paired | Section A |
unauthorized role: node |
Device registered as node, needs operator approval | Section A |
pairing required |
Device not yet approved as operator | Section A |
Channel disabled |
Plugin off | Section B |
Channel not configured |
Token missing | Section C |
SECTION A — Device role issue (most common)
What's happening: The gateway is running (LaunchAgent ai.openclaw.gateway is active),
but this device's role is node instead of operator. The fix always requires
an interactive re-onboarding to approve the device — this cannot be done unattended.
Verify gateway is actually running:
launchctl print gui/$UID/ai.openclaw.gateway 2>&1 | grep state
# → state = running (gateway IS up, it's a pairing issue)
# → state missing or not found (gateway process died — see below)
If gateway is running but CLI can't connect → interactive fix required:
Tell Raphael: "I need you to run
openclaw onboardin a terminal and follow the prompts. The gateway is running but my device needs operator approval. Error:{exact error text}"
If gateway process is NOT running (not in launchctl):
# Reload the LaunchAgent
launchctl unload ~/Library/LaunchAgents/ai.openclaw.gateway.plist 2>&1
launchctl load ~/Library/LaunchAgents/ai.openclaw.gateway.plist 2>&1
sleep 5
openclaw health
If launchd plist doesn't exist yet:
openclaw gateway install
# Then reload as above
After Raphael runs openclaw onboard:
openclaw health # should return OK
openclaw channels status
SECTION B — Plugin disabled
openclaw plugins enable telegram
launchctl kickstart -k gui/$UID/ai.openclaw.gateway
sleep 3
openclaw channels status
SECTION C — Channel not configured
openclaw plugins enable telegram
openclaw channels add --channel telegram --token "$TELEGRAM_BOT_TOKEN"
openclaw config set channels.telegram.dmPolicy pairing
launchctl kickstart -k gui/$UID/ai.openclaw.gateway
sleep 3
openclaw channels status
FULL SYSTEM CHECK
After any fix:
openclaw health
openclaw channels status
launchctl print gui/$UID/ai.openclaw.gateway | grep -E "state|pid"
REPORTING TO RAPHAEL
When reporting, always include:
- Exact symptom seen
- Command run to diagnose
- Exact error text from logs:
cat ~/.openclaw/logs/gateway.log | tail -20 - Gateway state:
launchctl print gui/$UID/ai.openclaw.gateway | grep state
If interactive fix is required, be explicit: "I can't fix this without you running a command."