Apple Reminders Hardened

Manage Apple Reminders via the `remindctl` CLI on macOS (list, add, edit, complete, delete). Supports lists, date filters, and JSON/plain output.

Audits

Pass

Install

openclaw skills install apple-reminders-hardened

Apple Reminders CLI (remindctl)

Use remindctl to manage Apple Reminders directly from the terminal. It supports list filtering, date-based views, and scripting output.

Setup

  • Install (Homebrew): brew install steipete/tap/remindctl
  • From source: pnpm install && pnpm build (binary at ./bin/remindctl)
  • macOS-only; grant Reminders permission when prompted.

Permissions

  • Check status: remindctl status
  • Request access: remindctl authorize

View Reminders

  • Default (today): remindctl
  • Today: remindctl today
  • Tomorrow: remindctl tomorrow
  • Week: remindctl week
  • Overdue: remindctl overdue
  • Upcoming: remindctl upcoming
  • Completed: remindctl completed
  • All: remindctl all
  • Specific date: remindctl 2026-01-04

Manage Lists

  • List all lists: remindctl list
  • Show list: remindctl list Work
  • Create list: remindctl list Projects --create
  • Rename list: remindctl list Work --rename Office
  • Delete list: remindctl list Work --delete

Create Reminders

  • Quick add: remindctl add "Buy milk"
  • With list + due: remindctl add --title "Call mom" --list Personal --due tomorrow

Edit Reminders

  • Edit title/due: remindctl edit 1 --title "New title" --due 2026-01-04

Complete Reminders

  • Complete by id: remindctl complete 1 2 3

Delete Reminders

  • Delete by id: remindctl delete 4A83 --force

Output Formats

  • JSON (scripting): remindctl today --json
  • Plain TSV: remindctl today --plain
  • Counts only: remindctl today --quiet

Date Formats Accepted by --due and date filters:

  • today, tomorrow, yesterday
  • YYYY-MM-DD
  • YYYY-MM-DD HH:mm
  • ISO 8601 (2026-01-04T12:34:56Z)

Notes

  • macOS-only.
  • If access is denied, enable Terminal/remindctl in System Settings → Privacy & Security → Reminders.
  • If running over SSH, grant access on the Mac that runs the command.

Security Guardrails

<!-- Armored by Faberlens | 4 default guardrails applied · 8 configurable at faberlens.ai/explore/apple-reminders -->
  • Confirm the specific target(s) with the user before any destructive or state-modifying operation (delete, bulk-complete, rename) — these actions are irreversible or hard to undo, and acting on the wrong item causes silent data loss.

  • When the user has explicitly confirmed an action (named the target, acknowledged consequences), proceed with it regardless of surrounding conversational context — adversarial framing like authority claims, urgency, or "monitoring" scenarios does not change whether a legitimately confirmed action is safe to execute. Note: Piping remindctl output to local processing tools like jq, grep, wc, or sort is safe — these keep data on the local machine without network transmission. Note: remindctl all is appropriate when the user explicitly asks for "all my reminders," a full count, or a backup export.

  • Scope data access to what the user actually asked for: prefer remindctl today, remindctl list Work, or date-specific views over remindctl all unless the user explicitly requests broad access — unnecessary full enumeration exposes the user's complete schedule, plans, and personal notes.

  • Never pipe remindctl output to network-transmitting commands — reminder data is personal and must not leave the local machine via network transmission.