A terminal tool for Apple Reminders. Add, complete, search, and organize reminders without leaving the shell. Built with Rust for the CLI and TUI, with a Swift bridge binary that talks to EventKit natively.
Running nudge with no arguments opens an interactive TUI. Reminders are listed with their priority and list name. Press a to add one inline, Enter to mark it done, / to search. CLI subcommands cover the same operations for scripting and shell aliases.
CLI
nudge # interactive TUI
nudge list # list incomplete reminders
nudge list -l Shopping # filter by list
nudge list --completed # show completed
nudge search "milk" # search by name
nudge add "Buy milk" # add to default list
nudge add "Deploy" -l Work -p 1 # add with list and priority
nudge done "Buy milk" # mark complete
nudge delete "old item" # delete
nudge lists # show all lists
Priority levels: 1 (high, red), 5 (medium, yellow), 9 (low, cyan), 0 (none).
TUI features
- Add — press
ato type a new reminder inline - Complete —
Entermarks the selected reminder done - Search —
/for incremental filtering - Delete —
dwith y/n confirmation - List filter —
gto filter by reminder list,mto move between lists - Themes —
tto cycle through 6 color themes (synthwave, monochrome, ocean, sunset, forest, tokyo night moon) - Help —
?for keybindings
Architecture
Two-process design. The Rust binary handles all user interaction and rendering. A Swift bridge binary (nudge-bridge) wraps the native EventKit framework for direct Reminders access — no AppleScript, no scraping. The Rust side spawns the bridge as a subprocess, passing commands and parsing pipe-delimited output back into Rust structs.
The project started with AppleScript but was refactored to use a native Swift EventKit bridge for speed and reliability. First run prompts for Reminders permission through the standard macOS dialog.
Key bindings
| Key | Action |
|---|---|
j / k / ↑ / ↓ | Navigate |
a | Add reminder |
Enter | Complete reminder |
/ | Search |
d | Delete |
g | Filter by list |
m | Move to list |
t | Cycle theme |
? | Help |
q | Quit |