---
name: Blogwatcher
slug: blogwatcher
category: Automation
description: Monitor blogs and RSS/Atom feeds using blogwatcher-cli. Supports automatic feed discovery, OPML import/export, and read/unread article tracking for daily updates.
github: "https://github.com/HezaoHezao/poirot/tree/master/poirot/backend/agents/skill/builtin_skills/research/blogwatcher"
language: Python
stars: 185
forks: 8
install: "npx degit https://github.com/HezaoHezao/poirot/tree/master/poirot/backend/agents/skill/builtin_skills/research/blogwatcher ~/.claude/skills/blogwatcher"
installs_to: ~/.claude/skills/blogwatcher
source_path: poirot/backend/agents/skill/builtin_skills/research/blogwatcher/SKILL.md
collection_size: 37
category_size: 1523
collection_url: "https://dirskills.com/collections/HezaoHezao/poirot"
added: 2026-08-11T07:20:45.631Z
last_synced: 2026-08-11T07:20:45.631Z
canonical_url: "https://dirskills.com/skills/blogwatcher"
---

# Blogwatcher

Monitor blogs and RSS/Atom feeds using blogwatcher-cli. Supports automatic feed discovery, OPML import/export, and read/unread article tracking for daily updates.

**Install:**

```bash
npx degit https://github.com/HezaoHezao/poirot/tree/master/poirot/backend/agents/skill/builtin_skills/research/blogwatcher ~/.claude/skills/blogwatcher
```

## README

# 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:

```bash
# 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:
```bash
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

```bash
# 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)

```bash
# 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

```bash
# 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:

```bash
# 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:

```bash
# 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 `--feed` to specify the feed URL explicitly.
- **Rate limiting**: scanning many feeds rapidly may get you blocked. The tool
  handles this, but don't run `scan` too frequently.
- **Database location**: if using Docker, always set `BLOGWATCHER_DB` to a
  volume-mounted path, or data is lost on container exit.
- **OPML encoding**: ensure OPML files are UTF-8 encoded for proper import.
