🎁 Get the FREE AI Skills Starter GuideSubscribe →
BytesAgainBytesAgain
🦀 ClawHub

yinxiang-notes

by @suepradun

印象笔记(中国版)集成 skill。使用 Developer Token 在印象笔记中创建、整理和搜索笔记。支持笔记本列表、创建笔记、更新笔记内容/标签、移动笔记到废纸篓、查看/清空废纸篓、搜索内容、增量同步到 Obsidian vault。适用于使用 app.yinxiang.com 的用户。

Versionv1.0.0
Downloads794
Stars1
TERMINAL
clawhub install yinxiang-notes

📖 About This Skill


name: yinxiang-notes description: 印象笔记(中国版)集成 skill。使用 Developer Token 在印象笔记中创建、整理和搜索笔记。支持笔记本列表、创建笔记、更新笔记内容/标签、移动笔记到废纸篓、查看/清空废纸篓、搜索内容、增量同步到 Obsidian vault。适用于使用 app.yinxiang.com 的用户。

印象笔记集成

快速开始

前置条件

1. Developer Token:从 https://app.yinxiang.com/api/DeveloperToken.action 获取 2. Python 环境:需要 Python 3.7+ 3. SDK 安装

   pip install evernote3 thrift html2text
   

配置

.env 文件中设置:

EVERNOTE_TOKEN=S=s16:U=xxx:E=xxx:C=xxx:P=xxx:A=en-devtoken:V=2:H=xxx
EVERNOTE_NOTESTORE_URL=https://app.yinxiang.com/shard/s16/notestore

核心功能

1. 获取笔记本列表

python skills/yinxiang-notes/scripts/list_notebooks.py
python skills/yinxiang-notes/scripts/list_notebooks.py --verbose  # 显示每个笔记本的笔记数量

2. 获取标签列表

python skills/yinxiang-notes/scripts/list_tags.py

3. 创建笔记

python skills/yinxiang-notes/scripts/create_note.py --title "标题" --content "内容"

指定笔记本

python skills/yinxiang-notes/scripts/create_note.py --title "标题" --content "内容" --notebook "笔记本名"

添加标签

python skills/yinxiang-notes/scripts/create_note.py --title "标题" --content "内容" --tags "标签1,标签2"

ENML 格式说明:




    笔记内容...
    待办事项

4. 更新笔记

# 更新标题
python skills/yinxiang-notes/scripts/update_note.py --guid "笔记GUID" --title "新标题"

更新内容

python skills/yinxiang-notes/scripts/update_note.py --guid "笔记GUID" --content "新内容"

添加标签

python skills/yinxiang-notes/scripts/update_note.py --guid "笔记GUID" --add-tags "标签1,标签2"

移除标签

python skills/yinxiang-notes/scripts/update_note.py --guid "笔记GUID" --remove-tags "标签3"

组合操作

python skills/yinxiang-notes/scripts/update_note.py --guid "笔记GUID" --title "新标题" --add-tags "标签1"

5. 删除笔记(移至废纸篓)

# 预览(不实际删除)
python skills/yinxiang-notes/scripts/delete_note.py --guid "笔记GUID"

确认删除(移至废纸篓,可在客户端恢复)

python skills/yinxiang-notes/scripts/delete_note.py --guid "笔记GUID" --confirm

删除行为说明

  • delete_note.py 使用 deleteNote API,将笔记移至废纸篓,可在印象笔记客户端中恢复
  • 清空废纸篓后笔记才永久删除(见下方"清空废纸篓")
  • 6. 搜索笔记

    python skills/yinxiang-notes/scripts/search_notes.py "关键词"
    python skills/yinxiang-notes/scripts/search_notes.py "标题:关键词"
    python skills/yinxiang-notes/scripts/search_notes.py "any:关键词1 关键词2"
    

    搜索语法:

  • 关键词 — 在标题和正文中搜索
  • 标题:关键词 — 仅搜索标题
  • 创建时间:2024-01-01 — 按创建时间筛选
  • any:关键词1 关键词2 — 匹配任一关键词
  • 7. 同步到 Obsidian(增量同步)

    将印象笔记增量同步到本地 Obsidian vault,保持笔记本层级结构。

    目标 vaultC:\Users\adun\Documents\印象笔记同步

    # 同步全部笔记本
    python skills/yinxiang-notes/scripts/sync_to_obsidian.py

    只同步指定笔记本

    python skills/yinxiang-notes/scripts/sync_to_obsidian.py --notebook "笔记本名" python skills/yinxiang-notes/scripts/sync_to_obsidian.py -n "笔记本名"

    同步规则

    | 笔记类型 | 判断条件 | 处理方式 | |----------|----------|----------| | 📎 附件笔记 | 资源有 fileName+扩展名 | enml_to_markdown + 附件 section | | 🖼 内嵌图片笔记 | 有 en-media 但无 fileName | html2text 转 Markdown + 附件 section | | 📝 纯文本笔记 | 无大量 HTML 标签和 en-media | 直接转为 Markdown | | 📄 网页裁剪(短) | HTML ≥3个标签且 < 200KB | html2text 转为 Markdown | | 🔗 网页裁剪(长) | HTML ≥3个标签且 ≥ 200KB 且纯 HTML(无用户手写内容) | 存 HTML 进 _clips/ |

    附件存储:每个笔记本有独立的附件和裁剪目录

    印象笔记同步/
    ├── 笔记本A/
    │   ├── 笔记.md
    │   ├── _attachments/   ← 该笔记本附件(hash 去重)
    │   └── _clips/         ← 该笔记本 HTML 裁剪(≥5KB)
    ├── 笔记本B/
    │   ├── 笔记.md
    │   ├── _attachments/
    │   └── _clips/
    └── .obsidian/
    

    同步后笔记的 frontmatter

    ---
    title: 笔记标题
    created: 2026-03-19 10:30:00
    updated: 2026-03-19 14:22:00
    source: Evernote
    source_guid: xxx-xxx-xxx
    notebook: 笔记本名
    type: webclip  # 仅网页裁剪(≥200KB)和内嵌图片笔记有此字段
    

    特性

  • 增量同步:仅同步新增和变化的笔记
  • 断点续传:遇到 API 频率限制自动保存进度
  • 每次最多同步 50 条,避免触发限流
  • 支持命令行参数控制同步行为(--notebook 指定笔记本)
  • 使用 html2text 库进行 HTML 转 Markdown 转换
  • 8. 查看废纸篓

    python skills/yinxiang-notes/scripts/list_trash.py
    

    9. 清空废纸篓(永久删除)

    python skills/yinxiang-notes/scripts/empty_trash.py
    

    ⚠️ 警告:此操作会永久删除废纸篓中的所有笔记,无法恢复

    完整脚本列表

    | 脚本 | 功能 | |------|------| | list_notebooks.py | 获取笔记本列表(支持 --verbose 显示笔记数) | | list_tags.py | 获取标签列表 | | create_note.py | 创建笔记 | | update_note.py | 更新笔记(标题/内容/标签) | | delete_note.py | 删除笔记(移至废纸篓) | | search_notes.py | 搜索笔记 | | sync_to_obsidian.py | 增量同步印象笔记到 Obsidian vault | | list_trash.py | 查看废纸篓中的笔记 | | empty_trash.py | 清空废纸篓(永久删除) |

    API 端点

    | 环境 | NoteStore URL | |------|---------------| | 生产环境 | https://app.yinxiang.com/shard/s16/notestore | | 沙盒环境 | https://sandbox.yinxiang.com/shard/s1/notestore |

    错误处理

    | 错误码 | 说明 | 解决方案 | |--------|------|----------| | EDAMUserException (errorCode=2) | Token 无效或过期 | 重新申请 Developer Token | | EDAMNotFoundException | 资源不存在 | 检查笔记 GUID 或笔记本名 | | EDAMSystemException (errorCode=19) | API 频率限制 | 等待限流窗口后重试,脚本会自动处理 |

    注意事项

  • Token 仅显示一次,请妥善保存
  • API 频率限制:Evernote API 有每小时调用次数限制,同步脚本内置限流保护(每次获取笔记间隔 1 秒),避免触发限制
  • 删除:调用 deleteNote 移至废纸篓;调用 expungeNote 或清空废纸篓会永久删除
  • 网页裁剪(≥200KB):Obsidian 中点击笔记内的嵌入链接查看原始 HTML,建议安装 HTML Reader 插件以获得更好渲染效果