超好用知识管理AI工具:Obsidian+flomo一键双写 智能笔记/IOS快捷指令
IOS 快捷指令 OB+flomo笔记自动化工作流
# Obsidian # Flomo # 快捷指令 # 自动化
如果你也在同时使用 Obsidian 和 flomo,那么这篇文章值得你认真看下。
我花了一周时间,在 iOS 快捷指令里搓了一个笔记自动化工作流。
具体功能是这样的:复制一段文字,双击手机背面,等两秒,完事。
AI 会自动提炼标签,内容同时写入 flomo 和 Obsidian,排版完整保留。
写这篇文章是想跟大家聊聊:做这个东西的过程中,我踩了哪些坑,以及为什么一个看似简单的”复制粘贴”,底层其实没那么简单。
一句话:读到好内容 → 复制 →双击手机背面→ 自动完成”AI 打标 + 双端归档”。
第二步把内容清洗成干净的 Markdown 格式。
第三步把清洗后的文本扔给大模型,让它提炼 1 到 3 个关键标签。
第四步把正文和标签同时发送给 flomo 和 Obsidian。而且两个笔记端收到的内容格式还不一样。
flomo 那边是带 #标签 的卡片,适合快速回顾;Obsidian 这边是带 YAML 属性头的 .md 文件,直接进入本地知识库的 Inbox,标签干干净净地躺在 Properties 里,等你后续做关联。
起因是我一直有在阅读文章时,将一些好的内容保存到 flomo 的习惯。
通常我都是手动复制,打开 flomo,然后新建笔记,再粘贴保存。
直到最近开始学习用 Obsidian 做知识库,尝试了各种插件和工具,最后通过公众号“ Obsidian 助手“,实现了公众号导入 Obsidian 笔记的需求。
所以我就在想,这些碎片化的文章片段,能不能像“ Obsidian 助手“一样,一键保存到 flomo 里。
如果我想将一份内容,同时保存到 flomo 和 Obsidian 笔记里的话。
同一段内容,我得复制两次,切换两个 App,手动打两遍标签。
所以我决定自己尝试找个方法,来实现自动化存储笔记片段的功能。
我问了 claude 和 gemini,都说通过快捷指令就能实现。
这个工作流的最终版本大概有二十几个动作模块。跑通它花了我将近一周,因为”快捷指令 + API + 跨平台写入”这个组合,踩坑密度极高。
这个症状很有意思,快捷指令跑完了,弹窗也出来了,但标签那一栏是空的。检查了半天网络、检查了 API Key,都没问题。
最后发现是 JSON 请求体里一个键名少打了一个字母。content 写成了 conte。
API 没有崩溃,只是静默地返回了一个空结果。这种 Bug 最折磨人了,因为它不报错,你只能逐字段排查。
这件事之后,我跟 gemini 沟通确立了一个原则:在快捷指令里构建复杂 JSON 时,必须用”模块化积木封装法”,把每一层字典单独建好再嵌套。
否则层级一多,肉眼根本审不出来哪里拼错了。就算是截图发给 gemini,它也不知道问题在哪。
坑 2:AI 生成的标签在 Obsidian 里”消失”了
但打开 Obsidian 一看,Properties 里面是空的。
查了很久才搞明白:YAML 语法里,# 是注释符号。AI 返回的 #标签 直接拼进 YAML 头部,Obsidian 会把整行当成注释,静默吞掉。
早期我采用的妥协方案是把标签挪到正文末尾。但最终版用了正则表达式一刀切:先用 [^\s#]+ 把纯文字标签提取出来,再组装成 tags: [标签A, 标签B] 的 YAML 数组格式。
我为了保留原文的加粗、超链接这些排版信息,最初的想法是把富文本直接喂给大模型。
结果 Mac 端直接报 NSString 转换错误崩溃,iOS 端用系统自带的”从富文本制作 Markdown”功能,中文全部变成乱码。
在 AI 协助下排查到最后,结论是:这是苹果系统底层的编码处理缺陷。富文本里的复杂数据包(字体、颜色、嵌入对象)会撑爆 JSON 的安全边界;而苹果的中文编码引擎在富文本转 Markdown 时存在断链问题。
后来定下来的是一套三步”洗码”流程,因为以 md 格式为核心,所以给这个快捷指令的版本代号叫了MD-Core。
1.先把剪贴板内容转成 HTML(利用网页标签强行锁定 UTF-8 编码),
2.再把 HTML 转成富文本(滤掉危险的网页代码),
3.最后把富文本转成 Markdown。三次转换听起来绕,但因为出错太多了,为了求稳定,不得不将流程尽量都明确化,每一步都只解决一个具体的编码或格式问题。
最终的效果要求是,转完之后,不乱码,段落和加粗和链接都在。
因为在处理 flomo 端的显示问题时,我试过用”获取纯文本”来去掉 Markdown 的星号(**)。结果所有段落、所有空行全部消失,几百字挤成了一个巨型段落。
核查后才发现,原因很简单,快捷指令在提取纯文本时,把换行符也一起抹掉了。
又经过几次尝试后,最终方案是:不再追求纯文本,让 flomo 和 Obsidian 统一接收 Markdown。
flomo 里虽然会显示 ** 星号,但段落清晰舒适,而且星号反而成了一种视觉锚点,回顾时能快速定位重点内容。
最后的一个坑,是在最后阶段精简流程时,我觉得有一个“设定变量”的动作是多余的,就删了。
然后发现,保存进 Obsidian 和 flomo的内容,都变成了一堆二进制乱码。
经过排查后发现,原来快捷指令的 “设定变量” 不只是给数据起个名字,它还充当”类型锁定器”。
删掉之后,系统会把 Markdown 文本误判成二进制文件包。
这样就又有了一个教训:在快捷指令里,”看起来没用”的步骤,很可能在底层承担着类型转换的关键任务。
有人可能会问:Shortcuts 这么折腾,为什么不用 Zapier、Make 这些成熟平台?
第一,我的阅读大多是在手机端完成的,为了不破坏阅读体验,我希望转存的动作可以最小的打扰静默进行。
所以设计的这个工作流需要自动读取 iOS 剪贴板, Shortcuts 快捷指令能在系统层面原生做到。
内容从手机本地出发,调一次大模型 API,然后直接写入 flomo 和本地 Obsidian 库,链路越短越安全。
至于大模型的选择,目前我默认接入的是 DeepSeek,性价比高、中文理解准。
而API Key 是可选配置,不填的话工作流会自动降级为手动输入标签模式,核心的双写功能并不受影响。
关注公众号「程律进化论」,后台私信关键词 “双写“。
然后你会收到一个 iCloud 安装链接,点击后就可以直接导入到你的手机。
(1)配置第一项:flomo Webhook 链接。
1. 开启 flomo 的“传送门” (API 链接)
为了确保笔记能精准存入你的本地库,请核对以下信息:
-
Vault 名称:这是你 Obsidian 仓库的名字(例如:我的库名叫 Work,就填 Work)。
-
文件夹路径:快捷指令默认将笔记存放在 Inbox 文件夹中。请确保你的仓库根目录下有一个名为 Inbox 的文件夹(首字母大写)。
-
注意:如果你的库名或路径填写错误,快捷指令会提示无法找到文件。
-
-
(3)配置第三项(可选):获取Deepseek API Key。
-
获取路径:登录DeepSeek 开放平台➡️ 点击左侧“API Keys” ➡️ “Create new secret key”。
-
操作:创建并复制生成的 Key(注意:Key 只会出现一次,请妥善保存)。
-
填写位置:安装快捷指令时,在弹出框中粘贴此 Key。
-
提示:DeepSeek 目前性价比极高,充值几元钱即可支撑数万次的打标需求。
-
填了就有 AI 自动打标;不填就手动输入,工作流照样跑。
1.如果使用Deepseek的API,上面的地址不要动;
3.仅修改“sk-13”开头的Deepseek的API,“Bearer”和“sk”之间有一个空格,不要误删了。
把快捷指令绑定到 iOS 的”轻点背面两下”(设置 → 辅助功能 → 触控 → 轻点背面 → 轻点两下 → 选择“双写flomo+OB”),或者放进控制中心的悬浮球。
如果不想在转存时,看到手机桌面弹出的“标签”提示框,可以将快捷指令中的“显示‘最终标签’提醒”删除,则以后始终都是静默保存。
如果不想让AI仅有打标签功能,比如想让AI做智能总结,则可在下方图片中显示的快捷指令中,修改相应的prompt即可。
如果选择“加标签后保存”,则弹出标签填写框,需要手动填写标签;
如果选择“AI智能打标并保存”,则弹出AI撰写的标签,确认后自动写入笔记。
是因为我觉得,对我来说,做这个工具的过程比结果本身更有价值。
我的目标实现了:从源头起,把”捕获-保存”这个动作的阻力降到接近于零。
如果你在使用过程中遇到问题或者有改进想法,欢迎在评论区或私信留言反馈。