← 返回 Skills 市场
johnmuin

apple-notes-writer

作者 johnmuin · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ✓ 安全检测通过
121
总下载
0
收藏
0
当前安装
1
版本数
在 OpenClaw 中安装
/install apple-notes-writer
功能描述
完美格式写入Apple备忘录。支持HTML格式、Markdown转换、多文件夹管理、自动转义特殊字符。
使用说明 (SKILL.md)

Apple Notes Writer

将内容以完美格式写入Apple备忘录(macOS only)。

功能特性

  • HTML格式支持 - 标题、列表、粗体、斜体等丰富格式
  • Markdown转换 - 自动将Markdown转为Apple Notes支持的HTML
  • 特殊字符转义 - 自动处理引号、反斜杠等棘手字符
  • 文件夹管理 - 支持创建文件夹、指定目标文件夹
  • 更新模式 - 可选择更新同名笔记或创建新笔记

使用方法

方式一:直接调用Python脚本

# 写入HTML格式内容
python scripts/apple_notes.py write \
    --title "我的笔记" \
    --content "\x3Cdiv>\x3Ch1>标题\x3C/h1>\x3Cp>内容\x3C/p>\x3C/div>"

# 从Markdown文件写入
python scripts/apple_notes.py write \
    --title "Markdown笔记" \
    --file content.md \
    --markdown

# 写入指定文件夹
python scripts/apple_notes.py write \
    --title "工作笔记" \
    --content "\x3Cdiv>\x3Cp>内容\x3C/p>\x3C/div>" \
    --folder "工作"

# 更新已存在的笔记
python scripts/apple_notes.py write \
    --title "我的笔记" \
    --content "\x3Cdiv>\x3Cp>新内容\x3C/p>\x3C/div>" \
    --update

# 读取笔记内容
python scripts/apple_notes.py read --title "我的笔记"

# 列出文件夹中的所有笔记
python scripts/apple_notes.py list --folder "工作"

# 创建新文件夹
python scripts/apple_notes.py create-folder --title "新项目"

方式二:在Python代码中使用

from scripts.apple_notes import AppleNotesWriter, markdown_to_html

# 创建写入器
writer = AppleNotesWriter(account="iCloud")

# 写入HTML内容
html_content = """\x3Cdiv>
\x3Ch1>会议记录\x3C/h1>
\x3Cp>时间:2024年3月28日\x3C/p>
\x3Cul>
    \x3Cli>讨论项目进度\x3C/li>
    \x3Cli>确定下周计划\x3C/li>
\x3C/ul>
\x3C/div>"""

result = writer.write(
    title="会议记录",
    content=html_content,
    folder="工作",
    update_existing=True
)
print(result)  # SUCCESS: Note created/updated - 会议记录

# Markdown转HTML后写入
markdown_text = """
# 学习笔记

## 重点内容

- **第一点**:非常重要
- *第二点*:次要内容

### 总结
这是总结段落。
"""

html = markdown_to_html(markdown_text)
writer.write(title="学习笔记", content=html)

支持的HTML标签

Apple Notes原生支持以下HTML标签:

标签 效果
\x3Ch1> \x3Ch2> \x3Ch3> 大标题、中标题、小标题
\x3Cp> 段落
\x3Cbr> 换行
\x3Cul> \x3Cli> 无序列表(圆点)
\x3Col> \x3Cli> 有序列表(数字)
\x3Cb> \x3Cstrong> 粗体
\x3Ci> \x3Cem> 斜体
\x3Cu> 下划线
\x3Cdiv> 容器(必须包裹内容)

HTML格式规范

✅ 正确示例

\x3Cdiv>
\x3Ch1>大标题\x3C/h1>
\x3Cp>这是一个段落,包含\x3Cb>粗体文字\x3C/b>和\x3Ci>斜体文字\x3C/i>。\x3C/p>
\x3Cul>
    \x3Cli>列表项1\x3C/li>
    \x3Cli>列表项2\x3C/li>
\x3C/ul>
\x3C/div>

❌ 错误示例

\x3C!-- 错误:没有外层div包裹 -->
\x3Ch1>标题\x3C/h1>
\x3Cp>内容\x3C/p>

\x3C!-- 错误:使用不支持的标签 -->
\x3Cdiv>
\x3Ccode>代码块\x3C/code>  \x3C!-- code标签不支持 -->
\x3Cimg src="...">    \x3C!-- img标签不支持 -->
\x3C/div>

\x3C!-- 错误:未闭合的标签 -->
\x3Cdiv>
\x3Cp>内容
\x3C/div>

Markdown转换规则

使用 markdown_to_html() 函数转换:

Markdown 转换结果
# 标题 \x3Ch1>标题\x3C/h1>
## 标题 \x3Ch2>标题\x3C/h2>
### 标题 \x3Ch3>标题\x3C/h3>
**粗体** \x3Cb>粗体\x3C/b>
*斜体* \x3Ci>斜体\x3C/i>
- 列表项 \x3Cul>\x3Cli>列表项\x3C/li>\x3C/ul>
1. 列表项 \x3Col>\x3Cli>列表项\x3C/li>\x3C/ol>
空行 \x3Cbr>

特殊字符与符号

自动转义的字符

脚本自动处理以下特殊字符:

字符 处理方式
\ 转义为 \\
" 转义为 \"
' 无需转义
`\
` 转为 \x3Cbr>
\x3C > HTML转义(Markdown模式)

推荐使用的特殊符号

Apple Notes完美支持以下Unicode符号:

符号 用途 示例
完成/正确 \x3Cli>✓ 已完成\x3C/li>
失败/错误 \x3Cli>✗ 失败\x3C/li>
⚠️ 警告/注意 \x3Cp>⚠️ 重要提醒\x3C/p>
待办复选框 \x3Cli>☐ 待办事项\x3C/li>
列表圆点 \x3Cul>自动显示)
箭头/流程 \x3Cp>步骤1 → 步骤2\x3C/p>
📌 标记重点 \x3Cp>📌 核心结论\x3C/p>
💡 提示/想法 \x3Cp>💡 建议\x3C/p>

触发词

当用户提到以下内容时,使用此技能:

触发词 场景
"记笔记到备忘录" 创建新笔记
"写入Apple Notes" 创建/更新笔记
"创建备忘录" 创建新笔记
"更新备忘录" 更新现有笔记
"记录到备忘录" 创建新笔记
"保存到Apple备忘录" 创建新笔记
"添加到备忘录" 追加内容
"写入备忘录" 创建新笔记

工作流程

  1. 确认需求 - 了解笔记主题、目标文件夹
  2. 准备内容 - 用HTML格式组织内容,或使用Markdown转换
  3. 转义字符 - 使用内置函数处理特殊字符
  4. 执行写入 - 运行AppleScript创建/更新笔记
  5. 验证结果 - 确认内容正确写入
  6. 反馈用户 - 报告完成情况和笔记位置

高级用法

更新现有笔记

通过笔记ID更新已有笔记:

# 获取笔记ID后更新
note_id = "x-coredata://.../ICNote/p20"

script = f'''
tell application "Notes"
    set targetNote to note id "{note_id}"
    set body of targetNote to "{escaped_content}"
end tell
'''

subprocess.run(['osascript', '-e', script])

验证写入结果

verify_script = f'''
tell application "Notes"
    set targetNote to note id "{note_id}"
    return body of targetNote
end tell
'''
result = subprocess.run(['osascript', '-e', verify_script], 
                     capture_output=True, text=True)
print(result.stdout)  # 打印笔记内容验证

完整示例

示例1:记录会议纪要

from scripts.apple_notes import AppleNotesWriter

writer = AppleNotesWriter()

content = """\x3Cdiv>
\x3Ch1>产品评审会议纪要\x3C/h1>
\x3Cp>\x3Cb>时间:\x3C/b>2024年3月28日 14:00\x3C/p>
\x3Cp>\x3Cb>参会人:\x3C/b>张三、李四、王五\x3C/p>

\x3Ch2>讨论事项\x3C/h2>
\x3Cul>
    \x3Cli>确认Q2产品路线图\x3C/li>
    \x3Cli>讨论新功能优先级\x3C/li>
    \x3Cli>确定下周迭代计划\x3C/li>
\x3C/ul>

\x3Ch2>待办事项\x3C/h2>
\x3Cul>
    \x3Cli>\x3Cb>张三\x3C/b>:完成需求文档(3月30日前)\x3C/li>
    \x3Cli>\x3Cb>李四\x3C/b>:准备技术方案(4月1日前)\x3C/li>
\x3C/ul>

\x3Cp>---\x3C/p>
\x3Cp>\x3Ci>记录时间:2024-03-28 16:30\x3C/i>\x3C/p>
\x3C/div>"""

writer.write(
    title="产品评审会议纪要-20240328",
    content=content,
    folder="工作",
    update_existing=True
)

示例2:从Markdown文件批量导入

import os
from scripts.apple_notes import AppleNotesWriter, markdown_to_html

writer = AppleNotesWriter()
notes_dir = "/path/to/notes"

for filename in os.listdir(notes_dir):
    if filename.endswith('.md'):
        with open(os.path.join(notes_dir, filename), 'r') as f:
            markdown_content = f.read()
        
        html_content = markdown_to_html(markdown_content)
        title = filename.replace('.md', '')
        
        writer.write(
            title=title,
            content=html_content,
            folder="导入的笔记"
        )
        print(f"已导入: {title}")

注意事项

  1. 仅支持macOS - 依赖AppleScript,Windows/Linux不可用
  2. iCloud账户 - 默认使用iCloud账户,可修改account参数
  3. 文件夹必须存在 - 写入前确保目标文件夹已创建
  4. HTML标签限制 - 不支持\x3Ccode>\x3Cimg>\x3Ctable>等复杂标签
  5. 内容长度限制 - 单条笔记建议不超过10MB

故障排查

问题:笔记创建成功但格式错乱

原因:HTML标签未闭合或不支持 解决:检查所有标签是否正确闭合,只使用支持的标签

问题:特殊字符显示异常

原因:引号或反斜杠未正确转义 解决:使用脚本内置的转义函数,不要手动转义

问题:找不到文件夹

原因:文件夹不存在或名称错误 解决:先用create-folder创建文件夹,或检查文件夹名称

问题:AppleScript执行失败

原因:权限问题或Apple Notes未运行 解决:确保Apple Notes已安装并至少运行过一次,检查自动化权限

依赖

  • macOS 10.14+
  • Python 3.7+
  • Apple Notes.app

许可证

MIT License

安全使用建议
这个技能看起来实现了它宣称的功能:通过本地 Python 脚本调用 osascript/AppleScript 在 macOS 的 Apple Notes 中创建、更新和读取笔记。注意事项: - 该脚本会在本地执行 AppleScript(osascript),因此 macOS 的“自动化/辅助权限”可能会弹出授权提示。保证在受信任的机器上运行并授予最小必要权限。 - 批量导入会读取你指定目录下的文件(.md),只有在你信任这些文件内容时再运行以避免把不期望的内容写入 Notes。 - 虽然没有网络/外部凭据调用,但脚本会把你提供的任意内容写入系统 Notes;在将敏感信息通过此工具写入系统前请三思。 - 如果有顾虑,可先审阅 scripts/apple_notes.py 源码(已包含在包中)并在非生产帐号或测试机器上试运行。
功能分析
Type: OpenClaw Skill Name: apple-notes-writer Version: 1.0.0 The apple-notes-writer skill is a legitimate tool for automating Apple Notes on macOS. It uses Python's subprocess module to execute AppleScript (osascript) for creating, reading, and managing notes. The code includes functional escaping logic (_escape_for_applescript) to prevent command injection within the AppleScript environment and provides a simple Markdown-to-HTML converter. No evidence of data exfiltration, malicious persistence, or harmful prompt injection was found across the scripts (apple_notes.py) or documentation (SKILL.md).
能力评估
Purpose & Capability
技能名/描述(写入 Apple Notes)与其所需项一致:没有外部凭据、没有不相关的二进制或配置路径。代码实现通过 AppleScript 操作 Notes(macOS-only),这是实现该目的的合理手段。
Instruction Scope
SKILL.md 指示运行本地 Python 脚本、可读取本地 Markdown 文件并将内容通过 AppleScript 写入 Notes。指令只引用本地文件、AppleScript 和 Notes,未要求读取系统范围凭据或把数据发送到外部网络端点。批量导入会读取指定目录下的 .md 文件——这与功能预期一致。
Install Mechanism
无安装规范(instruction-only + 附带脚本文件),不会自动下载或在安装时写入不明二进制。代码以脚本形式包含在包内,执行时使用本机 osascript。
Credentials
无需任何环境变量、API 密钥或外部凭据。请求的本地资源(文件路径、Notes 帐户)与功能直接相关,未见与功能无关的敏感凭据。
Persistence & Privilege
技能未设置 always:true,也不会修改其他技能或全局代理配置。默认允许模型调用(平台默认),但这与技能能力和风险无不一致之处。
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install apple-notes-writer
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /apple-notes-writer 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.0.0
Apple Notes Writer 1.0.0 – 首次发布 - 支持以HTML格式完美写入Apple备忘录,适配标题、列表、粗体、斜体等基础样式 - 自动将Markdown内容转换为Apple Notes兼容的HTML - 内置特殊字符转义与处理,保证内容格式安全 - 支持指定/创建文件夹、更新或新建同名笔记 - 提供Python API及命令行脚本调用方式,方便集成与自动化 - 附带故障排查、示例代码、格式规范与高级用法说明
元数据
Slug apple-notes-writer
版本 1.0.0
许可证 MIT-0
累计安装 0
当前安装数 0
历史版本数 1
常见问题

apple-notes-writer 是什么?

完美格式写入Apple备忘录。支持HTML格式、Markdown转换、多文件夹管理、自动转义特殊字符。 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 121 次。

如何安装 apple-notes-writer?

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

apple-notes-writer 是免费的吗?

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

apple-notes-writer 支持哪些平台?

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

谁开发了 apple-notes-writer?

由 johnmuin(@johnmuin)开发并维护,当前版本 v1.0.0。

💬 留言讨论