博客/RSS 监控
通过 blogwatcher-cli 监控博客和 RSS/Atom 订阅源
博客/RSS 监控(Blogwatcher)
使用 blogwatcher-cli 工具追踪博客和 RSS/Atom 订阅源更新。支持自动发现订阅源、HTML 抓取回退、OPML 导入,以及已读/未读文章管理。
安装
选择一种方式:
- Go:
go install github.com/JulienTant/blogwatcher-cli/cmd/blogwatcher-cli@latest - Docker:
docker run --rm -v blogwatcher-cli:/data ghcr.io/julientant/blogwatcher-cli - 二进制(Linux amd64):
curl -sL https://github.com/JulienTant/blogwatcher-cli/releases/latest/download/blogwatcher-cli_linux_amd64.tar.gz | tar xz -C /usr/local/bin blogwatcher-cli - 二进制(Linux arm64):
curl -sL https://github.com/JulienTant/blogwatcher-cli/releases/latest/download/blogwatcher-cli_linux_arm64.tar.gz | tar xz -C /usr/local/bin blogwatcher-cli - 二进制(macOS Apple Silicon):
curl -sL https://github.com/JulienTant/blogwatcher-cli/releases/latest/download/blogwatcher-cli_darwin_arm64.tar.gz | tar xz -C /usr/local/bin blogwatcher-cli - 二进制(macOS Intel):
curl -sL https://github.com/JulienTant/blogwatcher-cli/releases/latest/download/blogwatcher-cli_darwin_amd64.tar.gz | tar xz -C /usr/local/bin blogwatcher-cli
所有发布版本:https://github.com/JulienTant/blogwatcher-cli/releases
Docker 持久化存储
默认情况下数据库位于 ~/.blogwatcher-cli/blogwatcher-cli.db。在 Docker 中容器重启后会丢失数据。使用 BLOGWATCHER_DB 或卷挂载来持久化:
# 命名卷(最简单)
docker run --rm -v blogwatcher-cli:/data -e BLOGWATCHER_DB=/data/blogwatcher-cli.db ghcr.io/julientant/blogwatcher-cli scan
# 主机绑定挂载
docker run --rm -v /path/on/host:/data -e BLOGWATCHER_DB=/data/blogwatcher-cli.db ghcr.io/julientant/blogwatcher-cli scan
从原始 blogwatcher 迁移
如果从 Hyaxia/blogwatcher 升级,迁移数据库:
mv ~/.blogwatcher/blogwatcher.db ~/.blogwatcher-cli/blogwatcher-cli.db
二进制文件名已从 blogwatcher 改为 blogwatcher-cli。
常用命令
管理博客
- 添加博客:
blogwatcher-cli add "My Blog" https://example.com - 指定订阅源添加:
blogwatcher-cli add "My Blog" https://example.com --feed-url https://example.com/feed.xml - 使用 HTML 抓取添加:
blogwatcher-cli add "My Blog" https://example.com --scrape-selector "article h2 a" - 列出追踪的博客:
blogwatcher-cli blogs - 移除博客:
blogwatcher-cli remove "My Blog" --yes - 从 OPML 导入:
blogwatcher-cli import subscriptions.opml
扫描和阅读
- 扫描所有博客:
blogwatcher-cli scan - 扫描单个博客:
blogwatcher-cli scan "My Blog" - 列出未读文章:
blogwatcher-cli articles - 列出所有文章:
blogwatcher-cli articles --all - 按博客筛选:
blogwatcher-cli articles --blog "My Blog" - 按分类筛选:
blogwatcher-cli articles --category "Engineering" - 标记文章已读:
blogwatcher-cli read 1 - 标记文章未读:
blogwatcher-cli unread 1 - 全部标记已读:
blogwatcher-cli read-all - 按博客全部标记已读:
blogwatcher-cli read-all --blog "My Blog" --yes
环境变量
所有标志都可以通过环境变量设置,前缀为 BLOGWATCHER_:
| 变量 | 说明 |
BLOGWATCHER_DB | SQLite 数据库文件路径 |
BLOGWATCHER_WORKERS | 并发扫描工作线程数(默认:8) |
BLOGWATCHER_SILENT | 仅在扫描完成时输出提示 |
BLOGWATCHER_YES | 跳过确认提示 |
BLOGWATCHER_CATEGORY | 文章默认分类筛选器 |
输出示例
$ blogwatcher-cli blogs
追踪的博客(1):
xkcd
URL: https://xkcd.com
订阅源: https://xkcd.com/atom.xml
上次扫描: 2026-04-03 10:30
$ blogwatcher-cli scan
正在扫描 1 个博客...
xkcd
来源: RSS | 发现: 4 | 新: 4
共发现 4 篇新文章!
$ blogwatcher-cli articles
未读文章(2):
[1] [新] Barrel - Part 13
博客: xkcd
URL: https://xkcd.com/3095/
发布: 2026-04-02
分类: Comics, Science
[2] [新] Volcano Fact
博客: xkcd
URL: https://xkcd.com/3094/
发布: 2026-04-01
分类: Comics
注意事项
- 当未提供
--feed-url时,自动从博客首页发现 RSS/Atom 订阅源。 - 当 RSS 失败且配置了
--scrape-selector时,回退到 HTML 抓取。 - RSS/Atom 订阅源中的分类被存储,可用于筛选文章。
- 支持从 Feedly、Inoreader、NewsBlur 等导出的 OPML 文件批量导入博客。
- 数据库默认存储在
~/.blogwatcher-cli/blogwatcher-cli.db(可用--db或BLOGWATCHER_DB覆盖)。 - 使用
blogwatcher-cli --help查看所有选项和功能。
安装指南
复制下方命令,在终端运行即可安装:
# 安装到当前项目
npx skills add blogwatcher
# 全局安装 — 所有项目可用
npx skills add blogwatcher -g
使用指南
安装完成后,在对话框中直接使用此技能。