π¦ ClawHub
OpenClaw Doctor (macOS)
by @dr-xiaoming
macOS Gateway 24/7 watchdog with 4-layer health checks and auto-repair. Monitors: L1 process alive, L2 HTTP port, L3 WebSocket communication (1006 detection)...
βοΈ Configuration
1. Copy the script
cp scripts/doctor.sh ~/.openclaw/doctor.sh
chmod +x ~/.openclaw/doctor.sh
2. Configure (optional)
Environment variables for customization:
# In ~/.bashrc or ~/.zshrc (if non-default)
export OPENCLAW_DOCTOR_GATEWAY_URL="http://127.0.0.1:18789" # default
export OPENCLAW_DOCTOR_SERVICE_NAME="ai.openclaw.gateway" # default
export OPENCLAW_DOCTOR_NODE_SERVICE="ai.openclaw.node" # default
3. Install LaunchAgent
Edit references/ai.openclaw.doctor.plist β replace REPLACE_WITH_HOME with your actual home directory path (e.g. /Users/yourname).
# Copy and customize the plist
cp references/ai.openclaw.doctor.plist ~/Library/LaunchAgents/ai.openclaw.doctor.plist
sed -i '' "s|REPLACE_WITH_HOME|$HOME|g" ~/Library/LaunchAgents/ai.openclaw.doctor.plistLoad the service
launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/ai.openclaw.doctor.plist
4. Verify
# Manual test run
bash ~/.openclaw/doctor.shCheck logs
tail -10 ~/.openclaw/logs/doctor.logConfirm caffeinate is running
pgrep -la caffeinateConfirm LaunchAgent is loaded
launchctl list | grep doctor
π Tips & Best Practices
Process alive + HTTP OK but messages don't arrive?
β WS disconnect. Check: grep "1006" /tmp/openclaw/openclaw-$(date +%Y-%m-%d).log | tail -10
Disconnects every night?
β Mac sleep. Verify caffeinate: pgrep -la caffeinate
Doctor itself not running?
β Check LaunchAgent: launchctl list | grep doctor. Reload if missing.
Temporarily disable:
launchctl bootout gui/$(id -u)/ai.openclaw.doctor
TERMINAL
clawhub install openclaw-doctor-macos