A menu bar pomodoro timer for macOS, with an iPhone companion that shows and controls it over Tailscale.

README.md

Couch Tomato #

A menu bar pomodoro timer for macOS, with an iPhone companion that shows and controls it over Tailscale.

  • Focus sessions with a get-ready countdown, short breaks, and a longer break every few sessions.
  • A daily exercise budget, split into sets and offered during breaks.
  • A calendar showing which days you hit every goal.
  • Optional Focus-mode automation through Shortcuts.

Screenshots #

The menu bar popover, mid-session The break panel offering the next set

Today's progress and the calendar of days you hit every goal

The iPhone timer The iPhone stats and calendar

The two apps #

  • Mac — Sources/ builds the menu bar app.
  • iPhone — ios/ builds the companion. It polls the Mac and sends actions.

Building #

Mac — needs macOS 26:

./build.sh
open "build/Couch Tomato.app"

iPhone — needs iOS 18. Open ios/CouchTomato.xcodeproj in Xcode and run on a device, or use ios/build.sh (simulator) and ios/deploy.sh (device). Device deploys need your Apple team id in the environment, not in the repo:

export COUCHTOMATO_DEVELOPMENT_TEAM=XXXXXXXXXX
ios/deploy.sh

Sync runs over Tailscale, so install it on both devices. On the client — the phone, or a second Mac via Settings → Sync → "Connect to another Mac" — enter the server's tailnet address and the token shown in Settings → Sync.

License #

MIT — see LICENSE.