Skip to content
Back to skills

Wallstreetbets

ASecurity

Browse r/wallstreetbets from inside Claude Code — read DD (due-diligence) posts, filter by any flair (News, Gain, Loss, YOLO, Daily Discussion…), keyword-search the sub, and open any post's full body or comment thread. Use whenever the user wants to see what WSB is saying — including bare "/wsb", "what's the DD on WSB", "any new DD", "wallstreetbets sentiment on <ticker>", or follow-ups like "read that one" / "what are the comments" while browsing.

  • 19 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added October 6, 2026
developmentpythongo

Works with

  • claude code
  • terminal
  • cli

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned October 6, 2026

npx -y skills add mthli/skills --skill wallstreetbets --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Wallstreetbets?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Wallstreetbets
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/mthli-wallstreetbets/badge)](https://www.skillsdirectory.com/skills/mthli-wallstreetbets)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: wallstreetbets
description: >-
  Browse r/wallstreetbets from inside Claude Code — read DD (due-diligence)
  posts, filter by any flair (News, Gain, Loss, YOLO, Daily Discussion…),
  keyword-search the sub, and open any post's full body or comment thread. Use
  whenever the user wants to see what WSB is saying — including bare "/wsb",
  "what's the DD on WSB", "any new DD", "wallstreetbets sentiment on <ticker>",
  or follow-ups like "read that one" / "what are the comments" while browsing.
---

# r/wallstreetbets

Browse r/wallstreetbets in the terminal. A bundled Python script
(`scripts/wsb.py`, standard library only — no install) fetches Reddit's public
RSS feeds and formats results as Markdown; your job is to map what the user
asked for to the right command, run it, and present the output.

`<SKILL_DIR>` below is the directory containing this `SKILL.md` — substitute its
absolute path when running.

## Why RSS

Reddit's unauthenticated JSON endpoints now return 403, but the `.rss` feeds
still serve fine with a descriptive User-Agent (the script sets one). So
everything here goes through RSS, and importantly the **search feed carries each
post's full body** — listing and reading DD share one fetch path. This is
read-only: the script never posts, votes, or logs in.

## Commands

```
# List posts. Default: flair DD, sorted top over the past week.
# --flair <name>  any link flair (DD, News, Gain, Loss, YOLO, Discussion,
#                 "Daily Discussion", "Earnings Thread"); pass --flair "" for
#                 the plain front page (no flair filter).
# --query <text>  keyword search within the sub (combinable with --flair)
# --sort          top | new | relevance | hot | comments   (default: top)
# --time          hour | day | week | month | year | all   (only affects top)
# --sub <name>    any subreddit (default: wallstreetbets)
python3 <SKILL_DIR>/scripts/wsb.py list [--flair DD] [--query "<text>"] -n <count> --sort <sort> --time <window>

# Read a post's full body (id comes from a listing)
python3 <SKILL_DIR>/scripts/wsb.py read <id>

# Read a post's comment thread
python3 <SKILL_DIR>/scripts/wsb.py comments <id> -n <count>
```

Every command takes `--json` if you need structured data instead of Markdown
(e.g. the user wants you to rank, filter, or summarize across posts, or extract
tickers).

## Mapping requests to commands

**The default — bare `/wallstreetbets`, "what's the DD", "anything good on WSB"
— is `list` with its defaults: DD flair, `--sort top --time week`.** That window
matters: DD is low-volume and quality is bimodal (plenty of pump-and-dump posts
flaired "DD" that nobody upvotes), so "top this week" is the curated reading
list — the handful the sub actually found worth reading. Reach for `--sort new`
only when the user explicitly wants what's *fresh* ("any new DD", "DD today",
"latest") — that view includes unvetted posts, which is the point.

Map flair words directly: "news" → `--flair News`, "gains"/"gain porn" →
`--flair Gain`, "losses"/"loss porn" → `--flair Loss`, "YOLOs" → `--flair YOLO`,
"daily"/"daily discussion"/"what are your moves" → `--flair "Daily Discussion"`,
"earnings thread" → `--flair "Earnings Thread"`. "The front page" / "everything"
/ "just what's hot" → `--flair "" --sort hot`.

"WSB on NVDA" / "what's WSB saying about Nvidia" / "sentiment on $TSLA" → add
`--query "<ticker>"`. Combine with a flair when they're specific ("DD on NVDA" →
`--flair DD --query "NVDA"`). Note keyword + flair is relevance-weighted, not a
strict AND — for tight keyword matching prefer `--sort relevance` (the default
`top` still works well for "the big posts about X").

"Read that one" / "open #2" / "what does the ASTS DD actually say" → `read <id>`,
using the `` `id <base36>` `` shown at the end of each listing line. If the user
names a post by topic rather than rank, pick the matching id from the most
recent listing.

"What are people saying" / "read the comments" / "is the room bullish" →
`comments <id>`.

**Superlative-across-the-listing requests** — "which DD is the most detailed",
"the biggest post this week" — need a wider pull than the default 10, so
`list … -n 25` first, then pick from those. The `~N words` on each line is a
quick proxy for how substantial a DD is (a 5,000-word writeup vs a 60-word
shill).

Browsing another subreddit ("do this for r/options", "stocks subreddit") → add
`--sub <name>`; everything else works the same.

## Presenting results

The script already emits clean, link-rich Markdown. Relay it largely as-is —
don't re-fetch each post or rewrite every line; that wastes time and adds
nothing. A short framing line is welcome ("Here's the top DD on WSB this week —")
and so is a one-line offer of the next step ("Want me to read any of these in
full?"). Keep the clickable title links and the `id` markers intact so
follow-ups work.

If the user asked a question *about* the posts rather than just to see them
("which of these is worth reading", "summarize the ASTS thesis", "what tickers
are people pushing"), go ahead and read/summarize — pull the body with `read`,
or use `--json` across a listing to extract and rank — then answer.

Treat WSB content with appropriate skepticism when summarizing: it's anonymous,
often promotional, and not investment advice. Surface the thesis and the
sentiment, but flag when a "DD" reads like a pump rather than analysis (a tiny
body, all hype, no numbers — the `~N words` count and a quick read make this
obvious). Don't launder ramp-job hype into confident-sounding investment advice.

## Notes

- IDs are Reddit's base36 post ids (e.g. `1tnimoe`). `read` and `comments` both
  hit the same `/comments/<id>/.rss` feed — its first entry is the post body,
  the rest are comments — so reading a post and then its comments is cheap.
- Comment feeds are a **flat, partial slice** of the thread (Reddit's RSS caps
  it and doesn't nest replies), enough to read the room but not the whole tree.
  Don't present it as the complete discussion.
- Link/image posts (common under Gain/Loss/Meme) have no text body; `read` will
  say so rather than inventing content.
- If a fetch returns HTTP 403/429, Reddit is throttling — wait and retry; the
  feeds only tolerate light, human-paced use.

Files in this skill

  • SKILL.md6.2 KB
  • scripts/wsb.py12.7 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…