ClawSkills logoClawSkills

Mac Reminders Agent

与 macOS 提醒事项应用集成,以查看今天/本周的任务或添加新提醒。 通过 Swift EventKit 支持原生重复(매주/weekly/毎週/每周)——cr

介绍

# Mac Reminders Agent

## 概述

此技能与本地 macOS **提醒事项** 应用集成,以实现:

- 查看和组织今天/本周的提醒(工作/个人/会话) - 基于自然语言请求添加新提醒 - **原生重复**:每周、每日、每月、每年的重复提醒 - **多语言支持**:英语、韩语、日语、中文

该技能在其目录下使用以下文件:

- `cli.js`(统一入口点) - `reminders/apple-bridge.js`(后端:AppleScript + `applescript` npm 模块) - `reminders/eventkit-bridge.swift`(通过 Swift EventKit 实现原生重复) - `locales.json`(特定语言的触发词和回复)

## 语言支持

该技能会自动检测用户语言,也可以通过 `--locale` 参数显式设置。

### 支持的语言

| 代码 | 语言 | 示例触发词 | |------|----------|-----------------| | `en` | 英语 | "What do I have to do today?" | | `ko` | 한국어 | "오늘 할 일 뭐 있어?" | | `ja` | 日本語 | "今日のタスクは?" | | `zh` | 中文 | "今天有什么任务?" |

### 语言检测

1. **显式**:使用 `--locale` 参数 2. **自动**:根据用户消息的语言检测 3. **默认**:回退到 `en`(英语)

---

## 工作原理

用户自然语言请求在两种情况下处理:

1. **列出提醒** 2. **添加提醒**

对于每种情况,调用 Node.js CLI,接收 JSON 结果,并使用特定于语言的模板格式化它们。

---

## 1) 列出提醒

### 触发词示例(按语言)

**英语:** - "What do I have to do today?" - "Show me today's reminders" - "What's on my schedule this week?"

**韩语 (한국어):** - "오늘 할 일 뭐 있어?" - "오늘 미리알림 정리해줘" - "이번 주 일정 뭐 있어?"

**日语 (日本語):** - "今日のタスクは?" - "今日のリマインダーを見せて"

**中文 (中文):** - "今天有什么任务?" - "显示今天的提醒"

### 命令调用

```bash # List with default locale (en) node skills/mac-reminders-agent/cli.js list --scope today

# List with specific locale node skills/mac-reminders-agent/cli.js list --scope week --locale ko ```

### 范围选项

- `today` - 仅今天 - `week` - 本周(今天 ~ +7 天) - `all` - 所有提醒

### 输出格式

返回 JSON 数组:

```json [ { "title": "Task title", "due": "2026-02-05T16:30:00" | null } ] ```

### 回复格式化

使用 `locales.json` 模板用用户的语言格式化回复:

**英语:** ``` [Incomplete Reminders] - 2/2 (Mon) 09:00 [Work] Meeting - 2/3 (Tue) 14:00 [Personal] Visit bank

[Completed] - 2/1 (Sun) [Work] Submit report ✅ ```

**韩语:** ``` [미완료 미리알림] - 2/2 (월) 09:00 [업무] 회의 - 2/3 (화) 14:00 [개인] 은행 방문

[완료됨] - 2/1 (일) [업무] 보고서 제출 ✅ ```

---

## 2) 添加提醒

### 触发词示例(按语言)

**英语:** - "Add a meeting reminder for 9am tomorrow" - "Set a reminder to submit report by Friday"

**韩语 (한국어):** - "내일 아침 9시에 회의 미리알림 추가해줘" - "이번 주 금요일까지 보고서 제출 미리알림 넣어줘"

**日语 (日本語):** - "明日の朝9時に会議のリマインダーを追加して"

**中文 (中文):** - "添加明天早上9点的会议提醒"

### 命令调用

```bash # Add with locale node skills/mac-reminders-agent/cli.js add --title "Meeting" --due "2026-02-05T09:00:00+09:00" --locale ko ```

### 参数

- `--title`(必需):提醒标题 - `--due`(可选):ISO 8601 格式 (`YYYY-MM-DDTHH:mm:ss+09:00`) - `--note`(可选):附加备注 - `--locale`(可选):回复语言(en, ko, ja, zh)

### 回复示例

**英语:** - "Added 'Meeting' reminder for 9am tomorrow." - "Added 'Submit report' reminder without a due date."

**韩语:** - "'회의' 미리알림을 추가했어요 (내일 오전 9시)." - "'보고서 제출' 미리알림을 추가했어요 (마감일 없음)."

---

## 3) 重复提醒(原生重复)

使用 `--repeat` 创建具有**原生重复**的提醒(带有重复规则的单个提醒,而不是多个副本)。

### 命令调用

```bash # Weekly recurring reminder node skills/mac-reminders-agent/cli.js add --title "Weekly standup" --due "2026-02-10T09:00:00+09:00" --repeat weekly

# Bi-weekly reminder node skills/mac-reminders-agent/cli.js add --title "Sprint review" --due "2026-02-10T14:00:00+09:00" --repeat weekly --interval 2

# Monthly reminder until end of year node skills/mac-reminders-agent/cli.js add --title "Monthly report" --due "2026-02-28T17:00:00+09:00" --repeat monthly --repeat-end 2026-12-31 ```

### 参数

- `--repeat`(可选):`daily`、`weekly`、`monthly`、`yearly` - `--interval`(可选):重复间隔(默认:1)。例如:`--interval 2` = 每 2 周 - `--repeat-end`(可选):`YYYY-MM-DD` 格式的结束日期

### 重要:始终对重复日程使用 --repeat

当用户请求重复提醒(매주, 격주, 매월 等)时,**必须使用 --repeat 选项**。

不要手动创建多个单独的提醒。

**正确:** ```bash node cli.js add --title "주간 회의" --due "2026-02-10T09:00:00+09:00" --repeat weekly ```

**错误(请勿这样做):** ```bash # Creating 12 separate reminders is WRONG node cli.js add --title "주간 회의 - 2/10" --due "2026-02-10T09:00:00+09:00" node cli.js add --title "주간 회의 - 2/17" --due "2026-02-17T09:00:00+09:00" ... ```

---

## 错误处理

### 支持语言的错误消息

**英语:** - "There was a problem accessing the Reminders app."

**韩语:** - "미리알림 앱에 접근하는 데 문제가 생겼어요."

**日语:** - "リマインダーアプリへのアクセスに問題が発生しました。"

### 回退建议

当自动集成失败时,用用户的语言提供替代方案。

---

## 要求与安装

### 系统要求

| 要求 | 详情 | |-------------|---------| | **操作系统** | 仅 macOS(在 macOS 13+ 上测试) | | **Node.js** | v18.0.0 或更高版本 | | **npm** | 随 Node.js 一起包含 | | **Swift** | 随 Xcode 命令行工具一起包含 |

### 安装

```bash # 1. Install Xcode Command Line Tools (if not already installed) xcode-select --install

# 2. Install npm dependencies cd $SKILL_DIR npm install ```

### macOS 权限

此技能需要访问**提醒事项**应用。首次使用时:

1. macOS 会显示一个权限对话框,请求允许访问提醒事项 2. 点击 **“好”** 或 **“允许”** 以授予访问权限 3. 如果被拒绝,请前往 **系统设置 > 隐私与安全性 > 提醒事项** 并为 Terminal/您的 IDE 启用访问权限

> **注意**:Swift EventKit 桥接 (`eventkit-bridge.swift`) 会在需要时即时编译。无需手动编译。

---

## 总结

- 通过 `locales.json` 提供多语言支持(en, ko, ja, zh) - 核心命令: - `list --scope today|week|all [--locale XX]` - `add --title ... [--due ...] [--repeat daily|weekly|monthly|yearly] [--interval N] [--repeat-end YYYY-MM-DD] [--locale XX]` - **原生重复**:使用 `--repeat` 创建重复提醒(创建带有重复规则的单个提醒) - 自动检测用户语言或使用显式的 `--locale` 参数 - 使用特定于语言的模板格式化回复

更多产品