用飞书机器人一键保存公众号文章到 Obsidian,我做了个小工具

1 阅读2分钟

最近我把知识管理主阵地放在 Obsidian。
问题是:公众号文章经常在手机上刷到,想收进知识库却很麻烦,复制、清洗、建笔记、分类一套下来很打断体验。

于是我做了一个小项目 cat-crawl
在飞书里给机器人发公众号链接,它会自动抓取正文、转 Markdown、分类目录,然后写入 Obsidian。

项目地址:github.com/wfnking/cat…

这工具能做什么

  • 输入公众号链接
  • 自动抓取文章正文
  • HTML 转 Markdown,尽量保留结构和图片链接
  • 基于内容做 dynamic_folder 分类(可配置候选目录)
  • 通过 Obsidian CLI 保存到指定 Vault
  • 支持飞书机器人长连接(WebSocket)实时处理

适用场景

  • 手机上刷到好文,想快速沉淀到 Obsidian
  • 需要统一管理公众号文章,不想手工复制粘贴
  • 想把“收藏”流程自动化,减少整理成本

技术方案

核心思路:把飞书当成“远程控制台”,让本地 Agent 帮你干活。

技术栈:

  • Node.js + TypeScript
  • 飞书 SDK:@larksuiteoapi/node-sdk
  • Agent 编排:LangChain
  • 模型:DeepSeek(通过 @langchain/openai 兼容层接入)
  • 抓取:Playwright
  • 转换:Turndown(HTML -> Markdown)
  • 保存:Obsidian CLI

端到端流程

  1. 用户在飞书发公众号链接给机器人
  2. feishu-bridge 收到事件并做消息去重
  3. 调用 runWechatAgent 执行主流程
  4. crawl_wechat_article 抓取网页并转 Markdown
  5. 模型根据摘要选择 dynamic_folder
  6. save_to_obsidian 生成 frontmatter 并写入 Obsidian
  7. 飞书回复保存结果和路径

快速开始(pnpm)

1. 安装依赖

pnpm install

2. 配置环境变量

cp .env.example .env

关键配置:

DEEPSEEK_API_KEY=your_key
DEEPSEEK_BASE_URL=https://api.deepseek.com
DEEPSEEK_MODEL=deepseek-chat

FEISHU_ENABLED=true
FEISHU_APP_ID=cli_xxx
FEISHU_APP_SECRET=xxx
FEISHU_DOMAIN=feishu

OBSIDIAN_VAULT=你的Vault
OBSIDIAN_FOLDER=Clippings
OBSIDIAN_DYNAMIC_FOLDERS=AI学习法技能提升,产品增长,编程前端

3. 启动飞书模式

pnpm dev:feishu

实际效果(飞书回执)

发送公众号链接后,机器人会返回保存结果和 Obsidian 路径:

3aac99a6f854abc08cd4fd53717111a5.jpg

总结

这个工具本身不复杂,但很实用。
把“收藏一篇文章”从多步骤手工操作,变成“发一个链接”。

如果你也在用 Obsidian 管理知识,且经常在手机上看公众号,这个方案可以直接拿去改造成你的工作流。