- name
- changelog-watcher
- description
- Monitor GitHub repos and npm packages for new releases and version updates. Summarizes changelogs and highlights breaking changes. Use when the user asks to check for updates, find new releases, review changelogs, track version updates, or asks "what's new in X". Also use when asked to run or schedule a changelog check, set up release monitoring, or report on recent releases for any software package or GitHub repo.
Changelog Watcher
Maintains a watchlist of GitHub repos and npm packages, detects new releases, and produces markdown reports with breaking changes highlighted.
Files
watchlist.json— user config (create fromassets/watchlist.example.json)state.json— auto-managed last-seen versions (do not edit)scripts/compare_versions.py— main entry point; calls the othersscripts/check_github.py— GitHub releases APIscripts/check_npm.py— npm registryscripts/format_report.py— markdown report generator
For setup, watchlist format, cron scheduling, and rate limit guidance → read references/setup-guide.md.
Skill Directory
~/.openclaw/workspace/skills/changelog-watcher/All script paths below are relative to this directory.
Usage
Check for new releases and print report
python3 scripts/compare_versions.py --update-state | python3 scripts/format_report.pyDry-run (check without advancing state)
python3 scripts/compare_versions.py | python3 scripts/format_report.pyFirst-time setup (set baseline, no output)
cp assets/watchlist.example.json watchlist.json
# edit watchlist.json to your packages
python3 scripts/compare_versions.py --update-stateWorkflow
- Confirm
watchlist.jsonexists. If not, guide user to copy fromassets/watchlist.example.jsonand fill it in. - Run
compare_versions.py(with--update-stateunless doing a dry-run). - Pipe output to
format_report.py. - Present the markdown report to the user.
- If the user wants to schedule this: provide the cron line from
references/setup-guide.md.
Adding Entries
To add a GitHub repo:
{"source": "github", "owner": "OWNER", "repo": "REPO", "name": "Display Name"}To add an npm package:
{"source": "npm", "package": "package-name", "name": "Display Name"}Append to the watch array in watchlist.json, then run the full pipeline.
Error Handling
- Rate limited (exit 2): Wait for the retry window; check how many GitHub entries are in the watchlist vs the 60/hr limit.
- Not found (exit 3): Verify the owner/repo or package name in the watchlist.
- Network error: Check connectivity; retry.
- First-run shows zero releases: Expected — first run sets the baseline only.