360 Secure SkillHub
360 安全技能中心

Apple Reminders (remindctl)

使用 remindctl 命令行工具在 macOS 上读取、添加、编辑和完成 Apple 提醒事项:默认写入 Kaidan 列表,支持按 today/overdue 等条件筛选、设置截止时间、重复与地点触发;读取命令输出 JSON 后转述为人类可读摘要,禁止删除与列表级修改。

luisbueno
luisbueno
热度 16.02
最近更新 2026-05-15 12:01:46
分类:自动化依赖:代码执行应用场景:任务管理 / 日程安排 / 工作流

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add apple-reminders-remindctl
Metadata
name
apple-reminders
description
Manage Apple Reminders via the remindctl CLI. Use for time-anchored or place-anchored tracking that doesn't belong on the calendar.

Apple Reminders (remindctl)

Use this skill when Luis wants to track, capture, or check on time-anchored or place-anchored items that don't warrant a calendar event.

When to use this vs other stores

  • Reminders — actions tied to a time, place, or recurrence. "Remind me to..."
  • Google Calendar — events with a fixed time block and duration. "Schedule..."
  • Open Brain — durable facts, context, decisions, patterns. "Remember that..."

If an item belongs in two stores (e.g. "remind me to take Mounjaro every Wednesday" is both a recurring reminder AND a protocol fact worth knowing), create the reminder first, then capture a thought in Open Brain referencing the reminder by its ID prefix in the format reminder:4A83.

Most reminders are ephemeral ("grab milk") and do NOT belong in Open Brain. Only mirror when the item is durable context Luis will want to reason about later.

Hard rules

  1. Default write target is the Kaidan list. Never write to other lists unless Luis explicitly names one ("add this to Shopping").
  2. Never use delete. Use complete instead — it's reversible via --incomplete. Completed reminders auto-purge per Reminders' own settings.
  3. Never use list-level mutations — no list --rename, no list --delete, no list --create without Luis explicitly asking.
  4. Always pass --json on read commands (show, list). Parse the output, present a human summary back.
  5. Always pass --no-input to ensure non-interactive execution.
  6. Use ID prefixes (e.g. 4A83), not indexes (1, 2), for any operation that spans more than one command. Indexes shift between show runs; ID prefixes are stable.

Priority mapping

Use Luis's A/B/C mode framework when setting --priority:

  • high — A-mode floor (protocol, non-negotiable)
  • medium — B-mode (important, can flex)
  • low or none — C-mode (nice-to-have)

If priority isn't obvious from context, ask or default to none.

Common patterns

Check today's reminders:

remindctl show today --json --no-input

Check Luis's Kaidan list:

remindctl list Kaidan --json --no-input

Check all lists at once:

remindctl list --json --no-input

Add to default Kaidan list:

remindctl add "Title here" --list Kaidan --no-input --json

Add with due date:

remindctl add "Take Mounjaro" --list Kaidan --due "2026-05-13 09:00" --no-input --json

Add recurring:

remindctl add "Water garden" --list Kaidan --due tomorrow --repeat "every 3 days" --no-input --json

Add location-based (geofence):

remindctl add "Grab the mail" --list Kaidan --location "<address>" --radius 100 --no-input --json

Complete by ID prefix:

remindctl complete 4A83 --json --no-input

Edit (change title, move list, set due, etc.):

remindctl edit 4A83 --due "2026-05-14 18:00" --json --no-input

Clear a due date or recurrence:

remindctl edit 4A83 --clear-due --no-repeat --json --no-input

Filters available on show

today | tomorrow | week | overdue | upcoming | open | completed | all | <YYYY-MM-DD>

Default to today for "what do I have today" questions. Use overdue proactively when Luis hasn't checked in a while.

Failure modes

  • Authorization revoked: remindctl status returns not-authorized. Tell Luis to run remindctl authorize from a terminal at the Mac Mini.
  • List not found: Reminders requires the list to exist. Don't auto-create — ask Luis whether he wants the Kaidan list created or whether he meant a different list.
  • Ambiguous ID prefix: If edit/complete returns an ambiguity error, run show --json and use a longer prefix or the full ID.
  • Quiet output is misleading: Always parse --json output to confirm success rather than assuming silence means success.

Notes on scope

  • remindctl is installed via Homebrew: brew install steipete/tap/remindctl
  • Requires macOS Reminders Automation permission (granted)
  • All operations target the user's iCloud Reminders, so changes are visible on iPhone, Watch, and other Apple devices within seconds