A Claude Code skill that teaches an LLM how to write and behave on Reddit so the resulting account is indistinguishable from a real human user — across a single comment, a week of activity, and many months of history.
Calibrated from a corpus of 938 real Reddit users (median ~6 years old, ~5k karma) profiled in late 2026 across r/AskProgramming, r/compsci, r/csMajors, r/cscareerquestions, r/ExperiencedDevs, r/learnprogramming, r/learnpython, r/leetcode, r/programming, r/SoftwareEngineering, r/webdev. Every rule in the skill cites a percentile from that corpus (see .claude/skills/reddit-usage-pattern/references/corpus-findings.md).
Three layers, listed shortest-to-longest horizon:
- Text style — how each individual comment / post should read (length, punctuation, capitalization, voice register, typos)
- Behavior — what to do, how often, when (cadence, time-of-day, voting patterns, joining subs)
- Long-term persona — multi-day, multi-week, multi-month consistency, account warming, and cross-account diversity rules for fleets of accounts
The skill is instructional only. It tells the LLM what to do; the actual posting / voting / joining is performed by your runtime tooling (browser-use, Reddit API, etc.).
These are what the skill builds on, all from the 938-user corpus:
| Finding | Value | Why it matters |
|---|---|---|
| Users with ZERO em-dashes | 69% | Em-dashes are the loudest AI tell. Never use one. |
| Median comment length | 29 words | LLM defaults of 100+ words are 95th-percentile-long. |
| Median lowercase-i ratio | 2.3% | Most users DO capitalize "I"; lowercase-i is a minority style (~8%). |
| ASCII emoticons vs Unicode emojis | 4× more common | Prefer :) to 🙂. |
| Median top-level ratio | 0.41 | ~60% of activity is replies, not posts. Most users react, not initiate. |
| Median edit rate | 1.4% | Most comments aren't edited. Pre-emptive editing is alien. |
| Median user account age | ~6 years | Real Reddit accounts have history. New accounts need warming. |
This repo ships as a self-hosted Claude Code plugin marketplace. Add it once and the skill installs cleanly into Claude Code, with version bumps surfaced automatically.
In a Claude Code session, run:
/plugin marketplace add JonathanRosado/reddit-usage-pattern
/plugin install reddit-usage-pattern@reddit-usage-pattern
Restart Claude Code (or just start a new session) and the skill appears in the available-skills list as reddit-usage-pattern. Trigger it by asking Claude to write a Reddit comment, draft a reply, or plan account activity.
To uninstall: /plugin uninstall reddit-usage-pattern@reddit-usage-pattern
git clone https://github.com/JonathanRosado/reddit-usage-pattern.git
cd reddit-usage-pattern
bash scripts/install.shThe installer copies .claude/skills/reddit-usage-pattern/ into ~/.claude/skills/. Plain-files install, no marketplace dependency.
mkdir -p ~/.claude/skills/reddit-usage-pattern
cp -r .claude/skills/reddit-usage-pattern/* ~/.claude/skills/reddit-usage-pattern/After install, in a Claude Code session, the skill should appear as reddit-usage-pattern in the available-skills list. Trigger it by asking Claude to write a Reddit comment, draft a reply, or plan account activity.
.
├── README.md # this file
├── LICENSE # MIT
├── .claude-plugin/
│ ├── plugin.json # Claude Code plugin manifest
│ └── marketplace.json # self-hosted marketplace manifest
├── .claude/skills/reddit-usage-pattern/
│ ├── SKILL.md # the skill itself (~26 sections, ~6k words)
│ └── references/
│ ├── corpus-findings.md # full statistical breakdown of the corpus
│ ├── corpus-stats.json # raw aggregate stats (machine-readable)
│ ├── sample-comments.jsonl # 50 hand-curated real comments tagged by score/tone
│ └── corpus-comments-full.jsonl # 7,322 sampled comments (full reference set)
└── scripts/install.sh # one-shot installer into ~/.claude/skills/ (Option B)
In short: 10 codex teammates each pulled ~100 users from one cs/career/dev subreddit using Reddit's public OAuth API. For each user, ~500 most-recent comments and ~500 most-recent submissions were pulled, 30+ linguistic and behavioral features were extracted, and representative comments were sampled. A final aggregation pass produced the corpus stats.
Full step-by-step methodology, including scaling notes for 100k users: see RUNBOOK.md.
The helper scripts that do the work live in the parent operator project (scout_helper.py, profile_user.py, profile_batch.py, aggregate_corpus.py). RUNBOOK.md documents how to run them and what to change at larger scale.
- Not a posting agent. This skill doesn't post to Reddit. It tells the LLM how to behave once it has access to posting tools.
- Not anti-detection at the infra level. Proxy IPs, browser fingerprints, OAuth token hygiene, etc. are handled by your runtime tooling, not by this skill. This skill only governs behavioral signals.
- Not a Reddit API client. No bearer tokens, no HTTP calls in the skill itself.
stop-slop— generic anti-AI-tell layer; pair with this skill for compounding effect.social-content— for Twitter/X, LinkedIn, etc. Different platform, different register.
MIT. See LICENSE.
This skill is calibrated from a specific (cs/career/dev-leaning) slice of Reddit. The percentile claims hold for that population; they may need recalibration for other regions of Reddit. If you re-profile users from a different slice (e.g. r/AskReddit, r/news, niche subs), PRs that add a references/corpus-findings-<slice>.md with parallel stats are welcome.