~75 PRs merged since v3.2.0 plus 7 community fixes salvaged via PR triage. Highlights: - Install everywhere: npx skills add is canonical for Claude Code, Codex, Cursor, Gemini CLI, Copilot, Windsurf, and 50+ Agent Skills hosts. - New emit mode: --emit=html for shareable HTML briefs. - New source: Digg (auto-enabled when digg-pp-cli on PATH). - New env vars: EXCLUDE_SOURCES, LAST30DAYS_YOUTUBE_SSH_HOST. - New credential source: macOS Keychain. - Reliability sweep: Reddit (4xx + URL prefix + multi-key auth), xAI error surfacing, Windows compatibility, YouTube/HN unblock, HTTP retries, planner gating, render fixes. - Multi-harness reframe: AGENTS.md becomes canonical, CLAUDE.md points at it. SKILL_ROOT → SKILL_DIR substitution. Breaking: - .codex-plugin/plugin.json removed. Codex installs via npx skills add.
5.0 KiB
v3.3.0 — install everywhere, ship the reliability sweep
The AI world reinvents itself every month. This skill keeps you current.
/last30days researches your topic across Reddit, X, YouTube, TikTok, Instagram, Hacker News, Polymarket, GitHub, Digg, and 5+ more sources from the last 30 days, finds what the community is actually upvoting, sharing, betting on, and saying on camera, and writes you a grounded narrative with real citations.
What's new in v3.3.0
Install everywhere with one command
npx skills add mvanhorn/last30days-skill -g -y is now the canonical install path for every harness — Claude Code, OpenAI Codex CLI, Cursor, Gemini CLI, GitHub Copilot, Windsurf, and 50+ other Agent Skills hosts. The skill auto-detects each harness's skills directory and symlinks in place, so edits propagate live. No more per-harness manual paths in the README.
New emit mode: --emit=html
Shareable, print-friendly HTML briefs. Drop the file in Slack, mail it to a stakeholder, or print it for the meeting. Same data as compact mode, structured for human reading.
New source: Digg
Digg surfaces curated story clusters from the AI 1000 leaderboard and pulls attributable X-post quotes directly into the brief. Auto-enabled when digg-pp-cli is on PATH. Footer line: ⛏️ Digg: N clusters │ K posts │ M authors. No X auth required for the inline quotes.
YouTube residential-IP routing (LAST30DAYS_YOUTUBE_SSH_HOST)
Running on a datacenter VPS (Hetzner, DigitalOcean, AWS, etc.)? YouTube's bot-wall fingerprints datacenter IP ranges before any cookie check. Set LAST30DAYS_YOUTUBE_SSH_HOST=<ssh-alias> and yt-dlp runs over SSH against a residential-IP host instead. One env var, no proxy service required.
macOS Keychain credential source
When env vars and config files aren't set, the engine now reads credentials from the macOS Keychain. Stores secrets where macOS expects them; nothing on disk in plaintext.
EXCLUDE_SOURCES env var
The inverse of INCLUDE_SOURCES. Useful for "everything except TikTok" or "everything except the slow ones."
Reliability sweep
This release closes a long tail of platform-specific issues that have been accumulating:
- Reddit: subreddits starting with
rno longer get mangled bylstrip("r/"). Browser-like headers + gzip handling fix urllib 403s on the public JSON endpoint. HTTP 402 now triggers the OpenAI/public-JSON fallback chain when ScrapeCreators credits are exhausted. - xAI: empty or malformed responses now surface in
errors_by_sourceinstead of silently returning zero results. - Windows: process cleanup no longer crashes on
os.killpg. POSIX-style secret-permission warnings skipped. Save-path footer uses forward slashes. - Auth: comma-separated
SCRAPECREATORS_API_KEY=key1,key2rotation restored (accidentally dropped in v3.0.6). - YouTube + HN: SC YouTube + multi-token HN searches unblocked. Transcript-fetch ratio surfaced.
- HTTP: retry budget expanded with exponential backoff on DNS failure. Parallel AI search aligned with current API schema.
- OpenClaw: now works without a ScrapeCreators key. Poll-timing initialized once.
Multi-harness reframe
AGENTS.md is now the canonical project doc; CLAUDE.md points at it. The skill is positioned as a multi-harness Agent Skills package, not a Claude-Code-specific tool. SKILL.md's path resolution rewrote SKILL_ROOT → SKILL_DIR, removing ~80 lines of bash and fixing a real spec-vs-engine divergence bug.
Breaking change
.codex-plugin/plugin.json removed. Codex native-plugin users should install via npx skills add mvanhorn/last30days-skill or copy the skill to ~/.codex/skills/last30days/. The npx skills add path now reaches every harness uniformly.
Install
Any harness (recommended):
npx skills add mvanhorn/last30days-skill -g -y
Claude Code marketplace:
/plugin marketplace add mvanhorn/last30days-skill
OpenClaw:
clawhub install last30days-official
Zero config. Reddit, Hacker News, Polymarket, and GitHub work immediately. Run it once and the setup wizard unlocks X, YouTube, TikTok, and more in 30 seconds.
Contributors
First-time contributors whose fixes shipped in v3.3.0 (most via PR triage salvage — the fix re-applied directly to main with co-author credit when path migration made the original branch un-rebaseable):
- Dave Morin — portable test-harness paths
- Alex Key —
removeprefix("r/")for subreddit names - Eric Oberhofer — multi-key rotation restored
- gujishh — Windows process cleanup
- Franco Carballar — Reddit browser-like headers
- Jonathan Oppenheim — Reddit 402 fallback chain
- Kaustav Mishra — xAI error surfacing
- @thinkun — OpenClaw ScrapeCreators-key-optional fix
Plus every contributor who shipped one of the ~75 PRs merged this cycle. See CHANGELOG.md under [3.3.0] for the full PR list and git log v3.2.0..v3.3.0 for the complete commit graph.
30 days of research. 30 seconds of work. Thirteen sources. Zero stale prompts.