Skip to content
Worix
BrowsePublish
Log inSign Up

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...

24 downloads
Free
Reviewed

📁 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 导出文件

引导用户:

  1. 登录 flomo 网页版 (https://flomoapp.com)
  2. 进入 设置 → 账号详情
  3. 点击 "导出数据" 按钮
  4. 下载 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

是否创建定时任务,自动同步?

  1. 每天晚上 10:00
  2. 每天晚上 11:00
  3. 每 6 小时一次
  4. 暂时不设置

实现步骤

安全模式实现

步骤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:浏览器自动化失败

现象:无法自动登录或导出

解决:

  1. 使用 --no-headless 观察浏览器操作
  2. 检查账号密码是否正确
  3. 查看错误截图:flomo_downloads/error_screenshot.png
  4. 查看日志:auto_sync.log

问题2:附件缺失

现象:图片或音频没有复制

解决:

  1. 确认 flomo 导出的 ZIP 包含 file/ 目录
  2. 检查解压后的目录结构
  3. 手动检查 HTML 文件中的附件路径

问题3:增量同步不工作

现象:每次都完整同步

解决:

  1. 检查 .flomo_sync_state.json 是否存在
  2. 不要删除状态文件
  3. 使用 --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 使用建议

首次使用

  1. 探测需求:询问用户是手动转换还是自动同步
  2. 引导操作:根据场景给出清晰的步骤
  3. 收集信息:逐步询问必要参数
  4. 执行操作:运行对应脚本
  5. 确认结果:展示转换统计并询问后续需求

持续使用

  1. 检测状态:查看 .env 是否存在,判断是否已配置
  2. 快速执行:直接运行 ./sync.sh
  3. 报告结果:显示增量同步统计

错误处理

  1. 友好提示:用通俗语言解释错误
  2. 提供方案:给出 2-3 个解决建议
  3. 主动帮助:提供查看日志、截图的命令

✅ 功能检查清单

在帮助用户使用此 skill 时,确保:

  • 询问了必要的参数(路径、账号等)
  • 解释了数据的安全性(本地存储、不上传)
  • 执行前确认了参数正确性
  • 执行后展示了结果统计
  • 提供了后续使用建议(自动同步、定时任务等)
  • 告知了如何查看转换后的笔记

记住:这是一个面向普通用户的 skill,对话要友好、清晰、循序渐进!

Download

ZIP package — ready to use

Skill Info

Creator
perseveringman
Downloads
24
Published
Mar 15, 2026
Updated
Mar 16, 2026