last30days: recent research that puts public conversation first
mvanhorn/last30days-skill · 62,792★ · 5,461 forks
Everything you need to know about mvanhorn/last30days-skill: a skill and local engine that let an agent research a topic across social, technical, and market sources within a short time window.
What last30days is
last30days is an AI agent skill distributed as a SKILL.md specification plus a Python engine. Given a query like /last30days <topic>, it tries to resolve the relevant entities - accounts, repositories, communities, and channels - searches in parallel, and synthesizes a report ranked by relevance, engagement, and recency.

The project positions itself against editorial search engines: its scoring aims to combine engagement signals such as Reddit votes, X interactions, YouTube transcripts and comments, Hacker News conversations, GitHub activity, and Polymarket odds. It does not replace a primary source or turn popularity into truth; it is a discovery and prioritization layer for recent evidence.
The minimal install promises zero-configuration access to Reddit, Hacker News, Polymarket, and GitHub. To extend coverage, the user supplies keys, browser sessions, or local services. The README lists, among others, X, YouTube, TikTok, Instagram, LinkedIn, Bluesky, arXiv, Techmeme, Perplexity, Xiaohongshu, and web search.

The origin: from tracking AI news to a research engine
The repository was created on January 23, 2026. Its creator is Matt Van Horn (mvanhorn): the GitHub profile identifies him as a co-founder of June and of a company that later became Lyft, and attributes the build of engine version 3 to j-sperling.
In the README’s account, Van Horn built it to keep up with AI: he felt Reddit and X conversations moved faster than training data and that he needed a way to gather them without browsing tab by tab. The example of tension with native products is explicit: the text argues that Google, ChatGPT, Gemini, and Claude have partial and differing access to closed platforms; the pitch is not a single superior search engine, but an agent that connects separate sources using the user’s own keys and sessions.
The first verifiable Hacker News submission was on January 26, 2026: 7777777phil posted a Claude skill for researching Reddit and X over the last thirty days. The launch got 2 points and no comments, a quiet start compared with the repository’s later growth.
Philosophy and principles
- Recency over historical accumulation: the query starts from a thirty-day window, though the range can be configured.

- Social and market signals, not just SEO: the engine scores engagement, relevance, and freshness; Polymarket adds odds, not proof of facts.
- Synthesis with traceability: the specification requires reports with data and source citations, and the JSON mode has a versioned contract.
- Local execution and explicit degradation: the README states that analysis stays on the user’s machine and that, without keys, the system trims sources rather than claiming full coverage.
- Separate skill and engine:
CONCEPTS.mddistinguishes the skill, which tells the agent what to do, from the Python engine, which does the work and returns the results structure.

These are the project’s stated intentions and contracts, not an independent validation of the quality of each report.
How it works
The documented technical flow has seven steps: receive a topic, resolve the related entities, launch parallel queries, rank results by engagement, cluster the same event across sources, synthesize a cited report, and retain context for follow-up questions.
Usage patterns verified in the documentation:
/last30days "AI coding agents"
/last30days OpenClaw vs Hermes vs Paperclip
python3 skills/last30days/scripts/last30days.py --discover "AI agents"
python3 skills/last30days/scripts/last30days.py "AI coding agents" --emit=json
python3 skills/last30days/scripts/last30days.py --preflight
--preflight shows configuration, planned sources, and planned writes without researching or reading cookies. --discover is for discovering topics without a starting one; --emit=json returns structured output. To repeat research, --store saves results to SQLite, and the watchlist.py and briefing.py scripts enable scheduled monitoring and daily or weekly summaries. There is also local search over previous reports and generation of an HTML library and an Atom feed from saved reports.

The current version, v3.18.4 (July 28, 2026), fixed the tag-publishing flow in CI and a timeout issue in comparative YouTube searches. The README claims more than 2,700 tests and Python 3.12 or higher; the main languages GitHub reports are Python, Go, Shell, and HTML.
Official and semi-official status
The project can be installed as a plugin from its own Claude Code marketplace source with /plugin marketplace add mvanhorn/last30days-skill and /plugin install last30days. That establishes a Claude Code plugin format, but it does not demonstrate an endorsement or certification from Anthropic.
It has semi-official, cross-platform distribution integrations: the README documents a native manifest for Codex, a plugin for Grok, and a common install path via npx skills add across Codex, Cursor, GitHub Copilot, Gemini CLI, and more than fifty hosts of the open Agent Skills format. For Grok, the documentation states its entry points to xAI’s plugin marketplace. On OpenClaw it lists clawhub install last30days-official.
In practice, the manifests, the .skill packages for claude.ai, and the .mcpb package for Claude Desktop make it easy to distribute across environments. No source from a provider declaring it an official standard or certifying its results was found; it is therefore more accurate to treat it as a widely integrated project than as a ratified standard.
The ecosystem
Author repositories
A search of mvanhorn’s account returned two projects close in topic and authorship, though they are not dependencies of last30days:
mvanhorn/cli-printing-press- a tool for generating agent-oriented command-line interfaces; 4,334 stars and 461 forks.mvanhorn/printing-press-library- a library declared official for interfaces produced by Printing Press; 1,878 stars and 555 forks.
Within the main repository, the associated pieces are the skills/last30days directory, the scripts/last30days.py engine, the Claude, Codex, and Grok manifests, the mcp/ MCP package, the tests/ suite, and the GitHub Actions automations. These are components of the same repository, not independent repositories.

Ports, forks, and community extensions
Jesseovo/last30days-skill-cn- an independent Chinese adaptation for researching eight major Chinese internet platforms over thirty days; 1,318 stars and 155 forks. It is the most visible non-English port found.hwwn/last30days-skill-cn- another China-focused port; its description mentions Weibo, Zhihu, Bilibili, Douyin, Xiaohongshu, V2EX, Juejin, and Xueqiu. The search returned 3 stars and 1 fork.levineam/lastXdays-skill- an extension that makes the time interval configurable and declares itself based on the original project; 44 stars and 8 forks.kunhai1994/xhs-research- a skill focused on Xiaohongshu research, declared based on last30days andxpzouying/xiaohongshu-mcp; 37 stars and 2 forks.- Among direct forks located,
addyosmani/last30days-skillhad 46 stars and 9 forks, andbradautomates/last30days-skill, 9 stars and 4 forks.

The README itself mentions Xquik-dev/tweetclaw as an optional OpenClaw add-on for X actions, such as posting and monitoring, and clarifies that it is not a dependency or recommendation of the project. The figures above are a GitHub API measurement from August 1, 2026; they do not certify support or compatibility.
Repo numbers
Measured: August 1, 2026, GitHub API and page.
| Metric | Value |
|---|---|
| Stars | 56,610 |
| Forks | 4,944 |
| Real subscribers | 208 |
| Commits | 1,160 |
| Open issues reported by the API | 84 |
| Branches / tags | 67 / 43 |
| Primary language | Python |
| License | MIT |
| Created | January 23, 2026 |
| Latest release | v3.18.4, July 28, 2026 |
The top contributors returned by the API were mvanhorn (447 contributions), tmchow (341), 23241a6749 (40), j-sperling (37), and iliaal (28). The commit count comes from the GitHub page. open_issues_count can include open pull requests; in fact, the page showed 61 issues and 23 pull requests. The watchers_count field in the general response mirrors the star count, so subscribers_count is reported here as the real subscriber figure.
How to contribute
The process is documented in CONTRIBUTING.md:
- Set up Python 3.12 or higher with
uv sync --group dev. - Run
uv run pytest. - Implement the change and update or add tests.
- Add a changelog fragment in
changelog.d/where applicable. - Fill out the pull request template, with a summary, tests, changelog, agent statement, and relation to the project.
The project asks contributors not to directly edit CHANGELOG.md, nor the versions in pyproject.toml, SKILL.md, manifests, or uv.lock; continuous integration controls those changes. Maintainers use a release-prep action that creates a synchronized-versions pull request and publishes on merging it into main. The security guide prohibits uploading real keys, cookies, tokens, or .env files.
How the community received it
The verifiable reception combines adoption with concrete correction requests, rather than broad consensus on Hacker News:
- In Hacker News 47783940, a comment from piotraleksander describes last30days and
context-modeas the two most useful skills in an OpenClaw setup. They used it for a weekly social-listening report for their agency. The parent thread, a question about OpenClaw usage, logged 342 points; that opinion is a personal experience, not an evaluation of the engine. - The project received four direct Hacker News submissions, all small: 46764597 from
7777777philgot 2 points and 0 comments; 46963949 fromNOpderbeck, about a recent-research API, got 2 points and 2 comments; 48440334 frompykello, 2 and 0; and 49130905 fromms7892, 3 and 0. These are visibility anchors, not evidence of a broad discussion. - In issue #532, a user who identifies as a follower asked for a website, RSS, or a directory of already-generated reports. The framing is enthusiasm for the idea of aggregating the last thirty days, along with a concrete request to make results more accessible without running the full system.

- The most significant criticism is about security and installation. In #513,
asheem22reported that the Hermes scanner flagged the package as dangerous, with 50 findings; they pointed in particular to imperative instructions inSKILL.mdand reading environment variables for keys. The issue was closed on July 7 after 8 comments and was linked to pull request #768. It is an alert attributed to the reporter’s analysis, not an independent audit. - Also still open is #362, from
homototus, with 4 comments: it reports that Claude Code’s validator was rejecting a skills path inplugin.json. The user proposed and locally tested a fix. The objection is operational and specific, not a disqualification of the research function.
last30days versus other proposals
| Proposal | Verifiable overlap | Verifiable difference |
|---|---|---|
levineam/lastXdays-skill | It is a Claude Code skill explicitly based on last30days. | It makes the number of days configurable; no specification was found that establishes equivalence across its full source coverage. |
Jesseovo/last30days-skill-cn | It researches a thirty-day window and synthesizes grounded reports. | It targets eight Chinese platforms, while the original documents a combination of global networks, Hacker News, Polymarket, and GitHub. |
kunhai1994/xhs-research | It is a research skill declared to build on last30days. | It focuses on Xiaohongshu and also relies on xiaohongshu-mcp; last30days presents it as an optional source within a larger set. |
Xquik-dev/tweetclaw | Both can integrate with OpenClaw and touch X. | TweetClaw is mentioned for posting, replying, and monitoring actions on X; last30days researches and synthesizes, and does not declare it a dependency. |
The right comparison is by scope: last30days is a good fit when you want to unify signals from multiple sources into recent research. Regional ports or single-platform tools may be more suitable when the target source is narrowly defined.
Use cases and who this repository can help
Analysts, product teams, and people tracking a fast-moving topic can run /last30days <topic> or --discover to gather recent conversations from Reddit, Hacker News, GitHub, Polymarket, and any additional sources they’ve configured. The engine resolves entities, queries in parallel, clusters the same event across sources, and returns a cited synthesis; --preflight lets you review the planned sources and writes before researching, and --emit=json makes it easier to plug the output into another workflow.
Editorial teams, agencies, and people responsible for periodic monitoring can save research with --store in SQLite, search previous reports, and use watchlist.py or briefing.py to prepare follow-ups and daily or weekly summaries. The HTML library and the Atom feed serve to publish stored reports when the user decides to. Extending coverage requires keys, cookies, or local services depending on the source; those credentials should be isolated, and engagement signals should be cross-checked against the original citations before turning them into editorial claims.
Resources
- Repository: https://github.com/mvanhorn/last30days-skill
- Documentation and installation: https://github.com/mvanhorn/last30days-skill#install
- Official skill: https://github.com/mvanhorn/last30days-skill/tree/main/skills/last30days
- Configuration: https://github.com/mvanhorn/last30days-skill/blob/main/CONFIGURATION.md
- Contribution guide: https://github.com/mvanhorn/last30days-skill/blob/main/CONTRIBUTING.md
- Packages and releases: https://github.com/mvanhorn/last30days-skill/releases
- Community and issues: https://github.com/mvanhorn/last30days-skill/issues
- Conversations: https://news.ycombinator.com/item?id=47783940, https://news.ycombinator.com/item?id=46764597, https://news.ycombinator.com/item?id=46963949, https://news.ycombinator.com/item?id=48440334, https://news.ycombinator.com/item?id=49130905
Note: this article combines the README, the skill specification, the contribution guide, issues, releases, the GitHub API and pages, and Hacker News, retrieved on August 1, 2026. Figures and integrations change over time.
Comments