Skip to content
Andrew Voirol
WorkLogAboutContact
HomeWorkLog

AboutContact

✦ Just one prompt away from figuring it all out.

Work → Personal Pomodoro: AI-Built Native Mac App
Native Mac AppLive

Personal Pomodoro: AI-Built Native Mac App

A complete macOS menu bar Pomodoro timer built by Gemini 3.7 Flash in a single session — 18 Swift files, snooze penalty engine, stats dashboard, and it ships dockless.

18 Swift files · 2,295 LOC · SPM · dockless LSUIElement

Started Aug 14, 2026
View Source
Personal Pomodoro timer at 25:00 with Focus mode, preset options, and Ready to Start badge

Default state. Classic Focus at 25 minutes, Quick Sprint, Deep Work, and custom presets. The 🍅 lives in your menu bar.


Personal Pomodoro timer counting down at 21:15 with red progress ring and Session Active badge
Snooze penalty incurred showing 25 High Knees physical challenge with red warning banner
Today's Productivity dashboard with Focus Completed, Total Focus Time, Snoozes Used, and Penalties Triggered
Settings panel with duration steppers, penalty policy picker, and notification toggles

A model evaluation disguised as a productivity tool. Give Gemini 3.7 Flash a non-trivial native macOS app to build from scratch — not a web app, not a script, but a real SwiftUI menu bar application — and see how far it gets without intervention.

It got all the way.

What the model built

ComponentImplementation
Architecture18 Swift files across Models/Services/Views with clean separation
Timer engineDispatchSourceTimer at 250ms against wall-clock target — drift-proof
Penalty system2 free snoozes → escalating to physical challenges, break time tax, lockout
Break tasks8 curated micro-tasks: stretches, eye breaks, hydration, breathing
StatsDaily tracking with midnight resets via UserDefaults persistence
SoundNSSound wrapper with 10 alert chimes and live preview in settings
ShellDockless LSUIElement, NSPopover glass panel, pure menu bar citizen

The test, not the tool

The real output isn't a Pomodoro timer — it's a datapoint. Can a flash-tier model produce a shippable native macOS application with system-level features, clean architecture, and zero human code intervention?

The answer: yes, with caveats. The initial build compiled and ran. Two bugs surfaced — NSPopover key window focus and tab label overflow — both fixed by the model in the same session. The penalty engine, stats dashboard, and sound system all worked first try.

Under the hood

The app runs as a pure LSUIElement accessory — no Dock icon, no menu bar, just a 🍅 that opens a glass popover. State machines manage timer lifecycle (idle → running → paused → break → complete), and the penalty engine tracks snooze history across sessions to escalate consequences.

Built entirely in a single Antigravity session on August 14, 2026. Shipped to GitHub with 26 files and zero git history.

SwiftApple SiliconDesign

Related Threads

Personal Pomodoro: Gemini 3.7 Flash Builds a Native Mac App

Testing a model's ceiling by asking it to build a complete macOS menu bar Pomodoro timer — penalty engine, break micro-tasks, stats dashboard — in a single Antigravity session.


Andrew Voirol

Builder, hacker, shipper. Currently leaving localhost.

Navigate

WorkBuilder’s LogAboutContactRSS Feed

Connect

X / TwitterGitHubLinkedIn

© 2026 Andrew Voirol·Back to top ↑
✦Just one prompt away from figuring it all out.