Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Monitor blogs and RSS/Atom feeds via blogwatcher-cli.
.claude/skills/hezaohezao-blogwatcher/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 60% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 198% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 377% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 198% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 17% | 0% |
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.
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:
bashblogwatcher-cli --version
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
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
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>
Set up a cron job to scan periodically:
bash# Scan every morning at 8am echo "0 8 * * * blogwatcher-cli scan" | crontab -
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
Install first (see Prerequisites).
<link rel="alternate">tags. Use --feed to specify the feed URL explicitly.
handles this, but don't run scan too frequently.
BLOGWATCHER_DB to avolume-mounted path, or data is lost on container exit.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 5,721 | 2,882 | -50% | 1 | 1 | 0% | 810 | 1,293 | +60% | 0 | 0 | — |
case-02 | fail→pass | 4,109 | 3,555 | -13% | 1 | 1 | 0% | 438 | 1,304 | +198% | 0 | 0 | — |
case-03 | fail→pass | 8,589 | 4,989 | -42% | 1 | 1 | 0% | 311 | 1,485 | +377% | 0 | 0 | — |
case-04 | fail→pass | 3,188 | 2,925 | -8% | 1 | 1 | 0% | 401 | 1,195 | +198% | 0 | 0 | — |
case-05 | pass→pass | 6,262 | 2,585 | -59% | 1 | 1 | 0% | 930 | 1,159 | +25% | 0 | 0 | — |
case-06 | fail→pass | 6,099 | 2,030 | -67% | 1 | 1 | 0% | 903 | 1,059 | +17% | 0 | 0 | — |
case-07 | pass→pass | 7,379 | 2,550 | -65% | 1 | 1 | 0% | 1,181 | 1,118 | -5% | 0 | 0 | — |
case-08 | fail→pass | 11,478 | 4,418 | -62% | 1 | 1 | 0% | 1,966 | 1,525 | -22% | 0 | 0 | — |
case-09 | pass→pass | 11,680 | 7,251 | -38% | 1 | 1 | 0% | 1,415 | 1,378 | -3% | 0 | 0 | — |
case-10 | fail→pass | 10,697 | 2,680 | -75% | 1 | 1 | 0% | 1,593 | 1,209 | -24% | 0 | 0 | — |
case-11 | fail→pass | 30,733 | 2,821 | -91% | 1 | 1 | 0% | 2,295 | 1,196 | -48% | 0 | 0 | — |
case-12 | fail→pass | 8,098 | 6,473 | -20% | 1 | 1 | 0% | 1,315 | 1,569 | +19% | 0 | 0 | — |
case-13 | fail→pass | 10,072 | 3,889 | -61% | 1 | 1 | 0% | 1,573 | 1,210 | -23% | 0 | 0 | — |
case-14 | pass→pass | 6,391 | 2,337 | -63% | 1 | 1 | 0% | 876 | 1,115 | +27% | 0 | 0 | — |
case-15 | fail→pass | 11,464 | 3,580 | -69% | 1 | 1 | 0% | 1,857 | 1,376 | -26% | 0 | 0 | — |
case-16 | pass→pass | 15,585 | 10,407 | -33% | 1 | 1 | 0% | 2,388 | 2,446 | +2% | 0 | 0 | — |
case-17 | fail→pass | 24,324 | 2,523 | -90% | 1 | 1 | 0% | 4,321 | 1,213 | -72% | 0 | 0 | — |
case-18 | pass→pass | 5,459 | 2,399 | -56% | 1 | 1 | 0% | 686 | 1,090 | +59% | 0 | 0 | — |
case-19 | pass→pass | 26,052 | 14,899 | -43% | 1 | 1 | 0% | 3,131 | 3,684 | +18% | 0 | 0 | — |
case-20 | pass→pass | 11,158 | 9,530 | -15% | 1 | 1 | 0% | 1,764 | 2,342 | +33% | 0 | 0 | — |
case-21 | pass→pass | 12,294 | 9,026 | -27% | 1 | 1 | 0% | 2,337 | 2,593 | +11% | 0 | 0 | — |
case-22 | fail→pass | 6,747 | 2,800 | -59% | 1 | 1 | 0% | 902 | 1,251 | +39% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 21 counted toward the lift figure. The other 1 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +59 percentage points is the difference between those two pass rates over the 21 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.