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_TOKENraises search limits andTRUSTMRR_API_KEYunlocks verified revenue. - It also runs standalone:
node scripts/radar.mjs --topic "llm api bill" --md - It can be tested offline:
--selftestruns 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_TOKENraises the search quota andTRUSTMRR_API_KEYunlocks 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.