automations
A registry over the user’s scheduled Claude work. The daemons already run via macOS launchd; this skill makes them visible and manageable from one place.
Subcommands
list (default)
Run ~/.claude/scripts/automations-list.sh. Prints a table: label · cadence · last run (log mtime) · status. Also flags active crontab lines. Read-only.
inspect <label>
Tail the job’s log to see recent output: tail -n 40 ~/.claude/logs/com.example.claude-<label>.log (launchd stderr is the separate *.launchd.log.) Use this when status shows empty or a run looks wrong.
add
Scaffold a NEW scheduled job. Steps:
- Gather: short name, the script under
~/.claude/scripts/to run, and the schedule (hour/minute, or weekdays). - Copy
~/.claude/skills/automations/assets/template.plistto~/Library/LaunchAgents/com.example.claude-<name>.plist, substituting__NAME__,__SCRIPT__,__HOUR__,__MINUTE__(add moreStartCalendarIntervaldict entries for multiple weekdays — mirrorcom.example.claude-morning.plist). - Confirm with the user before loading — never auto-load. Then:
launchctl load ~/Library/LaunchAgents/com.example.claude-<name>.plist - Verify: re-run
listand confirm the new label appears.
Scheduling a recurring autonomous Claude run is outward-facing and recurring — always confirm cadence + command with the user before
launchctl load.
Notes
- Cadence parsing:
StartInterval→ “every Ns”;StartCalendarInterval→ “calendar (N entries)” (one entry per fire time, e.g. 5 weekday mornings). - “Last run” = mtime of
~/.claude/logs/com.example.claude-<label>.log, the app log the job appends to (not the launchd wrapper log). - Known jobs at time of authoring:
morning,observatory,maintenance,reauth-watch.
Related
~/.claude/scripts/automations-list.sh— the lister this wraps./loop,/goal— in-session recurring/objective work (not launchd-scheduled).