Install
openclaw skills install notes-know-youSync Evernote notebooks to local Markdown, analyze your notes, and update USER.md + Memory files so the AI truly understands who you are
openclaw skills install 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.
Set the following environment variables before using this skill:
| Variable | Required | Description |
|---|---|---|
NOTES_DB_PATH | Yes | Absolute path to your evernote-backup database file (e.g., F:\notes\en_backup.db) |
NOTES_BACKEND | 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) |
/notes-know-you — full sync: pull → convert → analyze → update memory
/notes-know-you sync — same as above
/notes-know-you analyze — skip sync, re-analyze existing Markdown files only
/notes-know-you setup-cron [interval] — set up recurring auto-sync (e.g., setup-cron 24h)
NOTES_DB_PATH is set and the file exists.db_path = $NOTES_DB_PATHdb_dir = parent directory of db_pathenex_dir = $NOTES_EXPORT_DIR/../enex or {db_dir}/evernote/markdown_dir = $NOTES_EXPORT_DIR or {db_dir}/evernote/markdown/backend = $NOTES_BACKEND or chinaskill_scripts_dir = directory containing this skill's scripts/Run:
python -m evernote_backup sync -d "{db_path}"
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:
https://app.yinxiang.com/api/DeveloperToken.action while logged inhttps://www.evernote.com/api/DeveloperToken.actionThen update auth:
python -m evernote_backup reauth -d "{db_path}" -t "{token}"
python -m evernote_backup export -d "{db_path}" "{enex_dir}"
This creates one .enex file per notebook under enex_dir.
For every .enex file found recursively under enex_dir, run:
python "{skill_scripts_dir}/enex_to_markdown_bundle.py" "{enex_file}" "{markdown_dir}"
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.
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, 日记, 每日, 每天):
Work / Project notes (Work, Project, Todo, Tasks, 工作, 项目):
Personal / People notes (人, People, Friends, Family, 朋友, 家人):
Reading / Clippings (Books, 我的剪藏, Clippings, Reading, 读书):
General / Other notebooks:
Locate the memory directory:
$NOTES_MEMORY_DIR.openclaw/ in the current project root~/.claude/projects/{current_project_hash}/memory/.memory/ in the current directoryRead 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:
# User Profile
_Last updated from notes: {today's date}_
## Identity
[Name if found, role/occupation if mentioned, location if mentioned]
## Interests & Domains
[Topics that appear frequently — be specific, e.g. "投资/财经" not just "finance"]
## Daily Habits & Routines
[Patterns from diary: sleep schedule, exercise, diet, work patterns]
## Goals
### Short-term (within 3 months)
[Specific goals with any deadlines found]
### Long-term
[Life goals, career goals, major aspirations]
## Values & Principles
[Core values or recurring philosophical themes in the notes]
## Skills & Expertise
[Professional and personal skills with rough proficiency level if inferable]
## Current Context
[What's happening in their life right now — active projects, recent events, current focus]
## Relationships
[Key people mentioned and their relationship to the user]
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):
---
name: {descriptive name}
description: {one-line summary — specific enough to judge relevance}
type: user
---
{fact or insight}
Project memory (ongoing projects, goals with context):
---
name: {project name}
description: {what this project is and why it matters}
type: project
---
{fact or insight}
**Why:** {motivation behind this project}
**How to apply:** {how knowing this should shape AI responses}
Feedback memory (explicit preferences the user has expressed in notes):
---
name: {preference topic}
description: {what the user wants or doesn't want}
type: feedback
---
{the rule or preference}
**Why:** {reason given or inferred from notes}
**How to apply:** {when this guidance is relevant}
After writing all memory files, update MEMORY.md (the index file) with one line per
new or updated memory:
- [Title](file.md) — one-line hook
Summarize what was done:
✅ Synced {N} notebooks, {M} notes total
📄 Converted to Markdown: {list of notebook names}
👤 USER.md updated — {N} sections changed
🧠 Memory files: {N} created, {M} updated
📌 Top insights extracted:
1. ...
2. ...
3. ...
When the user runs /notes-know-you setup-cron [interval]:
24h6h, 12h, 24h, 7d)/notes-know-you syncAll 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.