关于 macos-notes
macos-notes 是一项通过脚本管理 Apple Notes 的技能,适用于需要从命令行创建、查找和读取笔记的人。它提供按账户和文件夹操作的命令,并通过标准输入接收 JSON。
主要功能
- 01列出账户与文件夹
- 02创建纯文本或 HTML 笔记
- 03读取指定笔记
- 04列出和搜索笔记标题
- 05通过标准输入传递 JSON
适用场景
- 01将会议记录保存到指定文件夹
- 02查找提及特定主题的笔记
- 03读取某条已有笔记
- 04查看近期笔记列表
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ lucaperret/ agent-skills --skill macos-notes安装后在 Claude Code 中输入/macos-notes确认已加载。
附带文件scripts/notes.sh
详细介绍
macOS 备忘录
通过 $SKILL_DIR/scripts/notes.sh 管理 Apple Notes。备忘录内容在内部以 HTML 存储;脚本接受纯文本或 HTML 正文,读取时返回纯文本。
快速入门
列出文件夹
请始终先列出文件夹,以查找账户和文件夹名称:
"$SKILL_DIR/scripts/notes.sh" list-folders
输出格式:account → folder(每行一个)。
创建备忘录
echo '<json>' | "$SKILL_DIR/scripts/notes.sh" create-note
JSON 字段:
| 字段 | 必填 | 默认值 | 描述 |
|---|---|---|---|
title | 是 | - | 备忘录标题(会成为第一行/标题) |
body | 否 | "" | 备忘录内容(纯文本,会自动转换为 HTML) |
html | 否 | "" | 原始 HTML 正文(如果同时提供 body,则覆盖 body) |
folder | 否 | 默认文件夹 | 文件夹名称(来自 list-folders) |
account | 否 | 默认账户 | 账户名称(来自 list-folders) |
阅读备忘录
echo '<json>' | "$SKILL_DIR/scripts/notes.sh" read-note
JSON 字段:
| 字段 | 必填 | 默认值 | 描述 |
|---|---|---|---|
name | 是 | - | 备忘录标题(完全匹配) |
folder | 否 | 所有文件夹 | 要搜索的文件夹 |
account | 否 | 默认账户 | 要搜索的账户 |
列出备忘录
echo '<json>' | "$SKILL_DIR/scripts/notes.sh" list-notes
JSON 字段:
| 字段 | 必填 | 默认值 | 描述 |
|---|---|---|---|
folder | 否 | 默认文件夹 | 文件夹名称 |
account | 否 | 默认账户 | 账户名称 |
limit | 否 | 20 | 返回的备忘录数量上限 |
搜索备忘录
echo '<json>' | "$SKILL_DIR/scripts/notes.sh" search-notes
JSON 字段:
| 字段 | 必填 | 默认值 | 描述 |
|---|---|---|---|
query | 是 | - | 要在备忘录标题中搜索的文本 |
account | 否 | 默认账户 | 要搜索的账户 |
limit | 否 | 10 | 返回的结果数量上限 |
解读自然语言
将用户请求映射到命令:
| 用户说 | 命令 | 关键字段 |
|---|---|---|
| “记下这个:……” | create-note | title、body |
| “保存会议记录” | create-note | title: "Meeting notes — <date>"、body |
| “我写过关于 X 的什么内容?” | search-notes | query: "X" |
| “显示我的备忘录” | list-notes | (默认值) |
| “阅读我关于 X 的备忘录” | read-note | name: "X" |
| “把这个保存到我的工作备忘录里” | create-note | 根据 list-folders 中的信息匹配最接近的 account/folder |
示例提示词
“记下 API 密钥格式:prefix_xxxx”
echo '{"title":"API key format","body":"Format: prefix_xxxx"}' | "$SKILL_DIR/scripts/notes.sh" create-note
“显示我最近的备忘录”
echo '{}' | "$SKILL_DIR/scripts/notes.sh" list-notes
“我写过关于密码的什么内容?”
echo '{"query":"password"}' | "$SKILL_DIR/scripts/notes.sh" search-notes
“阅读我关于 Hinge 的备忘录”
echo '{"name":"Hinge"}' | "$SKILL_DIR/scripts/notes.sh" read-note
“在我的 iCloud 备忘录中创建一份会议摘要”
"$SKILL_DIR/scripts/notes.sh" list-folders
然后:
echo '{"title":"Meeting summary — 2026-02-17","body":"Discussed roadmap.\n- Q1: launch MVP\n- Q2: iterate","account":"iCloud","folder":"Notes"}' | "$SKILL_DIR/scripts/notes.sh" create-note
重要规则
- 如果用户未指定账户/文件夹,请始终先列出文件夹——不同账户可能使用相同的文件夹名称
- 指定特定位置时,同时提供账户和文件夹——仅填写
folder: "Notes"会产生歧义 - 跳过受密码保护的备忘录——脚本无法读取或修改这些备忘录
- 通过 stdin 传入 JSON——绝不要将其作为 CLI 参数传入(避免数据泄露在进程列表中)
- 脚本会验证所有字段(类型转换、范围检查)——无效输入会被拒绝并报错
- 所有操作都会记录到
logs/notes.log,包括时间戳、命令和备忘录标题 - 正文使用纯文本——
body中的换行符会自动转换为<br>;如需富文本格式,请使用html - 备忘录标题 = 第一行——Notes.app 会将正文的第一行视为备忘录名称
评论
支持 Markdown