Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/dancolta/subscope/runnpx skills add dancolta/subscope --skill rungit clone --depth 1 https://github.com/dancolta/subscopeWhat it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00093 | $0.03929 |
| Opus 5 | $0.00046 | $0.01965 |
| Sonnet 5 | $0.00019 | $0.00786 |
| Haiku 4.5 | $0.00009 | $0.00393 |
Grade A, and why
subscope-run scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 207 lines — stays where its author put it; the contents beside it link to each section on GitHub.
/subscope-run
Daily Reddit surfacing orchestrator. Python (under engine/) does fetch + gate + score + SQLite + JSON output. This skill is the Claude-side wrapper: it invokes the engine, optionally syncs to Notion (if configured), and prints the inline list to chat.
Preflight
- Check whether user has personalized targeting at
~/.config/subscope/subreddits.yml. If missing, the engine still runs using bundled generic defaults, but results will be off-target. Recommend/subscope-onboard(one conversation, ~5 min, includes the first scan) with a one-line nudge:(no personal targeting found, scanning with generic defaults. /subscope-onboard for sharper results.)Proceed with the run unless user explicitly cancels.
Daily run procedure
Step 1: Fetch + candidates (Python engine)
cd "$CLAUDE_PLUGIN_ROOT" && PYTHONPATH=engine python3 -m subscope.cli fetch-score --candidates
Engine output: a single JSON document on stdout with run_id, status, fetched, surfaced, buyer_count, authority_count, subs_skipped_rate_limit, fetch_stats, dropped_counts, surfaces[], inline_table, inline_markdown, and (with --candidates) a candidates[] array plus candidate_count / candidate_total.
candidates[] is the recall pre-filter: every fetched post that cleared the absolute rejects (NSFW, removed/locked, vendor-spam, off-topic-sub, tier-3), each with deterministic features: title, body, url, sub, tier, age_h, kw_hits, matched_kw, names_brand (matched against the user's brand_anchor), question_intent, pain_intent, engagement_available, soft_reason. The engine deliberately does NOT decide relevance for these. You do, in Step 3.5. The engine's own surfaces[]/inline_table are the older lexical-gate output; under judge-first they are a secondary signal, not the chat output.
The status field tells you why a run produced few or no surfaces, so you never show the wrong message:
status: "ok"andsurfaced > 0-> normal run, render the table (Step 4).status: "ok"andsurfaced == 0-> Reddit was reachable, today was just quiet. Show the EMPTY-DAY copy below.status: "rate_limited"-> Reddit rate-limited this run (HTTP 429). Some subreddits may have been skipped (subs_skipped_rate_limitsays how many), so the list can be partial or empty. This is transient. Render any surfaces you DID get, then show the RATE-LIMITED copy below. Do NOT call this "blocked".status: "blocked"-> every Reddit feed request failed for a non-rate-limit reason (Reddit's edge returned 403, or the network was down). The scan could not read anything. Show the BLOCKED copy below.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2d ago First seen · 207 lines · 93 tokens per session scan A 85ca9eb0507c
subscope-run is a skill published in the GitHub repository dancolta/subscope (25 stars, last pushed 21d ago), licensed MIT. It adds 93 tokens to every session and 3,929 once invoked, about $0.0005 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
broker-integration
Integrate a new Indian broker into OpenAlgo, or modify an existing broker plugin. Use when wiring up a broker's auth/login, orders, quotes, depth, history, funds, margin, symbol master, or WebSocket streaming; when a broker does not appear in the login dropdown or fails to load; or when debugging broker-specific…
chart-indicator
Build a custom indicator for the OpenAlgo /trading charting terminal (openalgo-charts). Use when asked to create, port, or debug a chart indicator, overlay, oscillator, band, or on-chart signal, including porting a study written for another charting platform. Writes a plain-JS descriptor into strategies/indicators/…
rekal-init
Bootstrap rekal memory for a project. Scans the codebase for architecture, conventions, dependencies, workflows, and config, then stores durable knowledge as properly typed, tagged, deduplicated memories. Use when starting rekal on a new project, or when user says "init rekal", "bootstrap memory", "populate rekal"…
fd-audit
Audit a change for resource leaks in OpenAlgo — file descriptors AND unbounded memory growth. Run after building a feature or fixing anything that touches databases, WebSockets or streaming, threads or executors, subprocesses, files, sockets, caches, or module-level registries. Also use when the user reports "too many…
flow-builder
Build, edit or debug an OpenAlgo Flow workflow - the no-code node graph at /flow. Use when asked to create a workflow, wire a webhook or TradingView alert to an order, add a node, port a strategy into Flow, or work out why a workflow imported but did nothing. Produces a workflow JSON that is validated against the real…
security-audit
Run OpenAlgo's periodic security audit across backend, frontend, database, cache, routes and dependencies, producing a dated xlsx report. Use for the monthly or twice-monthly review, before a release, after a dependency bump, or when the user asks for a security check, vulnerability scan, or audit report.