workbar
v1.3.8
Published
macOS menu bar work time tracker with break reminders, daily limit, away mode, and SwiftBar support
Maintainers
Readme
Work Time Tracker
Track active macOS laptop usage with break reminders, a configurable daily limit, and a SwiftBar menu bar widget.
Install
npm install -g workbarThat's it. SwiftBar and the tracker are installed automatically. Your active work time appears in the menu bar, updated every minute.
Requires Homebrew. If not installed:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Features
- Menu bar widget: Live time display via SwiftBar, updated every minute
- Idle-aware tracking: Only counts time when laptop is in use (idle < 90s)
- Configurable daily limit: Display sleeps when you hit your limit (default 8h)
- 1h warning: Notification when 1 hour remains before your limit
- Break reminders: Configurable interval (default 60 min)
- Pause/resume: Pause tracking from the menu bar
- Away mode: Keeps Mac awake (via
caffeinate) without counting work time — useful during meetings or calls. Icon turns 🟠 orange. - Settings menu: Configure everything directly from the menu bar
Usage
worktime # today's active time
worktime --verbose # detailed status
worktime stats # this week's stats
worktime stats --month
worktime stats --all
worktime stats --jsonSettings
Configure from the menu bar (Settings at the bottom of the dropdown) or via CLI:
worktime config show # show current settings
worktime config break on|off # enable/disable break notifications
worktime config sound on|off # enable/disable notification sound
worktime config break-time <minutes> # set break interval (default: 60)
worktime config limit <minutes> # set daily limit (default: 480 = 8h)Examples:
worktime config break-time 75 # break reminder every 75 min
worktime config limit 360 # stop at 6hSettings are stored in ~/.worktime/config.json.
Requirements
- macOS only
- Node.js ≥ 14
Uninstall
npm uninstall -g workbarThis stops the tracker, removes the SwiftBar plugin, and cleans up all files. Your daily stats logs in ~/.worktime/ are preserved.
