Skip to content
cccskills
FreePublished on GitHub

watchers

Poll RSS, JSON APIs, and GitHub with watermark dedup.

The English summary is being prepared. Showing the original description.

Works withGitHub

Run score Not tested

See how to install

Files included (5)

  • SKILL.md5.1 KB
  • scripts/_watermark.py5.1 KB
  • scripts/watch_github.py6.1 KB
  • scripts/watch_http_json.py4.4 KB
  • scripts/watch_rss.py3.9 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Watchers

Harness-agent tools

This skill was ported from Octop. Use these harness/deepagents tools:

ConceptTool
Shellexecute
Read / write / edit filesread_file, write_file, edit_file
Find files / search contentglob, grep
Fetch URLsweb_fetch
Browser automationbrowser_use
Subagent worktask
Memorymemory_store, memory_recall, memory_search

Builtin skill files live under /_builtin_skills/<name>/. User-installed skills live under /skills/<name>/.

Poll external sources on an interval and react only to new items. Three ready-made scripts plus a shared watermark helper; wire them into a cron job (or run them ad-hoc from the terminal).

When to Use

  • User wants to watch an RSS/Atom feed and be notified of new entries
  • User wants to watch a GitHub repo's issues / pulls / releases / commits
  • User wants to poll an arbitrary JSON endpoint and get notified on new items
  • User asks for "a watcher for X" or "notify me when X changes"

Mental model

A watcher is just a script that:

  1. Fetches data from the external source
  2. Compares against a watermark file of previously-seen IDs
  3. Writes the new watermark back
  4. Prints new items to stdout (or nothing on no-change)

The scripts below handle all three. The agent runs them via the execute tool — from a cron job, a webhook, or an interactive chat — and reports what's new.

Ready-made scripts

All three live in /_builtin_skills/watchers/scripts/ once the skill is installed. Each reads WATCHER_STATE_DIR (defaults to watcher-state/) for its state file, keyed by the --name argument.

ScriptWhat it watchesDedup key
watch_rss.pyRSS 2.0 or Atom feed URL<guid> / <id>
watch_http_json.pyAny JSON endpoint returning a list of objectsConfigurable id field
watch_github.pyGitHub issues / pulls / releases / commits for a repoid / sha

All three:

  • First run records a baseline — never replays existing feed
  • Watermark is a bounded ID set (max 500) to cap memory
  • Output format: ## <title>\n<url>\n\n<optional body> per item
  • Empty stdout on no-new — the caller treats that as silent
  • Non-zero exit on fetch errors

Usage

Run a watcher with execute (paths are relative to the workspace root after init_workspace):

python _builtin_skills/watchers/scripts/watch_rss.py \
  --name hn --url https://news.ycombinator.com/rss --max 5

Watch a GitHub repo (set GITHUB_TOKEN in the environment to avoid the 60 req/hr anonymous rate limit):

python _builtin_skills/watchers/scripts/watch_github.py \
  --name my-issues --repo owner/repo --scope issues

Poll an arbitrary JSON API:

python _builtin_skills/watchers/scripts/watch_http_json.py \
  --name api --url https://api.example.com/events \
  --id-field event_id --items-path data.events

Periodic runs

octop-harness has no built-in cron. Options:

  1. Ad-hoc — run a watcher when the user asks; summarize stdout if non-empty.
  2. OS cron / launchd — schedule the same python _builtin_skills/watchers/scripts/... command on the host.
  3. External scheduler — wire the script into your deployment's job runner.

Example user prompt:

Every time I ask, run the HN watcher and summarize new headlines. Stay silent if stdout is empty.

State files

Every watcher writes watcher-state/<name>.json. Inspect:

cat watcher-state/hn.json

Force a replay (next run treated as first poll):

rm watcher-state/hn.json

Writing your own

All three scripts use the same template: load watermark, fetch, diff, save, emit. scripts/_watermark.py is the shared helper; import it to get atomic writes + bounded ID set + first-run baseline for free. See any of the three reference scripts for how little boilerplate it takes.

Common Pitfalls

  1. Printing a "no new items" header every tick. Callers rely on empty stdout = silent. If you print anything on an empty delta, you spam the channel. The shipped scripts handle this; custom scripts must too.
  2. Expecting the first run to emit items. It won't — first run records a baseline. If you need an initial digest, delete the state file after the first run or add a --prime-with-latest N flag in your own script.
  3. Unbounded watermark growth. The shared helper caps at 500 IDs. Raise it for high-churn feeds; lower it on constrained filesystems.
  4. Putting the state dir where the agent cannot write. Default watcher-state/ under the workspace is writable on the local backend.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Manage Apple Notes via memo CLI: create, search, edit.

The English summary is being prepared. Showing the original description.

TencentCloud/octop-harness116Updated Oct 24, 2026

通过 memo CLI 管理 Apple Notes:创建、搜索、编辑。

The English summary is being prepared. Showing the original description.

TencentCloud/octop-harness116Updated Oct 24, 2026

通过 remindctl 在 macOS 上管理 Apple Reminders——列出、添加、编辑、完成、 删除同步到 iPhone/iPad 的待办事项。在提及"提醒"、"Reminders app"、 需要手机同步的"提醒我"或添加带截止日期的个人待办事项时触发。macOS only。 当用户需要代理内部提醒(使用 memory_store 或外部 调度)或日历事件时跳过。

The English summary is being prepared. Showing the original description.

TencentCloud/octop-harness116Updated Oct 24, 2026

Manage Apple Reminders on macOS via remindctl — list, add, edit, complete, delete to-dos that sync to iPhone/iPad. Trigger on "reminder", "Reminders app", "提醒我" with phone sync, or adding personal todos with due dates. macOS only. Skip when the user wants agent-internal alerts (use memory_store or external scheduling) or calendar events.

The English summary is being prepared. Showing the original description.

TencentCloud/octop-harness116Updated Oct 24, 2026

Dark-themed SVG architecture/cloud/infra diagrams as HTML.

The English summary is being prepared. Showing the original description.

TencentCloud/octop-harness116Updated Oct 24, 2026

暗色主题的 SVG 架构/云/基础设施图表,输出为 HTML。

The English summary is being prepared. Showing the original description.

TencentCloud/octop-harness116Updated Oct 24, 2026

See all skills by TencentCloud

Report a problem with this skill