mcpField
B
blogwatcher

blogwatcher

github.com/nousresearch生産性258.5k335 回インストール今日更新
リポジトリ

blogwatcher について

blogwatcher は、ブログや RSS/Atom フィードの更新を追跡するコマンドラインツールです。複数の購読先を管理する読者向けで、フィードの自動検出や記事の既読状態・カテゴリ管理に対応します。

主な機能

  1. 01RSS/Atom フィードの自動検出
  2. 02HTML スクレイピングへのフォールバック
  3. 03OPML から購読先をインポート
  4. 04フィードをスキャンして新着記事を取得
  5. 05既読状態とカテゴリの管理

活用シーン

  1. 01複数のブログ購読先の更新追跡
  2. 02既存の OPML フィード一覧のインポート
  3. 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_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 に保存されます(--db または BLOGWATCHER_DB で変更できます)。
  • すべてのフラグとオプションを確認するには、blogwatcher-cli <command> --help を使用してください。

コメント