I have a lot of small scripts that are useful only on my own machine: cleanup jobs, sync tasks, backups, local reports, quick data pulls, and lately a few coding-agent tasks.
Putting those on a server felt heavier than the problem. Plain cron or launchd works, but it is not very pleasant when I want to browse available scripts, attach JSON args, check whether a job is still running, or read stdout/stderr after the fact.
So I built CronBox: a local-first macOS menu bar scheduler for scripts and coding-agent tasks.
What it does
CronBox scans folders for executable entry scripts, lets you run them manually, and lets you schedule them as recurring cron jobs or one-shot runs.
It keeps the useful operational bits in one place:
- script directories and selected entrypoints
- aliases, cron expressions, timezones, JSON args, and environment variables
- run history
- live stdout/stderr logs
- macOS notifications when scheduled jobs complete
- skipped runs when the previous run for the same schedule is still queued or running
The main window can be closed while scheduled jobs keep running from the menu bar.
Why this exists
I wanted something between two extremes:
- cron / launchd: reliable, but not friendly when iterating on local scripts
- server-side job runners: powerful, but too much infrastructure for personal machine tasks
CronBox is meant for the messy middle: local automation that you actually want to inspect and adjust.
CLI examples
cronbox add ~/scripts
cronbox add ~/scripts --include daily-report.sh
cronbox schedules add ./daily-report.sh "0 9 * * *" --tz Asia/Shanghai
cronbox schedules add ./reminder.sh "* * * * *" --once
cronbox run ~/scripts daily-report.sh --args '{"date":"today"}'
It also has helpers for creating local Codex and Claude Code task scripts in the default ~/.cronbox workspace.
Install
The current install path is macOS:
curl -fsSL https://raw.githubusercontent.com/xiaoxiunique/cronbox/main/scripts/install-macos.sh | bash
Stack
CronBox is built with Tauri 2, Vue 3, TypeScript, and Rust. It is MIT licensed.
Website: https://cronbox.dev
GitHub: https://github.com/xiaoxiunique/cronbox
I am still polishing packaging and the coding-agent task workflows. I would be interested to hear how other people handle local scheduled scripts: do you prefer a GUI/menu bar tool, or do you keep everything in cron/launchd?
Top comments (0)