把 RSS 搬到本地之后,我删掉了三个聚合服务
本地优先 · RSS 阅读器
订阅进来,
读完就走。
Web 版打开就能用;Windows 与 macOS 桌面端带原生快捷键。RSS 摘要自动入库,正文由你点「解析」再抓。订阅、文章、解析出的正文和问答记录, 全都在你自己机器上的一个 SQLite 文件里。
Windows 10+ · macOS(Apple 芯片与 Intel) · 后端与解析网关均可自建
- 数据
- 单个 SQLite 文件
- 迁移
- OPML 双向 · CSV 批量订阅
- 解析
- Crawl4AI / Firecrawl / Trafilatura
Show HN: a local-first reader with a self-hosted parse gateway
Container queries 在真实项目里踩到的三个坑
How we cut crawler spend by 60% without losing fidelity
把 RSS 搬到本地之后,我删掉了三个聚合服务
少数派3 小时前·1,842 字·example.com/posts/local-first-rss
过去六年我的订阅列表一直寄存在别人的服务器上:换个服务商就要重新导一次 OPML,导出回来的文件少了分组,收藏也没了。现在这份列表是一个 SQLite 文件,跟着我换机器。
RSS 本身只带标题和摘要,真正的正文得自己去抓。抓的时候可以走浏览器渲染,可以走 托管抓取,也可以只用本地库把正文抽出来[1]—— 三种我都试过,失败的还能换一个引擎重解。
阅读器最重要的能力不是抓得多,是别把订阅列表当成别人的数据。
解析出来的正文会进本地库,也会喂给知识库问答。问一句「这周有几篇在写 本地优先」,得到的每条引用都能点回原文那一段。
它到底做什么
没有推荐位,没有热度榜,也没有社交关系。
只有一条链路,从订阅走到记住。
下面五块是 rssora 现在真正做的事,一块一块拆开说,界面里的文字都是产品里原样出现的那些。
01全端同步
电脑上读到一半,换个端接着读
Web 版和桌面端连的是同一个后端、同一份库。在一端读完、收藏或换了解析引擎,另一端立刻是同一个状态 —— 不是各存一份再想办法合并。
- 把 RSS 搬到本地之后,我删掉了三个聚合服务已解析
- Show HN: a local-first reader未解析
- Container queries 在真实项目里踩到的三个坑已解析
- Variable fonts, five years in已解析
backend
- 把 RSS 搬到本地之后,我删掉了三个聚合服务已解析
- Show HN: a local-first reader未解析
- Container queries 在真实项目里踩到的三个坑已解析
- Variable fonts, five years in已解析
- 阅读进度
- 收藏
- 解析状态
- 解析出的正文
- RAG 索引
- 问答记录
02解析网关
正文不是抓来的,是你让它抓的
RSS 摘要自动入库;正文要你点「解析」才动。请求发给你在设置里填的 Parse service URL,密钥留在服务端,从不下发到客户端。
- 1Crawl4AI默认首选 · 带浏览器渲染
- 2Firecrawl托管抓取服务
- 3Trafilatura本地服务 · 只抽正文
- parse-cache.db按 URL 缓存已解析的 Markdown
只执行你选中的引擎,不自动切换;已解析的内容可以换引擎覆盖重解。
03无干扰阅读
原文、解析、对比 —— 三种看法随时换
同一个窗口里切换:只看原网页、只看解析出的正文,或者左右对照着看。桌面端自带地址栏、缩放和 Ctrl+F 全文搜索,正文里 Ctrl+F 直接定位到词。
右键菜单:上一篇 / 下一篇 / 收藏 / 问 AI / 查找
04本地优先
一个 SQLite 文件,搬家就是拷走它
装好的桌面端把库放在系统用户目录里(Windows 是 %APPDATA%\\RSSora)。订阅、文章、解析出的正文、检索索引和对话历史都在这一个文件里,不上传,也不需要你注册什么。
- rssora.db订阅 · 文章 · 正文 · 索引 · 对话SQLite
- Import OPML从别的阅读器搬过来Ctrl I
- Export OPML随时带走订阅列表Ctrl E
- CSV Import指定目录,每个 CSV 变一个订阅定时
05问 AI
问的是你解析出来的正文
检索只在本地解析出的正文里跑。没点过「解析」的文章就是没有依据 —— 这一点 rssora 不糊弄。回答里的每条引用都能点回原文对应的那一段。
- 索引跟着解析结果走,换引擎重解后自动重建
- 支持连续对话,历史留在同一个 SQLite 文件里
- 模型端点自己填:Embedding / Chat / Rerank
解析缓存多久会清一次?
缓存不会自动清。它按 URL 存在网关的 parse-cache.db 里,你自己决定什么时候删。
少数派 · 第 3 段
Cloudflare Blog · 第 1 段
价格
三种用法,按需付费
数据和订阅列表不收费。收费的只有代你跑的那些算力和抓取。
Free
社区版不含官方托管的解析与模型额度
自己带模型 Key、或者只用本地引擎抓正文。除此之外的功能不阉割。
- Web 版 + Windows / macOS 桌面端
- 本地 SQLite 库,不上传订阅列表
- OPML 双向导入导出 · CSV 目录批量订阅
- 本地 Trafilatura 解析正文
- 问 AI(自备 Embedding / Chat / Rerank 端点)
Pro
增强版上线前会在这里给出价格
想省掉自己搭网关、配 Key、盯额度的麻烦,就用这一档。具体包含哪些额度,等定价一起公布。
- Free 版的全部功能
- 使用官方托管的解析网关
- 官方托管的模型与问答额度
- 更多并发解析与更长的缓存
- 新版本抢先体验
Self-Hosted
自建版自备模型与抓取服务的账单
后端和解析网关都能自己部署,密钥只留在你自己的机器或服务器上。
- Free 版的全部功能
- 后端自行部署,数据完全自己掌控
- 解析网关自行部署(docker compose 起步)
- 设置里填自己的 Parse service URL
- API Key 不下发到客户端
Pro 档的具体价格与额度还没定,先不收钱也不承诺数字。
常见问题
还有别的疑问?
没写在这里的,去 Docs 或者 Changelog 翻 —— 那两页更新得比这个勤。