核心用法
macos-notes 是一款基于 AppleScript 的 macOS 专属技能,通过 osascript 与系统备忘录应用(Notes.app)深度集成,实现笔记的自动化管理。该技能采用 shell 脚本封装层 ($SKILL_DIR/scripts/notes.sh) 作为统一入口,支持六大核心操作:列出账户与文件夹、创建笔记、读取笔记、列出笔记、搜索笔记。
所有交互均通过 JSON 格式经 stdin 传递,避免命令行参数泄露敏感数据。创建笔记时支持纯文本自动转 HTML,或直接传入富文本 HTML;读取时则自动将内部 HTML 渲染为纯文本返回。技能强制要求先执行 list-folders 以识别账户结构,解决跨账户同名文件夹的歧义问题。
显著优点
1. 原生系统集成:直接调用 AppleScript,无需第三方云服务或 API 密钥,数据完全保留在本地 iCloud/本地账户中。
2. 零配置依赖:仅需系统预装的 osascript 和 python3,无额外二进制依赖。
3. 安全传输设计:JSON 通过 stdin 传递,规避进程列表暴露敏感内容的风险。
4. 自动格式转换:底层处理 HTML/文本转换,用户侧只需关注内容本身。
5. 审计日志:所有操作记录至 logs/notes.log,便于追溯。
潜在缺点与局限性
1. 平台严格受限:仅支持 macOS,Windows/Linux 用户无法使用。
2. 密码笔记不可访问:受 AppleScript 沙盒限制,无法读取或修改受密码保护的笔记。
3. 标题精确匹配:read-note 依赖笔记标题精确匹配,容错性较低。
4. 无并发控制:未提及锁机制,多进程同时写入可能导致数据竞争。
5. HTML 能力有限:虽支持原始 HTML 注入,但 Notes.app 实际渲染能力受限于其内部 HTML 子集,复杂样式可能被过滤。
适合人群
- macOS 重度用户,希望将笔记管理纳入自动化工作流
- 注重隐私、拒绝云服务同步的本地优先用户
- 需快速记录会议纪要、待办事项或碎片化信息的效率工作者
- 与其他 CLI 工具链(如
fzf、jq)集成的开发者
常规风险
- 数据误操作:精确匹配标题机制下,误删或覆盖同名笔记风险存在
- 脚本注入:虽经 JSON 转义,但
html字段的原始 HTML 注入仍需警惕 XSS 样式的内容污染 - iCloud 同步延迟:依赖系统级同步,网络异常时可能出现笔记状态不一致
- 权限变更:macOS 版本升级可能收紧
osascript对 Notes.app 的自动化权限,导致技能失效