@cardmagic/reminders
v1.1.0
Published
Fuzzy search and browse Apple Reminders from CLI or MCP server
Maintainers
Readme
reminders
Fuzzy search and browse Apple Reminders from the command line or as an MCP server.
Features
- Fuzzy search with typo tolerance across all your reminders
- Create reminders - add new reminders via CLI or MCP
- Browse by list - view reminders organized by list
- Filter by status - pending, completed, flagged, or due soon
- Auto-indexing - index automatically rebuilds when reminders change
- Multiple interfaces - CLI, MCP server, or Claude Code plugin
Requirements
- macOS (reads from Apple Reminders database)
- Node.js 22+
- Full Disk Access permission for your terminal
Installation
Homebrew
brew install cardmagic/tap/remindersnpm
npm install -g @cardmagic/remindersClaude Code Plugin (recommended)
Install as a plugin to get skills (auto-invoked) and slash commands:
# Add the marketplace
claude plugin marketplace add cardmagic/reminders
# Install the plugin
claude plugin install reminders@cardmagicThis gives you:
- Skill: Claude automatically searches reminders when you ask about tasks/todos
- Slash commands:
/reminders:search,/reminders:pending,/reminders:lists, and more
MCP Server
For direct MCP tool access without the plugin:
claude mcp add --transport stdio reminders -- npx -y @cardmagic/reminders --mcpOr install globally first:
npm install -g @cardmagic/reminders
claude mcp add --transport stdio reminders -- reminders --mcpFrom source
git clone https://github.com/cardmagic/reminders.git
cd reminders
pnpm install
pnpm build
pnpm link --global
# Then add as plugin OR MCP server:
claude plugin marketplace add cardmagic/reminders
claude plugin install reminders@cardmagic
# OR
claude mcp add --transport stdio reminders -- reminders --mcpGranting Full Disk Access
The tool needs to read your Reminders database:
- Open System Settings > Privacy & Security > Full Disk Access
- Click + and add your terminal app (Terminal.app, iTerm, Warp, etc.)
- Restart your terminal
Usage
CLI
# Show pending reminders (default action)
reminders
# Show all reminder lists with counts
reminders lists
# Show reminders in a specific list
reminders list "Groceries"
reminders list "Groceries" --all # include completed
# Show pending/completed/flagged
reminders pending
reminders completed
reminders flagged
# Show reminders due within N days
reminders due --days 7
# Fuzzy search
reminders search "milk"
reminders search "meeting" --list "Work"
reminders search "groceries" --pending
# Show recently created reminders
reminders recent
# Show index statistics
reminders stats
# Force rebuild the index
reminders index
# Create a new reminder (auto-detects list from content)
reminders add "Buy milk" # → Groceries list
reminders add "Call mom" --list "Family" --due tomorrow
reminders add "Meeting prep" --due 2024-01-15 --time 09:00 --priority high
reminders add "Important task" --flagged --notes "Don't forget!"
# Mark a reminder as completed
reminders done "Buy milk" # Searches all lists
reminders done "meeting" --list "Work" # Search in specific listCLI Options
| Option | Description |
|--------|-------------|
| -l, --list <name> | Filter by list name |
| --completed | Show only completed |
| --pending | Show only pending |
| --flagged | Show only flagged |
| -n, --limit <n> | Max results (default varies by command) |
| -a, --all | Include completed (for list command) |
| -d, --days <n> | Days to look ahead (for due command) |
Claude Code Plugin
When installed as a plugin, you get:
Skill (auto-invoked): Claude automatically manages reminders when you ask things like:
- "What's on my grocery list?"
- "Show my pending tasks"
- "What reminders are due this week?"
- "Add milk to my grocery list"
- "Mark the milk reminder as done"
Slash Commands:
| Command | Description |
|---------|-------------|
| /reminders:search <query> | Fuzzy search with optional filters |
| /reminders:pending | Show pending reminders |
| /reminders:completed | Show recently completed |
| /reminders:flagged | Show flagged reminders |
| /reminders:due | Show reminders due soon |
| /reminders:lists | List all reminder lists |
| /reminders:list "Name" | Show reminders in a specific list |
| /reminders:create "Title" | Create a new reminder (auto-detects list) |
| /reminders:done "Title" | Mark a reminder as completed |
MCP Server
When installed as an MCP server, these tools are available:
| Tool | Description |
|------|-------------|
| search_reminders | Fuzzy search with optional filters |
| get_pending_reminders | Get incomplete reminders |
| get_completed_reminders | Get recently completed |
| get_flagged_reminders | Get flagged reminders |
| get_due_reminders | Get reminders due within N days |
| list_reminder_lists | List all lists with counts |
| get_list_reminders | Get reminders in a specific list |
| get_reminder_stats | Get index statistics |
| create_reminder | Create a new reminder (auto-detects list) |
| complete_reminder | Mark a reminder as completed |
Manual MCP Configuration
For Claude Desktop or VS Code, add to your MCP configuration:
{
"mcpServers": {
"reminders": {
"command": "npx",
"args": ["-y", "@cardmagic/reminders", "--mcp"]
}
}
}How It Works
Auto-Indexing: On first run (or when reminders change), the tool:
- Reads Apple Reminders SQLite databases
- Builds a SQLite FTS5 full-text search index
- Creates a MiniSearch fuzzy search index
Searching: Queries both indexes for best results with typo tolerance
Storage: Index files are stored in
~/.reminders/:index.db- SQLite FTS5 databasefuzzy.json- MiniSearch indexstats.json- Index statistics
License
MIT
