notes-know-you
通过你的印象笔记,让 AI 真正了解你。
This skill syncs your Evernote/Yinxiang notebooks to local Markdown files, analyzes
the content, and updates the agent's USER.md and Memory files with structured insights —
so your AI assistant always has the right context about who you are.
Configuration
Set the following environment variables before using this skill:
| Variable | Required | Description |
|---|
| INLINECODE0 | Yes | Absolute path to your evernote-backup database file (e.g., F:\notes\en_backup.db) |
| INLINECODE3 |
No |
china for Yinxiang (default),
evernote for international |
|
NOTES_TOKEN | No | Developer token (use if password auth fails) |
|
NOTES_EXPORT_DIR | No | Where to write exported Markdown files (default: same directory as db, under
evernote/markdown/) |
|
NOTES_MEMORY_DIR | No | Where to write memory files (default: auto-detected) |
Usage
CODEBLOCK0
Step-by-Step Instructions
Step 0 — Check Configuration
- 1. Verify
NOTES_DB_PATH is set and the file exists. - If not set, ask the user:
- "Where is your evernote-backup database file?"
- "Are you using Yinxiang (China) or international Evernote?"
- "Do you have a developer token?"
- 3. If the database doesn't exist yet, guide them through first-time setup (see references/setup.md).
- Determine:
-
db_path =
$NOTES_DB_PATH
-
db_dir = parent directory of
db_path
-
enex_dir =
$NOTES_EXPORT_DIR/../enex or
{db_dir}/evernote/
-
markdown_dir =
$NOTES_EXPORT_DIR or
{db_dir}/evernote/markdown/
-
backend =
$NOTES_BACKEND or
china
-
skill_scripts_dir = directory containing this skill's scripts/
Step 1 — Sync from Evernote
Run:
CODEBLOCK1
If rate limited (CRITICAL: Rate limit reached): stop and tell the user to wait 25–30 minutes before retrying.
If auth fails: guide the user to get a developer token:
- - Yinxiang: visit
https://app.yinxiang.com/api/DeveloperToken.action while logged in - International: visit INLINECODE27
Then update auth:
CODEBLOCK2
Step 2 — Export to ENEX
CODEBLOCK3
This creates one .enex file per notebook under enex_dir.
Step 3 — Convert ENEX to Markdown
For every .enex file found recursively under enex_dir, run:
CODEBLOCK4
This produces one merged Markdown file per notebook (e.g., Daily.md, Books.md).
Keep a list of all generated Markdown files and their notebook names.
Step 4 — Analyze Notes Content
Read the generated Markdown files. Notes can be large — skim for structure first, then read
recent entries (last 60 days) in full and older entries at a summary level.
Extract insights by notebook type:
Diary / Daily notes (filenames containing: Daily, Diary, Journal, 日记, 每日, 每天):
- - Daily routines and recurring habits
- Emotional patterns and frequent concerns
- Goals and aspirations mentioned
- Recent life events (last 30 days) — record with approximate dates
Work / Project notes (Work, Project, Todo, Tasks, 工作, 项目):
- - Current active projects and their status
- Professional skills and tools used
- Goals and deadlines
Personal / People notes (人, People, Friends, Family, 朋友, 家人):
- - Key relationships and social context
- Personal values and beliefs expressed
Reading / Clippings (Books, 我的剪藏, Clippings, Reading, 读书):
- - Topics and domains of sustained interest
- Preferred content formats (books, articles, videos)
General / Other notebooks:
- - Any recurring themes or topics
- Explicit preferences or opinions stated
Step 5 — Update USER.md
Locate the memory directory:
- 1. Check INLINECODE34
- Check
.openclaw/ in the current project root - Check INLINECODE36
- Fall back to creating
.memory/ in the current directory
Read existing USER.md if it exists. Merge, do not overwrite — preserve facts not
contradicted by the notes.
Write (or update) USER.md with this structure:
CODEBLOCK5
Step 6 — Write Memory Files
For each significant, specific insight, create a memory file in the memory directory.
Use the formats below, saved as {type}_{topic}.md:
User memory (personal attributes, preferences, background facts):
CODEBLOCK6
Project memory (ongoing projects, goals with context):
CODEBLOCK7
Feedback memory (explicit preferences the user has expressed in notes):
CODEBLOCK8
After writing all memory files, update MEMORY.md (the index file) with one line per
new or updated memory:
CODEBLOCK9
Step 7 — Report to User
Summarize what was done:
CODEBLOCK10
Cron Setup
When the user runs /notes-know-you setup-cron [interval]:
- 1. Default interval: INLINECODE43
- Parse the interval (e.g.,
6h, 12h, 24h, 7d) - Use the agent's cron/scheduler to register a recurring job that runs INLINECODE48
- Confirm to the user: "Scheduled notes-know-you to run every {interval}. Next run: {datetime}."
Privacy Note
All note content stays local. Nothing is sent to external services beyond passing note
text through the AI model's context window for analysis. ENEX files and Markdown files
remain on your machine.
notes-know-you
通过你的印象笔记,让 AI 真正了解你。
此技能可将你的印象笔记/国际版Evernote笔记本同步到本地Markdown文件,分析内容,并用结构化洞察更新智能体的USER.md和记忆文件——让你的AI助手始终掌握关于你的正确背景信息。
配置
使用此技能前,请设置以下环境变量:
| 变量 | 必填 | 说明 |
|---|
| NOTESDBPATH | 是 | evernote-backup数据库文件的绝对路径(例如:F:\notes\enbackup.db) |
| NOTESBACKEND |
否 | china代表印象笔记(默认),evernote代表国际版 |
| NOTES_TOKEN | 否 | 开发者令牌(密码认证失败时使用) |
| NOTES
EXPORTDIR | 否 | 导出Markdown文件的写入目录(默认:与数据库文件同目录,位于evernote/markdown/下) |
| NOTES
MEMORYDIR | 否 | 记忆文件的写入目录(默认:自动检测) |
使用方法
/notes-know-you — 完整同步:拉取 → 转换 → 分析 → 更新记忆
/notes-know-you sync — 同上
/notes-know-you analyze — 跳过同步,仅重新分析现有Markdown文件
/notes-know-you setup-cron [间隔] — 设置定期自动同步(例如:setup-cron 24h)
分步操作指南
第0步 — 检查配置
- 1. 确认NOTESDBPATH已设置且文件存在。
- 如果未设置,询问用户:
- 你的evernote-backup数据库文件在哪里?
- 你使用的是印象笔记(中国版)还是国际版Evernote?
- 你有开发者令牌吗?
- 3. 如果数据库尚不存在,引导用户完成首次设置(参见references/setup.md)。
- 确定以下内容:
- db
path = $NOTESDB_PATH
- db
dir = dbpath的父目录
- enex
dir = $NOTESEXPORT
DIR/../enex 或 {dbdir}/evernote/
- markdown
dir = $NOTESEXPORT
DIR 或 {dbdir}/evernote/markdown/
- backend = $NOTES_BACKEND 或 china
- skill
scriptsdir = 包含此技能脚本的目录
第1步 — 从Evernote同步
运行:
bash
python -m evernotebackup sync -d {dbpath}
如果遇到速率限制(CRITICAL: Rate limit reached):停止并告知用户等待25-30分钟后重试。
如果认证失败:引导用户获取开发者令牌:
- - 印象笔记:登录后访问https://app.yinxiang.com/api/DeveloperToken.action
- 国际版:访问https://www.evernote.com/api/DeveloperToken.action
然后更新认证:
bash
python -m evernotebackup reauth -d {dbpath} -t {token}
第2步 — 导出为ENEX格式
bash
python -m evernotebackup export -d {dbpath} {enex_dir}
这将在enex_dir目录下为每个笔记本创建一个.enex文件。
第3步 — 将ENEX转换为Markdown
对enex_dir目录下递归找到的每个.enex文件,运行:
bash
python {skillscriptsdir}/enextomarkdownbundle.py {enexfile} {markdown_dir}
这将为每个笔记本生成一个合并的Markdown文件(例如:Daily.md、Books.md)。
保留所有生成的Markdown文件及其对应笔记本名称的列表。
第4步 — 分析笔记内容
读取生成的Markdown文件。笔记可能很大——先浏览结构,然后完整阅读近期条目(最近60天),对较早条目进行摘要级别阅读。
按笔记本类型提取洞察:
日记/每日笔记(文件名包含:Daily、Diary、Journal、日记、每日、每天):
- - 日常惯例和重复性习惯
- 情绪模式和常见关注点
- 提及的目标和愿望
- 近期生活事件(最近30天)——记录大致日期
工作/项目笔记(Work、Project、Todo、Tasks、工作、项目):
- - 当前活跃项目及其状态
- 专业技能和使用的工具
- 目标和截止日期
个人/人际笔记(人、People、Friends、Family、朋友、家人):
阅读/剪藏(Books、我的剪藏、Clippings、Reading、读书):
- - 持续关注的主题和领域
- 偏好的内容形式(书籍、文章、视频)
通用/其他笔记本:
第5步 — 更新USER.md
定位记忆目录:
- 1. 检查$NOTESMEMORYDIR
- 检查当前项目根目录下的.openclaw/
- 检查~/.claude/projects/{当前项目哈希}/memory/
- 回退方案:在当前目录下创建.memory/
如果存在,读取现有的USER.md。合并,不要覆盖——保留与笔记内容不矛盾的事实。
按以下结构写入(或更新)USER.md:
markdown
用户档案
最后更新自笔记:{当前日期}
身份信息
[如果找到姓名、角色/职业、地点则填写]
兴趣与领域
[频繁出现的主题——要具体,例如投资/财经而非仅写金融]
日常习惯与惯例
[来自日记的模式:睡眠时间、运动、饮食、工作模式]
目标
短期(3个月内)
[找到的具体目标及截止日期]
长期
[人生目标、职业目标、重大愿望]
价值观与原则
[笔记中体现的核心价值观或反复出现的哲学主题]
技能与专长
[专业和个人技能,如可推断出大致熟练程度则注明]
当前背景
[目前生活中正在发生的事情——活跃项目、近期事件、当前关注点]
人际关系
[提及的关键人物及其与用户的关系]
第6步 — 写入记忆文件
为每个重要、具体的洞察,在记忆目录中创建一个记忆文件。
使用以下格式,保存为{类型}_{主题}.md:
用户记忆(个人属性、偏好、背景事实):
markdown
name: {描述性名称}
description: {一行摘要——足够具体以判断相关性}
type: user
{事实或洞察}
项目记忆(进行中的项目、带有背景信息的目标):
markdown
name: {项目名称}
description: {该项目是什么及其重要性}
type: project
{事实或洞察}
原因: {该项目背后的动机}
应用方式: {了解此信息应如何影响AI的回应}
反馈记忆(用户在笔记中表达的明确偏好):
markdown
name: {偏好主题}
description: {用户想要或不想要什么}
type: feedback
{规则或偏好}
原因: {从笔记中给出的或推断出的理由}
应用方式: {此指导在何时相关}
写入所有记忆文件后,更新MEMORY.md(索引文件),为每个新增或更新的记忆添加一行:
第7步 — 向用户报告
总结已完成的操作:
✅ 已同步 {N} 个笔记本,共 {M} 条笔记
📄 已转换为Markdown:{笔记本名称列表}
👤 USER.md已更新 — {N} 个部分已更改
🧠 记忆文件:{N} 个已创建,{M} 个已更新
📌 提取的主要洞察:
1. ...
2. ...
3. ...
定时任务设置
当用户运行/notes-know-you setup-cron [间隔]时:
- 1. 默认间隔:24h
- 解析间隔(例如:6h、12h、24h、7d)
- 使用智能体的定时任务/调度器注册一个定期任务,运行/notes-know-you sync
- 向用户确认:已安排notes-know-you每{间隔}运行一次。下次运行时间:{日期时间}。
隐私说明
所有笔记内容均保留在本地。除将笔记文本传递到AI模型的上下文窗口进行分析外,不会向任何外部服务发送任何内容。ENEX文件和Markdown文件保留在你的机器上。