核心用法
remindctl 是第三方开源 CLI 工具,将 macOS 原生 Apple 提醒事项功能暴露到终端,支持完整的 CRUD 操作:
- 查询过滤:按日期(today/tomorrow/week/overdue/具体日期)或列表筛选
- 任务管理:创建(支持标题、列表归属、截止时间)、完成(按 ID 批量标记)、删除
- 列表操作:创建、删除、查看所有列表
- 输出格式:默认人类可读、JSON(脚本集成)、TSV(--plain)、仅计数(--quiet)
典型工作流
remindctl add "Buy milk" --list Personal --due tomorrow remindctl today --json | jq '.[] | select(.overdue)' remindctl complete 1 2 # 批量完成
显著优点
1. 原生生态集成:任务秒级同步至 iCloud,自动出现在 iPhone/iPad/Mac 提醒事项 App
2. 日期语义丰富:支持自然语言(tomorrow、2026-01-04、ISO 8601)及精确时间
3. 脚本友好:JSON/TSV 输出便于与 cron、Alfred、Raycast 等工具链集成
4. 零后台服务:直接调用 EventKit 框架,无第三方服务器
潜在局限与风险
| 维度 | 说明 |
|------|------|
| 平台锁定 | **仅限 macOS**,无 Linux/Windows 支持 |
| 权限依赖 | 首次运行需用户手动授予「提醒事项」系统权限,CI/自动化场景需提前配置 |
| 功能边界 | 不支持重复提醒、位置提醒、子任务(Apple Reminders 高级功能)|
| 项目状态 | 个人开源项目(steipete/tap),非 Apple 官方,长期维护依赖社区 |
| 数据安全 | 数据流经 Apple iCloud,受 Apple 隐私政策约束;工具本身不额外传输数据 |
适合人群
- macOS 重度终端用户,偏好 CLI 工作流
- 需将脚本化任务(如部署检查、定时备份)同步至手机查看
- 已深度使用 Apple 生态,不愿引入 Notion/Todoist 等第三方服务
常规风险
- 权限弹窗阻塞:未授权时命令失败,自动化脚本需预授权
- ID 不稳定:提醒事项 ID 非持久(如列表重建后变化),脚本应优先用标题匹配
- 时区敏感:跨时区旅行时,"today" 过滤可能偏移
- 版本漂移:Homebrew tap 更新若滞后,可能错过 Apple EventKit API 变更适配