OpenClaw 笔记自动化:一句话记到所有平台
灵感来了要记、会议纪要要存、待办事项要同步…笔记分散在各个平台,手动复制粘贴太麻烦。OpenClaw 让你一句话把内容同步到 Notion、Obsidian、Apple Notes 等多个平台,打造统一的笔记工作流。
01 笔记自动化是什么?
笔记自动化 是指通过 OpenClaw 将笔记的创建、同步、整理过程自动化,让你专注于内容本身,而不是繁琐的操作。
核心能力: – 📝 多平台同步 — 一次输入,多处保存 – 🔄 自动归档 — 按规则分类整理 – 🔗 双向链接 — 笔记之间自动关联 – 🤖 AI 增强 — 自动摘要、标签提取
02 为什么需要笔记自动化?
笔记管理的痛点:
自动化的收益: – ⚡ 效率提升 — 一句话同步到所有平台 – 🎯 减少遗漏 — 自动归档,不怕丢失 – 🔍 快速检索 — 统一格式,方便搜索 – 🌐 无缝切换 — 跨设备、跨平台无缝衔接
03 支持的笔记平台
04 环境准备:Notion 自动化
环境准备
# 1. 创建 Notion Integration
# 访问 https://notion.so/my-integrations
# 复制 API Key(以 ntn_ 或 secret_ 开头)# 2. 保存 API Key
mkdir -p ~/.config/notion
echo "ntn_your_key_here" > ~/.config/notion/api_key
# 3. 在 Notion 中分享页面给 Integration
# 点击页面右上角 "..." → "Connect to" → 选择你的 Integration
快速开始
# 获取 API Key
NOTION_KEY=$(cat ~/.config/notion/api_key)
# 搜索页面
curl -X POST "https://api.notion.com/v1/search" \
-H "Authorization: Bearer $NOTION_KEY" \
-H "Notion-Version: 2022-06-28" \
-H "Content-Type: application/json" \
-d '{"query": " 会议记录 "}'
实战案例 1:自动创建会议记录
#!/bin/bash
# create-meeting-note.sh
NOTION_KEY=$(cat ~/.config/notion/api_key)
DATABASE_ID="your-database-id"
# 创建页面
curl -X POST "https://api.notion.com/v1/pages" \
-H "Authorization: Bearer $NOTION_KEY" \
-H "Notion-Version: 2022-06-28" \
-H "Content-Type: application/json" \
-d "{\"parent\": {\"database_id\": \"$DATABASE_ID\"},
\"properties\": {\"Name\": {\"title\": [{\"text\": {\"content\": \" 周会记录 - $(date +%Y-%m-%d)\"}}]},
\" 日期 \": {\"date\": {\"start\": \"$(date +%Y-%m-%d)\"}},
\" 类型 \": {\"select\": {\"name\": \" 会议 \"}},
\" 状态 \": {\"select\": {\"name\": \" 进行中 \"}}
},
\"children\": [
{
\"object\": \"block\",
\"type\": \"heading_2\",
\"heading_2\": {\"rich_text\": [{\"text\": {\"content\": \" 参会人员 \"}}]}
},
{
\"object\": \"block\",
\"type\": \"paragraph\",
\"paragraph\": {\"rich_text\": [{\"text\": {\"content\": \" 张三、李四、王五 \"}}]}
},
{
\"object\": \"block\",
\"type\": \"heading_2\",
\"heading_2\": {\"rich_text\": [{\"text\": {\"content\": \" 会议内容 \"}}]}
},
{
\"object\": \"block\",
\"type\": \"paragraph\",
\"paragraph\": {\"rich_text\": [{\"text\": {\"content\": \" 待补充...\"}}]}
}
]
}"
echo " 会议记录已创建到 Notion"
实战案例 2:每日待办自动同步
#!/bin/bash
# daily-todo-sync.sh
NOTION_KEY=$(cat ~/.config/notion/api_key)
DATABASE_ID="your-todo-database-id"
# 读取本地待办
cat ~/todo.txt | while read task; do
# 跳过空行和注释
[[-z "$task" || "$task" =~ ^#]] && continue
# 解析优先级([H]高 [M]中 [L]低)if [["$task" == *"[H]"* ]]; then
priority=" 高 "
task=$(echo "$task" | sed 's/\[H\]//')
elif [["$task" == *"[M]"* ]]; then
priority=" 中 "
task=$(echo "$task" | sed 's/\[M\]//')
else
priority=" 低 "
task=$(echo "$task" | sed 's/\[L\]//')
fi
# 创建到 Notion
curl -X POST "https://api.notion.com/v1/pages" \
-H "Authorization: Bearer $NOTION_KEY" \
-H "Notion-Version: 2022-06-28" \
-H "Content-Type: application/json" \
-d "{\"parent\": {\"database_id\": \"$DATABASE_ID\"},
\"properties\": {\" 任务 \": {\"title\": [{\"text\": {\"content\": \"$task\"}}]},
\" 优先级 \": {\"select\": {\"name\": \"$priority\"}},
\" 状态 \": {\"select\": {\"name\": \" 待办 \"}},
\" 创建日期 \": {\"date\": {\"start\": \"$(date +%Y-%m-%d)\"}}
}
}"
done
echo " 待办已同步到 Notion"
05 Obsidian 自动化
环境准备
安装 notesmd-cli(原 obsidian-cli)
# macOS (使用 Homebrew)
brew tap yakitrak/yakitrak
brew install yakitrak/yakitrak/notesmd-cli
# Linux (使用 npm)
npm install -g notesmd-cli
# 设置默认 vault
notesmd-cli set-default "MyVault"
# 验证
notesmd-cli print-default
💡 说明:
brew是 macOS 的包管理器。Linux 用户可以使用 npm 安装,或从 GitHub Releases 下载对应平台的二进制文件。
快速开始
# 搜索笔记
notesmd-cli search " 项目名称 "
# 搜索内容
notesmd-cli search-content " 关键词 "
# 创建笔记
notesmd-cli create "Projects/New Project" --content "# 新项目 \n\n 创建于 $(date)"
# 移动笔记
notesmd-cli move "Old/Note" "Archive/Note"
实战案例 3:每日日志自动生成
#!/bin/bash
# daily-log.sh
VAULT="MyVault"
DATE=$(date +%Y-%m-%d)
WEEKDAY=$(date +%A)
# 日志内容
CONTENT="# $DATE ($WEEKDAY)
## 今日待办
- [ ]
## 会议记录
## 学习笔记
## 明日计划
---
创建于 $(date +%H:%M)"
# 创建日志
notesmd-cli create "Daily/$DATE" --content "$CONTENT"
echo " 日志已创建: Daily/$DATE"
配合 cron:
# 每天早上 8 点自动生成日志
0 8 * * * /path/to/daily-log.sh
实战案例 4:网页剪藏到 Obsidian
#!/bin/bash
# web-clipper.sh
URL="$1"
VAULT="MyVault"
# 获取网页标题和内容
TITLE=$(curl -s "$URL" | grep -o '<title>[^<]*</title>' | sed 's/<title>//;s/<\/title>//')
CONTENT=$(curl -s "$URL" | pandoc -f html -t markdown)
# 生成笔记
NOTE="# $TITLE
Source: [$URL]($URL)
Date: $(date +%Y-%m-%d)
---
$CONTENT
---
#clipping #web"
# 保存到 Obsidian
SAFE_TITLE=$(echo "$TITLE" | tr '/\\' '-')
notesmd-cli create "Clippings/$SAFE_TITLE" --content "$NOTE"
echo " 已剪藏: $TITLE"
06 多平台同步实战
案例 5:一句话同步到所有平台
#!/bin/bash
# universal-note.sh
NOTE_CONTENT="$1"
TAGS="$2"
# 1. 保存到 Obsidian(本地优先)notesmd-cli create "Inbox/$(date +%Y%m%d-%H%M%S)" \
--content "$NOTE_CONTENT
Tags: $TAGS
Created: $(date)"
# 2. 同步到 Notion(云端备份)NOTION_KEY=$(cat ~/.config/notion/api_key)
curl -X POST "https://api.notion.com/v1/pages" \
-H "Authorization: Bearer $NOTION_KEY" \
-H "Notion-Version: 2022-06-28" \
-H "Content-Type: application/json" \
-d "{\"parent\": {\"database_id\": \"your-inbox-db\"},
\"properties\": {\" 内容 \": {\"title\": [{\"text\": {\"content\": \"${NOTE_CONTENT:0:100}\"}}]},
\" 标签 \": {\"multi_select\": [{\"name\": \"$TAGS\"}]},
\" 来源 \": {\"select\": {\"name\": \"OpenClaw\"}}
}
}"
# 3. 发送到 Apple Notes(macOS)osascript <<EOF
tell application "Notes"
make new note at folder "Notes" with properties {name:"$(date +%H:%M)", body:"$NOTE_CONTENT"}
end tell
EOF
echo "✅ 笔记已同步到 Obsidian + Notion + Apple Notes"
使用:
./universal-note.sh " 突然想到一个产品点子:做一个 AI 自动记账工具 " "idea,product"
案例 6:会议纪要自动分发
#!/bin/bash
# meeting-distribute.sh
MEETING_FILE="$1"
# 读取会议内容
CONTENT=$(cat "$MEETING_FILE")
# 提取关键信息
TITLE=$(echo "$CONTENT" | grep "^# " | head -1)
DATE=$(echo "$CONTENT" | grep " 日期:" | cut -d: -f2)
# 1. 保存到 Obsidian(详细版)notesmd-cli create "Meetings/$DATE-$TITLE" --content "$CONTENT"
# 2. 创建 Notion 任务(行动项)echo "$CONTENT" | grep "^- \[\]" | while read task; do
TASK_NAME=$(echo "$task" | sed 's/^- \[ \] //')
curl -X POST "https://api.notion.com/v1/pages" \
-H "Authorization: Bearer $NOTION_KEY" \
-H "Notion-Version: 2022-06-28" \
-H "Content-Type: application/json" \
-d "{\"parent\": {\"database_id\": \"your-tasks-db\"},
\"properties\": {\" 任务 \": {\"title\": [{\"text\": {\"content\": \"$TASK_NAME\"}}]},
\" 来源 \": {\"select\": {\"name\": \"$TITLE\"}},
\" 截止日期 \": {\"date\": {\"start\": \"$(date -d '+3 days' +%Y-%m-%d)\"}}
}
}"
done
echo "✅ 会议纪要已分发 "
07 进阶技巧
技巧 1:结合语音输入
#!/bin/bash
# voice-note.sh
# 1. 语音转文字
~/.openclaw/skills/openai-whisper-api/scripts/transcribe.sh /tmp/voice.m4a --out /tmp/note.txt
CONTENT=$(cat /tmp/note.txt)
# 2. AI 提取标签(使用 OpenAI API)TAGS=$(echo "$CONTENT" | python3 -c "
import sys
import openai
content = sys.stdin.read()
resp = openai.chat.completions.create(
model='gpt-4o-mini',
messages=[{'role': 'user', 'content': f'提取 3 个关键词,用逗号分隔: {content}'}]
)
print(resp.choices[0].message.content)
")
# 3. 保存到所有平台
./universal-note.sh "$CONTENT" "$TAGS"
技巧 2:定时同步
# 每小时同步 Obsidian 到 Notion
0 * * * * /path/to/sync-obsidian-to-notion.sh
技巧 3:模板化笔记
# meeting-template.sh
TEMPLATE="# $1
## 基本信息
- 日期: $(date +%Y-%m-%d)
- 时间: $(date +%H:%M)
- 地点: $2
## 参会人员
$3
## 议程
$4
## 讨论要点
## 行动项
- [ ]
## 下次会议
"
notesmd-cli create "Meetings/$(date +%Y%m%d)-$1" --content "$TEMPLATE"
08 常见问题
Q1: Notion API 返回 401
解决: 检查 API Key 和权限
cat ~/.config/notion/api_key
# 确保页面已分享给 Integration
Q2: Obsidian 找不到 vault
解决:
# 查看活跃 vault
cat ~/Library/Application\ Support/obsidian/obsidian.json
# 或设置默认
notesmd-cli set-default "VaultName"
Q3: 如何批量导出?
# 导出 Obsidian 到 Markdown
find ~/Vault -name "*.md" -exec cp {} ~/Export/ \;
09 总结
下一步: – 建立个人笔记模板库 – 结合语音输入实现”说话即记”– 探索与飞书文档的联动
本文是 OpenClaw 进阶技能系列第 6 篇,下一篇:《用 OpenClaw 打造语音智能家居中枢》
#OpenClaw #笔记自动化 #Notion #Obsidian #知识管理 #效率工具
正文完