← 返回 Skills 市场
masteryuuuu

Mac Reminder Bridge

作者 MasteRyuuuu · GitHub ↗ · v2.1.2 · MIT-0
cross-platform ✓ 安全检测通过
242
总下载
0
收藏
0
当前安装
3
版本数
在 OpenClaw 中安装
/install mac-reminder-bridge
功能描述
Manage macOS Reminders.app from Docker via HTTP bridge. Use when user says: set/add/create a reminder, remind me to X, cancel/delete a reminder, mark reminde...
使用说明 (SKILL.md)

Skill: Mac Reminder Bridge

Control macOS Reminders.app from inside Docker via HTTP. Base URL: http://host.docker.internal:5000


When to use

User intent Endpoint
"Remind me to / Set a reminder / Add a reminder" POST /add_reminder
"Cancel / Delete my reminder to ..." POST /delete_reminder
"Done with / Mark ... as complete" POST /complete_reminder
"Unmark / reopen reminder ..." POST /complete_reminder with completed:false
"Update / Change / Edit my reminder ..." POST /update_reminder
"What are my reminders / Show reminders" GET /list_reminders
"What lists do I have" GET /list_lists

POST /add_reminder

{
  "task":      "Buy groceries",
  "list":      "Shopping",
  "due":       "2025-12-31 09:00",
  "remind_at": "2025-12-31 08:50",
  "notes":     "Get milk and eggs",
  "priority":  "high"
}
  • task required; all others optional
  • due / remind_at format: YYYY-MM-DD HH:MM
  • priority: none | low | medium | high
  • list: leave empty to use the default list

POST /update_reminder

{
  "task":         "Buy groceries",
  "fuzzy":        false,
  "new_task":     "Buy organic groceries",
  "new_due":      "2025-12-31 10:00",
  "new_notes":    "Also get juice",
  "new_priority": "medium"
}
  • task identifies which reminder to update
  • Set new_due to "" to clear the due date
  • Only include the fields you want to change

POST /delete_reminder

{ "task": "Buy groceries", "fuzzy": false, "list": "" }
  • fuzzy: true → match by "contains" (useful when unsure of exact wording)
  • list: leave empty to search ALL lists

POST /complete_reminder

{ "task": "Buy groceries", "completed": true, "fuzzy": false }
  • completed: false → un-check / reopen the reminder

GET /list_reminders

GET /list_reminders
GET /list_reminders?list=Shopping
GET /list_reminders?completed=true
GET /list_reminders?completed=all

Returns structured JSON with task, due, notes, priority, completed, list.


GET /list_lists

Returns all lists with pending/total counts and the default list name.


GET /health

Check if listener is running and has Reminders permission.


Agent step-by-step

Adding a reminder

  1. Extract: task (required), due, remind_at, notes, priority, list
  2. POST /add_reminder
  3. Confirm: "✅ Reminder set: \x3Ctask>" + due date if applicable

Deleting a reminder

  1. Extract task name; use fuzzy: true if unsure of exact wording
  2. POST /delete_reminder
  3. Check count: if 0, say "⚠️ No reminder found matching '\x3Ctask>'"

Updating a reminder

  1. Extract current name and what to change
  2. POST /update_reminder with only the changed fields
  3. Confirm what was changed

Listing reminders

  1. GET /list_reminders (add ?list=X if user specifies a list)
  2. Format results clearly, grouping by list if multiple lists present

Health check before important ops

curl http://host.docker.internal:5000/health

Auth header (if BRIDGE_SECRET is set)

X-Bridge-Secret: \x3Csecret>
安全使用建议
This skill appears to be what it says: a host-side listener you run on your Mac plus client calls from inside Docker. Before installing/running: 1) Only run listener.py on a Mac you control (it uses osascript to access Reminders and will require macOS permission). 2) Secure the bridge: set BRIDGE_SECRET and/or restrict BRIDGE_ALLOWED_IPS to the specific Docker/host IPs you trust (do not set 0.0.0.0/0 without a secret). 3) Be aware logs are written next to the script (reminder_bridge.log). 4) If you run the agent in a remote/cloud environment, ensure the cloud IP is explicitly added to the allowlist or use BRIDGE_SECRET — otherwise the bridge could be reachable from unintended hosts. If you want more assurance, review the full listener.py AppleScript calls yourself before running.
功能分析
Type: OpenClaw Skill Name: mac-reminder-bridge Version: 2.1.2 The skill bundle provides a legitimate HTTP bridge to manage macOS Reminders from a Dockerized environment. It includes proactive security measures such as IP allowlisting, optional shared-secret authentication (BRIDGE_SECRET), and input sanitization in listener.py (as_escape function) to prevent AppleScript injection. No evidence of data exfiltration, malicious persistence, or harmful prompt injection was found.
能力评估
Purpose & Capability
Name/description claim to control macOS Reminders from Docker; the package contains a host-side Python listener (listener.py) that uses osascript to talk to Reminders and a client helper (send_reminder.sh) plus SKILL.md that instructs the agent to call http://host.docker.internal:5000. Required binary (curl) matches the client-side usage. Nothing in the files asks for unrelated cloud credentials or extra system access.
Instruction Scope
SKILL.md is narrowly scoped: it instructs the agent to call specific REST endpoints and mentions an optional X-Bridge-Secret header. The included listener.py runs only AppleScript (osascript) to manipulate Reminders and exposes health and CRUD endpoints. Note: the listener must be run on the macOS host and will prompt for Reminders permission; it writes logs to the repo directory. No instructions attempt to read unrelated host files or exfiltrate data externally.
Install Mechanism
No automated install spec is provided (instruction-only). README instructs cloning and running pip install -r requirements.txt and then running listener.py on the Mac — a standard, transparent manual setup. There are no downloads from obscure URLs or extracted archives in an automated install step.
Credentials
The skill package itself does not require any environment variables for the agent side (only curl). The host listener optionally reads BRIDGE_SECRET, BRIDGE_PORT, BRIDGE_ALLOWED_IPS, and DRY_RUN which are appropriate for a networked bridge. One operational caveat: the default ALLOWED_IPS includes 172.0.0.0/8 (useful for Docker networking) — if misconfigured (e.g., set to 0.0.0.0/0 without a secret) it could expose the bridge. The optional BRIDGE_SECRET is an appropriate mitigation but is not required by the skill.
Persistence & Privilege
The skill is not always-enabled and does not request elevated platform privileges beyond running a user-level Python listener on the Mac. Autonomous invocation by the agent is normal here; no skills-wide persistent/global privilege escalation is requested.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install mac-reminder-bridge
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /mac-reminder-bridge 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v2.1.2
Added cloud deployment documentation and IP allowlist configuration examples.
v2.1.1
Fixed Python compatibility issues for older versions (pre-3.10).
v2.1.0
Initial GitHub-linked release with security hardening and bilingual docs.
元数据
Slug mac-reminder-bridge
版本 2.1.2
许可证 MIT-0
累计安装 0
当前安装数 0
历史版本数 3
常见问题

Mac Reminder Bridge 是什么?

Manage macOS Reminders.app from Docker via HTTP bridge. Use when user says: set/add/create a reminder, remind me to X, cancel/delete a reminder, mark reminde... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 242 次。

如何安装 Mac Reminder Bridge?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install mac-reminder-bridge」即可一键安装,无需额外配置。

Mac Reminder Bridge 是免费的吗?

是的,Mac Reminder Bridge 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。

Mac Reminder Bridge 支持哪些平台?

Mac Reminder Bridge 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 Mac Reminder Bridge?

由 MasteRyuuuu(@masteryuuuu)开发并维护,当前版本 v2.1.2。

💬 留言讨论