跳到主要內容

Blogwatcher

使用 blogwatcher-cli 工具監控博客和 RSS/Atom 訂閱源的更新。添加博客、掃描新文章、跟蹤閱讀狀態並按類別過濾。

技能元數據

來源捆綁(默認安裝)
路徑skills/research/blogwatcher
版本2.0.0
作者JulienTant(Hyaxia/blogwatcher 的分支)
許可證MIT
標籤RSS, Blogs, Feed-Reader, Monitoring

參考:完整 SKILL.md

信息

以下是 Hermes 在觸發此技能時加載的完整技能定義。這是技能激活時代理看到的指令。

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 或卷掛載來持久化它:

# Named volume (simplest)
docker run --rm -v blogwatcher-cli:/data -e BLOGWATCHER_DB=/data/blogwatcher-cli.db ghcr.io/julientant/blogwatcher-cli scan

# Host bind mount
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_DBSQLite 數據庫文件的路徑
BLOGWATCHER_WORKERS併發掃描工作線程數(默認: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(可使用 --dbBLOGWATCHER_DB 覆蓋)。
  • 使用 blogwatcher-cli <command> --help 查看所有標誌和選項。