Healthcheck
Keeps your AI running smoothly. Watches for problems, fixes what it can, and alerts you about the rest. Includes a daily backup system with verification. Zero npm dependencies. Runs via macOS LaunchAgent.What It Does
Runs every 3 minutes and checks:- Gateway process … is your AI’s gateway running?
- HTTP probe … does the gateway respond to requests?
- File descriptors … is the gateway approaching system limits?
- Token usage … are any sessions near context window capacity?
- Memory health (every 5th run) … NULL embedding vectors, API key errors, session export freshness, memory capture errors
- Auto-restart: Restarts the gateway automatically (rate-limited so it doesn’t loop)
- AI alert: Sends a message to your AI via the chat endpoint
- iMessage fallback: Direct iMessage to you if the AI is unreachable
Install
Backup system (optional)
- A LaunchAgent that runs daily backups at midnight
- A scheduled job that verifies the backup at 00:30
Configuration
Copyconfig.example.json to config.json and edit:
Key Fields
| Field | What | Default |
|---|---|---|
gateway.token | Gateway auth token. Auto-read from openclaw.json if empty. | "" |
escalation.escalationContact | iMessage address for direct fallback alerts. | "" |
escalation.viaAgent | Try alerting your AI before iMessage. | true |
paths.openclawHome | OpenClaw home folder. | $OPENCLAW_HOME or ~/.openclaw |
paths.backupRoot | Where daily backups go. Empty skips backup verification. | "" |
backup.retentionDays | Days of backups to keep. | 7 |
Backup Sources
Add custom backup sources tobackup.sources:
file (copy), tar (archive directory), dir (recursive copy).
If sources is empty, the backup script backs up core files automatically (crystal.db, context-embeddings.sqlite, main.sqlite, workspace, sessions, config).
Manual Run
Uninstall
Files
Requirements
- Node.js (18+)
- macOS (uses LaunchAgent, iMessage, lsof)
- OpenClaw gateway running