NUdge is a terminal-first reminder and productivity tool built in Go.
It focuses on clean daily workflow:
- Add reminders
- List actionable tasks
- Mark reminders as done
- Delete reminders
- Store everything safely in a local OS-specific config directory
No UI. No clutter. Just focused nudges.
nudge add --title "Pay Rent" --due "2026-02-12 22:00"- Generates a unique ID
- Stores reminder in JSON
- Automatically sorts by due date
Default (only actionable items):
nudge listShow everything including finished:
nudge list --allReminders are tagged as:
- UPCOMING
- OVERDUE
- FINISHED
nudge done <id>This updates status to done but does NOT delete the reminder.
nudge delete <id>This permanently removes the reminder from the database.
NUdge stores data in your OS config directory:
- macOS:
~/Library/Application Support/nudge/db.json - Linux:
~/.config/nudge/db.json - Windows:
%AppData%\nudge\db.json
On first run, NUdge asks permission before creating the database.
The database:
- Is automatically sorted
- Uses secure file permissions
- Is human-readable JSON
git clone <your-repo-url>
cd nudge_toolgo build -o nudge ./cmd/nudge./nudge list
./nudge add --title "Task" --due "2026-02-12 22:00"
./nudge done <id>
./nudge delete <id>We intentionally built NUdge step-by-step with clean separation of concerns.
cmd/nudge -> CLI entrypoint + Cobra commands
internal/model -> Reminder struct and status types
internal/store -> JSON storage logic
Handles:
- Parsing user input
- Validating arguments
- Calling the store layer
Example:
./nudge done 123
The CLI extracts 123 and passes it to the store.
Responsible for:
- Reading/writing JSON
- Sorting reminders
- Updating status
- Deleting entries
It does NOT care about CLI details.
Defines:
- Reminder struct
- Status types (pending, done)
Keeps the domain clean and simple.
- Used
os.UserConfigDir()for proper cross-platform DB location - Used secure permissions (0700 dir, 0600 file)
- Sorted reminders before saving for stable JSON
- Used
PersistentPreRunEin Cobra to ensure DB initialization
nudge startbackground nudge engine (ticker-based scheduler)- Sound notifications
- Interactive mode
- Snooze functionality
- Optional auto-clean of finished reminders
Built with Go and intentional product thinking.
NUdge nudges you to act.