🧪 Skills

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

v2.0.0
❤️ 0
⬇️ 64
👁 1
Share

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

引导用户:

  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,对话要友好、清晰、循序渐进!

Reviews (0)

Sign in to write a review.

No reviews yet. Be the first to review!

Comments (0)

Sign in to join the discussion.

No comments yet. Be the first to share your thoughts!

Compatible Platforms

Pricing

Free

Related Configs