How it works · 6 sheets

A menu bar icon, a background agent, and a folder of text files.

The icon shows you the state. The agent runs the Jobs, even with the app closed. The folder, ~/.config/cuckoo/, holds one file per Job.

Sheet 01 · The menu bar

The state of every Job, one click away.

  • A red dot on the icon while any Job is failing.
  • One row per Job, with its last Run and its next one.
  • Hover a row for Run Now and Pause. Open it for the last lines of its Run Log.
  • Quit closes the app. The Jobs keep running.
Fig. 1 · The popover (stand-in)
CuckooSheet 01The menu barJonathan Fontes - Developer

Sheet 02 · The window

All Jobs in a table, with their recent Runs.

  • The header says it in a sentence: All running fine. or which Jobs are failing.
  • One bar per Run, colored by result, as tall as the Run was long.
  • Turn Active off to pause a Job. Run Now still works.
  • The window has a Dock icon only while it is open.
Screenshot pending · the Jobs window
Fig. 2 · The Jobs window
CuckooSheet 02The windowJonathan Fontes - Developer

Sheet 03 · A Run and its Run Log

Every Run is written down, line by line.

Each line has the time it was printed and where it came from: O for stdout, E for stderr, S for Cuckoo itself. The first lines say how the Command was run.

Back up photos · 15:41 · ✕ exit 11
115:41:38.963 S shell: /bin/zsh -l -c215:41:38.963 S directory: /Users/jfontes315:41:38.963 S PATH: /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/homebrew/bin415:41:38.963 S Command:515:41:38.963 S   rsync -a --delete ~/Pictures/Exports/ /Volumes/Backup/Photos/615:41:38.980 E rsync(86611): error: /Users/jfontes/Pictures/Exports/: (l)stat: No such file or directory715:41:38.980 E rsync: /Volumes/Backup/Photos/: mkpath: Permission denied815:41:38.980 E rsync(86611): error: unexpected end of file
  • Watch it live in the Run panel. Show All lines or Errors only.
  • Copy the text, or Save… the whole log.
  • Stop a Run that hangs. A timeout does it for you.
Screenshot pending · the Run panel
Fig. 3 · The Run panel
CuckooSheet 03RunsJonathan Fontes - Developer

Sheet 04 · The editor

See the environment before the first Run.

  • Environment the Job will see shows the login shell, the PATH, and where each tool in the Command was found.
  • A tool marked not found shows up here, before the first Run fails on it.
  • Next Runs lists when the Schedule will fire.
  • Saving writes the Job file. You can edit the same file in your editor.
Screenshot pending · the Job editor
Fig. 4 · The Job editor
CuckooSheet 04The editorJonathan Fontes - Developer

Sheet 05 · ⌘K

Every action, from the keyboard.

  • Press ⌘K in the window and type part of an action or a Job's name.
  • Run Now, Stop, Pause, Resume, Open, Edit, Last Run Log, for every Job.
  • Case and accents don't matter.
Screenshot pending · the ⌘K palette
Fig. 5 · The command palette
CuckooSheet 05⌘KJonathan Fontes - Developer

Sheet 06 · In the background

Quit the app. The Jobs keep running.

A small agent, registered with macOS, does the running. The app only shows you what it did.

  • Login Items

    Approve it once

    On first launch, macOS asks you to allow Cuckoo in the background. Until you do, no Job runs.

  • Sleep

    Missed a time?

    A Job set for 09:00 runs once when the Mac wakes, marked late. Interval Jobs wait for their next time.

  • One at a time

    No pile-ups

    If a Job is still running when its next time comes, that time is skipped and noted in the Run Log.

Read the docs →
CuckooSheet 06In the backgroundJonathan Fontes - Developer

Download

Free, for macOS 26 or later.

Coming soon