Skip to main content
Glama

创建列表、添加提醒事项、将它们整理到分区中,并让一切在你的所有 Apple 设备间同步 —— 全部通过终端完成。

为什么选择 remi?

  • 支持 iCloud 同步的分区 —— 唯一支持 Apple 提醒事项分区的 CLI。创建分区、分配提醒事项、在分区间移动,一切都会自动同步。

  • 自然语言 —— --due "next tuesday"(下周二到期),--repeat "every 2 weeks on monday,friday"(每两周的周一和周五重复)。

  • 模糊匹配 —— 输入 remi list shopping 即可,无需输入 remi list "Groceries / Shopping List"

  • AI 代理优先 —— 结构化 JSON 输出,支持 Claude Code 插件、skills.sh 技能,兼容 OpenClaw。

  • 快速 —— 编译后的 Swift 辅助程序,无 Electron,无 GUI。

与其他工具对比

remi

remindctl

reminders-cli

分区

分区同步 (iCloud)

N/A

N/A

重复提醒

自然语言日期

JSON 输出

AI 代理集成

部分

Related MCP server: MCP Apple Reminders

安装

brew tap mattheworiordan/tap && brew install remi

或通过 npm 安装:

npm install -g @mattheworiordan/remi
# or run without installing
npx @mattheworiordan/remi lists

快速开始

remi lists                                              # See all lists
remi list "Groceries"                                   # View a list (fuzzy: remi list groceries)
remi add "Groceries" "Buy milk" --section "Dairy"       # Add to a section
remi today                                              # What's due today?
remi complete "Groceries" "milk"                        # Fuzzy complete

使用方法

查看待办事项

remi today                    # Due today
remi overdue                  # Past due
remi upcoming --days 7        # Coming up
remi search "dentist"         # Search across all lists

管理提醒事项

remi add "Work" "Review PR" --due "next friday" --priority high
remi add "Work" "Standup" --due tomorrow --repeat daily
remi complete "Work" "standup"
remi update "Work" "Review PR" --due "in 3 days"
remi delete "Work" "Review PR" --confirm

日期:tomorrow(明天)、next tuesday(下周二)、in 3 days(3天后)或 YYYY-MM-DD 重复:daily(每天)、weekly(每周)、monthly(每月)、every 2 weeks(每两周)、every 3 months on monday,friday(每三个月的周一和周五)

使用分区进行整理

remi sections "Groceries"                                # List sections
remi create-section "Groceries" "Produce"                # Create a section
remi add "Groceries" "Bananas" --section "Produce"       # Add to a section
remi move "Groceries" "Bananas" --to-section "Dairy"     # Move between sections

分区通过 CRDT 向量时钟同步到 iCloud。查看工作原理

JSON 输出

每个命令都支持 --json 以获取机器可读的输出:

remi today --json
# {"success": true, "data": [...]}

AI 代理集成

remi 专为 AI 代理设计。将其用作 MCP 服务器、Claude Code 插件或技能:

MCP 服务器

{
  "mcpServers": {
    "remi": {
      "command": "remi",
      "args": ["--mcp"]
    }
  }
}

16 个工具:remi_listsremi_addremi_completeremi_moveremi_todayremi_search 等 —— 全部支持模糊匹配和结构化响应。

其他集成

# Claude Code plugin
claude plugin marketplace add mattheworiordan/remi

# skills.sh
npx skills add mattheworiordan/remi

# OpenClaw
clawhub install remi

权限

首次运行时,macOS 会要求你授予“提醒事项”访问权限(点击“允许”)。分区功能还需要为你的终端应用授予“完全磁盘访问权限”。

remi authorize    # Guides you through both
remi doctor       # Shows what's granted

要求

  • macOS 13+ (Ventura 或更高版本)

  • Node.js 18+

  • Xcode 命令行工具 (xcode-select --install)

工作原理

由于 Apple 从未在其公共 API 中公开分区功能,remi 使用了三层架构:

层级

内容

原因

EventKit

提醒事项 CRUD、查询、重复

稳定的公共 API

ReminderKit

分区 CRUD

私有框架 —— 创建可同步分区的唯一途径

SQLite + Token Maps

分区成员关系

直接数据库写入,使用 CRDT 向量时钟实现 iCloud 同步

完整的逆向工程故事解释了我们对 Apple 未公开的同步架构的发现。

贡献

git clone https://github.com/mattheworiordan/remi.git && cd remi
npm install && npm run build:swift && npm run build
npm test                        # Unit tests
npm run test:integration        # Integration tests (needs Reminders access)

许可证

MIT — Matthew O'Riordan

Related MCP Connectors

Related MCP Servers