painradar

painradar reads public complaints on Hacker News, in GitHub Issues and in one- and two-star App Store reviews, plus TrustMRR’s verified-revenue data, and turns them into scored themes, a founder-fit ranking and a launch plan. Every claim in the report carries a link.

Commands
3
Sources read
5 (Hacker News, GitHub Issues, App Store reviews, TrustMRR, and Reddit if you enable it)
Network calls
yes, to public sources only (only the search queries you chose are sent)
Dependencies
none
Usernames
none stored
Licence
MIT

Example output

This is abridged from a real run of --topic "llm api bill" on , with no API keys set. Every row is public, and nothing from this machine is in it. Long titles, links and column headers are trimmed here to fit. The counts are what the scraper printed.

# Radar raw evidence — llm api bill — 2026-08-21

Source note: hackernews: 44 · github: 30

| Source     | Title                                        | Date       | Eng. | Int. | Link                                  |
|------------|----------------------------------------------|------------|------|------|---------------------------------------|
| hackernews | Codex on AWS bedrock bug causing 10x charges | 2026-08-21 | -·-  | 0.35 | news.ycombinator.com/item?id=49384653 |
| github     | Redundant calls, no cache — duplicate billing| 2026-08-09 | 3·2  | 1    | github.com/…/issues/18242             |
| github     | Quota exhausted in ~20 min; cache reads at 0 | 2026-08-16 | 3·7  | 0.35 | github.com/…/issues/42935             |
| github     | [Pro 20x] 7-day quota depletion on light use | 2026-08-13 | 2·3  | 0.35 | github.com/…/issues/38335             |

In the table, Eng. is engagement and Int. is intensity. Intensity is 1, 0.7 or 0.35 and is set by a pattern classifier, with no model involved. The patterns are in one file you can open, and --selftest runs them against 6 fixtures with the network off (6/6 on this machine, the same day). A blocked source is printed as blocked with its HTTP status, so a gap in the evidence stays visible in the report.

Install

# once
> /plugin marketplace add halilneed/plugins

# the plugin
> /plugin install painradar@hailneed

# and try it
> /painradar:scan "organic traffic loss after AI Overviews"

The marketplace id is hailneed, which is why the install line ends in @hailneed.

  • Claude Code and Node.js 18 or newer.
  • No dependencies, no build step, no account. Two keys are optional, and both are yours: GITHUB_TOKEN raises search limits and TRUSTMRR_API_KEY unlocks verified revenue.
  • It also runs standalone: node scripts/radar.mjs --topic "llm api bill" --md
  • It can be tested offline: --selftest runs the classifier against 6 fixtures without a single request.

Commands

/painradar:scan <topic>

The complaint radar. It returns 3 to 7 themes with a Signal score, at least two linked items per theme, solution paths and content ideas. Blocked sources are reported as blocked, and thin evidence is labelled weak.

/painradar:fit

Ranks which theme is worth building: pain × money proof (TrustMRR) × competition gap × your own persona from devpersona, if present × effort × platform risk. Every score points at evidence. Without a TrustMRR key, revenue figures are marked unverified.

/painradar:launch [repo|idea]

A launch plan with one primary channel and stated reasons, posting rules for Reddit, Hacker News and Product Hunt, SEO comparison pages, a TrustMRR listing step, a 30-day calendar and three content briefs. All of it is grounded in the radar evidence.

What it does and does not do

painradar is the one plugin of the six that goes online.

  • It fetches public sources only: Hacker News via Algolia, GitHub Issues search and App Store review RSS, plus Reddit if you enable it and TrustMRR if you set its key. Every fetch is in radar.mjs, one file you can read.
  • Your persona card, your repo and your chat history are read locally and sent nowhere. Only the search queries you chose are sent.
  • There are no usernames in the output. Items keep title, link, date and counts, and an author field is never written.
  • Reddit is off by default because of licence and rate-limit risk. If you enable it, a 403 or 429 stops the run and the report says “blocked”.
  • An unreachable source appears in the source note with its HTTP status. Missing evidence is reported as a weak signal.
  • The two keys are optional: GITHUB_TOKEN raises the search quota and TRUSTMRR_API_KEY unlocks verified revenue. Without them the tool still runs and marks revenue figures as unverified.
  • MIT-licensed (LICENSE). No account, no signup, no telemetry.

Planned

A hosted version, painradar Cloud, is planned. The plugin stays free.

  • Scheduled daily scans, with history and charts: which themes are new, growing or fading.
  • A daily digest on Telegram or Slack.
  • White-label reports for agencies that run the radar for their clients.

To hear when it exists, subscribe on the writing page.