Back to the collection
Blogwatcher·Data & research

Blogwatcher guide: track RSS updates with OpenClaw

On this page

Want an agent to watch a few blogs without opening every site each day? Blogwatcher turns RSS/Atom entries into a local unread list. steipete/blogwatcher is the OpenClaw skill that tells the agent how to use a command; Hyaxia's blogwatcher Go CLI actually fetches feeds and stores read state. Start with one complete loop—subscribe, scan, inspect links, mark read—before adding scheduling.

Check what you already have

You need an OpenClaw agent that can run terminal commands, a reachable RSS/Atom feed, and Go. The underlying project's current go.mod requires Go 1.24; an older Go installation may need updating before the CLI builds. OpenClaw also ships a same-named skill, so inspect the current environment first:

Command
openclaw skills check
openclaw skills info blogwatcher

If info already finds blogwatcher, there is no reason to install another copy of the same skill. If the check reports a missing blogwatcher binary, you still need the separate CLI. Only if the skill is absent, install the ClawHub v1.0.0 covered here:

Command
openclaw skills install @steipete/blogwatcher --version 1.0.0

Install the underlying CLI on the machine running OpenClaw, then check that the command is available:

Command
go install github.com/Hyaxia/blogwatcher/cmd/blogwatcher@latest
blogwatcher --help
openclaw skills check

If the Go install succeeds but the shell says blogwatcher: command not found, check whether Go's binary directory is on the PATH seen by OpenClaw, then retry blogwatcher --help. @latest selects a CLI release or commit independently of the ClawHub skill's v1.0.0. If CLI flags change later, use the installed version's blogwatcher <command> --help.

First subscription: provide a known Atom feed

Simon Willison's public Atom feed makes a concrete first example. Run these commands in the shell where the CLI is installed. The explicit feed URL avoids relying on homepage feed discovery.

Command
blogwatcher add "Simon Willison" https://simonwillison.net --feed-url https://simonwillison.net/atom/everything/
blogwatcher blogs
blogwatcher scan "Simon Willison"
blogwatcher articles --blog "Simon Willison"

blogs should show the subscription. scan reports how many entries it found and how many were new to the local database. articles --blog should show unread titles, IDs, and original links for that source. Open a link and read it at the publisher's site; then run blogwatcher read 12, replacing 12 with that article's actual ID. Run the filtered articles command again to check that it has left the unread list. To inspect both read and unread records, use blogwatcher articles --all --blog "Simon Willison".

For a first OpenClaw request, you can say:

Prompt
Use blogwatcher to subscribe to Simon Willison's Atom feed at https://simonwillison.net/atom/everything/. Confirm the subscription, scan it, and give me up to five unread titles with their original links. Do not mark anything read yet. If the list is empty, check the subscription and scan status before concluding there are no posts.

On the first scan, “New” means not previously recorded in your local database; it does not mean published today. Check the article date and original page before treating an entry as fresh news. By default, the CLI keeps subscriptions and read state in local SQLite at ~/.blogwatcher/blogwatcher.db. That is not cross-device synchronization or a way to bypass a publisher's paywall.

Turn the loop into a daily review

Begin with two or three high-value feeds. Each time you run blogwatcher scan, review blogwatcher articles, follow the original links, and mark items read only after reviewing them. Use --blog "Name" to keep sources separate. Do not use read-all as deduplication: it changes local read state for a batch. The CLI's stored-article logic handles repeated URLs separately.

The public openclaw-newsroom project uses blogwatcher as its RSS intake, then runs additional scripts for keyword filtering, deduplication, and editorial selection. If you want a morning briefing, that is a useful division of labor: let blogwatcher collect candidate links and let your own process decide what deserves attention. This skill alone does not rank trends, summarize full articles, send notifications, or schedule itself. Those require separate agent tasks or scripts.

If something goes wrong

  • The skill appears, but the agent cannot use it. Run openclaw skills check to distinguish a missing blogwatcher binary from a missing terminal tool or a skill not visible to the selected agent. Installing skill instructions does not supply the Go executable.
  • The scan finds nothing. Confirm the source with blogwatcher blogs, then run blogwatcher scan "Name". If the homepage exposes no discoverable feed, add a known feed with --feed-url as above. HTML fallback requires an article-link --scrape-selector and is still subject to site access limits.
  • articles is empty even though you saw posts before. The default list shows unread items only. Use blogwatcher articles --all to tell a read-state issue from a scan with no stored entries.
  • You want to remove a mistaken subscription. blogwatcher remove "Name" also deletes that blog's locally stored articles. Confirm the name first; removal is not a lossless pause button.

How did your first task go?

These choices help us understand where readers get stuck through site analytics. Blocking analytics may prevent delivery; use email for a specific issue.

References

  1. Blogwatcher — ClawHubPeter Steinberger / steipete
  2. OpenClaw blogwatcher SKILL.mdOpenClaw
  3. Skills CLI — OpenClawOpenClaw
  4. BlogWatcher READMEHyaxia
  5. OpenClaw Automated News Scanner READMEJacob Ben David
  6. You asked for it, so I open-sourced my entire OpenClaw newsroom pipelineKobyStam
Found outdated or incorrect information? Let us know

Keep exploring

More skills worth getting to know.