Skip to content
Skill

last30days

by mvanhorn

AI Summary

Research ANY topic across Reddit, X, YouTube, and other sources. Surface what people are actually discussing, recommending, betting on, and debating right now. To detect first run: check if exists. If it does NOT exist, this is a first run. Do NOT run any Bash commands or show any command output to

Install

Copy this and paste it into Claude Code, Cursor, or any AI assistant:

I want to install the "last30days" skill in my project.

Please run this command in my terminal:
# Install skill into your project
mkdir -p .claude/skills/last30days-skill && curl --retry 3 --retry-delay 2 --retry-all-errors -o .claude/skills/last30days-skill/SKILL.md "https://raw.githubusercontent.com/mvanhorn/last30days-skill/main/SKILL.md"

Then restart Claude Code (or reload the window in Cursor) so the skill is picked up.

Description

Multi-query social search with intelligent planning. Agent plans queries when possible, falls back to Gemini/OpenAI when not. Research any topic across Reddit, X, YouTube, TikTok, Instagram, Hacker News, Polymarket, and the web.

last30days v2.9.5: Research Any Topic from the Last 30 Days

> Permissions overview: Reads public web/platform data and optionally saves research briefings to ~/Documents/Last30Days/. X/Twitter search uses optional user-provided tokens (AUTH_TOKEN/CT0 env vars). Bluesky search uses optional app password (BSKY_HANDLE/BSKY_APP_PASSWORD env vars - create at bsky.app/settings/app-passwords). All credential usage and data writes are documented in the Security & Permissions section. Research ANY topic across Reddit, X, YouTube, and other sources. Surface what people are actually discussing, recommending, betting on, and debating right now.

Runtime Preflight

Before running any last30days.py command in this skill, resolve a Python 3.12+ interpreter once and keep it in LAST30DAYS_PYTHON: `bash for py in python3.14 python3.13 python3.12 python3; do command -v "$py" >/dev/null 2>&1 || continue "$py" -c 'import sys; raise SystemExit(0 if sys.version_info >= (3, 12) else 1)' || continue LAST30DAYS_PYTHON="$py" break done if [ -z "${LAST30DAYS_PYTHON:-}" ]; then echo "ERROR: last30days v3 requires Python 3.12+. Install python3.12 or python3.13 and rerun." >&2 exit 1 fi `

Step 0: First-Run Setup Wizard

CRITICAL: ALWAYS execute Step 0 BEFORE Step 1, even if the user provided a topic. If the user typed /last30days Mercer Island, you MUST check for FIRST_RUN and present the wizard BEFORE running research. The topic "Mercer Island" is preserved — research runs immediately after the wizard completes. Do NOT skip the wizard because a topic was provided. The wizard takes 10 seconds and only runs once ever. To detect first run: check if ~/.config/last30days/.env exists. If it does NOT exist, this is a first run. Do NOT run any Bash commands or show any command output to detect this — just check the file existence silently. If the file exists and contains SETUP_COMPLETE=true, skip this section silently and proceed to Step 1. Do NOT say "Setup is complete" or any other status message — just move on. The user doesn't need to be told setup is done every time they run the skill. When first run is detected, detect your platform first: If you do NOT have WebSearch capability (OpenClaw, Codex, raw CLI): Run the OpenClaw setup flow below. If you DO have WebSearch (Claude Code): Run the standard setup flow below. ---

OpenClaw / Non-WebSearch Setup Flow

Run environment detection first: `bash "${LAST30DAYS_PYTHON}" "${SKILL_ROOT}/scripts/last30days.py" setup --openclaw ` Read the JSON output. It tells you what's already configured. Display a status summary: ` 👋 Welcome to /last30days! Detected: {✅ or ❌} yt-dlp (YouTube search) {✅ or ❌} X/Twitter ({method} configured) {✅ or ❌} ScrapeCreators (TikTok, Instagram, Reddit backup) {✅ or ❌} Web search ({backend} configured) ` Then for each missing item, offer setup in priority order: • ScrapeCreators (if not configured): "ScrapeCreators adds TikTok and Instagram search (plus a Reddit backup if public Reddit gets rate-limited). 10,000 free calls, no credit card. (No referrals, no kickbacks - we don't get a cut.)" • Option A: "ScrapeCreators via GitHub (recommended)" -- Check if gh CLI was detected in the environment detection output above. If gh IS detected: description should say "Registers directly via GitHub CLI in ~2 seconds - no browser needed". Before running the command, display: "Registering via GitHub CLI..." If gh is NOT detected: description should say "Copies a one-time code to your clipboard and opens GitHub to authorize". Before running the command, display: "I'll copy a one-time code to your clipboard and open GitHub. When GitHub asks for a device code, just paste (Cmd+V / Ctrl+V)." Then run "${LAST30DAYS_PYTHON}" "${SKILL_ROOT}/scripts/last30days.py" setup --github, parse JSON output. Tries PAT first (if gh is installed), falls back to device flow which copies a one-time code to your clipboard and opens your browser. If status is success, write SCRAPECREATORS_API_KEY={api_key} to .env. • Option B: "I have a key" -- accept paste, write to .env • Option C: "Skip for now" • X/Twitter (if not configured): "X search finds tweets and conversations. To unlock X: add FROM_BROWSER=auto (reads browser cookies, free), XAI_API_KEY (no browser access, api.x.ai), or AUTH_TOKEN+CT0 (manual cookies)." • Option A: "I have an xAI API key" (recommended for servers -- persistent, no expiry). Write XAI_API_KEY to .env. • Option B: "I have AUTH_TOKEN + CT0 from my browser" -- accept both, write to .env • Option C: "Skip for now" • YouTube (if yt-dlp not found): "YouTube search needs yt-dlp. Run: pip install yt-dlp" • Web search (if no Brave/Exa/Serper key): "A web search key enables smarter results. Brave Search is free for 2,000 queries/month at brave.com/search/api" After setup, write SETUP_COMPLETE=true to .env and proceed to research. Skip to "END OF FIRST-RUN WIZARD" below after completing the OpenClaw flow. ---

Discussion

0/2000
Loading comments...

Health Signals

MaintenanceCommitted 22d ago
Active
Adoption1K+ stars on GitHub
20.6k ★ · Popular
DocsREADME + description
Well-documented

GitHub Signals

Stars20.6k
Forks1.7k
Issues89
Updated22d ago
View on GitHub
MIT License

My Fox Den

Community Rating

Sign in to rate this booster

Works With

Claude Code