last30days Claude skill

Research skill that searches Reddit, X, YouTube, Hacker News, Polymarket and more for the last 30 days, scores results by engagement, and writes a cited brief.

Our verdict Recommended

One of the most complete research skills here, with tests, evals and a doctor command; budget a little time to decide which sources and keys you are comfortable enabling.

What last30days does

last30days takes a topic or a person and runs a Python research engine across community and social sources for the past 30 days. Reddit, Hacker News, Polymarket and GitHub work without keys; X, YouTube, TikTok, Instagram, Bluesky, Truth Social, Telegram, Trustpilot, Amazon and others can be switched on through a setup wizard that asks for optional API keys or logged-in sessions. Results are ranked by engagement signals such as upvotes, likes and prediction-market odds, and the agent then synthesizes a grounded brief with sources. The skill also includes a doctor check that reports which sources are broken or unconfigured, and a preflight mode that shows what a run would read and write before it starts. This is a heavy skill: a 31 KB SKILL.md, about 15 reference files, 132 script files, tests and 18 eval files in the repo, with CI. Its contract says retrieved posts and pages are untrusted evidence, not instructions. Keys can live in a .env file or, on macOS, the Keychain. It needs Python 3.12 or newer and Node.

Good for

  • Briefing yourself on a person or company before a meeting
  • Finding what practitioners say about a tool or trend this month
  • Prompt and market research that needs community signal, not editorial articles

Not for

  • Evergreen reference research that older sources cover better
  • Setups where you cannot supply any API keys or install Python 3.12

What's inside depth 5/5

A 31 KB SKILL.md, about 15 reference files, 132 script files, tests, 18 eval files and CI in a 600-file repo.

Skills
1
Reference docs
15
Scripts
132
Tests / evals
20
Templates
5
Avg SKILL.md
30.9 KB

Counted from the repository file tree. How we score depth.

Dependencies and costs

  • Python 3.12+ and Node.js
  • Optional paid or account-based sources: ScrapeCreators, xAI, OpenAI, Brave, Perplexity, Apify, X bearer token or cookies
  • Bright Data credits for the opt-in Amazon source

How to run a last30days research pass

After you install the plugin or skill, a first run looks like this:

  1. Start with a topic that has no keys behind it. Reddit, Hacker News, Polymarket and GitHub answer right away, so you can check the engine before you configure anything.
  2. Let the setup wizard run on first use. It offers to install the free arXiv and Techmeme CLIs (arxiv-pp-cli, techmeme-pp-cli), and those sources switch on automatically once the CLIs are on PATH. It then asks for API keys. Every field is optional. If you skip all of them, the README says the engine drops to web-only mode.
  3. Run /last30days doctor style checks whenever a source goes quiet. The doctor reports which sources are broken or missing a key.
  4. Ask about a person, company, product or trend. The SKILL.md argument hints give the expected shape:
/last30days nvidia earnings reaction
/last30days AI video tools
/last30days what users want in react
/last30days Peter Steinberger

The skill contract treats this as a slash command backed by the installed Python engine. A plain web search summary doesn't count as a run. The agent should not substitute a WebSearch-only report or make up an engine path. If the brief reads like generic web results, the engine probably did not run.

Configuring sources, keys and output

Keys can go in a .env file. The setup wizard stores them in your OS keychain. On macOS you can also add or remove one by hand:

security add-generic-password -a "$USER" -s last30days-XAI_API_KEY -w "xai-..."
skills/last30days/scripts/setup-keychain.sh --delete XAI_API_KEY

Entries use the service name last30days-<KEY>. On Linux and Windows the keychain loader does nothing, so those platforms read keys from .env only.

Some sources are opt-in and stay off until you ask for them:

  • DripStack (financial newsletters, no key): --search dripstack for one run, or INCLUDE_SOURCES=dripstack in .env.
  • Xiaohongshu (RED): needs a logged-in x-mcp browser plugin or a xiaohongshu-mcp service, then --search xhs or INCLUDE_SOURCES=xiaohongshu.
  • Telegram: needs SCRAPECREATORS_API_KEY and a list of named channels. It reads public posts from those channels only and can't discover new ones by keyword.
  • Trustpilot: needs trustpilot-pp-cli on PATH and a usable session.
  • Amazon: needs an authenticated brightdata CLI and spends your Bright Data credits.
  • Truth Social: needs TRUTHSOCIAL_TOKEN.

There are several ways to reach X. X_BEARER_TOKEN uses the official X API, which returns about the last week of posts on the Basic tier unless your developer project has full-archive access. A signed-in grok CLI (installed with npm i -g @xai-official/grok, then grok login) needs no X account, no browser cookies and no XAI_API_KEY.

Research files go to LAST30DAYS_MEMORY_DIR, which defaults to ~/Documents/Last30Days/ (Windows: C:\Users\<you>\Documents\Last30Days\). Set that variable to save them somewhere else.

What people use it for, and where it falls short

The author built it to keep up with AI prompting, because Reddit and X threads were ahead of model training data. The README also lists other uses: checking a business before a sales call, reading someone's recent tweets and podcast transcripts before a meeting, finding closed rides and community opinion before a Disney World trip, and finding the problems people actually hit before building something.

A few limits are worth knowing in advance:

  • The official X API on the Basic tier covers about a week, not the full 30 days.
  • Telegram can't find channels for you. You have to name them.
  • The README says Windows support for one install bundle is deferred until per-platform manifest entry points are sorted out. Windows users should stick to the marketplace or npx skills install.
  • If you configure a reasoning provider (OPENAI_API_KEY, XAI_API_KEY, OPENROUTER_API_KEY or a Google/Gemini key), the engine sends your research topic and retrieved results to that provider for reranking. Leave those keys unset if a topic shouldn't leave your machine.

Security review

Broad access

This skill asks for more access than most, or sends data to another service. That is usually a design choice rather than bad intent, but you should know before you install it.

  • Sends your keys or tokens to a third-party serviceWhen SCRAPECREATORS_API_KEY is unset, get_tiktok_token falls back to APIFY_API_TOKEN and the TikTok client sends that Apify token to ScrapeCreators; SKILL.md's Security section documents this exception.skills/last30days/scripts/lib/env.py:1773
  • Pre-approves broad shell commandsFrontmatter allowed-tools lists unrestricted 'Bash' (plus Read, Write, AskUserQuestion, WebSearch), so the agent can run any shell command without a prompt.skills/last30days/SKILL.md:6

A research skill that queries Reddit, X, TikTok, YouTube, Hacker News, Polymarket and the web, with an optional setup path that reads your browser cookies for x.com after a consent prompt. It pre-approves unrestricted Bash, stores provider keys in a local .env, the macOS Keychain or pass, and documents that an Apify token is sent to ScrapeCreators when no ScrapeCreators key is set. The README says there is no tracking; most of the engine code and the vendored X client were not fully read.

Worth knowing

  • browser_session_optionalOnly after consent in the setup wizard (BROWSER_CONSENT, FROM_BROWSER or --allow-browser-cookies; refusal or no answer is not consent) the engine copies Firefox, Safari and Chromium cookie databases, gets the Chromium Safe Storage key from the macOS Keychain with 'security find-generic-password' and decrypts the x.com auth_token and ct0 cookies; chrome_cdp.py can read them from a live Chrome over remote debugging and agentcookie.py from an external agentcookie CLI.skills/last30days/scripts/lib/chrome_cookies.py:75
  • Installs with curl | shOffers the Grok CLI as an opt-in X backend installed with 'curl -fsSL https://x.ai/cli/install.sh | bash' (also in doctor and prescription hints).skills/last30days/references/setup-wizard.md:193
  • Needs an API key for its own serviceProvider keys (ScrapeCreators, OpenAI, xAI, Gemini, Perplexity, Brave, OpenRouter, X bearer, GitHub) are read from ~/.config/last30days/.env, environment, macOS Keychain or pass and sent to their own provider endpoints; the Gemini key is placed in the request URL for the evaluation script.skills/last30days/scripts/evaluate_search_quality.py:221
  • Makes network requestsSends your research topic to ScrapeCreators, Reddit, Hacker News, Polymarket, GitHub, X, xAI, Perplexity, Brave, Parallel (search.parallel.ai MCP) and other sources; an optional hosted mode posts to a server you set in LAST30DAYS_API_BASE; ht-ml.app publishing is explicit opt-in and public by default.skills/last30days/SKILL.md:233
  • Installs packages or toolsSetup installs yt-dlp via brew or pip and runs 'npx -y @mvanhorn/printing-press-library@0.1.16 install digg --cli-only' (pinned).skills/last30days/scripts/lib/setup_wizard.py:226
  • Changes files outside your projectWrites ~/.config/last30days/.env (mode 0600) with keys and consent markers, saves briefings to ~/Documents/Last30Days, keeps a local SQLite store in watchlist mode, and setup-keychain.sh/setup-pass.sh write secrets into the macOS Keychain or pass store.skills/last30days/scripts/lib/env.py:553
  • Relies on a CLI or package we could not reviewCalls yt-dlp, node, gh, pdftotext, openssl, the Grok CLI, brightdata and agentcookie binaries, and a vendored bird-search X client that is not in the files we have.skills/last30days/scripts/lib/health.py:146

What we checked

The repository (604 files) on Oct 29, 2026. Not a full review: 476 of 604 files were not downloaded (large repository; we reviewed the skill folders); we read 9 of 103 code files; it relies on code outside the repository: vendored X search client scripts/lib/vendor/bird-search (receives the X auth_token and ct0 cookies; excluded from the files we have); external CLIs the skill drives: yt-dlp, Grok CLI, agentcookie, Bright Data CLI, gh, digg-pp-cli from @mvanhorn/printing-press-library; hosted services reached by the engine (ScrapeCreators, search.parallel.ai, ht-ml.app and the optional LAST30DAYS_API_BASE server).

NVIDIA SkillSpector static scan: 367 pattern hits (Privilege Escalation 207, Data Exfiltration 42, MCP Rug Pull 29, Dangerous Code Execution 27, Excessive Agency 11, Tool Misuse 11). Most of the 367 SkillSpector hits are expected for a multi-source research tool: .env, Keychain and cookie-store reads, access-token wording, subprocess use and API endpoints. The cookie readers and the Apify-to-ScrapeCreators token fallback are real findings and are recorded as flags. The CRITICAL tainted-flow hit is evaluate_search_quality.py sending a Gemini key to Google's API.

A review, not a certification. Skills change after we check them — read the files before installing.

License

MIT — commercial use allowed.

Can it run unattended?

Not really. Each run is a request-driven research pass that ends with a brief; it is not built as a long unattended loop.

Alternatives to last30days

Deep Research Skill

199-biotechnologies/claude-deep-research-skill

A single research skill with an 8-phase pipeline, parallel search, source scoring, claim and citation checks, and report output in Markdown, HTML and PDF.

With caveats Check first Depth 4/5

Claude Octopus

nyldn/claude-octopus

An escalation layer that runs tasks past up to twelve external AI providers (Codex, Copilot, Ollama, Grok, more) with a consensus gate, plus 63 skills.

With caveats Check first Depth 4/5

Firecrawl CLI

firecrawl/cli

Firecrawl's command-line client and 13 agent skills for web search, scraping, crawling, interacting with pages and parsing files through the paid Firecrawl API.

With caveats Check first Depth 2/5

Apify Agent Skills

apify/agent-skills

Apify's official skills for scraping with its Actor marketplace and for building, converting and integrating Actors with the apify CLI.

With caveats Check first Depth 3/5

FAQ

What is last30days?

last30days is an agent skill that researches a topic across Reddit, X, YouTube, TikTok, Hacker News, Polymarket, GitHub and the web for the last 30 days. It scores results by real engagement and synthesizes them into a brief.

How do I install last30days?

In Claude Code run /plugin marketplace add mvanhorn/last30days-skill and then /plugin install last30days. For Codex, Cursor, Copilot or Gemini CLI, run npx skills add mvanhorn/last30days-skill -g. You need Python 3.12 or newer.

Does last30days need API keys?

Not to start. Reddit, Hacker News, Polymarket and GitHub work without keys, and every key in the setup wizard is optional. Adding keys enables more sources such as X, YouTube or TikTok.

last30days vs a deep research skill: what is different?

last30days focuses on recent community and social signal ranked by engagement. General deep research skills such as 199-biotechnologies/claude-deep-research-skill aim at broad, source-scored reports. They answer different questions and can be used together.

Where does last30days save its research files?

In the folder set by LAST30DAYS_MEMORY_DIR, which defaults to ~/Documents/Last30Days/ on macOS and Linux and C:\Users\<you>\Documents\Last30Days\ on Windows. Set the variable to use a different path.

Can last30days search X without my X account or browser cookies?

Yes. A signed-in grok CLI lets it search X with no X account, no browser cookies and no XAI_API_KEY. An official X_BEARER_TOKEN also works, but on the Basic tier it only returns about the last week of posts.

How do I turn on DripStack or other opt-in sources?

Pass --search dripstack for a single run, or add INCLUDE_SOURCES=dripstack to your .env file. Xiaohongshu works the same way with --search xhs or INCLUDE_SOURCES=xiaohongshu, but it also needs a logged-in browser plugin or xiaohongshu-mcp service.

Sources: GitHub repository (stars, license, file tree, last push Oct 28, 2026). Review based on the README and SKILL.md files as published.