| Crates.io | breakrs |
| lib.rs | breakrs |
| version | 0.2.1 |
| created_at | 2025-10-24 22:41:15.311822+00 |
| updated_at | 2025-10-26 00:00:55.675369+00 |
| description | A simple, ergonomic CLI timer for taking breaks |
| homepage | https://github.com/sqrew/breakrs |
| repository | https://github.com/sqrew/breakrs |
| max_upload_size | |
| id | 1899423 |
| size | 149,692 |
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.
5m, 1h30m, 1:30:45, one minute, or mix them all: 1h 2:30 five seconds reminderfive minutes, twenty seconds, one hour - fully case-insensitivebreakrs 5m coffee --urgent or break --urgent 5m coffee-usr instead of -u -s -r--recurring--urgent--sound to play notification soundsbreakrs l instead of breakrs listgit clone <https://github.com/sqrew/breakrs>
cd breakrs
cargo build --release
sudo cp target/release/breakrs /usr/local/bin/
cargo install breakrs
# If installed via cargo
cargo uninstall breakrs
# If installed from source to /usr/local/bin
sudo rm /usr/local/bin/breakrs
# Optionally remove data directory
rm -rf ~/.local/share/breakrs
Fully supported on:
# Simple format
breakrs 5m Get coffee
breakrs 1h Meeting reminder
breakrs 30s Quick stretch
# Colon format (h:m:s or m:s)
breakrs 1:30 Tea is ready
breakrs 1:30:45 Long break over
breakrs 0:30 Quick reminder
# Mixed formats
breakrs 1h 30m 2:15 Combined duration message
# Number words (case-insensitive)
breakrs one minute thirty seconds reminder
breakrs Five Minutes Get Coffee
breakrs two hours five minutes lunch break
# Urgent/critical notification
breakrs --urgent 5m Important meeting
breakrs 5m Important meeting --urgent # Flags work anywhere!
# Play sound
breakrs --sound 10m Timer with sound
# Recurring timer (repeats after completion)
breakrs --recurring 1h Stretch every hour
breakrs -r 1h Stretch every hour # Short form
# Combine flags
breakrs --urgent --sound --recurring 30m Drink water
breakrs -usr 30m Drink water # Combined short flags
# List active timers
breakrs list
breakrs l # Short alias
breakrs li # Partial alias
# Show recently completed timers (last 20)
breakrs history
breakrs h # Short alias
# Remove a specific timer by ID
breakrs remove 5
breakrs rm 5 # Short alias
# Clear all active timers
breakrs clear
breakrs c # Short alias
# Clear history
breakrs clear-history
breakrs ch # Short alias
# Check daemon status
breakrs status
breakrs s # Short alias
# Manually start daemon
breakrs daemon
breakrs d # Short alias
Enable tab completion for commands and flags:
# Bash
# Generate completion file
mkdir -p ~/.local/share/bash-completion/completions
breakrs completions bash > ~/.local/share/bash-completion/completions/breakrs
# Then restart your shell or run: source ~/.bashrc
# Zsh
# Generate completion file
mkdir -p ~/.local/share/zsh/site-functions
breakrs completions zsh > ~/.local/share/zsh/site-functions/_breakrs
# Add to ~/.zshrc:
fpath=(~/.local/share/zsh/site-functions $fpath)
autoload -Uz compinit
compinit
# Then restart your shell or run: source ~/.zshrc
# Fish
# Generate completion file (auto-loaded by fish)
mkdir -p ~/.config/fish/completions
breakrs completions fish > ~/.config/fish/completions/breakrs.fish
# Fish will auto-load completions on next shell start
# PowerShell
# Add to your PowerShell profile
breakrs completions powershell >> $PROFILE
# Then restart PowerShell or run: . $PROFILE
After installing, you can:
breakrs l<TAB> → completes to listbreakrs --u<TAB> → completes to --urgentbreakrs <TAB><TAB> → shows all available commandsSave typing by aliasing breakrs to br:
# Bash - add to ~/.bashrc
alias br='breakrs'
# Zsh - add to ~/.zshrc
alias br='breakrs'
# Fish - add to ~/.config/fish/config.fish
alias br='breakrs'
After restarting your shell:
br 5m coffee # Much shorter!
br l # List timers
br -u 10m meeting
# Set a 5-minute coffee break reminder
breakrs 5m Get coffee
# Set an urgent 10-minute meeting reminder with sound
breakrs 10m Meeting in conference room -us
# Set a recurring hourly stretch reminder
breakrs -r 1h Stand up and stretch
# Create multiple timers
breakrs 5m First reminder
breakrs 10m Second reminder
breakrs 15m Third reminder
# List active timers
breakrs l
# Check history of completed timers
breakrs h
# Remove a specific timer
breakrs r 2
# Clear all timers
breakrs c
Parser: Extracts duration and message from natural language input
s, sec, m, min, h, hr, hours, etc.one, five, twenty, fortyfive (0-60)5:30 (5 min 30 sec), 1:30:45 (1 hr 30 min 45 sec)Database: Stores active and completed timers in JSON
~/.local/share/breakrs/timers.jsonDaemon: Background process that monitors timers
Notifications: Desktop notifications via notify-rust
All of these work and can be mixed:
# Standard units
5m, 1h, 30s
5 minutes, 1 hour, 30 seconds
1h30m, 2h15m30s
# Number words (case-insensitive, 0-60)
one minute, five seconds, twenty minutes
two hours, fifteen minutes, fortyfive seconds
# Colon format
5:30 # 5 minutes 30 seconds
1:30:45 # 1 hour 30 minutes 45 seconds
# Mixed (combine any formats!)
1h 2:30 five seconds break # 1 hour + 2m 30s + 5s = 3755 seconds
one hour 30m reminder # Mix number words with standard units
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, daeCheck if your notification daemon is running:
ps aux | grep notification
If you see a corruption error, the message tells you how to fix it:
rm ~/.local/share/breakrs/timers.json
Any command will auto-restart the daemon if there are active timers:
breakrs list # Will restart daemon if needed
breakrs status # Explicitly checks and restarts
[MIT - see LICENSE file]
Contributions welcome! This tool is trying to follow the Unix philosophy: do one thing and do it well.