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-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 かボリュームのマウントで残してください。
# 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で確認できます。