https://github.com/jorbush/rusty_pomo
a minimalist CLI pomodoro built in Rust
https://github.com/jorbush/rusty_pomo
cli pomodoro rust
Last synced: 10 months ago
JSON representation
a minimalist CLI pomodoro built in Rust
- Host: GitHub
- URL: https://github.com/jorbush/rusty_pomo
- Owner: jorbush
- Created: 2025-08-08T17:33:53.000Z (12 months ago)
- Default Branch: main
- Last Pushed: 2025-08-08T18:09:52.000Z (12 months ago)
- Last Synced: 2025-08-08T19:39:20.204Z (12 months ago)
- Topics: cli, pomodoro, rust
- Language: Rust
- Homepage:
- Size: 1.06 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Rusty Pomo
Minimalist, visually pleasing Pomodoro timer in your terminal. Built with Rust, Ratatui, and Crossterm.

### Features
- Configurable durations for focus, short break, and long break
- Simple, clean TUI with a progress gauge
- Three themes: `dracula`, `solarized-dark`, `gruvbox-dark`
- Desktop notifications with optional sound and custom duration
- macOS bundle-id support so notifications can use your app icon
### Prerequisites
- Rust toolchain: `rustup` + `cargo` (`rustc --version` should work)
### Run
```bash
cargo run
```
With custom options:
```bash
cargo run -- \
--focus 50 --short 10 --long 20 --long-every 4 \
--theme gruvbox-dark \
--notification-sound Ping \
--notification-seconds 15
```
Disable notifications:
```bash
cargo run -- --notifications=false
```
### Keybindings
- Space: pause/resume
- n: next phase
- r: reset current phase
- q or Esc: quit
### CLI options
```text
--focus Focus minutes (default: 25)
--short Short break minutes (default: 5)
--long Long break minutes (default: 15)
--long-every Number of focus sessions before a long break (default: 4)
--theme Theme (default: dracula) [dracula, solarized-dark, gruvbox-dark]
--notifications Enable desktop notifications (default: true)
--notification-sound Sound name (platform-specific)
--notification-seconds Notification duration in seconds (default: 10; macOS ignores)
--macos-bundle-id macOS only: bundle identifier to attribute notifications to
```
Notes:
- Common macOS sounds include `Ping`, `Submarine`; on Linux, try `message-new-instant`.
- macOS ignores per-notification icons and timeouts; see section below for using your own app icon.
### macOS notifications with the rusty pomo icon
macOS will always use the icon of the app bundle posting the notification. To see the Rusty Pomo logo in notifications, bundle the app and pass the bundle identifier. Step-by-step instructions are in:
- docs: `docs/macos-notifications.md`