Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
mvanhorn avatar

Last30days

  • 26.4k installs
  • 54.2k repo stars
  • Updated July 26, 2026
  • mvanhorn/last30days-skill

last30days is an agent research skill that pulls real-time sentiment, trends, and discussions from Reddit, X, YouTube, and the open web for developers who need current-topic intelligence within the past 30 days.

About

A research skill that searches 20+ sources (Reddit, X, YouTube, TikTok, Hacker News, Polymarket, GitHub, arXiv, Techmeme) in parallel and synthesizes findings into a single brief scored by real engagement. Works with Claude Code, Codex, Cursor, Copilot, Gemini CLI, and 50+ AI agent platforms. Zero configuration for Reddit, HN, Polymarket, and GitHub.

  • AI-agent-led search scored by engagement - Reddit upvotes, X likes, TikTok views, Polymarket odds
  • Searches 20+ platforms in parallel - Reddit, HN, X, YouTube, TikTok, arXiv, Techmeme, LinkedIn, GitHub
  • Synthesized briefs with citations grounded in real engagement over last 30 days

Last30days by the numbers

  • 26,365 all-time installs (skills.sh)
  • +2,055 installs in the week ending Jul 28, 2026 (Skillselion tracking)
  • Ranked #47 of 3,301 Productivity & Planning skills by installs in the Skillselion catalog
  • Security screen: HIGH risk (skills.sh audit)
  • Data as of Jul 28, 2026 (Skillselion catalog sync)
npx skills add https://github.com/mvanhorn/last30days-skill --skill last30days

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs26.4k
repo stars54.2k
Security audit0 / 3 scanners passed
Last updatedJuly 26, 2026
Repositorymvanhorn/last30days-skill

How do you research developer sentiment from the last 30 days?

A research skill that searches 20+ sources (Reddit, X, YouTube, TikTok, Hacker News, Polymarket, GitHub, arXiv, Techmeme) in parallel and synthesizes findings into a single brief scored by real engag

Who is it for?

Developers evaluating frameworks, APIs, or developer-community trends who need multi-source signals newer than static documentation.

Skip if: Deep academic literature reviews, historical analysis beyond 30 days, or teams blocked from external network access.

When should I use this skill?

A developer asks what people are saying about a technology lately, wants last-30-day Reddit/X/YouTube research, or requests a shareable HTML research brief.

What you get

Synthesized expert-style research answers, copy-paste prompts, and optional shareable HTML briefs covering the past 30 days.

  • Synthesized research summary
  • Copy-paste prompts
  • Optional shareable HTML brief

Files

SKILL.mdMarkdownGitHub ↗

interface: display_name: "Last 30 Days" short_description: "Research any topic across Reddit, X, YouTube, and the web from the last 30 days. Returns synthesized expert answers and copy-paste prompts." default_prompt: "Research this topic from the last 30 days across Reddit, X, YouTube, and web. Synthesize what people are actually saying, upvoting, and sharing right now." brand_color: "#FF6B35"

policy: allow_implicit_invocation: true

Save shareable HTML brief

This reference file is loaded by the main SKILL.md when the user asked for an HTML brief (either explicitly via --emit=html / --emit:html / --html, or in natural language - "give me a shareable HTML brief", "for Slack", "for Notion", "export as HTML", etc.). The detection happens in SKILL.md so that the common no-HTML path stays short; the implementation lives here.

The contract: the synthesis still appears in chat as the primary output. The HTML is an additional artifact saved to disk for sharing. Both happen in the same turn.

When to fire this flow

  • After you have already emitted the full chat response: badge, "What I learned:" (or comparison title), bold-lead-in paragraphs with citations, KEY PATTERNS list, engine footer pass-through, invitation block.
  • BEFORE the WAIT FOR USER'S RESPONSE pause.
  • ONLY if the user asked. Do NOT save HTML when the user didn't ask for it.

How to fire it

# 1. Write your synthesis prose VERBATIM to a temp file. The synthesis is the
#    "What I learned:" prose label, the bold-lead-in paragraphs with their
#    inline citations as you wrote them in chat, and the "KEY PATTERNS from
#    the research:" numbered list. Do NOT include the badge or the engine
#    footer in the temp file - the engine adds those when it renders the HTML.
#    Use the EXACT text you just wrote in chat. Do not paraphrase, do not
#    summarize, do not reorder. The HTML must read identically to the chat
#    response in voice and citations.
SYNTHESIS_FILE="/tmp/last30days-synthesis-${CLAUDE_SESSION_ID}.md"
cat > "$SYNTHESIS_FILE" <<'SYNTHESIS_EOF'
What I learned:

**{First headline}** - {body with [name](url) inline citations}

**{Second headline}** - {body}

**{Third headline}** - {body}

KEY PATTERNS from the research:
1. {pattern} - per [@handle](url)
2. {pattern} - per [r/sub](url)
3. {pattern} - per [@handle](url)
SYNTHESIS_EOF

# 2. Convert the synthesis to a self-contained HTML file via the engine.
#    The engine reuses the cache from your earlier engine run (same topic
#    + plan), so this second invocation is typically <1s on cache hit.
SLUG=$(echo "$TOPIC" | tr '[:upper:]' '[:lower:]' | tr -cs 'a-z0-9' '-' | sed 's/^-//;s/-$//')
HTML_PATH="${LAST30DAYS_MEMORY_DIR}/${SLUG}-brief.html"
"${LAST30DAYS_PYTHON}" "${SKILL_ROOT}/scripts/last30days.py" "${TOPIC}" \
  --emit=html \
  --synthesis-file "$SYNTHESIS_FILE" \
  > "$HTML_PATH"

# 3. Append ONE line to your already-emitted chat response, after the
#    invitation block. Use a paperclip emoji as a visible signal that an
#    artifact was produced:
echo "📎 Shareable brief saved to $HTML_PATH"

What ends up in the HTML file

The engine's --emit=html renderer combines:

  • The badge (🌐 last30days vX.Y.Z · synced YYYY-MM-DD) at the top
  • A single inline metadata line ({date range} · {active sources}) below the badge
  • Your synthesis verbatim, with prose labels promoted to <h2> and bold lead-ins preserved
  • All [name](url) citations rendered as <a> tags
  • The engine footer (✅ All agents reported back! tree) preserved verbatim in monospace
  • A colophon with the topic and a re-run hint

The renderer strips engine-internal noise that doesn't belong in a shareable artifact: the # last30days vX.Y.Z: TOPIC debug file header, the model-facing > Safety note: blockquote, and the I'm now an expert on X invitation block. Data quality warnings (degraded run, thin evidence, etc.) stay in the engine's stderr logs - they never leak into the share-ready f

Related skills

How it compares

Choose last30days over generic web search skills when you need cross-platform developer chatter from exactly the past 30 days with optional HTML export.

FAQ

Which sources does last30days cover?

last30days researches Reddit, X, YouTube, and the open web from the last 30 days. The interface short_description promises synthesized expert answers and copy-paste prompts from those live channels.

How do you get an HTML brief from last30days?

last30days emits a shareable HTML brief when invoked with --emit=html, --emit:html, --html, or natural-language phrasing like give me a shareable HTML brief for the research output.

Is Last30days safe to install?

skills.sh reports 0 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.