最近我把知识管理主阵地放在 Obsidian。
问题是:公众号文章经常在手机上刷到,想收进知识库却很麻烦,复制、清洗、建笔记、分类一套下来很打断体验。
于是我做了一个小项目 cat-crawl:
在飞书里给机器人发公众号链接,它会自动抓取正文、转 Markdown、分类目录,然后写入 Obsidian。
这工具能做什么
- 输入公众号链接
- 自动抓取文章正文
- 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
端到端流程
- 用户在飞书发公众号链接给机器人
feishu-bridge收到事件并做消息去重- 调用
runWechatAgent执行主流程 crawl_wechat_article抓取网页并转 Markdown- 模型根据摘要选择
dynamic_folder save_to_obsidian生成 frontmatter 并写入 Obsidian- 飞书回复保存结果和路径
快速开始(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 路径:
总结
这个工具本身不复杂,但很实用。
把“收藏一篇文章”从多步骤手工操作,变成“发一个链接”。
如果你也在用 Obsidian 管理知识,且经常在手机上看公众号,这个方案可以直接拿去改造成你的工作流。