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 a to type a new reminder inline
  • CompleteEnter marks the selected reminder done
  • Search/ for incremental filtering
  • Deleted with y/n confirmation
  • List filterg to filter by reminder list, m to move between lists
  • Themest to 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

KeyAction
j / k / / Navigate
aAdd reminder
EnterComplete reminder
/Search
dDelete
gFilter by list
mMove to list
tCycle theme
?Help
qQuit

Code