Blogwatcher
Track blog and RSS/Atom feed updates with the blogwatcher-cli tool. Supports
automatic feed discovery, HTML scraping fallback, OPML import, and read/unread
article management.
Prerequisites
blogwatcher-cli must be installed. Pick one method:
# Go install
go install github.com/JulienTant/blogwatcher-cli/cmd/blogwatcher-cli@latest
# Binary (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
# Docker
docker run --rm -v blogwatcher-cli:/data ghcr.io/julientant/blogwatcher-cli scan
All releases: https://github.com/JulienTant/blogwatcher-cli/releases
Verify installation:
blogwatcher-cli --version
When to Use
- User wants to monitor blog updates
- User wants to track RSS/Atom feeds
- User wants to import OPML subscriptions
- User wants a digest of new articles from tracked blogs
Common Commands
# Add a blog to track
blogwatcher-cli add https://example.com/blog
# Add with explicit feed URL
blogwatcher-cli add https://example.com/blog --feed https://example.com/feed.xml
# Scan for new articles
blogwatcher-cli scan
# List tracked blogs
blogwatcher-cli list
# List unread articles
blogwatcher-cli articles --unread
# Mark article as read
blogwatcher-cli read <article-id>
# Import OPML
blogwatcher-cli import subscriptions.opml
# Export OPML
blogwatcher-cli export > subscriptions.opml
Workflow
Setup (first time)
# Install blogwatcher-cli (see Prerequisites)
# Add blogs to track
blogwatcher-cli add https://blog1.com
blogwatcher-cli add https://blog2.com
# Or import existing OPML
blogwatcher-cli import my-subscriptions.opml
Daily check
# Scan for new articles
blogwatcher-cli scan
# Show unread
blogwatcher-cli articles --unread
# Read an article (marks as read)
blogwatcher-cli read <article-id>
Automated monitoring
Set up a cron job to scan periodically:
# Scan every morning at 8am
echo "0 8 * * * blogwatcher-cli scan" | crontab -
Docker with persistent storage
The database lives at ~/.blogwatcher-cli/blogwatcher-cli.db by default. In
Docker, use a volume to persist:
# Named volume
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
Pitfalls
- blogwatcher-cli not installed: this skill requires the external tool. Install first (see Prerequisites).
- Feed discovery fails: some sites don't expose
<link rel="alternate">tags. Use--feedto specify the feed URL explicitly. - Rate limiting: scanning many feeds rapidly may get you blocked. The tool
handles this, but don't run
scantoo frequently. - Database location: if using Docker, always set
BLOGWATCHER_DBto a volume-mounted path, or data is lost on container exit. - OPML encoding: ensure OPML files are UTF-8 encoded for proper import.