@tuan_son.dinh/worktime-tracker
v1.3.0
Published
macOS idle-aware work time tracker with 8h daily limit, break reminders, 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 @tuan_son.dinh/worktime-trackerThat'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
launchctl unload ~/Library/LaunchAgents/com.son.worktime.plist
rm -rf ~/.worktime
rm ~/Library/LaunchAgents/com.son.worktime.plist
npm uninstall -g worktime-tracker