Something went wrong. Try again.
A menu bar pomodoro timer for macOS, with an iPhone companion that shows and controls it over Tailscale.
Something went wrong. Try again.
Files
- Swift 98%
- Shell 2%
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 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.