last30days
The research engine that searches where Google can not.
last30days is the most complete agent research skill available today. It searches 15+ platforms in parallel, scores results by real engagement metrics, and produces grounded briefs with inline citations. The 1700-line SKILL.md and 1552 passing tests show serious engineering. The main friction is Python 3.12+ and a SKILL.md so detailed it can overwhelm the hosting model on first read.
$/plugin marketplace add mvanhorn/last30days-skill
$npx skills add mvanhorn/last30days-skill -g
$clawhub install last30days-official
install if
- Agent users who research topics regularly. Anyone running Claude Code, Codex, Cursor, or Hermes who needs current social sentiment, community discussions, or market signals. The multi-source aggregation is unique in the skill ecosystem.
- Content creators and analysts. People who need to know what Reddit, X, and YouTube are saying about a topic right now, scored by engagement rather than SEO.
- Developers preparing for meetings. Person-mode (GitHub user resolution, X handle lookup, subreddit targeting) produces pre-meeting briefs that LinkedIn profiles cannot match.
skip if
- Users on systems without Python 3.12+. The hard requirement blocks older macOS, many Linux distros, and Windows without manual install.
- Users who only need web search. If a single Brave or Google search covers the use case, the 15-source parallel engine is overkill.
- Privacy-sensitive environments. The engine extracts browser cookies for X/Twitter authentication and stores API keys in .env files. Air-gapped environments will not work.
What It Does
last30days is an AI agent skill that researches any topic across 15+ platforms (Reddit, X/Twitter, YouTube, TikTok, Instagram, Hacker News, Polymarket, GitHub, Digg, Bluesky, Threads, Pinterest, Perplexity, and general web) within a configurable time window, scores results by real engagement metrics (upvotes, likes, view counts, prediction market odds), and synthesizes findings into a structured brief with inline citations. The skill installs as a slash command (/last30days ) across Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, Hermes, and 50+ other agent hosts via the Agent Skills CLI.
The Good
Deep multi-source aggregation. The engine searches 15+ platforms in parallel, merges duplicate stories across sources (cluster merging), and scores by what people actually engaged with rather than SEO ranking. Reddit threads get upvote counts. Polymarket odds are expressed as percentages backed by real money. YouTube transcripts are extracted for quotable moments, not just titles.
Serious test coverage. 1552 tests pass (87 test files), covering everything from env parsing and query planning to entity extraction, relevance scoring, and rendering. This is not a weekend project. The test suite alone is more code than most agent skills have in total.
Multi-harness install story. The README provides first-class install paths for Claude Code (marketplace plugin), Codex/Cursor/Copilot/Gemini CLI (npx skills CLI), OpenClaw (clawhub), claude.ai web (.skill file upload), Hermes (hermes skills install), and manual symlinks. Each harness gets the same slash command and the same engine.
Zero-config free tier. Reddit (with comments), Hacker News, Polymarket, and GitHub all work without any API key or configuration. The first run triggers a setup wizard that detects available browsers for X/Twitter cookies and optional API keys for premium sources.
Progressive source unlocking. X/Twitter works via browser cookies (free) or xAI API key. YouTube needs yt-dlp (free). TikTok, Instagram, and Threads need a ScrapeCreators key (100 free credits). Perplexity needs OpenRouter. Each source is optional and the engine degrades gracefully when unavailable.
Vendored dependencies done right. The Bird search client for X is vendored inside lib/vendor/bird-search/ with its own package.json, LICENSE, and attribution. No npm install step required. The lib/__init__.py is a bare comment, no eager imports.
Detailed operational documentation. CONFIGURATION.md covers every env var, every CLI flag, per-client patterns, trend monitoring (SQLite store + watchlist + briefings), the beta channel, and per-source key requirements. CONCEPTS.md defines domain vocabulary. HERMES_SETUP.md covers the Hermes install path specifically.
HTML brief output. --emit=html produces a self-contained, dark-mode, print-friendly HTML file with inline CSS, system-font fallbacks, and no JavaScript. Drop it in Slack, email, or Notion. No raw markdown leaks.
The Bad
SKILL.md is 1709 lines. The voice contract section alone (LAWs 1 through 8, plus worked examples and observed failure modes) runs hundreds of lines. The pre-flight checklist, query quality pre-flight, and handle resolution steps are thorough but create a real risk that the hosting model reads the first 500 lines and improvises the rest. The author acknowledges this problem explicitly in the SKILL.md (the v3.0.6 0/8 regression was caused by models not reading far enough). The three structural anchors (mandatory badge, SKILL_DIR substitution, preface warning) are the fix, but the file length remains a fragility point.
Python 3.12+ requirement. The engine requires Python 3.12 or later. macOS ships Python 3.9.6 by default. Users need brew install python@3.12 or equivalent before the skill works. The error message is clear ("last30days v3 requires Python 3.12+"), but it adds a setup step that not every agent host handles automatically.
Node.js dependency for X search. The vendored Bird client requires Node.js >=22. This is a second runtime dependency beyond Python. Users who only have Python still get Reddit, HN, Polymarket, and GitHub, but X search is the second most valuable source and it needs Node.
API key sprawl for full functionality. Free tier covers 4 sources. Full functionality needs AUTH_TOKEN/CT0 (X browser cookies), yt-dlp (YouTube), SCRAPECREATORS_API_KEY (TikTok/Instagram/Threads), BSKY_HANDLE/BSKY_APP_PASSWORD (Bluesky), BRAVE_API_KEY (web search), and optionally OPENROUTER_API_KEY (Perplexity) and XAI_API_KEY (X alternative). That is 7+ credentials for the complete experience.
The test count in the README is stale. The README says "1,012 tests" but the actual suite has 1552 passing. Minor, but it signals the marketing copy is not keeping up with the code.
Smoke Test Results
Tested on macOS 26.4.1 (aarch64) with Python 3.12 (via Homebrew). No sandbox used.
Run A: Engine help and diagnose
$ python3.12 skills/last30days/scripts/last30days.py --help
usage: last30days.py [-h] [--emit {compact,json,context,md,html}]
[--search SEARCH] [--quick] [--deep] [--debug] [--mock]
...
✅ PASS: Engine loads, help text complete, all flags documented.
$ python3.12 skills/last30days/scripts/last30days.py --diagnose
{
"available_sources": ["reddit", "hackernews", "polymarket", "github"],
"bird_authenticated": false,
"has_scrapecreators": false,
"providers": {"openai": false, "xai": false}
}
✅ PASS: Diagnose runs, correctly reports 4 free sources available, no paid keys present.
Run B: Mock research run
$ python3.12 skills/last30days/scripts/last30days.py "test query" --emit=compact --mock
🌐 last30days v3.3.0 · synced 2026-05-21
# last30days v3.3.0: test query
...
✓ Research complete (0.0s) - Reddit: 1 thread, X: 1 post, HN: 0 stories,
Polymarket: 0 markets, Web: 1 result, Digg: 2 clusters, Github: 0 results
✅ PASS: Mock mode produces structured output with badge, evidence blocks, and footer.
Run C: Test suite
$ python3.12 -m pytest tests/ -q --tb=short
1552 passed, 4 skipped, 2 subtests passed in 31.54s
✅ PASS: Full test suite green.
What the runs tell you
The engine installs and runs cleanly on Python 3.12 with zero additional pip dependencies (the project has no runtime dependencies in pyproject.toml). All 1552 tests pass. The mock mode produces well-structured output with the expected badge, evidence clusters, and footer. Live functionality could not be verified without API keys, but the free-tier source detection (Reddit, HN, Polymarket, GitHub) is confirmed working via --diagnose.
Setup Walkthrough
- Install Python 3.12+ if not present:
brew install python@3.12 - For Claude Code:
/plugin marketplace add mvanhorn/last30days-skillthen/plugin install last30days - For other harnesses:
npx skills add mvanhorn/last30days-skill -g - Run
/last30days test topiconce. The setup wizard detects browsers and available tools. - Free sources (Reddit, HN, Polymarket, GitHub) work immediately. Optional: add X cookies, yt-dlp, or API keys via the wizard.
The zero-config free tier is the strongest setup story. Four sources work with no keys, no config files, and no browser integration. Users get value on the first run before deciding whether to unlock more.
Alternatives
- perplexity-ask MCP server -- single-source web search with citations. Simpler setup (one API key), but no Reddit comments, no X posts, no Polymarket odds, no YouTube transcripts.
- tavily-search MCP server -- web search optimized for AI agents. Fast and cheap, but web-only. No social platform depth.
- Manual multi-tab research -- what last30days replaces. Open Reddit, X, YouTube in 10 tabs, read for 90 minutes. The skill does in 3 minutes what takes 90 manually, but the manual approach needs zero setup.
Reviews stay honest because nobody pays us to publish them. If this one saved you time, throw a coin.
Tip the reviewer- reviewed by
- GearScope
- tested
- 2026-05-21 · macOS (Apple Silicon)
- last verified
- 2026-05-21
- depth
- HANDS-ON
- sponsorship
- none, ever
Want the next one?
Five honest reviews and a verdict you can trust. Every Friday. No spam, no affiliate links.