The moment you remember "I need to follow up on this PR tomorrow" usually happens mid-terminal-session — and the standard move, alt-tabbing to a to-do app, typing it in, tabbing back, costs more than the ten seconds it looks like. Context switches are expensive precisely because they're invisible; you don't notice losing your place until you try to pick it back up.
The whole point is that it's one line, in the same shell you're already in:
rem "follow up on PR #482 tomorrow at 10am"
No app switch, no mouse. Natural language handles the date parsing, so you write it the way you'd say it, not the way a form wants it structured.
# what's coming up rem list # done rem done <id> # didn't need it after all rem rm <id>
This matters as much as creation does. A reminder tool that's easy to add to but requires opening a browser to review or complete just moves the context switch instead of removing it.
Because it's a plain command with output you can pipe, a CLI reminder tool composes with the rest of your shell in ways a mobile app fundamentally can't:
None of these are exotic — they're the kind of small automation that only happens if the tool is scriptable in the first place.
The same account, same reminders, same natural-language parsing works from a web dashboard when you're on a machine without your dotfiles, or from Claude Desktop when the thought comes up mid-conversation instead of mid-command. The CLI (rem) is one entry point into the same system — not a separate silo of reminders you have to remember to check independently.
npm i -g reminders-md export REMINDERS_API_KEY=your_key_here rem "call dentist tomorrow 3pm"
Grab your key from Settings → API Access first — the CLI needs it to know which account to write to.