Blogwatcher
Мониторинг блогов и RSS/Atom-фидов через blogwatcher-cli.
Метаданные навыка
| Источник | Опциональный — устанавливается командой hermes skills install official/research/blogwatcher |
| Путь | optional-skills/research/blogwatcher |
| Версия | 2.0.0 |
| Автор | JulienTant (форк Hyaxia/blogwatcher) |
| Лицензия | MIT |
| Платформы | linux, macos, windows |
| Теги | RSS, Blogs, Feed-Reader, Monitoring |
Справочник: полный SKILL.md
Ниже — полное определение навыка, которое Hermes загружает при его срабатывании. Именно эти инструкции видит агент, когда навык активен.
Blogwatcher
Отслеживайте обновления блогов и RSS/Atom-фидов с помощью инструмента blogwatcher-cli. Поддерживает автоматическое обнаружение фидов, резервный HTML-скрапинг, импорт OPML и управление статусом прочитанности статей.
Работа с инструментами Hermes (прочитайте в первую очередь)
blogwatcher-cli — это база данных фидов; автоматизацию вокруг неё обеспечивают инструменты Hermes:
- Постоянное наблюдение — используйте поле
monitorу инструмента cronjob, а не голое расписание.monitorзапускает скрипт на каждом тике и будит агента только при изменении вывода: укажите скрипт, который выполняетblogwatcher-cli scan >/dev/null 2>&1 && blogwatcher-cli articles(вывод детерминированный; новые статьи = изменённый вывод = агент просыпается с внедрённым дифом). Тики без изменений не стоят ни одного вызова LLM. Задайтеdeliver, чтобы направлять дайджесты в чат или канал; добавьтеcontinuity: true, чтобы последовательные дайджесты могли дедуплицироваться. - Чтение статьи, о которой спрашивает пользователь: вызовите
web_extract([url])на URL статьи изblogwatcher-cli articles— не скрапьте вручную повторно. - Разовое «следить за изменениями на странице» без семантики фида: пропустите этот навык — поле
monitorинструмента cronjob принимает 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 или volume-монтирование:
# Именованный volume (проще всего)
docker run --rm -v blogwatcher-cli:/data -e BLOGWATCHER_DB=/data/blogwatcher-cli.db ghcr.io/julientant/blogwatcher-cli scan
# Bind-монтирование хоста
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
Примечания
- Автоматически находит RSS/Atom-фиды на главной странице блога, если
--feed-urlне указан. - При неудаче с RSS переходит на HTML-скрапинг, если настроен
--scrape-selector. - Категории из RSS/Atom-фидов сохраняются и могут использоваться для фильтрации статей.
- Можно массово импортировать блоги из OPML-файлов, экспортированных из Feedly, Inoreader, NewsBlur и других сервисов.
- По умолчанию база данных хранится в
~/.blogwatcher-cli/blogwatcher-cli.db(переопределяется через--dbилиBLOGWATCHER_DB). - Используйте
blogwatcher-cli <command> --help, чтобы увидеть все флаги и опции.