breakrs
A simple, ergonomic CLI timer for taking breaks. Set natural language reminders with flexible syntax, get desktop notifications, and never miss a break again.
Why breakrs? Because typing "breakrs 15m stretch" or "breakrs go outside one hour 30mins" and having everything handled automatically is the quick and easy standard we should have. No need for watches, phones, calendars, sticky notes, guis, bloated apps, etc. No syntax, no manual conversions and no handling. No configs or setup. No learning curve. Type how you think and a notification pops up when you need it to. That's why.
Features
- Natural time parsing:
5m,1h30m,1:30:45,one minute, or mix them all:1h 2:30 five seconds reminder - Number word support: Type
five minutes,twenty seconds,one hour- fully case-insensitive - Flexible flag placement: Put flags anywhere -
breakrs 5m coffee --urgentorbreak --urgent 5m coffee - Combined short flags: Use
-usrinstead of-u -s -r - Recurring timers: Automatically repeat with
--recurring - Priority notifications: Mark important breaks as
--urgent - Sound alerts: Add
--soundto play notification sounds - History tracking: See your last 20 completed timers
- Command aliases: Type
breakrs linstead ofbreakrs list - Auto-recovery: Daemon automatically restarts after reboot
- File locking: Safe concurrent access, no database corruption
Installation
From Source
From crates.io
cargo install breakrs
Platform Support
Fully supported on:
- Linux (all distros)
- macOS (10.8+)
- Windows (10+)
Dependencies
- Rust 1.70+ (for building)
- Linux/macOS: notification daemon (most systems have this by default)
- Windows: native notification system (built into Windows 10+)
Usage
Basic Timer
# Simple format
# Colon format (h:m:s or m:s)
# Mixed formats
# Number words (case-insensitive)
Flags
# Urgent/critical notification
# Play sound
# Recurring timer (repeats after completion)
# Combine flags
Commands
# List active timers
# Show recently completed timers (last 20)
# Remove a specific timer by ID
# Clear all active timers
# Clear history
# Check daemon status
# Manually start daemon
Examples
# Set a 5-minute coffee break reminder
# Set an urgent 10-minute meeting reminder with sound
# Set a recurring hourly stretch reminder
# Create multiple timers
# List active timers
# Check history of completed timers
# Remove a specific timer
# Clear all timers
How It Works
-
Parser: Extracts duration and message from natural language input
- Supports units:
s,sec,m,min,h,hr,hours, etc. - Supports number words:
one,five,twenty,fortyfive(0-60) - Supports colon format:
5:30(5 min 30 sec),1:30:45(1 hr 30 min 45 sec) - Flags can appear anywhere in the input
- Supports units:
-
Database: Stores active and completed timers in JSON
- Location:
~/.local/share/breakrs/timers.json - File locking prevents corruption from concurrent access
- Keeps last 20 completed timers in history
- Location:
-
Daemon: Background process that monitors timers
- Automatically starts when you create a timer
- Sleeps until next timer expires (efficient)
- Auto-restarts when you run any command (survives reboots)
- Exits when no active timers remain
-
Notifications: Desktop notifications via
notify-rust- Title shows your message for quick visibility
- Supports urgency levels (normal/critical)
- Optional sound alerts
- Recurring timers add to history on each completion
Duration Formats
All of these work and can be mixed:
# Standard units
# Number words (case-insensitive, 0-60)
# Colon format
# Mixed (combine any formats!)
Command Aliases
Every command supports progressive prefix matching:
list:l,li,lishistory:h,hi,his,histremove:r,rm,remclear:c,cl,cleclear-history:ch,clh,clear-hstatus:s,st,sta,stat,statsdaemon:d,da,dae
Troubleshooting
Notifications not appearing
Check if your notification daemon is running:
|
Database corrupted
If you see a corruption error, the message tells you how to fix it:
Daemon not running after reboot
Any command will auto-restart the daemon if there are active timers:
License
[MIT - see LICENSE file]
Contributing
Contributions welcome! This tool is trying to follow the Unix philosophy: do one thing and do it well.