← ClaudeAtlas

schedulelisted

Use when creating or editing a macOS LaunchAgent for a recurring or scheduled script. Covers plist structure, PATH resolution, multiple trigger times, the reload workflow, and which behaviors launchd already handles so they don't need to be rebuilt.
LandonSchropp/agent-toolkit · ★ 2 · AI & Automation · score 57
Install: claude install-skill LandonSchropp/agent-toolkit
# Schedule ## Where things live - Plist: `Library/LaunchAgents/com.landonschropp.<name>.plist` in the `~/.dotfiles` repo, rcup-linked to `~/Library/LaunchAgents` - Logs: `~/Library/Logs/com.landonschropp.<name>/{stdout,stderr}.log`, set via `StandardOutPath`/`StandardErrorPath` ## Plist template ```xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>com.landonschropp.NAME</string> <key>ProgramArguments</key> <array> <string>/bin/zsh</string> <string>-lc</string> <string>COMMAND</string> </array> <key>StandardOutPath</key> <string>/Users/landon/Library/Logs/com.landonschropp.NAME/stdout.log</string> <key>StandardErrorPath</key> <string>/Users/landon/Library/Logs/com.landonschropp.NAME/stderr.log</string> <key>StartCalendarInterval</key> <array> <dict> <key>Hour</key> <integer>7</integer> </dict> </array> </dict> </plist> ``` **REQUIRED:** `ProgramArguments` MUST run the command through `/bin/zsh -lc "COMMAND"`, never bare. launchd jobs skip the login shell, so `PATH` is missing `~/.local/bin` and everything rcup manages. `-lc` sources the login profile, putting commands like `sync-repositories` on `PATH`. ## Multiple trigger times `StartCalendarInterval` is an array of dicts, not a single time. Each dict is one full trigger spec