{/* This page is auto-generated from the skill's SKILL.md by website/scripts/generate-skill-docs.py. Edit the source SKILL.md, not this page. */}
Blogwatcher
通过 blogwatcher-cli 工具监控博客与 RSS/Atom 订阅源。
Skill 元数据
| 来源 | 可选 — 通过 hermes skills install official/research/blogwatcher 安装 |
| 路径 | optional-skills/research/blogwatcher |
| 版本 | 2.0.0 |
| 作者 | JulienTant(fork 自 Hyaxia/blogwatcher) |
| 许可证 | MIT |
| 平台 | linux, macos, windows |
| 标签 | RSS, Blogs, Feed-Reader, Monitoring |
参考:完整 SKILL.md
INFO
以下是 Hermes 在触发此 skill 时加载的完整 skill 定义。这是 skill 激活时 agent 所看到的指令内容。
Blogwatcher
用 blogwatcher-cli 工具跟踪博客与 RSS/Atom 订阅源更新。支持自动发现订阅源、HTML 抓取回退、OPML 导入以及已读/未读文章管理。
与 Hermes 工具协作(先读这个)
blogwatcher-cli 是订阅源数据库;Hermes 工具负责围绕它做自动化:
- 周期性监控——使用 cronjob 工具的
monitor字段,而不是裸 schedule。monitor每个 tick 运行一个脚本,仅在输出发生变化时才唤醒 agent:把它设为一个运行blogwatcher-cli scan >/dev/null 2>&1 && blogwatcher-cli articles的脚本(输出确定性;有新文章 = 输出变化 = agent 被唤醒并注入 diff)。未变化的 tick 不消耗任何 LLM 调用。设置deliver把摘要路由到某个聊天/频道;加上continuity: true以便连续摘要之间去重。 - 阅读用户问到的文章:对
blogwatcher-cli articles给出的文章 URL 执行web_extract([url])——不要手动重新抓取。 - 一次性“盯这个页面的变化”、不需要订阅语义:跳过本 skill;cronjob 工具的
monitor字段可直接接受 http(s) URL。 - 一次性读取某个订阅源或站点最新文章、不想装任何东西:用内置的
rss-feedsskill(scripts/feed.py read URL);当你需要跟踪大量订阅源并保留已读/未读状态时,blogwatcher 的安装才物有所值。 - 带分析和引用的公司/竞争对手跟踪:优先用
competitor-news-monitorskill;blogwatcher 是它可以搭建于其上的、更轻量的原始订阅源层。
安装
任选一种方式:
- 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 | 并发扫描 worker 数(默认:8) |
BLOGWATCHER_SILENT | 扫描时仅输出 "scan done" |
BLOGWATCHER_YES | 跳过确认提示 |
BLOGWATCHER_CATEGORY | 文章按分类的默认过滤器 |
输出示例
$ blogwatcher-cli blogs
Tracked blogs (1):
xkcd
URL: https://xkcd.com
Feed: https://xkcd.com/atom.xml
Last scanned: 2026-04-03 10:30
$ blogwatcher-cli scan
Scanning 1 blog(s)...
xkcd
Source: RSS | Found: 4 | New: 4
Found 4 new article(s) total!
$ blogwatcher-cli articles
Unread articles (2):
[1] [new] Barrel - Part 13
Blog: xkcd
URL: https://xkcd.com/3095/
Published: 2026-04-02
Categories: Comics, Science
[2] [new] Volcano Fact
Blog: xkcd
URL: https://xkcd.com/3094/
Published: 2026-04-01
Categories: 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 <command> --help查看所有标志和选项。