ivoronin/TomatoBar
38.2
Weak · 30 September 2026
699
lines of production code
Swift
primary language
2
measurements over time
What this system is
TomatoBar is a macOS menu bar application that implements the Pomodoro technique with configurable work and rest intervals. It provides granular control over timer sounds, visual state indicators in the menu bar, and global hotkeys for operation. The system supports external automation via a URL scheme and includes localization for English, Simplified Chinese, and Korean.
Features
Added Korean language support
The application now supports the Korean locale, providing localized strings for the timer interface, settings, sounds, and popover menu items. Users can now see labels such as 'Work time', 'Short rest', and 'Long rest' in Korean, along with localized button text for starting, stopping, and quitting the app.
TomatoBar/ko.lproj · high confidence
Added Simplified Chinese localization for TomatoBar
Users can now see the app interface in Simplified Chinese. This change adds a new Localizable.strings file for the zh-Hans locale, providing translations for the main settings (such as interval lengths, shortcuts, and launch options), menu bar popover actions (start, stop, settings, sounds, about, quit), and notification content (including the new 'skip' button for rest periods and timer completion messages).
TomatoBar/zh-Hans.lproj · high confidence
Initial project setup and documentation
This change introduces the initial structure for TomatoBar, a macOS menu bar Pomodoro timer. It adds the MIT license, a .swift-version file specifying Swift 5.0, and SwiftLint configuration. The README provides an overview of features including configurable intervals, sounds, notifications, and global hotkeys, along with installation instructions via Homebrew and command-line control via the tomatobar:// URL scheme. It also documents the JSON event log location for integration with other tools. Build infrastructure is updated by removing Travis CI and build.sh scripts in favor of GitHub Actions, and adding export\_options.plist for app packaging.
(repo-wide) · high confidence
Behavioural changes
Menu bar icons now indicate timer state
The application's menu bar icon now visually reflects the current timer status by displaying specific text annotations: 'W' for work, 'R' for short rest, and 'L' for long rest, alongside a plain icon for idle. This change updates the icon generation script to produce distinct image sets for each state, allowing users to quickly identify the active phase without opening the app.
Icons · high confidence
TomatoBar app restructured for SwiftUI and modern dependencies
The TomatoBar application has been migrated from a UIKit-based architecture (using AppDelegate and XIB files) to a SwiftUI-based structure, introducing new entry points like App.swift and View.swift. This change also updates the project to use Xcode 13.3+ toolchains, replaces the previous DFRFoundation framework with SwiftState for state management, and integrates LaunchAtLogin and KeyboardShortcuts libraries to support features like launching at startup and custom keyboard shortcuts. Additionally, localization files for English, Simplified Chinese, and Korean are now explicitly managed within the project structure.
TomatoBar.xcodeproj · high confidence
TomatoBar rewrites core logic in SwiftUI with granular sound controls and URL scheme support
The TomatoBar menu bar app has been completely rewritten from a Storyboard-based Cocoa architecture to a modern SwiftUI implementation, introducing several new capabilities and behavioral changes. Users can now control the volume of individual sound effects (windup, ding, ticking) via a new Sounds settings pane, replacing the previous binary on/off toggle. The app now supports the \tomatobar://startStop\ URL scheme, allowing external apps or scripts to trigger the timer start/stop action. Additionally, the new UI includes a dedicated popover with segmented controls for Intervals, Settings, and Sounds, and fixes a visual issue where the start/stop button appeared blank in Dark mode with a Graphite accent color.
TomatoBar · high confidence
Dependencies
Updated Swift package dependencies and removed Node.js build tooling
The Swift Package Manager resolved file now pins KeyboardShortcuts to version 2.4.0, LaunchAtLogin to 5.0.2, and SwiftState to the swift/5.0 branch. Additionally, the project has removed the package.json file, eliminating the create-dmg dependency previously managed by Node.js.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 42 → 38 (-4.1)
- Rubric changed (rubric-2026.09.11 → rubric-2026.09.18) — scores are not directly comparable.
Lenses
- Code Health 100 → 100 (+0.0)
- Architecture 69 → 69 (+0.0)
- Maturity 33 → 33 (+0.0)
- Readiness 29 → 22 (-7.2)
- Security 56 → 56 (+0.0)
- Event Sourcing 100 → 100 (+0.0)
Resolved (3)
- Documentation: no installation or build instructions (README.md)
- Documentation: no licence statement (README.md)
- Documentation: no usage examples (README.md)
New (1)
- Floating branch dependency: swiftstate
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
ivoronin/TomatoBar was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 30 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 90a77d664dfe33c016bf24f89b0c82e77f9aec84 — the exact code this score is about.
- Scored under rubric-2026.09.18 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-cb25ca4feafa.