RepoDaily · 2026-07-08 · Infrastructure / Runtime

last30days-skill: An AI agent research skill that treats upvotes, likes, and prediction-market odds as a ranking signal

#9 Infrastructure / Runtime Python +684 mvanhorn/last30days-skill Open repository

A Python-based agent skill that fans out across Reddit, X, YouTube, HN, Polymarket, and the web, then synthesizes one grounded brief. MIT-licensed, Claude Code first, Codex/Cursor/Gemini CLI compatible via npx.

Repo typeInfrastructure / Runtime
Best forOperators who need a 30-day pulse check across walled-garden platforms before a meeting, sales call, or build decision, and who already run Claude Code or another Agent Skills-compatible host.
Risk levelMedium — relies on third-party API keys and browser sessions for several sources; coverage floor is pinned but project is single-author and very active.
Time to evaluateUnder 5 minutes for zero-config sources (Reddit, HN, Polymarket, GitHub); roughly 30 seconds of wizard time to unlock X, YouTube, and TikTok.

Primary question: Does your decision actually need cross-platform signal that no single search engine can surface, and can you supply the required keys?

91/100

RepoDaily adoption score

RepoDaily rates this as 91/100 (strong) for adoption: evidence, installation path, production risk, differentiation, license clarity, and AI/agent fit are scored from the article sources and adoption notes.

Directional score from RepoDaily sources and adoption notes, not a benchmark.Risk: Medium
100Evidence quality

4 source(s) across 4 source category/categories, plus a RepoDaily-specific evidence module when available.

100Installability

6 workflow step(s), 5 next-action step(s), and 4 command/install signal(s) were detected.

65Maintenance confidence

Trending momentum is +684 stars, with maintenance/release/issue signals counted when present.

93Production readiness

Risk is marked medium, with 5 security note(s) and 4 explicit skip condition(s).

100Differentiation

3 opportunity lens item(s), 4 alternative(s), and 4 type-specific section(s) support differentiation.

82License clarity

License source or license wording is present.

90Agent / AI fit

7 AI/agent-related signal(s) were detected in the article text and metadata.

Project overview

last30days-skill is an AI agent skill written in Python that positions itself as a search engine "scored by upvotes, likes, and real money — not editors." Install it as a Claude Code plugin or via `npx skills add`, type a query like `/last30days Peter Steinberger`, and the skill dispatches parallel searches across Reddit, X, YouTube, HN, Polymarket, and the open web. An agent judge then synthesizes everything into one brief grounded in what real audiences actually engaged with.

The project's pitch is structural rather than algorithmic: each platform is a walled garden with its own API and auth, and no single AI host has native access to all of them. ChatGPT has Reddit but not X or TikTok; Gemini has YouTube but not Reddit; Claude has none natively. last30days bridges them by asking the user to bring their own keys and browser sessions, then normalizes the results under a shared engagement score.

The repository is MIT-licensed, pinned at version 3.11.1 in pyproject.toml, and requires Python >=3.12. Dependencies are declared as an empty list at runtime, which is notable for an infrastructure skill: the heavy lifting happens through the host agent plus external CLIs and API endpoints rather than vendored Python packages. Test coverage is enforced with a branch-aware coverage gate at 84%, measured on 2026-07-03 and intended to rise over time.

Development velocity is high. The changelog shows three minor/patch releases in four days around 2026-07-04 to 2026-07-05: v3.11.0 introduced the `last30days doctor` unified health command, v3.10.0 brought Instagram comments and round-robin comment selection, and v3.9.4 continued first-run wizard fixes. The trend date of 2026-07-08 lands right after this burst, consistent with a repo that hit GitHub Trending #1 Repository of the Day.

Problem it solves

  • General-purpose web search does not surface Reddit comment threads, X posts, YouTube transcripts, or TikTok engagement in one ranked view.
  • Each AI assistant has partial platform coverage by design: ChatGPT–Reddit, Gemini–YouTube, Claude–none natively, so cross-platform questions require manual copy-paste research.
  • Editors and SEO-optimized pages dominate Google results, while community signal (upvotes, likes, real-money prediction odds) is scattered and time-windowed.
  • Prediction-market odds on Polymarket encode money-backed forecasts that search engines cannot rank against social posts.
  • First-run setup across a dozen platforms is normally a token-and-auth nightmare that stops users before the first query.

How it works

  1. Install the skill on Claude Code with `/plugin marketplace add mvanhorn/last30days-skill` then `/plugin install last30days`, or run `npx skills add mvanhorn/last30days-skill -g` on any of the 50+ Agent Skills hosts.
  2. Issue a single query such as `/last30days Peter Steinberger`. The skill fans out parallel searches across every configured source.
  3. Reddit, HN, Polymarket, and GitHub work immediately with zero configuration; the first-run setup wizard unlocks X, YouTube, TikTok, and more in roughly 30 seconds.
  4. Each source contributes its native engagement signal: Reddit upvotes, X likes, YouTube transcripts, TikTok engagement, and Polymarket odds backed by real money.
  5. The agent judge normalizes and scores the results against each other, then synthesizes one grounded brief with cited engagement metrics.
  6. Run `last30days doctor` to get a grouped health report and copy-pasteable fix prescriptions for any source whose probe fails.

Architecture read: runtime skill, not a standalone daemon

last30days-skill is shipped as an Agent Skills package, not as a server. The source of truth for runtime behavior is `skills/last30days/SKILL.md`, which the README names explicitly. Two install paths exist: Claude Code marketplace (`/plugin marketplace add` then `/plugin install last30days`) for auto-updating installs, and `npx skills add mvanhorn/last30days-skill -g` for Codex, Cursor, Copilot, Gemini CLI, and 50+ hosts listed on agentskills.io. The `-g` flag scopes the install globally per user; dropping it scopes per project.

The runtime Python package itself declares zero runtime dependencies in pyproject.toml (`dependencies = []`) and requires Python >=3.12. External CLIs such as yt-dlp, Digg, arXiv, and Techmeme are named explicitly in the changelog as part of the first-run wizard's cookie-consent and key-offer copy, which means the skill orchestrates out-of-process tools rather than reimplementing their scrapers. Dev dependencies are limited to pytest 9.x and pytest-cov 7.x.

Command surface: what `/last30days` and `last30days doctor` expose

  • `/last30days <topic>` — the primary query entry point used in the README example `/last30days Peter Steinberger`.
  • `last30days doctor` — unified health command added in v3.11.0 (PR #753). Aggregates every source's probe state into one grouped report and replaces the older `--diagnose`, `--preflight`, `lib/health.py`, and post-run nudges.
  • `INCLUDE_SOURCES` — the configuration token that gates which sources run, e.g. `INCLUDE_SOURCES=tiktok,instagram,youtube_comments,tiktok_comments,instagram_comments` for the v3.10.0 Recommended comments tier.
  • `SCRAPECREATORS_API_KEY` — the key required for Instagram comment enrichment via `GET /v2/instagram/post/comments` ranked by `comment_like_count`.
  • First-run wizard — names every installed CLI (yt-dlp, Digg, arXiv, Techmeme), auto-copies the GitHub device code to the clipboard, and folds the welcome pitch directly into the setup modal rather than a separate `--welcome` message.

Try-it path: from install to first grounded brief

On Claude Code, two slash commands get you to a first query: `/plugin marketplace add mvanhorn/last30days-skill` and `/plugin install last30days`. Zero-config sources — Reddit, HN, Polymarket, GitHub — work on the first run, so you can immediately try `/last30days <topic>` and get a cross-platform brief.

To unlock X, YouTube, and TikTok, accept the first-run wizard's prompts. The wizard names every CLI it installs (yt-dlp, Digg, arXiv, Techmeme) and describes what each key actually buys; for example, the ScrapeCreators key is framed as "auto Reddit enrichment + YouTube search backstop," not a vague upgrade. The GitHub device code is auto-copied to the clipboard, removing one common failure step.

After a run, check the `## Stats` engagement summary and the emoji-tree footer. The v3.10.0 changelog notes that LinkedIn items were previously counted in Stats but silently dropped from the footer because `_FOOTER_SOURCES`, `ENGAGEMENT_DISPLAY`, and `SOURCE_LABELS` all omitted the source — a concrete reminder to sanity-check counts against the rendered footer.

Maintenance risk: single-author repo with a coverage gate

The project is authored by Matt Van Horn under the MIT License (Copyright 2026). Three releases landed between 2026-07-04 and 2026-07-05, each closing named PRs (#750, #751, #752, #753, #758), which is encouraging for responsiveness but also means the surface is shifting quickly.

pyproject.toml pins a branch-aware coverage gate at 84% (`fail_under = 84`), measured on 2026-07-03 on `skills/last30days/scripts` plus tests. The README badge claims coverage >=60%, which is lower than the actual gate — a sign the badge is conservative rather than aspirational. The gate explicitly excludes vendored code under `skills/last30days/scripts/lib/vendor/*` and `dist/*`.

The skill depends on external CLIs and APIs that it does not control. PR #752 fixed Techmeme results that were stamping every record with today's date, and PR #758 fixed LinkedIn being silently dropped from the footer. These are exactly the classes of upstream breakage that a single maintainer has to keep absorbing.

Who should pay attention?

Good fit if

  • You already run Claude Code, Codex, Cursor, Copilot, or Gemini CLI and want a single `/last30days` entry point for cross-platform research.
  • Your decisions benefit from community signal (Reddit upvotes, X likes, YouTube transcripts) that Google and any single AI host cannot rank together.
  • You are willing and able to supply third-party API keys and browser sessions for the walled-garden sources.
  • You need a pre-meeting or pre-build briefing on what a person, company, or topic has actually done in the last 30 days.

Skip for now if

  • You need a fully self-hosted, keyless, offline research stack — the value proposition requires external keys and sessions.
  • Your queries are strictly academic and covered by existing tools like arXiv search or Google Scholar.
  • You cannot run Python >=3.12 or an Agent Skills-compatible host.
  • You require enterprise-grade multi-tenancy, SSO, or audit logs, none of which the source pack documents.

Risks and cautions

Medium

The skill itself is MIT-licensed and quick to install, but it depends on fragile external APIs and browser sessions that a single maintainer must keep repairing.

  • Single-author repository absorbing upstream breakage: PR #752 fixed Techmeme date stamping and PR #758 fixed silent LinkedIn footer drops.
  • Value depends on third-party keys (e.g. `SCRAPECREATORS_API_KEY`) and browser sessions that can break or get rate-limited without notice.
  • Three releases in four days indicate an active but unstable surface; downstream integrations should pin to a specific version.
  • No documented enterprise features (SSO, audit, multi-tenancy) in the source pack.
  • License is MIT, Copyright (c) 2026 Matt Van Horn, per the LICENSE file — permissive for commercial and internal use.
  • Users must supply their own API keys and browser sessions for X, YouTube, TikTok, and ScrapeCreators-backed sources; key handling is therefore user-controlled, not vendor-controlled.
  • The first-run wizard auto-copies a GitHub device code to the clipboard, which is convenient but worth noting on shared machines.
  • Runtime Python dependencies are declared as an empty list, reducing the typical supply-chain attack surface from transitive pip packages.
  • Test coverage source is scoped to `skills/last30days/scripts` and `tests`, with vendored code under `lib/vendor/*` explicitly omitted from the gate.

Alternatives to compare

ApproachWhen to useTrade-off
Perplexity (commercial web search)
You want a hosted, zero-setup answer engine and do not need raw Reddit/X/TikTok engagement signals in one ranked view.Free tier; Pro subscription for advanced models.
Manual ChatGPT + Gemini + Claude stack
You only need partial platform coverage (ChatGPT–Reddit, Gemini–YouTube) and are willing to copy-paste between hosts.Included with existing AI assistant subscriptions.
Tavily / Exa / SerpAPI-style search APIs
You are building your own research pipeline and need a programmatic web search backend rather than an agent skill.Metered API pricing; varies by provider.
yt-dlp + hand-rolled scrapers
You want full control over each source and do not need the agent-side synthesis layer.Free; engineering time is the real cost.

What this trend reveals

Internal competitive-intelligence briefings

Run `/last30days <competitor>` before weekly standups to produce a brief that blends Reddit threads, X posts, YouTube transcripts, and Polymarket odds — signals no single dashboard ranks together.

Try it on three competitors for two weeks; compare briefing quality against your current manual research time.

Pre-meeting people research workflow

Use the README's Peter Steinberger example as a template: generate a 30-day snapshot of a person's X activity, podcast transcripts, and GitHub PRs before a sales call or interview.

Measure time saved versus a manual LinkedIn-and-Google pass across five meetings.

Product launch signal monitoring

After a launch, query `/last30days <your product>` to read community reactions across platforms weighted by upvotes and likes, not by editor placement.

Run it the week of a launch and check whether the brief surfaces threads your community team missed.

Best next action

Install on Claude Code and run one zero-config query

Get to a grounded brief in under five minutes using only the sources that need no keys.

  1. In Claude Code, run `/plugin marketplace add mvanhorn/last30days-skill`.
  2. Run `/plugin install last30days`.
  3. Try `/last30days <a person or topic you already know well>` so you can judge output quality.
  4. Read the `## Stats` block and the emoji-tree footer; confirm Reddit, HN, Polymarket, and GitHub sections rendered.
  5. Optionally run `last30days doctor` to confirm probe state before unlocking X, YouTube, and TikTok via the wizard.

RepoDaily verdict

last30days-skill is a sharp, MIT-licensed answer to a real gap: no single AI host ranks Reddit, X, YouTube, HN, Polymarket, and the open web together. Its value is entirely dependent on the keys and browser sessions you bring, and on a single maintainer's ability to keep upstream scrapers alive — but at two commands to install and a 30-second wizard to unlock paid sources, the cost of finding out is very low.

Sources