Localsetup localsetup-cron-orchestrator
Manage cron from a repo-local manifest: time triggers, on-boot-with-delay, sequenced tasks; create, remove, reorder, install.
install
source · Clone the upstream repo
git clone https://github.com/CruxExperts/localsetup
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/CruxExperts/localsetup "$T" && mkdir -p ~/.claude/skills && cp -r "$T/_localsetup/skills/localsetup-cron-orchestrator" ~/.claude/skills/cruxexperts-localsetup-localsetup-cron-orchestrator && rm -rf "$T"
manifest:
_localsetup/skills/localsetup-cron-orchestrator/SKILL.mdsource content
Cron orchestrator
Define triggers and tasks in a single YAML manifest. One trigger (e.g. midnight) runs multiple tasks in sequence; supports on-boot with delay. Tooling: create, remove, reorder, enable/disable, install (generate crontab fragment).
Manifest (cron/manifest.yaml)
triggers: midnight-utc: schedule: "0 0 * * *" after-boot: on_boot_delay_minutes: 5 tasks: - id: snapshot-daily trigger: midnight-utc sequence_order: 1 command: "python3 _localsetup/skills/localsetup-system-info/scripts/system_snapshot.py --output-basename \"reports/system-snapshots/$(hostname)/$(date -u +%Y%m%dT%H%M%SZ)\"" enabled: true
- Triggers:
= cron expression;schedule
= run N minutes after reboot (single @reboot + sleep).on_boot_delay_minutes - Tasks:
,trigger
(order within trigger),sequence_order
(one line, shell-expanded),command
.enabled
Commands (from repo root)
All use
--manifest cron/manifest.yaml (default).
| Command | Purpose |
|---|---|
| Check manifest and trigger refs |
[--trigger NAME] | List tasks (optionally for one trigger) |
[--sequence-order N] [--id ID] | Add task |
or | Remove by id or all for trigger |
| Set run order for that trigger |
/ | Toggle task |
[--repo-root PATH] [--output PATH] | Generate crontab fragment (or write to file) |
Runner (used by cron):
run_trigger.py --manifest PATH --repo-root PATH TRIGGER runs that trigger's tasks in sequence.
Patterns for agents
- Add a daily snapshot at midnight:
.add-task --trigger midnight-utc --command "python3 _localsetup/skills/localsetup-system-info/scripts/system_snapshot.py --output-basename \"reports/system-snapshots/$(hostname)/$(date -u +%Y%m%dT%H%M%SZ)\"" - Add on-boot trigger: In manifest, add trigger with
; then add tasks to it.on_boot_delay_minutes: 5 - Reorder:
.reorder --trigger midnight-utc --order snapshot-daily,cleanup,notify - Remove one task:
. Remove all for a trigger:remove-task --id snapshot-daily
.remove-task --trigger midnight-utc - Apply cron: Run
, theninstall --output cron/crontab.generated
or merge into existing crontab.crontab cron/crontab.generated