blogwatcher について
blogwatcher は、ブログや RSS/Atom フィードの更新を追跡するコマンドラインツールです。複数の購読先を管理する読者向けで、フィードの自動検出や記事の既読状態・カテゴリ管理に対応します。
主な機能
- 01RSS/Atom フィードの自動検出
- 02HTML スクレイピングへのフォールバック
- 03OPML から購読先をインポート
- 04フィードをスキャンして新着記事を取得
- 05既読状態とカテゴリの管理
活用シーン
- 01複数のブログ購読先の更新追跡
- 02既存の OPML フィード一覧のインポート
- 03ブログやカテゴリ別の未読記事の絞り込み
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ nousresearch/ hermes-agent --skill blogwatcherインストール後、Claude Code で/blogwatcherを入力して読み込まれたか確認します。
詳細
Blogwatcher
blogwatcher-cli ツールでブログや RSS/Atom フィードの更新を追跡します。フィードの自動検出、HTML スクレイピングへのフォールバック、OPML のインポート、記事の既読/未読管理に対応しています。
Hermes ツールの使い方(まずはこちらをお読みください)
blogwatcher-cli はフィードデータベースです。Hermes ツールは、その周辺の自動化を担います。
- 定期的な監視 — cronjob ツールの
monitorフィールドを使い、単なるスケジュールは使わないでください。monitorは毎回スクリプトを実行し、出力に変更があった場合にのみエージェントを起動します。blogwatcher-cli scan >/dev/null 2>&1 && blogwatcher-cli articlesを実行するスクリプトを設定してください(出力は決定的です。新しい記事があると出力が変化し、その差分が挿入されてエージェントが起動します)。変化のない実行では LLM の呼び出しは発生しません。ダイジェストをチャット/チャンネルに配信するにはdeliverを設定し、連続するダイジェストの重複を除去するにはcontinuity: trueを追加します。 - ユーザーから指定された記事を読む場合:
blogwatcher-cli articlesに表示される記事の URL に対してweb_extract([url])を使ってください。手動で再度スクレイピングしないでください。 - フィードの仕組みに関係なく、ページの変更を一度だけ監視する場合:このスキルは使わないでください。cronjob ツールの
monitorフィールドには http(s) の URL を直接指定できます。 - インストール不要でフィードやサイトの最新投稿を一度だけ読む場合:同梱の
rss-feedsスキル(scripts/feed.py read URL)を使ってください。既読/未読の状態を管理しながら多数のフィードを追跡する場合は、blogwatcher をインストールするメリットがあります。 - 分析と引用を伴う企業/競合他社の追跡:
competitor-news-monitorスキルを優先してください。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 またはボリュームマウントを使ってください。
# 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 - 1つのブログをスキャン:
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 | スキャン時に「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を使用してください。
コメント
Markdown 対応