Sheet 01 · A macOS menu bar app

Run your scripts on a schedule, from the menu bar.

Each Job is a small text file. Cuckoo runs it, keeps the log, and tells you when it fails.

Coming soon
macOS 26 or later · Free Signed and notarized by Apple
Fig. 1 · The menu bar popover

Sheet 02 · How it works

Three steps, and then you can forget about it.

  1. 01

    You write a Job file

    A name, a Command, and when to run it. In the app or in your editor.

  2. 02

    Cuckoo runs it

    On time, in your login shell. A background agent does the running, so it goes on after you quit the app.

  3. 03

    It tells you

    When a Job starts failing, and when it recovers. Every Run keeps its log.

No crontab, no launchd plist.

How it works →
CuckooSheet 02How it worksJonathan Fontes - Developer

Sheet 03 · The Job file

A Job is a small text file.

Each Job lives in ~/.config/cuckoo/ as a TOML file. Write it in the app or in your editor. Point at a note to find its line.

back-up-photos.toml
1# Copies the photo exports to the backup disk, every hour.2name = "Back up photos"3command = '''4rsync -a --delete ~/Pictures/Exports/ /Volumes/Backup/Photos/5'''6every = 607timeout = 308notify = "stateChanges"9channels = ["mac", "ntfy"]
  1. A

    The file is the Job

    The file name is its identity. Change name freely, and the history stays.

  2. B

    Runs in your login shell

    So your PATH and your profile apply. A Command can span several lines.

  3. C

    Every N minutes, or at set times

    every = 60 runs it each hour. at = ["09:00", "18:00"] runs it twice a day.

  4. D

    A timeout, in minutes

    Past it, the Run is stopped and counts as failed.

  5. E

    Changes, not noise

    A notification when it starts failing and when it recovers. On this Mac and on your iPhone.

Check a file before Cuckoo reads it

A typo doesn't break a Job. Cuckoo keeps running the last version that worked, and cuckoo check tells you which line is wrong.

$ cuckoo check back-up-photos.toml
back-up-photos.toml:7: unknown key "timout"
$ cuckoo check back-up-photos.toml
ok
CuckooSheet 03The Job fileJonathan Fontes - Developer

Sheet 04 · The app

Every Job, its last Run and its next, in one window.

Screenshot pending · the Jobs window with Recent Runs
Fig. 2 · The Jobs window
CuckooSheet 04The appJonathan Fontes - Developer

Sheet 05 · Notifications

You hear when a Job fails, and when it recovers.

Not on every Run, unless you ask for it. Each Job chooses where its notifications go.

  • mac

    Mac

    Banners on this Mac, as macOS shows them. Nothing to set up.

  • ntfy · Recommended for iPhone

    ntfy

    On ntfy.sh or your own server. Choose a topic, then subscribe to it in the ntfy app on your iPhone.

  • bellnod · By invitation

    Bellnod

    Sends each Job's state to Bellnod as a Notice. Open by invitation for now.

Notifications in the docs →
CuckooSheet 05NotificationsJonathan Fontes - Developer

Sheet 06 · Download

Free. One .dmg, drag it to Applications.

Signed with a Developer ID and notarized by Apple. On first launch, approve Cuckoo in Login Items, so the Jobs can run in the background.

Project
Cuckoo
Version
—
Requires
macOS 26 or later
Price
Free
Drawn by
Jonathan Fontes - Developer
Coming soon