Zashiki Warashi

vs cron and launchd

cron, launchd, and Zashiki all run a command at a time. The difference is what happens around the command: sleep, Wi-Fi, PATH, failure, and finding out what happened.

Short answer

cron is a line in a file. It is everywhere, it is simple, and on macOS it runs with a thin environment, skips runs while the Mac sleeps, and mails failures to a local mailbox nobody reads.

launchd is what macOS actually uses. Calendar agents catch up after sleep and survive reboots, but you write XML plists by hand, load them with launchctl, and build your own logging.

Zashiki Warashi writes launchd calendar agents for you and keeps the operator view: run history, logs, and the readiness steps you would otherwise put at the top of every script.

Side-by-side

Concern cron Raw launchd plist Zashiki Warashi
Clock cron daemon launchd launchd
Missed while asleep Skipped One catch-up run on wake One catch-up run on wake
Wake the Mac on time No Separate pmset setup Optional helper, exact jobs only
PATH (fnm, nvm, Homebrew) Minimal env Whatever you put in the plist Your login shell
Wait for Wi-Fi Script it Script it Built in, per job
Keep awake during run Script it Script it Built in, per run
Timeout Script it Script it Max runtime per job
Logs and history Mail / redirect StandardOutPath file Per-run logs + history in the app
Schedule syntax Any cron expression Calendar dictionaries Interval, daily, weekly
Agent / script API — launchctl Local socket + MCP

Who should pick Zashiki

  • You have a few scripts that must run on a laptop that sleeps
  • You want to see the last run’s exit code and log without hunting for files
  • You want a job to wait for Wi-Fi after wake instead of failing its first request
  • You want an agent to schedule and inspect jobs through MCP — see Scheduled jobs

Who should keep cron or plain launchd

  • Servers and always-on machines where sleep is not a concern
  • Schedules that need full cron expressions (for example, the last weekday of the month)
  • Jobs managed by config management, dotfiles, or another tool that already owns the plist

Using both is fine. Zashiki only manages the agents it creates, and shows everything else read-only.

Download Zashiki: Releases.

FAQ

Does Zashiki replace crontab?

No. It does not read or edit your crontab, and it does not accept arbitrary cron expressions. It creates its own launchd agents for jobs you define in the app.

Is Zashiki just a launchd GUI?

It writes launchd agents, so launchd stays the clock. On top it adds network wait, a keep-awake hold, max runtime, logs, run history, and an MCP server.

Can I keep using my existing plists?

Yes. Other LaunchAgents are shown read-only. Zashiki never edits agents it did not create.

Download for macOS GitHub