Flomo to Obsidian Sync Tool
Parse and sync flomo exported HTML data to Obsidian vault with attachment support. Supports one-time manual export conversion and automatic sync. Use when us...
Description
name: flomo-to-obsidian description: Parse and sync flomo exported HTML data to Obsidian vault with attachment support. Supports one-time manual export conversion and automatic sync. Use when users want to import flomo notes, convert flomo to markdown, or set up automatic sync. cn_name: Flomo到Obsidian同步工具 cn_description: 将 flomo 笔记同步到 Obsidian,支持单次手动转换和自动同步。当用户想导入 flomo 笔记、转换为 markdown 或设置自动同步时使用。 version: 3.0.0
📁 SKILL DIRECTORY PATH
<skill-directory>
All relative file paths mentioned in this skill are relative to the above directory.
Flomo to Obsidian 同步工具
将 flomo 笔记同步到 Obsidian,支持附件、标签、语音转写等完整功能。
🎯 使用场景
场景1:首次导入(手动转换)
用户已经从 flomo 网页版导出了数据,需要转换到 Obsidian。
触发词:
- "帮我把 flomo 数据转换到 Obsidian"
- "转换 flomo 导出文件"
- "导入 flomo 笔记"
场景2:自动同步(推荐)
用户希望定期自动从 flomo 同步最新笔记到 Obsidian。
提供两种模式:
- 🔐 安全模式:不保存密码,使用浏览器登录状态(推荐个人使用)
- 🤖 密码模式:保存密码,完全自动化(适合服务器/定时任务)
触发词:
- "设置 flomo 自动同步"
- "定期同步 flomo 到 Obsidian"
- "创建 flomo 同步任务"
- "flomo 安全模式同步"
🚀 场景1:手动转换(首次导入)
步骤1:获取 Flomo 导出文件
引导用户:
- 登录 flomo 网页版 (https://flomoapp.com)
- 进入 设置 → 账号详情
- 点击 "导出数据" 按钮
- 下载 ZIP 文件并解压
步骤2:询问必要信息
向用户确认:
- Flomo HTML 文件路径(例如:
~/Downloads/flomo@用户名/用户名的笔记.html) - Obsidian vault 目录(例如:
~/Documents/Obsidian/Flomo) - 是否需要标签前缀(建议使用
flomo/)
步骤3:执行转换
cd {skillDir}
python scripts/convert_v2.py \
--input "{flomo_html_path}" \
--output "{obsidian_vault_path}" \
--mode by-date \
--tag-prefix "flomo/"
步骤4:报告结果
转换完成后,告诉用户:
- ✅ 转换了多少条笔记
- ✅ 复制了多少个附件
- ✅ 输出目录位置
- ✅ 如何在 Obsidian 中查看
⚡ 场景2:自动同步设置
⚠️ 重要:先询问用户选择模式
必须先向用户说明两种模式的区别,让用户选择:
我可以帮你设置 flomo 自动同步!有两种模式可选:
🔐 安全模式(推荐)
✅ 不保存密码到配置文件
✅ 使用浏览器保存的登录状态
✅ 首次需要手动登录一次(5分钟内)
✅ 后续自动同步
✅ 适合个人电脑日常使用
🤖 密码模式
✅ 完全自动化
✅ 适合服务器和定时任务
⚠️ 需要在配置文件中保存密码
你想使用哪种模式?
1. 安全模式(推荐)
2. 密码模式
模式A:🔐 安全模式(推荐)
工作流程
用户选择安全模式
↓
询问 Obsidian vault 路径
↓
运行同步脚本(打开浏览器)
↓
等待用户手动登录
↓
自动完成首次同步
↓
询问是否创建定时任务
↓
完成!
对话流程示例
AI: 好的!使用安全模式设置。
请告诉我:
- Obsidian vault 路径:(例如:/Users/username/Documents/Obsidian/flomo)
- 标签前缀:(建议使用
flomo/,直接回车使用默认)
用户: [提供路径]
AI: 收到!现在开始首次同步。
⚠️ 重要提示:
- 脚本将打开浏览器窗口
- 请在浏览器中手动登录 flomo
- 登录后,浏览器会记住你的登录状态
- 下次运行时将自动同步
按 Enter 继续...
[执行同步脚本]
cd {skillDir}
./sync_safe.sh
等待用户完成登录和同步...
✅ 同步成功!
- 新增笔记:120 条
- 附件:15 个
- 输出位置:/Users/username/Documents/Obsidian/flomo
下次运行 ./sync_safe.sh 即可自动同步,无需再次登录!
是否创建定时任务,自动同步? [同密码模式的定时任务选项]
模式B:🤖 密码模式
工作流程
用户选择密码模式
↓
询问 flomo 账号密码
↓
询问 Obsidian vault 路径
↓
创建配置文件(.env)
↓
测试同步一次
↓
询问是否创建定时任务
↓
完成!
对话流程示例
AI: 好的!使用密码模式设置。
首先需要你的 flomo 账号信息:
- 登录邮箱/手机号:
- 登录密码:
用户: [提供邮箱和密码]
AI: 收到!接下来:
- Obsidian vault 路径:(例如:/Users/username/Documents/Obsidian/flomo)
- 标签前缀:(建议使用
flomo/,直接回车使用默认)
用户: [提供路径]
AI: 配置完成!现在进行首次同步测试...
[执行同步]
✅ 同步成功!
- 新增笔记:120 条
- 附件:15 个
- 输出位置:/Users/username/Documents/Obsidian/flomo
是否创建定时任务,自动同步?
- 每天晚上 10:00
- 每天晚上 11:00
- 每 6 小时一次
- 暂时不设置
实现步骤
安全模式实现
步骤1:收集信息
vault_path = "Obsidian vault 路径"
tag_prefix = "flomo/" # 默认值
步骤2:运行安全模式脚本
cd {skillDir}
# 首次运行(会打开浏览器让用户登录)
python3 scripts/auto_sync_safe.py \
--output "{vault_path}" \
--tag-prefix "{tag_prefix}" \
--no-headless \
--verbose
⚠️ 重要:
- 脚本会打开浏览器窗口
- 等待用户手动登录(最多 5 分钟)
- 登录成功后自动继续同步
- 登录状态会保存在
flomo_browser_data目录
步骤3:验证结果
检查输出,确认:
- ✅ 登录成功
- ✅ 导出成功
- ✅ 转换成功
- ✅ 状态已保存
密码模式实现
步骤1:收集信息
email = "用户的 flomo 邮箱"
password = "用户的 flomo 密码"
vault_path = "Obsidian vault 路径"
tag_prefix = "flomo/" # 默认值
步骤2:创建配置文件
cd {skillDir}
cat > .env << EOF
FLOMO_EMAIL={email}
FLOMO_PASSWORD={password}
OBSIDIAN_VAULT={vault_path}
TAG_PREFIX={tag_prefix}
EOF
chmod 600 .env
步骤3:测试同步
cd {skillDir}
python scripts/auto_sync.py \
--email "{email}" \
--password "{password}" \
--output "{vault_path}" \
--tag-prefix "{tag_prefix}" \
--no-headless
注意:首次测试建议使用 --no-headless 显示浏览器窗口,让用户观察过程。
步骤4:创建定时任务
使用 OpenClaw 的 scheduled_task_create 功能:
# 通过 MCP 调用创建定时任务
task_config = {
"name": "Flomo 自动同步",
"command": f"cd {skillDir} && ./sync.sh",
"schedule": "0 22 * * *", # 每天 22:00
"description": "自动从 flomo 同步笔记到 Obsidian"
}
或者手动添加 cron:
crontab -l > /tmp/crontab_backup
echo "0 22 * * * cd {skillDir} && ./sync.sh >> /tmp/flomo_sync.log 2>&1" >> /tmp/crontab_backup
crontab /tmp/crontab_backup
📝 对话模板
模板1:手动转换
用户: 帮我把 flomo 数据转换到 Obsidian
AI: 好的!我来帮你转换 flomo 数据。
请提供以下信息:
1. Flomo 导出的 HTML 文件路径:(如果还没导出,我可以教你如何导出)
2. Obsidian vault 的目标目录:
用户: [提供路径]
AI: 收到!开始转换...
[执行转换]
✅ 转换完成!
- 笔记数:513 条
- 附件数:54 个
- 输出位置:/Users/username/Documents/Obsidian/flomo
你可以在 Obsidian 中打开该目录查看笔记了。
是否需要设置自动同步,以后自动导入新笔记?
模板2:自动同步
用户: 设置 flomo 自动同步
AI: 好的!我来帮你设置 flomo 自动同步。
为了自动登录 flomo 并导出数据,需要你的账号信息:
- Flomo 登录邮箱:
- Flomo 登录密码:
(这些信息会加密存储在本地,不会上传)
用户: [提供账号]
AI: 收到!再确认一下:
- Obsidian vault 路径:(例如:/Users/username/mynote/flomo)
用户: /Users/ryanbzhou/mynote/flomo
AI: 好的!配置完成,现在测试同步...
⏳ 正在自动登录 flomo...
⏳ 正在导出数据...
⏳ 正在转换笔记...
✅ 同步成功!
- 新增笔记:120 条
- 附件:15 个
是否创建定时任务?
1. 每天晚上 10:00 自动同步
2. 每天晚上 11:00 自动同步
3. 每 6 小时同步一次
4. 暂时不设置(需要时手动运行)
用户: 1
AI: 好的!已创建定时任务:
- 任务名:Flomo 自动同步
- 执行时间:每天 22:00
- 任务命令:cd /path/to/skill && ./sync.sh
从明天开始,flomo 的新笔记会自动同步到 Obsidian!
你也可以随时手动同步:
cd /path/to/skill && ./sync.sh
🔧 脚本说明
convert_v2.py - 手动转换脚本
将已导出的 flomo HTML 转换为 Obsidian markdown。
参数:
--input(必需): Flomo HTML 文件路径--output(必需): Obsidian vault 输出目录--mode: 组织模式 (by-date|individual|single),默认by-date--tag-prefix: 标签前缀,默认空--no-attachments: 不复制附件--verbose: 显示详细日志
auto_sync.py - 自动同步脚本
使用浏览器自动化从 flomo 导出并同步到 Obsidian。
参数:
--email(必需): Flomo 登录邮箱--password(必需): Flomo 登录密码--output(必需): Obsidian vault 输出目录--tag-prefix: 标签前缀,默认空--no-headless: 显示浏览器窗口(测试用)--force-full: 强制完整同步(忽略增量)--verbose: 显示详细日志
sync.sh - 同步快捷脚本
读取 .env 配置文件并执行同步。
使用:
./sync.sh # 后台运行
./sync.sh --no-headless # 显示浏览器
./sync.sh --force-full # 完整同步
⚙️ 配置文件
.env 文件格式
FLOMO_EMAIL=your-email@example.com
FLOMO_PASSWORD=your-password
OBSIDIAN_VAULT=/path/to/obsidian/vault/flomo
TAG_PREFIX=flomo/
安全提示:
- ✅ 已自动添加到
.gitignore - ✅ 文件权限设置为
600(仅所有者可读写) - ✅ 不会被提交到 Git
📊 输出格式
笔记格式(by-date 模式)
---
date: 2024-03-11
source: flomo
tags: [flomo/flomo, flomo/工作]
note_count: 5
---
# Flomo Notes - 2024-03-11
## 2024-03-11 09:30:15
这是笔记内容 #工作
### 附件
![[attachments/image_123.jpg]]
![[attachments/audio_456.m4a]]
**语音转写:**
> 这是语音转写的文本内容...
---
## 2024-03-11 14:20:00
另一条笔记...
---
附件组织
vault/flomo/
├── 2024-03-11.md
├── 2024-03-12.md
└── attachments/
├── image_123.jpg
├── audio_456.m4a
└── ...
🐛 故障处理
问题1:浏览器自动化失败
现象:无法自动登录或导出
解决:
- 使用
--no-headless观察浏览器操作 - 检查账号密码是否正确
- 查看错误截图:
flomo_downloads/error_screenshot.png - 查看日志:
auto_sync.log
问题2:附件缺失
现象:图片或音频没有复制
解决:
- 确认 flomo 导出的 ZIP 包含
file/目录 - 检查解压后的目录结构
- 手动检查 HTML 文件中的附件路径
问题3:增量同步不工作
现象:每次都完整同步
解决:
- 检查
.flomo_sync_state.json是否存在 - 不要删除状态文件
- 使用
--force-full强制完整同步
📈 性能说明
- 首次同步:500 条笔记约需 30-60 秒
- 增量同步:10 条新笔记约需 20-30 秒
- 浏览器启动:约 5-10 秒
- 附件复制:取决于文件大小
🔄 版本历史
V3.0.0 (2024-03-11)
- ✅ 简化为适合 Agent 对话的工作流
- ✅ 优化用户交互流程
- ✅ 集成定时任务创建
V2.0.0 (2024-03-11)
- ✅ 新增浏览器自动化同步
- ✅ 新增增量同步机制
- ✅ 新增附件自动复制
V1.0.0 (2024-03-10)
- ✅ 基础 HTML 到 Markdown 转换
- ✅ 标签和元数据保留
📚 相关文档
- AUTO_SYNC.md - 自动同步技术文档
- SETUP_GUIDE.md - 环境变量设置指南
- README.md - 项目总览
💡 Agent 使用建议
首次使用
- 探测需求:询问用户是手动转换还是自动同步
- 引导操作:根据场景给出清晰的步骤
- 收集信息:逐步询问必要参数
- 执行操作:运行对应脚本
- 确认结果:展示转换统计并询问后续需求
持续使用
- 检测状态:查看
.env是否存在,判断是否已配置 - 快速执行:直接运行
./sync.sh - 报告结果:显示增量同步统计
错误处理
- 友好提示:用通俗语言解释错误
- 提供方案:给出 2-3 个解决建议
- 主动帮助:提供查看日志、截图的命令
✅ 功能检查清单
在帮助用户使用此 skill 时,确保:
- 询问了必要的参数(路径、账号等)
- 解释了数据的安全性(本地存储、不上传)
- 执行前确认了参数正确性
- 执行后展示了结果统计
- 提供了后续使用建议(自动同步、定时任务等)
- 告知了如何查看转换后的笔记
记住:这是一个面向普通用户的 skill,对话要友好、清晰、循序渐进!
Reviews (0)
No reviews yet. Be the first to review!
Comments (0)
No comments yet. Be the first to share your thoughts!