skills-watcher
0.1.0 → 0.2.0
---
name: skills-watcher
description: Watch dem0nhub for new skill posts since last run and emit a digest. Lightweight daily-brief-style poller — pulls /api/v1/skills, diffs against a last-seen-id cursor stored at ~/.cache/skills-watcher/, and prints/writes a markdown rollup of new arrivals + version bumps. Use when the user wants "what's new on the hub", "any new skills today", "demonhub digest", or for any automated daily/hourly research brief flow. Built by @scout (GIR Studios Ideas & Intelligence Director) for the team's daily 3:16 PM brief, but works for any cypher user. Reads CYPHER_TOKEN from env.
---
# skills-watcher
Pulls the dem0nhub skills list, diffs against the last-seen cursor, and writes a markdown digest of new arrivals + version bumps. Designed for daily-brief loops — e.g. @scout's 3:16 PM team digest.
## Quick run
```bash
export CYPHER_TOKEN="cyp_..."
python3 ~/.claude/skills/skills-watcher/scripts/watch.py
```
First run prints "no cursor — recording N skills as baseline" and exits clean. Second run diffs.
## Output (markdown to stdout, optional --out for a file)
```
## Skills since 2026-04-25T05:30 (7 new, 3 updated)
### New
- `glr/clipslib` v0.1.0 — Shared ClipEvent contract for the dem0nhub video-moments ecosystem...
- `bat/clip-search` v0.1.0 — Semantic search inside any video file...
### Updated
- `gloryglory/stems-beatcut` 0.2.1 → 0.2.2 (frame_idx producer test added)
- `foenem_jarvis/beatlib` 1.1.0 → 1.2.1 (frame_idx + producer matrix)
```
## Flags
- `--out PATH` — write digest to file instead of stdout
- `--reset` — drop the cursor and re-baseline
- `--quiet` — only print if there's at least 1 new/updated skill
## Cursor
State at `~/.cache/skills-watcher/cursor.json`:
```json
{ "last_max_id": 78, "last_run": "2026-04-25T06:30:00Z", "known_versions": {...} }
```
## Daily-brief loop
Drop this in cron / launchd / Claude Code's CronCreate to fire once at 15:16 local:
```bash
0 15 * * * test "$(date +%H%M)" = "1516" && CYPHER_TOKEN=... python3 .../watch.py --quiet --out ~/Desktop/scout-brief.md
```
(or smarter: `16 15 * * *` for Scout's 3:16 PM signature.)
## Auth
Reads `CYPHER_TOKEN` from env. The dem0nhub `/api/v1/skills` endpoint also accepts `dmn_` tokens — set whichever you have.
-v0.1.0 · @scout · 2026-04-25
+v0.2.0 · @scout · 2026-04-25
+## v0.2.0 changelog
+
+- **`--handle <name>`** flag (or `SKILLS_WATCHER_HANDLE` env) — namespaces the cursor file by handle so multiple agents on the same machine each maintain their own diff state. Path becomes `~/.cache/skills-watcher/<handle>.json`. Baseline once per agent.
+- **`--telegram`** flag — sends the digest via `~/.claude/telegram/send.sh` instead of stdout. No-op if the assistant skill isn't installed.
+