CLI RSS/Atom 订阅阅读器,受 Taskwarrior 启发,通过 Git 同步

发布: (2026年3月8日 GMT+8 21:16)
5 分钟阅读

Source: Hacker News

一个受 Taskwarrior 启发的 CLI RSS/Atom 订阅阅读器。

demo

功能

  • 订阅 RSS 和 Atom 源
  • 简单的查询语言,可按源、阅读状态和日期进行过滤,并支持分组和导出
  • 基于 Git 的跨机器同步,具备冲突免费合并(为什么使用 Git?
  • 无需账户、无需服务器、无需持续网络依赖
  • 将内容标记为已读
  • 旨在无干扰、极简,并开箱即用

安装

cargo install blogtato

Git 同步

git 基于的同步是完全可选的。blogtato 可以在单台设备上离线工作。

要设置 git 同步,请在你的 git 主机上创建一个私有仓库,然后:

在你的第一台机器上

blog clone user/repo

从现在起,sync 会从远程获取 feed 并进行推送/拉取
(如果没有远程仓库,blog sync 只会从所有 feed 拉取最新帖子)

blog sync

在其他设备上,运行相同的 blog clone 来拉取你的 feed 和帖子。

如果你只想尝试 blogtato,可以跳过 git 设置,稍后再运行 blog clone user/repo;已有的 feed 将自动合并。

快速入门

完成(或跳过)基于 git 的同步后,订阅 feed:

blog feed add https://michael.stapelberg.ch
blog feed add https://www.justinmklam.com

获取并列出最新帖子:

blog sync
blog

通过简写读取条目:

blog df read

订阅 blogtato 的发布,以便了解新功能或修复:

blog feed add https://github.com/kantord/blogtato/releases.atom

使用示例

订阅一个 feed

blog feed add https://news.ycombinator.com/rss

获取新帖子并同步到 git 远程仓库

blog sync

显示帖子(默认显示最近 3 个月的未读帖子,按周分组)

blog

按日期、周或 feed 分组

blog /d   # 按日期
blog /w   # 按周
blog /f   # 按 feed

组合分组方式

blog /d /f

按 feed 简写过滤

blog @hn

按阅读状态过滤

blog .unread
blog .read
blog .all

按日期过滤

blog 1w..
blog 3m..1m
blog /d 2w..1w

组合过滤(例如,列出 HackerNews 上的未读帖子并按日期分组)

blog @hn .unread /d

在默认浏览器中打开帖子

blog abc open

打印帖子 URL(在 CLI 浏览器中使用很有帮助)

blog abc read
w3m $(blog abc read)

将帖子标记为未读

blog abc unread

将匹配的帖子导出为 JSONL

blog .all export
blog @myblog export
blog 1w.. export

列出已订阅的 feed

blog feed ls

删除一个 feed

blog feed rm https://news.ycombinator.com/rss
blog feed rm @hn

设计理念

blogtato 围绕订阅排毒和简约而构建。它提供一个极简、无干扰的 RSS 阅读器,可在设备间无缝同步,无需额外的用户账户或持续费用。

数据存储在 JSONL 文件中,并通过 git 同步。虽然这种方式不是性能最优的,但它利用了远程 git 托管服务(GitHub、GitLab、Forgejo 等)的普遍可用性,几乎不需要任何配置。数据库采用无冲突设计,分叉的更改永不需要手动解决——git 在后台透明运行。

所有网络操作均由用户发起;没有持续运行的服务器,离线使用也能完美运行。项目旨在保持轻量和可维护,使功能集和复杂度保持在足以视为“完成”的低水平。

命名

这个名字将 “blog” 与脑中第一个异想天开的词 potato 结合在一起。它象征着简洁以及一点务实的俏皮。

0 浏览
Back to Blog

相关文章

阅读更多 »

改进的 RSS Feed 导入

概述 您现在可以添加多个 RSS feed 导入,监控它们的状态,并将每个导入分配给不同的默认作者或组织。RSS feed 导入 h...