Token导航 LogoToken导航TokenDH.com
研究检索敏感数据clawhub未标认证来源可访问clear审计通过

evernote-note印象笔记笔记

Agent Skill

evernote-note 用于查找、检索和筛选相关信息,适合在 OpenClaw 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

8,960

周安装

366

GitHub Stars

公开资料未说明

下载量

2,899
OpenClaw

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

MIT-0

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:evernote-note(印象笔记笔记)
来源仓库:https://github.com/heavenchenggong/evernote-note
安装命令:
openclaw skills install evernote-note
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install evernote-note

简介

evernote-note 用于管理印象笔记,支持搜索、浏览和新建笔记。

  • 适合存取个人文档和知识库时使用。evernote-note 属于研究检索类 Skill,可作为该场景下的辅助能力补充。
  • 支持追加内容和笔记本浏览,需确认 API 权限。
  • 通过 clawhub 安装,建议核对笔记同步频率和隐私设置。
  • 涉及编辑操作时,应先备份重要内容以防误改。

SKILL.md

name
evernote-note
description
|
homepage
https://www.yinxiang.com
metadata

evernote-note

通过印象笔记 API 管理用户个人笔记,支持读取(搜索、列表、获取内容)和写入(新建、追加)。

完整的数据结构和接口参数详见 references/api.md

Setup

选择认证方式

印象笔记支持两种认证方式,推荐使用开发者令牌(更简单)

方式适用场景复杂度说明
开发者令牌(推荐)个人使用、测试脚本⭐ 简单直接使用,无需申请,只能访问自己的账户
API Key + OAuth面向多用户的第三方应用⭐⭐⭐ 复杂需申请,支持多用户和高级功能

方式一:开发者令牌(推荐)

  1. 获取印象笔记开发者令牌

- 国内版访问:https://app.yinxiang.com/api/DeveloperToken.action - 国际版访问:https://www.evernote.com/api/DeveloperToken.action - 点击"Create a developer token"生成令牌 - 复制生成的 token(格式类似 S=s1:U=8f219:E=154308dc976:C=14cd8dc9cd8:P=1cd:A=en-devtoken:V=2:H=1e4d28c7982faf6222ecf55df3a2e84b

  1. 配置环境变量
# 国内版用户(默认)
export EVERNOTE_TOKEN="your_developer_token"
export EVERNOTE_HOST="app.yinxiang.com"

# 国际版用户(如使用的是国际版印象笔记)
export EVERNOTE_TOKEN="your_developer_token"
export EVERNOTE_HOST="www.evernote.com"
建议将上述 export 语句写入 ~/.zshrc~/.bashrc,避免每次重开终端失效。

方式二:API Key + OAuth(可选)

如果需要开发面向多用户的第三方应用,需要:

  1. 申请 API Key

- 访问 https://dev.yinxiang.com/support/(需登录印象笔记账户) - 填写应用信息(名称、描述、权限等) - 等待审核(通常 1-5 个工作日) - 收到邮件后获取 Consumer Key 和 Consumer Secret

  1. 实现 OAuth 流程

- 参考 OAuth 认证文档 - 使用印象笔记 Python SDK 的 OAuth 功能

注意:当前 skill 只支持开发者令牌方式。如需使用 OAuth,需要修改 skill 代码实现完整的 OAuth 流程。

安装 Python 依赖

首次使用前安装 Python 依赖:

pip3 install evernote2 oauth2

凭证预检

每次调用 API 前,先确认凭证可用。如果环境变量未设置,停止操作并提示用户按 Setup 步骤配置。

if [ -z "$EVERNOTE_TOKEN" ]; then
  echo "缺少印象笔记凭证,请按 Setup 步骤配置环境变量 EVERNOTE_TOKEN"
  exit 1
fi

# 检查 Python 依赖
python3 -c "import evernote2" 2>/dev/null || {
  echo "缺少 Python 依赖,请运行: pip3 install evernote2 oauth2"
  exit 1
}

Python 初始化模板

所有操作前都需要初始化 EvernoteClient:

import sys
sys.path.insert(0, '/Users/I501579/Library/Python/3.9/lib/python/site-packages')

import os
from evernote2.api.client import EvernoteClient
import evernote2.edam.notestore.ttypes as NoteStoreTypes
import evernote2.edam.type.ttypes as Types

# 从环境变量读取配置
developer_token = os.environ.get('EVERNOTE_TOKEN')
service_host = os.environ.get('EVERNOTE_HOST', 'app.yinxiang.com')

# 连接印象笔记
client = EvernoteClient(token=developer_token, service_host=service_host)
note_store = client.get_note_store()
注意:根据实际 Python 环境调整 sys.path.insert 的路径,可通过 pip3 show evernote2 查看 Location

辅助函数

import re

def enml_to_text(enml):
    """将 ENML 转换为纯文本"""
    text = re.sub(r'<!DOCTYPE[^>]+>', '', enml)
    text = re.sub(r'<\?xml[^>]+\?>', '', enml)
    text = re.sub(r'<[^>]+>', '\
', enml)
    text = re.sub(r'\
+', '\
', text)
    return text.strip()

def text_to_enml(text):
    """将纯文本转换为 ENML 格式"""
    text = text.replace('&', '&amp;')
    text = text.replace('<', '&lt;')
    text = text.replace('>', '&gt;')
    text = text.replace('\
', '<br/>')
    enml = f'''<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE en-note SYSTEM "http://xml.evernote.com/pub/enml2.dtd">
<en-note>{text}</en-note>'''
    return enml

接口决策表

用户意图调用 API关键参数
搜索/查找笔记findNotesMetadata()NoteFilter.words
查看笔记本列表listNotebooks()-
浏览某笔记本里的笔记findNotesMetadata()NoteFilter.notebookGuid
读取笔记正文getNoteContent()note_guid
新建一篇笔记createNote()Note.title + Note.content(ENML)
往已有笔记追加内容updateNote()getNote() 获取,再 updateNote() 保存

常用工作流

查找并阅读笔记

先搜索获取 note_guid,再用 getNoteContent() 读取正文:

# 1. 按标题搜索
filter = NoteStoreTypes.NoteFilter()
filter.words = 'intitle:"会议纪要"'
result = note_store.findNotesMetadata(developer_token, filter, 0, 20, 
                                     NoteStoreTypes.NotesMetadataResultSpec(includeTitle=True))

# 2. 读取正文
note_guid = result.notes[0].guid
content = note_store.getNoteContent(developer_token, note_guid)
text = enml_to_text(content)

浏览笔记本里的笔记

先拉笔记本列表获取 notebookGuid,再拉该笔记本下的笔记:

# 1. 列出笔记本
notebooks = note_store.listNotebooks()

# 2. 拉取指定笔记本的笔记
filter = NoteStoreTypes.NoteFilter()
filter.notebookGuid = notebooks[0].guid  # 选择第一个笔记本
result = note_store.findNotesMetadata(developer_token, filter, 0, 20,
                                     NoteStoreTypes.NotesMetadataResultSpec(includeTitle=True))

新建笔记

# 新建到默认位置
note = Types.Note()
note.title = "笔记标题"
note.content = text_to_enml("笔记内容")
created = note_store.createNote(developer_token, note)

# 新建到指定笔记本
note = Types.Note()
note.title = "笔记标题"
note.content = text_to_enml("笔记内容")
note.notebookGuid = "笔记本_GUID"
created = note_store.createNote(developer_token, note)

追加内容到已有笔记

# 获取笔记
note = note_store.getNote(developer_token, note_guid, True, False, False, False)

# 追加内容
note.content = note.content + "<br/><br/>" + text_to_enml("追加的内容")
note_store.updateNote(developer_token, note)

按关键词全文搜索

filter = NoteStoreTypes.NoteFilter()
filter.words = 'SuccessFactors'
result = note_store.findNotesMetadata(developer_token, filter, 0, 20,
                                     NoteStoreTypes.NotesMetadataResultSpec(includeTitle=True))

搜索语法

印象笔记支持丰富的搜索语法,可通过 NoteFilter.words 设置:

语法说明示例
关键词全文搜索SuccessFactors
intitle:关键词标题包含intitle:"项目管理"
-关键词排除关键词项目 -会议
关键词A OR 关键词B或条件SuccessFactors OR Workday
notebook:"笔记本名"在指定笔记本notebook:"工作"
created:yyyyMMdd创建日期created:20260301
updated:day-7最近7天更新updated:day-7
tag:标签名包含标签tag:重要

核心响应字段

搜索结果NoteMetadata):

  • guid: 笔记 GUID
  • title: 标题
  • updated: 更新时间戳(毫秒)
  • notebookGuid: 所属笔记本 GUID

笔记本Notebook):

  • guid: 笔记本 GUID
  • name: 名称
  • created: 创建时间戳(毫秒)
  • defaultNotebook: 是否为默认笔记本

完整字段定义见 references/api.md

分页

笔记搜索findNotesMetadata):

  • 首次:offset: 0, maxNotes: 20
  • 翻页:递增 offset
  • 建议每次最多获取 50 条,避免 API 频率限制

注意事项

  • API 频率限制:印象笔记对 API 调用有频率限制,建议:

- 搜索时限制返回数量(如 20-50 条) - 避免短时间内大量请求 - 使用 findNotesMetadata() 进行元数据搜索,而非 findNotes()

  • 开发者令牌安全:开发者令牌可完全访问账户,请勿泄露
  • ENML 格式限制

- 不支持所有 HTML 标签和属性 - 媒体资源需单独处理 - 嵌入的 HTML 标签会被清理

  • 搜索限制:搜索结果最多 1000 条,建议使用分页
  • UTF-8 编码:笔记内容必须为 UTF-8 编码,从外部文件读取时需确保正确转码
隐私规则:笔记内容属于用户隐私,在群聊场景中只展示标题和摘要,禁止展示笔记正文。

错误处理

错误类型说明建议处理
EDAMUserException用户相关错误检查令牌是否有效、权限是否足够
EDAMSystemException系统错误稍后重试
EDAMNotFoundException资源不存在检查 GUID 是否正确
EDAMDataConflictException数据冲突使用最新数据重试
EDAMPermissionDenied权限不足检查令牌权限
from evernote2.edam.error.ttypes import EDAMUserException, EDAMSystemException

try:
    notebooks = note_store.listNotebooks()
except EDAMUserException as e:
    print(f"用户错误: {e}")
except EDAMSystemException as e:
    print(f"系统错误: {e}")
except Exception as e:
    print(f"其他错误: {e}")

参考资料

  • 印象笔记开发者文档:https://dev.yinxiang.com/doc/
  • ENML 规范:https://dev.yinxiang.com/doc/articles/enml.php
  • 搜索语法:https://help.evernote.com/hc/zh-cn/articles/209005987
  • Python SDK:https://github.com/yinxiang-dev/evernote-sdk-python
  • evernote2 库:https://github.com/JackonYang/evernote2

适合场景

01

OpenClaw 用户查找和安装 Skill 时

02

用户想查找某类 Agent Skill 时

03

需要根据任务场景推荐可安装能力包时

04

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

能力 5

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

OpenClaw

98.23%
按下载量换算2,848

安全审计

VirusTotal

通过

ClawScan

通过

Static analysis

通过

权限和风险

敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills