RepoDaily · 2026-07-08 · Infrastructure / Runtime

last30days-skill:把点赞、转发和预测市场赔率当作排名信号的 AI agent 研究技能

#9 Infrastructure / Runtime Python +684 mvanhorn/last30days-skill 打开仓库

一个 Python 编写的 agent 技能,并行检索 Reddit、X、YouTube、HN、Polymarket 与开放网络,再合成出一份有引用的简报。MIT 协议,首选 Claude Code,亦可通过 npx 接入 Codex/Cursor/Gemini CLI。

项目类型Infrastructure / Runtime
最适合需要在开会、销售拜访或立项前快速获取过去 30 天跨平台舆情的人,且已经在使用 Claude Code 或其他兼容 Agent Skills 的宿主。
风险等级中等——依赖第三方 API key 与浏览器会话;覆盖率有硬门槛,但项目为单人维护且更新极频繁。
评估时间零配置源(Reddit、HN、Polymarket、GitHub)5 分钟内可见结果;解锁 X、YouTube、TikTok 大约 30 秒向导时间。

核心问题: 你的决策是否真的需要任何单一搜索引擎都无法给出的跨平台信号?你是否愿意提供所需的 key?

91/100

RepoDaily 采用评分

RepoDaily 将该项目的采用分评为 91/100(强):分数来自文章来源、安装路径、生产风险、差异化、许可证清晰度以及 AI/Agent 适配度。

基于 RepoDaily 来源和采用说明的方向性评分,不是基准测试。风险: 中
100证据质量

包含 4 个来源、覆盖 4 类来源;如有 RepoDaily 独有模块,会进一步提高证据分。

100可安装/可试用性

检测到 6 个工作流步骤、5 个下一步动作,以及 4 个命令/安装信号。

65维护可信度

趋势热度为 +684 stars;如内容中有 release、issue 或维护信号,会提高维护可信度。

93生产准备度

采纳风险标记为 medium,并包含 5 条安全说明与 4 条跳过条件。

100差异化

3 个机会视角、4 个替代方案,以及 4 个类型化模块支撑差异化判断。

82许可证清晰度

文章中包含许可证来源或许可证表述。

90Agent / AI 适配度

文章正文和元数据中检测到 7 个 AI/Agent 相关信号。

项目概览

last30days-skill 是一个用 Python 编写的 AI agent 技能,把自己定位成“由点赞、转发和真金白银打分,而非编辑筛选”的搜索引擎。在 Claude Code 里作为插件安装,或通过 `npx skills add` 接入,输入形如 `/last30days Peter Steinberger` 的查询,技能就会并行调度 Reddit、X、YouTube、HN、Polymarket 和开放网络的检索,再由一个 agent 裁判把结果合成成一份基于真实互动数据的简报。

它的核心卖点不是某个更好的算法,而是结构性互补:每个平台都是带独立 API 和鉴权的围墙花园,没有任何主流 AI 宿主原生覆盖全部。ChatGPT 有 Reddit 但够不到 X 和 TikTok;Gemini 有 YouTube 但没有 Reddit;Claude 原生一个都没有。last30days 要求你自带 key 和浏览器会话,然后用统一的互动评分把各源结果归一化。

仓库采用 MIT 协议,pyproject.toml 中固定在 3.11.1 版本,要求 Python >=3.12。值得注意的是运行时 dependencies 为空——对一款基础设施技能来说,这意味着主要工作由宿主 agent 加上外部 CLI 与 API 端点完成,而不是引入大量 Python 包。测试覆盖率设有分支敏感的 84% 门槛,基准测量于 2026-07-03,且项目说明该门槛只会上升。

开发节奏极快。Changelog 显示 2026-07-04 至 2026-07-05 四天内连发三个版本:v3.11.0 引入 `last30days doctor` 统一健康命令,v3.10.0 带来 Instagram 评论与轮询式评论选取,v3.9.4 继续修复首次运行向导。2026-07-08 的趋势日正好落在这波发布之后,与仓库拿到 GitHub Trending 当日 #1 的时间点吻合。

解决什么问题

  • 通用网页搜索无法在一个排序视图里同时呈现 Reddit 评论、X 帖子、YouTube 字幕和 TikTok 互动。
  • 每个 AI 助手在设计上只覆盖部分平台:ChatGPT 接 Reddit,Gemini 接 YouTube,Claude 原生一个都没有,跨平台问题只能手动拼接。
  • 编辑和 SEO 优化页面占据 Google 结果头部,而社区信号(点赞、转发、真金白银赔率)分散且有强时间窗。
  • Polymarket 上的赔率编码了真金白银支撑的预测,搜索引擎无法把它和社交帖子同台排序。
  • 跨十余个平台做首次配置通常是 token 与鉴权噩梦,用户往往在第一次查询前就放弃。

工作原理

  1. 在 Claude Code 里执行 `/plugin marketplace add mvanhorn/last30days-skill`,再 `/plugin install last30days`;或在 50+ Agent Skills 宿主上运行 `npx skills add mvanhorn/last30days-skill -g`。
  2. 发出一条查询,例如 `/last30days Peter Steinberger`,技能会向所有已配置源并行发起检索。
  3. Reddit、HN、Polymarket、GitHub 零配置即可工作;首次运行向导约 30 秒即可解锁 X、YouTube、TikTok 等源。
  4. 每个源贡献自己的原生互动信号:Reddit 赞数、X 点赞、YouTube 字幕、TikTok 互动,以及由真金白银支撑的 Polymarket 赔率。
  5. agent 裁判对各源结果做归一化与相互打分,合成一份带引用互动指标的简报。
  6. 运行 `last30days doctor` 可获取分组健康报告和可复制粘贴的修复处方。

架构解读:是运行时技能,不是独立守护进程

last30days-skill 以 Agent Skills 包形式发布,不是服务端进程。运行时行为的真相来源是 `skills/last30days/SKILL.md`,README 明确点名该文件。安装路径有两条:Claude Code marketplace(`/plugin marketplace add` 后 `/plugin install last30days`)走自动更新;`npx skills add mvanhorn/last30days-skill -g` 覆盖 Codex、Cursor、Copilot、Gemini CLI 及 agentskills.io 列出的 50+ 宿主。`-g` 表示按用户全局安装,去掉则按项目作用域安装。

运行时 Python 包在 pyproject.toml 中声明零运行时依赖(`dependencies = []`),要求 Python >=3.12。yt-dlp、Digg、arXiv、Techmeme 等外部 CLI 在 changelog 中被明确列为首次运行向导的 cookie 同意与 key 介绍文案的一部分,说明技能是编排进程外工具,而不是重新实现其抓取逻辑。开发依赖仅限 pytest 9.x 与 pytest-cov 7.x。

命令面:`/last30days` 与 `last30days doctor` 暴露了什么

  • `/last30days <topic>` —— 主要查询入口,README 示例为 `/last30days Peter Steinberger`。
  • `last30days doctor` —— v3.11.0(PR #753)新增的统一健康命令,聚合所有源的探针状态并取代旧的 `--diagnose`、`--preflight`、`lib/health.py` 与运行后提示。
  • `INCLUDE_SOURCES` —— 控制启用源的配置 token,例如 v3.10.0 Recommended 评论档为 `INCLUDE_SOURCES=tiktok,instagram,youtube_comments,tiktok_comments,instagram_comments`。
  • `SCRAPECREATORS_API_KEY` —— 启用 Instagram 评论增强所需 key,通过 `GET /v2/instagram/post/comments` 按 `comment_like_count` 排序获取。
  • 首次运行向导 —— 明确列出所有已安装 CLI(yt-dlp、Digg、arXiv、Techmeme),把 GitHub device code 自动复制到剪贴板,并将欢迎语直接嵌入设置弹窗,而非单独的 `--welcome` 消息。

上手路径:从安装到第一份有引用的简报

在 Claude Code 上,两条斜杠命令就能开始第一次查询:`/plugin marketplace add mvanhorn/last30days-skill` 与 `/plugin install last30days`。零配置源(Reddit、HN、Polymarket、GitHub)首次即工作,因此可直接运行 `/last30days <topic>` 获取跨平台简报。

解锁 X、YouTube、TikTok 需接受首次运行向导的提示。向导会列出每个安装的 CLI(yt-dlp、Digg、arXiv、Techmeme),并说明每把 key 的真实用途;例如 ScrapeCreators key 被描述为“自动 Reddit 增强 + YouTube 搜索兜底”,而不是一个模糊升级项。GitHub device code 会被自动复制到剪贴板,去掉一个常见失败步骤。

跑完一次后查看 `## Stats` 互动小结和 emoji 树形 footer。v3.10.0 的 changelog 记录了之前 LinkedIn 条目会被计入 Stats 却在 footer 中被静默丢弃——原因在于 `_FOOTER_SOURCES`、`ENGAGEMENT_DISPLAY` 与 `SOURCE_LABELS` 都遗漏了该源——这是个值得把计数与渲染 footer 对照检查的具体提醒。

维护风险:带覆盖率门槛的单人仓库

项目由 Matt Van Horn 以 MIT 协议(Copyright 2026)发布。2026-07-04 至 2026-07-05 四天内连发三个版本,每个都关闭了具名 PR(#750、#751、#752、#753、#758),说明响应快,但接口面也在快速变化。

pyproject.toml 固定了一个分支敏感的 84% 覆盖率门槛(`fail_under = 84`),于 2026-07-03 基于 `skills/last30days/scripts` 与 tests 测得。README 徽章显示覆盖率 >=60%,低于实际门槛,说明徽章偏保守而非夸大。该门槛明确排除 `skills/last30days/scripts/lib/vendor/*` 与 `dist/*`。

技能依赖其无法控制的外部 CLI 与 API。PR #752 修复了 Techmeme 把每条记录都盖上今天日期的问题,PR #758 修复了 LinkedIn 在 footer 中被静默丢弃的问题。这正是一名维护者必须持续吸收的上游破坏类型。

谁适合关注

适合关注

  • 你已在用 Claude Code、Codex、Cursor、Copilot 或 Gemini CLI,想用一个 `/last30days` 入口做跨平台研究。
  • 你的决策受益于任何单一 AI 宿主都无法同台排序的社区信号(Reddit 赞、X 点赞、YouTube 字幕)。
  • 你愿意且能够为围墙花园源提供第三方 API key 和浏览器会话。
  • 你需要在会前或立项前快速了解一个人、公司或话题在过去 30 天的真实动向。

可以先跳过

  • 你需要完全自托管、无需 key、离线运行的研究栈——本项目的价值正是依赖外部 key 与会话。
  • 你的检索偏学术,且已被 arXiv 检索或 Google Scholar 等工具覆盖。
  • 你无法运行 Python >=3.12 或任何兼容 Agent Skills 的宿主。
  • 你需要企业级多租户、SSO 或审计日志,而源包中未提及这些能力。

风险与注意事项

技能本身 MIT 协议、安装迅速,但依赖脆弱的外部 API 与浏览器会话,需要单人维护者持续修复。

  • 单人维护仓库需持续吸收上游破坏:PR #752 修复 Techmeme 日期错标,PR #758 修复 LinkedIn 在 footer 被静默丢弃。
  • 价值依赖第三方 key(如 `SCRAPECREATORS_API_KEY`)与浏览器会话,随时可能被限流或失效。
  • 四天内三个版本意味着活跃但不稳定;下游集成应固定具体版本。
  • 源包未记录任何企业特性(SSO、审计、多租户)。
  • LICENSE 文件确认采用 MIT 协议,Copyright (c) 2026 Matt Van Horn,商业与内部使用均可。
  • 用户需自行提供 X、YouTube、TikTok 及 ScrapeCreators 支持源的 API key 与浏览器会话;key 处理由用户掌控,而非厂商托管。
  • 首次运行向导会把 GitHub device code 自动复制到剪贴板,在共享机器上值得留意。
  • 运行时 Python 依赖声明为空,减少了来自传递性 pip 包的典型供应链攻击面。
  • 覆盖率统计范围限定在 `skills/last30days/scripts` 与 `tests`,`lib/vendor/*` 下 vendored 代码被明确排除在门槛之外。

替代方案比较

方案适用场景代价
Perplexity(商业网页搜索)
你想要一个零配置的托管答案引擎,且不需要把 Reddit/X/TikTok 的原始互动信号放在同一排序视图里。免费档;高级模型需订阅 Pro。
ChatGPT + Gemini + Claude 手动组合
你只需部分平台覆盖(ChatGPT–Reddit、Gemini–YouTube),且愿意在多个宿主之间复制粘贴。已订阅的 AI 助手即包含。
Tavily / Exa / SerpAPI 类搜索 API
你在自建研究流水线,需要可编程的网页搜索后端,而非 agent 技能。按量计费;各厂商不同。
yt-dlp + 自写抓取
你想完全掌控每个源,且不需要 agent 侧的合成层。免费;真正成本是工程时间。

这个趋势说明了什么

内部竞争情报简报

在周会前运行 `/last30days <竞品>`,产出一份融合 Reddit 帖子、X 发帖、YouTube 字幕与 Polymarket 赔率的简报——没有任何单一仪表盘能同台排序这些信号。

连续两周对三个竞品试用,与当前人工研究时间对比简报质量。

会前人物调研流程

以 README 的 Peter Steinberger 示例为模板:在销售拜访或面试前生成一个人过去 30 天的 X 动态、播客字幕与 GitHub PR 快照。

在五次会议上衡量与“LinkedIn + Google”人工流程相比节省的时间。

产品发布舆情监控

发布后查询 `/last30days <你的产品>`,阅读按点赞和转发加权、而非按编辑位次加权的社区反馈。

在发布当周运行,检查简报是否浮出了社区团队遗漏的讨论。

下一步建议

在 Claude Code 上安装并跑一条零配置查询

5 分钟内拿到一份有引用的简报,全程仅使用无需 key 的源。

  1. 在 Claude Code 中运行 `/plugin marketplace add mvanhorn/last30days-skill`。
  2. 运行 `/plugin install last30days`。
  3. 尝试 `/last30days <你已熟悉的人或话题>`,便于判断输出质量。
  4. 查看 `## Stats` 区块和 emoji 树形 footer,确认 Reddit、HN、Polymarket、GitHub 各段都正确渲染。
  5. 可选:在通过向导解锁 X、YouTube、TikTok 之前先运行 `last30days doctor` 确认探针状态。

RepoDaily 判断

last30days-skill 用锋利的 MIT 协议实现填补了一个真实缺口:没有任何单一 AI 宿主能把 Reddit、X、YouTube、HN、Polymarket 与开放网同台排序。它的价值完全取决于你带的 key 和浏览器会话,以及单人维护者能否持续修好上游抓取——但两条命令安装、30 秒向导解锁付费源,试错成本极低。

信息来源