macOS Reminders,
from the terminal.
462× faster than AppleScript
Direct EventKit access. No IPC. No Apple Events. Works with your AI agent.
Sub-200ms Everything
All reads and writes go through go-eventkit — direct in-process EventKit access via cgo. No IPC, no Apple Events. Reading 224 reminders takes 130ms. That's 462× faster than JXA/AppleScript.
AI Agent Skill, Built In
Run rem skills install to teach your AI coding agent how to use rem. Supports Claude Code, Codex CLI, and OpenClaw. Your agent can then create, search, and complete reminders — no extra config needed.
Natural Language Dates
"tomorrow at 3pm", "next friday", "in 2 hours", "eod" — a custom parser handles 20+ patterns. No external deps, works in both CLI and agent context.
Public Go API
Powered by go-eventkit — use EventKit directly in your own Go programs. Full CRUD, filtering, and list management without touching rem.
Import & Export
JSON and CSV import/export with full property round-trip. Back up, migrate, or bulk-create reminders from a spreadsheet.
Single Binary
EventKit compiled directly into the Go binary via cgo. No helpers, no runtime dependencies. go install and you're done.
Built for agents,
not just humans.
Most CLI tools weren't designed to be called by an AI. rem was. Every command outputs structured JSON. Reminder IDs are stable across calls. Natural language dates work exactly like they would if you typed them yourself.
Install in seconds
curl -fsSL https://rem.sidv.dev/install | bash
go install github.com/BRO3886/rem/cmd/rem@latest
curl -LO https://github.com/BRO3886/rem/releases/latest/download/rem-darwin-arm64.tar.gz
tar xzf rem-darwin-arm64.tar.gz
sudo mv rem /usr/local/bin/rem
arm64 with amd64 for Intel Macs.Common questions
What is rem?
rem is an open-source command-line interface for macOS Reminders. It lets you create, list, update, complete, delete, search, and export reminders directly from your terminal — with sub-200ms response times for all read and write operations.
How do I install rem?
The fastest way is the install script:
curl -fsSL https://rem.sidv.dev/install | bashAlternatively, if you have Go installed: go install github.com/BRO3886/rem/cmd/rem@latest
Why is rem faster than AppleScript?
rem uses go-eventkit, which bridges directly to Apple's EventKit framework via cgo and Objective-C — the same API that Reminders.app uses internally. This means direct in-process memory access to the reminder store, with no IPC overhead. AppleScript sends one Apple Event per property per reminder across a process boundary, which adds up to 60+ seconds for a large list. rem does the same operation in 130ms — a 462× speedup.
Does rem work with iCloud Reminders?
Yes. rem accesses whatever is synced to your local macOS Reminders store — including iCloud lists, local lists, and any other accounts you have configured in Reminders.app. All 19 commands work across all lists regardless of their sync source.
What macOS versions are supported?
rem requires macOS 10.12 (Sierra) or later. On macOS 14 (Sonoma) and later, it requests full Reminders access via the modern TCC API. On first run, macOS will prompt you to grant permission in System Settings → Privacy & Security → Reminders.
Can I use rem in scripts and automation?
Yes. Every command supports -o json for machine-readable output, making rem easy to pipe into other tools like jq. The rem export command produces full JSON or CSV dumps. For Go programs, use go-eventkit directly for programmatic EventKit access.
How do I add rem to an AI coding agent?
Run rem skills install to copy the embedded agent skill to your agent's skill directory. Supports Claude Code (~/.claude/skills/), Codex CLI (~/.agents/skills/), and OpenClaw (~/.openclaw/skills/). The skill teaches the agent all 19 commands, date formats, and output options.