Home / Docs

Documentation

Install guides, commands, and options for all three CuriousScan tools. Everything is MIT-licensed, zero-dependency Python — the full source lives on GitHub.

Deal Radar

v0.2.0 · MIT

Keyword watcher for deal communities. Watches public deal feeds for the words you care about — free, promo code, giveaway — and prints matches as they appear. No API key, no account.

Install

$ git clone https://github.com/curiousscan/deal-radar
$ cd deal-radar  # nothing to install — stdlib only

Usage

# one scan, right now
$ python deal_radar.py --once --keywords free,giveaway,"promo code"

# keep watching every 5 minutes
$ python deal_radar.py --watch --interval 300 --subreddits deals,buildapcsales,GameDeals

# machine-readable output
$ python deal_radar.py --once --json > hits.json

# Claude writes a human analyst-style digest (needs ANTHROPIC_API_KEY)
$ export ANTHROPIC_API_KEY="sk-ant-..."
$ python deal_radar.py --once --claude --keywords free,giveaway,"promo code"

Options

FlagDefaultWhat it does
--subredditsdeals, buildapcsales, FreeEBOOKS, GameDeals, frugalmalefashioncomma-separated list to watch
--keywordsfree, giveaway, promo code, coupon, 100% offcomma-separated keywords
--once—single scan pass, then exit
--watch—poll continuously until Ctrl+C
--interval300seconds between passes in watch mode
--json—emit hits as JSON
--claude—Claude-written digest of the hits (needs ANTHROPIC_API_KEY)
--claude-modelclaude-sonnet-5-5Claude model used for --claude

How it works

Requirements: Python 3.8+. Stdlib only.

View source on GitHub →

Free-Model Router

v0.2.0 · MIT

One key, many free models. Send a prompt to the free tiers of several LLM providers through a single CLI — with automatic fallback when a model is busy, rate-limited, or down.

Setup (one time)

# 1. Get a free API key — no credit card required
#    https://openrouter.ai/keys

# 2. Export it
$ export OPENROUTER_API_KEY="sk-or-..."

Usage

# ask the default model chain (falls back automatically)
$ python router.py "Explain recursion like I'm five"

# prefer a specific model, fall back to the rest on failure
$ python router.py "Write a haiku about GPUs" --model google/gemma-3-27b-it:free

# pipe input, add a system prompt
$ echo "Summarize: ..." | python router.py --system "You are a terse assistant."

# see the configured free-tier lineup
$ python router.py --list-models

# benchmark the free-tier answer against Claude, side by side
$ export ANTHROPIC_API_KEY="sk-ant-..."
$ python router.py "Explain recursion like I'm five" --claude-benchmark

How it works

Requirements: Python 3.8+. Stdlib only. One free OpenRouter key.

View source on GitHub →

Changelog

Release history for all three tools. Full per-release notes live on each repo's GitHub releases page.

v0.2.0 October 2026 · Claude integration

  • Deal Radar — new --claude flag: Claude writes a human analyst-style digest of the hits, grouped by theme, flagging the genuinely free finds. Key-gated via ANTHROPIC_API_KEY; raw hits still print if the call fails.
  • Free-Model Router — new --claude-benchmark flag: answers your prompt through the free-tier chain and Claude (Sonnet) side by side, so free-tier quality is judged against the Claude bar.
  • Trending-Repo Scout — new --claude-filter flag: Claude Haiku rates every repo REAL vs HYPE for signal-vs-hype. Verdicts labeled in the digest, never silently dropped.
  • All Claude features are optional, stdlib-only (direct Messages API calls, no SDK), and fail soft.

v0.1.0 October 2026 · initial public release

  • Deal Radar — public launch: subreddit RSS keyword watching, one-shot and watch modes, JSON output.
  • Free-Model Router — public launch: single CLI across free LLM tiers via OpenRouter, automatic fallback table, --list-models.
  • Trending-Repo Scout — public launch: GitHub Search API digest, AI-signal filtering, Markdown and JSON output.
  • All three: MIT license, zero dependencies, Python 3.8+.

Roadmap (from the repos): Telegram/Discord alert sink and price-drop tracking for Deal Radar; Threads/Instagram watchers; expanded model lineups for Free-Model Router.