Hermes Agent Wiki 非公式・日本語wiki
この skill をそのまま使う: GitHub で原文を見る

英語原文・frontmatter 込みで、Hermes が読み込む実体そのままです(このページの本文は日本語版)。

Blogwatcher

目次

blogwatcher-cli を使って、ブログや RSS/Atom フィードの更新を追いかけます。

skill の情報

提供元 追加で導入します。hermes skills install official/research/blogwatcher で入ります
パス optional-skills/research/blogwatcher
バージョン 2.0.0
作者 JulienTant (fork of Hyaxia/blogwatcher)
ライセンス MIT
対応プラットフォーム linux, macos, windows
タグ RSS, Blogs, Feed-Reader, Monitoring

参考: SKILL.md 全文

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]) を使ってください。自分で取り直さないでください。
  • フィードの仕組みは要らず、1回きり「このページの変化を見張りたい」だけのとき: この skill は使いません。cronjob ツールの monitor は http(s) の URL をそのまま受け取れます。
  • 1回きりフィードやサイトの最新記事を読むだけで、何も入れたくないとき: 最初から入っている rss-feeds skill(scripts/feed.py read URL)を使ってください。blogwatcher が生きてくるのは、たくさんのフィードを既読・未読の状態付きで追いかけるときです。
  • 企業や競合の追跡を、分析と出典付きで行いたいとき: competitor-news-monitor skill のほうが向いています。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
  • ひとつのブログだけ巡回する: 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 で確認できます。