
Plist Drift Detector
Catch macOS launchd jobs that drift from checked-in plist source-of-truth before silent outages pile up on your agent host.
Overview
plist-drift-detector is a MCP server for the Operate phase that compares macOS launchd loaded labels to source plists every six hours and alerts on drift.
What is this MCP server?
- Runs every 6 hours comparing loaded launchd labels to plists under config/launchd/
- Telegram alerts when labels exist only on disk or only in launchctl
- Cooldown state file avoids repeat pings on stable, acknowledged drift
- Detector capability tagged for federation telemetry to Daily AI Agents hub
- Reconciliation interval: every 6 hours
- Server schema version: 2025-10-17
- Package version: 0.1.0
What problem does it solve?
Agent cron jobs on macOS can silently diverge from the plists you committed, and you only notice when a skill stops firing.
Who is it for?
Solo builders operating Daily AI Agents or OpenClaw-style skill packs on macOS with launchd-managed runners.
Skip if: Teams on pure Linux/Kubernetes schedulers with no launchd or Telegram ops channel.
What do I get? / Deliverables
You get periodic drift checks, Telegram alerts with cooldown, and a clear signal when launchctl and config/launchd/ disagree.
- Six-hour drift comparisons between launchctl list and config plists
- Telegram notifications with cooldown-backed deduplication
- Persistent drift state for stable mismatch tracking
Recommended MCP Servers
Journey fit
Drift detection on production schedulers is a run-phase concern: you only need it after launchd plists are loading real work. Periodic compare of launchctl list vs config plists is continuous observability, not a one-time ship gate.
How it compares
launchd drift monitor via MCP, not a generic infrastructure-as-code linter.
Common Questions / FAQ
Who is plist-drift-detector for?
Indie operators on macOS who use launchd plists as the source of truth for agent and skill schedules.
When should I use plist-drift-detector?
After you standardize plists in config/launchd/ and want automated checks every six hours instead of manual launchctl audits.
How do I add plist-drift-detector to my agent?
Register the MCP server from the dailyai-os plist-drift-detector package in your Claude Code, Cursor, or compatible client MCP config and point it at your config/launchd/ tree.