rem
A blazing-fast open-source CLI for macOS Reminders that uses EventKit via cgo for sub-200ms reads and writes, natural language dates, and AI agent skill support.
At a Glance
Fully free and open-source under the MIT License. No cost to use, modify, or distribute.
Engagement
Available On
Alternatives
Listed May 2026
About rem
rem is an open-source command-line interface for macOS Reminders, written in Go and maintained by BRO3886 on GitHub. It accesses Apple's EventKit framework directly via cgo through the companion go-eventkit library, achieving sub-200ms response times for all read and write operations. The project is available under the MIT License and can be installed via Homebrew, a curl install script, or go install.
What It Is
rem is a macOS-only CLI tool that lets developers and power users manage their Reminders from the terminal without the performance overhead of AppleScript or JXA. Rather than sending Apple Events across process boundaries, rem compiles EventKit bindings directly into a single Go binary, giving it direct in-process memory access to the Reminders store. The project homepage claims this approach is 462× faster than JXA/AppleScript — reading 224 reminders takes approximately 130ms versus 60+ seconds with the scripting bridge.
Core Capabilities
rem ships 20 commands covering the full lifecycle of reminders and lists:
- CRUD —
add,list,show,update,complete,uncomplete,delete - Flags and search —
flag,unflag,search,overdue,upcoming,today - List management —
lists,list-mgmt create/rename/delete - Import/Export — JSON and CSV with full property round-trip, including
--dry-runpreview - Interactive mode — full terminal menu via
rem interactive - Stats —
rem statsfor overall counts and breakdowns
All list and show commands support --output (-o) with table, json, and plain formats, making rem easy to pipe into tools like jq.
AI Agent Integration
rem includes a built-in skills subsystem designed for AI coding agents. Running rem skills install copies an embedded skill file to the agent's skill directory, teaching it all 20 commands, date formats, and output options. The project homepage lists support for Claude Code (~/.claude/skills/), Codex CLI (~/.agents/skills/), and OpenClaw (~/.openclaw/skills/). Every command outputs structured JSON and uses stable reminder IDs, which the project describes as intentional design choices for agent-friendly scripting.
Natural Language Date Parsing
Date input is handled by the go-eventkit/dateparser package, which the README documents as supporting 30+ patterns. Inputs like tomorrow, next friday at 2pm, in 3 hours, eod, and ISO timestamps (2026-02-15 14:30) are all recognized. The parser works identically in both direct CLI use and agent-invoked contexts.
Architecture and Go API
rem is structured around a service layer that wraps go-eventkit, with Cobra command definitions, domain models, export handlers, and a UI layer for table formatting. The go-eventkit library is also published separately (github.com/BRO3886/go-eventkit) so Go developers can use the same EventKit bridge programmatically in their own applications without the CLI layer. The README notes one known use of AppleScript — querying the default list name — and one use of a private ReminderKit bridge for the flagged property, which EventKit does not expose natively.
Update: v0.10.2
The latest release is v0.10.2, published on April 16, 2026. The repository was created in February 2026 and last pushed in May 2026, indicating active early development. The project had 64 stars and 4 forks as of the last recorded update.
Community Discussions
Be the first to start a conversation about rem
Share your experience with rem, ask questions, or help others learn from your insights.
Pricing
Open Source
Fully free and open-source under the MIT License. No cost to use, modify, or distribute.
- All 20 CLI commands
- Sub-200ms EventKit access
- Natural language date parsing
- JSON and CSV import/export
- AI agent skill installation
Capabilities
Key Features
- Sub-200ms reads and writes via EventKit cgo bridge
- Single binary with no helper processes or runtime dependencies
- Natural language date parsing (30+ patterns)
- 20 commands: full CRUD, search, stats, overdue, upcoming, interactive mode
- Multiple output formats: table, JSON, plain text
- JSON and CSV import/export with full property round-trip
- AI agent skill installation for Claude Code, Codex CLI, and OpenClaw
- Shell completions for bash, zsh, and fish
- Interactive terminal mode
- Background update check via GitHub releases
- Public Go API via go-eventkit library
- Supports iCloud and local Reminders lists
