last30days-skill
AI agent 驱动的跨平台搜索引擎,能在 Reddit、X、YouTube、Hacker News、Polymarket 等 10+ 个来源并行搜索任意主题,并根据点赞、播放量、真实金钱等信号排序,最后合成一份简洁的摘要报告。亮点是无需切换多个平台,agent 自动解析人物/公司/产品并找到相关社区和讨论,v3 版还增加了智能预搜索、幽默评分、跨源合并和竞争对手对比功能。开源(MIT),可自托管且支持 Claude Code、Cursor 等 50+ 宿主,非常适合研究人员和开发者快速获取最新社区共识。
README
/last30days
一个由 AI agent 主导的搜索引擎,依据点赞数、收藏数和真实金钱评分——而非编辑。
本 README 追踪当前 v3 管线的状态。运行时技能规范位于 skills/last30days/SKILL.md,这是最新命令与设置行为的权威来源。
Claude Code(推荐——通过 marketplace 自动更新):
/plugin marketplace add mvanhorn/last30days-skill
/plugin install last30days
Codex、Cursor、Copilot、Gemini CLI 或任意 50+ Agent Skills 宿主:
npx skills add mvanhorn/last30days-skill -g
(-g 全局安装到你的用户目录,对所有项目可用。去掉则限定在单个项目内使用。)
更多安装选项(claude.ai 网页版、OpenClaw、手动安装)见下方的 安装 章节。
零配置。Reddit、HN、Polymarket 和 GitHub 即刻可用。运行一次后,设置向导将在 30 秒内解锁 X、YouTube、TikTok 等更多源。
Reddit 的 upvote。X 的点赞。YouTube 的转录。TikTok 的互动。Polymarket 的赔率——背后是真实金钱和内幕信息。每天有数百万人在用他们的注意力和钱包投票。/last30days 并行搜索所有这些内容,根据真实用户的互动行为评分,再由 AI agent 裁判综合成一份简报。
Google 聚合的是编辑。/last30days 搜索的是人。
你在其他任何地方都无法获得这样的搜索结果,因为没有单一的 AI 能同时访问所有这些平台。Google 搜索不触及 Reddit 评论或 X 推文。ChatGPT 与 Reddit 有协议,但无法搜索 X 或 TikTok。Gemini 有 YouTube 但没有 Reddit。Claude 原生一个都不支持。每个平台都是各自独立的围墙花园,拥有自己的 API、自己的 token、自己的认证机制。但你可以带入自己的密钥和浏览器会话,于是 AI agent 就能同时搜索所有平台,对它们相互评分,然后告诉你真正重要的事情。
这就是解锁的关键。不是一款更好的搜索引擎。而是通过一个 agent 连接的数十个孤立平台。
/last30days Peter Steinberger
明天要开会。你 Google 了一下,得到的是 2023 年的 LinkedIn 资料。/last30days 告诉你他这个月实际在做的事:加入 OpenAI 参与 Codex 项目、对抗 Anthropic 对第三方 agent 的封禁、提交了 23 个 PR(合并率 85%)、正在构建跨设备 agent 控制的 "LobsterOS",以及 r/ClaudeCode 社区有 569 个 upvote 在争论他到底是英雄还是 "让人无法忍受"。这些信息分散在 X 推文、Reddit 帖子、YouTube 转录和 GitHub 提交中,而 Google 上一条都没有。
它为什么存在
我构建它是为了跟上 AI 的发展。一切每天都在变,Reddit 和 X 上的极客总是最先掌握动态。我需要更好的 prompt,而训练数据总是落后社区几个月。
但后来它变成了一件更大的事。现在我在销售电话之前用它来了解某家公司的最近 30 天真相;在会议之前用它来阅读某人的最新推文和播客转录;在迪士尼之旅之前用它来了解哪些游乐设施关闭了、社区对 Genie+ 的看法;在开始构建任何东西之前用它来了解人们实际遇到什么问题。
如果你要和一位 CEO 会面,你是否读过他们最近 30 天所有的推文和 YouTube 转录?我读过。
来源,由人们评分
| 来源 | 人们告诉你什么 |
|---|---|
| 未经滤镜的看法。带有 upvote 数的热门评论,通过公共 JSON 免费获取。Google 埋没了的真实意见。 | |
| X / Twitter | 热点见解、专家长文、突发反应。最先知道,最先争论。 |
| YouTube | 45 分钟的深度剖析。完整转录中搜索出 5 句可引用的关键句子。 |
| TikTok | 触及 360 万人的创作者观点,这些你在 Google 上永远找不到。 |
| Instagram Reels | 带口述转录的网红视角。视觉文化信号。 |
| Hacker News | 开发者共识。825 分,899 条评论。技术人员真正争论的地方。 |
| Polymarket | 不是观点,而是赔率。背后是真金白银。专辑销量 96% 的置信度。收购 4% 的置信度。 |
| GitHub | 对人:PR 速度、按 star 数排名的顶级仓库、发布说明。对主题:issue 和讨论。 |
| Digg | 来自 Digg AI 1000 排行榜(约 1000 个高信号 AI 账户在 X 上)策展的故事集群,包含可归因的内联引用(无需 X 认证)。当 digg-pp-cli 在 PATH 中时自动启用。 |
| Threads | 后 Twitter 时代的文本层。来自创作者和品牌的对话。 |
| 视觉发现。关于产品和创意的小图钉、收藏和评论。 | |
| Bluesky | 去中心化社交层。AT Protocol 发布的内容,来自后 Twitter 迁移人群。 |
| Perplexity | 通过 Sonar Pro 提供有引用的 grounded web 搜索。 |
| Web | 编辑类报道、博客对比。众多信号之一,而非唯一。 |
社区贡献者在持续增加更多源。Truth Social、小红书(RED)等已被纳入引擎,更多源还在路上。
一条有 1,500 个 upvote 的 Reddit 帖子,比一篇没人读的博客文章信号更强。一个 360 万次观看的 TikTok,在告诉你什么具有文化相关性方面,比一篇新闻稿更有说服力。投入 66,000 美元交易量的 Polymarket 赔率,比一个专家的猜测更难反驳。
综合排序基于真实用户实际互动的质量——社会相关性,而非 SEO 相关性。
人们实际拿它做什么
会议前。 /last30days Peter Steinberger —— 加入 OpenAI 的 Codex 团队,对抗 Anthropic 对第三方 agent 的封禁,GitHub 上 23 个 PR 合并率 85%,正在构建 LobsterOS 用于跨设备 agent 控制。r/ClaudeCode: "自从 OpenClaw 发布以来,大家都知道如果你通过非 API 的方式运行它,最终会被封禁"(227 upvote)。这些 LinkedIn 上可没有。
新东西发布时。 /last30days Kanye West —— 英国拒绝其签证,Wireless 音乐节取消,赞助商逃离。但 BULLY 首周登上 Billboard 第二名。Fantano 结束他的 "Yay 休息" 回来做了评测(65.3 万观看)。SoFi Homecoming 请来 Lauryn Hill 和 Travis Scott 演唱了 44 首歌。Polymarket:"Kanye 还会再发推吗?" 86% 认为是。23 个 Reddit 帖子,17 个 YouTube 视频,8.6 万个 upvote。
比较工具。 /last30days OpenClaw vs Hermes vs Paperclip —— "这些不是竞争对手,它们是不同层。" OpenClaw 是执行器(GitHub 35.1 万星,活跃),Hermes 是自我改进的大脑(3.1 万星),Paperclip 是组织架构图(4.9 万星)。Star 数直接从 GitHub API 实时拉取,不是过时的博客文章。并排表格展示架构、内存、安全性和最佳适配场景。@IMJustinBrooke 说:"OpenClaw = 小火龙,Hermes = 喷火龙。"
理解世界。 /last30days Iran vs USA —— 战争第 38 天。特朗普周二最后通牒伊朗重新开放霍尔木兹海峡。两架美国战机被击落。油价每桶 126 美元。IEA 称这是 "全球石油市场史上最大的供应中断"。Polymarket:12 月 31 日前停火概率 74%。27 条 X 推文,10 个 YouTube 视频,20 个预测市场。
旅行前。 /last30days Universal Epic Universe —— 扩建项目已在施工中。已提交 "Project 680" 许可证。基础设施确认有烟花秀但尚未官宣。等待时间:Mine-Cart Madness 平均 148 分钟。年卡尚未推出,本地人很沮丧。Stardust Racers 关闭维修至 4 月 5 日。
快速学习。 /last30days Nano Banana Pro prompting —— JSON 结构化的 prompt 正在取代标签混乱。@pictsbyai 的嵌套格式防止了 "概念渗漏"。先编辑后生成的工作流优于重新生成。然后它会使用社区公认有效的方式为你写出一条生产级 prompt。
v3 有哪些变化
可分享的 HTML 简报
要求一份 HTML 简报后,该技能会保存一个自包含、深色模式、适合打印的文件,你可以直接拖入 Slack、邮件或 Notion。没有原始 markdown 泄露。内联 CSS,底层使用系统字体回退,上层使用 Inter 和 JetBrains Mono。无 JavaScript。离线可用。
/last30days OpenClaw --emit=html
或者直接用自然语言说:
/last30days OpenClaw,给我一份可分享的 HTML 简报
/last30days Cursor IDE 用于 Slack
/last30days Anthropic 财报导出为 html
该技能照常在聊天中输出综合结果,同时还会将简报保存到 ${LAST30DAYS_MEMORY_DIR}/{topic}-brief.html(默认路径为 ~/Documents/Last30Days/)。聊天回复末尾会显示文件路径,方便你使用 open 打开或拖入消息。
文件内容:徽章、内联元数据行、模型的原样综合结果(带所有引用)、引擎页脚(✅ 所有 agent 已回报!树形图),以及说明主题和如何重新运行的版权声明。数据质量警告(降级运行、证据薄弱等)保留在引擎的 stderr 日志中,绝不会泄露到可分享的文件中。
如果要在模型之外直接使用 CLI,引擎也接受 --synthesis-file PATH 将任何 markdown 综合结果转换为 HTML。
智能搜索:杀手级功能
v3 引擎不仅仅搜索你的主题。它在搜索开始前就确定了 去哪里 搜索。输入 "OpenClaw",引擎会解析出 @steipete(Peter Steinberger,创建者)、r/openclaw、r/ClaudeCode,以及合适的 YouTube 频道和 TikTok 话题标签——这一切都通过 @j-sperling 打造的一个全新 Python 预研究大脑完成。旧引擎搜索关键词。新引擎先理解你的主题,然后搜索正确的人和社区。
这就是为什么 v3 能找到 v2 永远找不到的内容。"Paperclip" 解析出 @dotta。"Dave Morin" 解析出 @davemorin 加上 @OpenClaw 加上 TWiST 播客。"Peter Steinberger" 在 X 上解析出 @steipete,在 GitHub 上解析出 steipete。双向映射:从人到公司,从产品到创始人,从名字到 GitHub 个人资料。正确的子版块、正确的用户名、正确的话题标签——在调用任何 API 之前就已经解析完毕。
最佳精选(Best Takes)
Reddit 和 X 上的人很有趣。旧引擎因为它们按相关性而不是趣味性评分,所以埋没了它们最精彩的内容。v3 现在有第二个裁判,除了相关性分数之外,还对每个结果进行幽默、机智和传播性评分。Tommy Lloyd 的那句 "My Michael Jordan is Steve Kerr" 对 "Arizona Basketball" 的相关性很低,但趣味性爆表。现在每份简报的结尾都有一个 "最佳精选" 章节——最机智的单句、最热门的引语、那些让你想分享研究报告的反应。这是内置功能,不是可切换选项。
跨源聚类合并
当同一个故事出现在 Reddit、X 和 YouTube 上时,v3 会将其合并为一个聚类,而不是显示三个独立的条目。基于实体的重叠检测即使在标题使用不同词汇时也能捕捉到匹配。
单次比较
"CLI vs MCP" 过去需要三轮串行执行(12 分钟以上)。v3 一次执行,使用带实体感知的子查询同时处理双方。相同深度,3 分钟。
自动发现竞争对手比较
/last30days OpenAI --competitors 会告诉宿主推理模型通过 WebSearch 自动发现前两名同行(Anthropic、xAI),对每个实体执行 Step 0.55,然后用 "OpenAI vs Anthropic vs xAI" 和每个实体对应的 --competitors-plan JSON 调用引擎。引擎并行展开 3 条完整的管线,为每个实体保存 *-raw.md 文件,然后将它们合并为三方对比。同样的机制也支持直接使用 /last30days "OpenAI vs Anthropic vs xAI"。
GitHub 人物模式
当主题是一个人物时,引擎从关键词搜索切换到以作者为作用域的查询。它不再回答 "谁在 issue 正文中提到了这个名字",而是回答:这个人在提交什么,以及它们落在哪里?
/last30days Peter Steinberger --github-user=steipete 显示 22 个 PR 在 3 个仓库中合并,合并率 85%。自己的项目带有 README 摘要、star 数和热门功能请求。本月发布的内容的发布说明。综合器将其与 X 推文和 Reddit 帖子一起编织到叙述中。
ELI5 模式
在任何研究运行之后说 "eli5 on"。综合结果会以通俗语言重写。无行话。相同的数据、相同的来源、相同的引用——只是更清晰了。用 "Arizona wins by being physical" 代替 "Arizona's identity is paint scoring (50%+ shooting, 9th nationally)"。说 "eli5 off" 恢复原样。
v3 中的其他所有内容
- 免费的 Reddit 评论。 公共 JSON 提供线程 + 带有 upvote 数的热门评论。无需 API 密钥,无需 ScrapeCreators。即开即用。
- 真正能用的 YouTube 转录。 候选池扩大了 3 倍,跳过了音乐视频,从而找到带字幕的谈话/评测类内容。
- TikTok、Instagram、Threads。 一旦设置了
SCRAPECREATORS_API_KEY,这三个源会自动激活——同一个密钥,相同的每次调用成本。使用EXCLUDE_SOURCES=tiktok,instagram,threads(任何逗号分隔的子集)可屏蔽任意一个。 - Pinterest。 每次查询可选择加入(视觉小图钉,适用范围较窄):模型为需要它的运行传入
--search=pinterest。需要SCRAPECREATORS_API_KEY。 - YouTube + TikTok 评论。 通过
INCLUDE_SOURCES=youtube_comments,tiktok_comments持久化可选加入,因为每个视频会在基础搜索之外额外拉取 N 次 ScrapeCreators 调用。显示带有投票数的热门评论,与 Reddit 的处理方式相同。 - Perplexity Sonar。 通过 OpenRouter 提供有引用的 grounded web 搜索。添加
OPENROUTER_API_KEY和INCLUDE_SOURCES=perplexity(这是一个独立的付费 API——选择加入可以避免意外扣费)。 - Polymarket 噪声过滤。 常用词消歧避免 "Apple" 匹配到 "Apple 会发布汽车吗?"
- 弹性 Reddit。 超时预算和运行时回退。一个慢线程不会拖垮整个运行。
- 趣味裁判 v2。 幽默评分已融入叙述中。Reddit 上最机智的单句会出现在综合结果中合适的位置,而不是丢在一个单独的部分。
- Polymarket 赔率,而非金额。 百分比赔率是魔力。金额数字已从展示中移除。
- 每个作者上限。 每个作者最多 3 项,防止单一声音主导你的简报。
- 实体消歧。 当引擎解析出用户名时,综合结果会信任它们。马略卡岛的度假村再也不会赢过华盛顿的运动俱乐部了。
- OpenClaw 一等公民。 引擎端预研究的自动解析。设备授权实现无摩擦的 ScrapeCreators 注册。
- 1,012 个测试通过。
安装
| 表面 | 安装 | 更新 |
|---|---|---|
| Claude Code(推荐) | /plugin marketplace add mvanhorn/last30days-skill |
通过 marketplace 自动更新,或 claude plugin update last30days@last30days-skill |
| Codex、Cursor、Copilot、Gemini CLI、GitHub Copilot 或任意 50+ Agent Skills 宿主 | npx skills add mvanhorn/last30days-skill -g |
npx skills update last30days -g |
| claude.ai(网页版) | 下载 last30days.skill 并通过 设置 > 功能 > Skills > + 上传 |
重新下载并重新上传 |
| OpenClaw | clawhub install last30days-official |
clawhub update last30days-official |
Claude Code(推荐)
/plugin marketplace add mvanhorn/last30days-skill
推荐使用,因为 Claude Code marketplace 会自动为你处理更新——插件缓存有版本号,当新版本发布时会自动刷新。运行 claude plugin update last30days@last30days-skill 可以强制检查。
如果你更愿意在 Claude Code 上使用 agent-skills 安装路径,也支持:
npx skills add mvanhorn/last30days-skill -g -a claude-code
原生插件和 npx skills 安装可以共存。注意 Claude Code 不会跨安装方法去重:如果你同时激活了 marketplace 插件和 npx skills 副本,/last30days 会显示两个条目。每台机器请只使用一种安装方法。
Codex、Cursor、Copilot、Gemini CLI 和其他 Agent Skills 宿主
通过开放的 Agent Skills CLI 安装——支持 50+ 个 harness,包括 codex、cursor、github-copilot、gemini-cli、claude-code、windsurf、cline、continue、roo、aider-desk、opencode、goose 等(完整列表见 vercel-labs/skills 仓库)。
npx skills add mvanhorn/last30days-skill -g
-g(全局)标志会安装到你的用户目录下,因此该技能对所有项目可用。不带 -g,npx skills 会项目本地安装到 ./.skills/(与仓库一起提交)。对于一个研究世界的工具,全局安装是你想要的。
默认情况下,这会在 npx skills 检测到的那个 harness 上安装。要指定一个(或多个):
npx skills add mvanhorn/last30days-skill -g -a codex
npx skills add mvanhorn/last30days-skill -g -a cursor
npx skills add mvanhorn/last30days-skill -g -a gemini-cli
npx skills add mvanhorn/last30days-skill -g -a codex -a cursor
之后更新用:
npx skills update last30days -g
或者更新所有通过 npx skills 全局安装的内容:
npx skills update -g
使用 npx skills list -g 列出,使用 npx skills remove last30days -g 移除。
claude.ai(网页版)
- 从最新发布中 下载
last30days.skill - 前往 claude.ai 设置 > 功能 > Skills
- 点击 Skills 面板中的
+按钮,然后拖入文件
请先在 "功能" 下启用 "代码执行和文件创建"——否则技能无法运行。
OpenClaw
clawhub install last30days-official
手动安装(开发者)
git clone https://github.com/mvanhorn/last30days-skill.git
ln -s "$(pwd)/last30days-skill/skills/last30days" ~/.claude/skills/last30days
符号链接使安装与你的工作树保持同步,方便编辑——无需重新拷贝。对于 claude.ai,从源代码构建 .skill 文件:bash skills/last30days/scripts/build-skill.sh 会在 dist/last30days.skill 生成产物。
Reddit(含评论)、Hacker News、Polymarket 和 GitHub 即刻可用。零配置。运行 /last30days 一次,设置向导会在 30 秒内解锁更多源。
携带自己的密钥
这些平台之间没有彼此的关系。X 不知道 Reddit 在想什么。YouTube 看不到 TikTok。但你可以携带自己的 API 密钥和浏览器令牌,然后瞬间就能同时访问它们全部。
| 源 | 你需要什么 | 费用 |
|---|---|---|
| Reddit(含评论)+ HN + Polymarket + GitHub | 无 | 免费 |
| X / Twitter | 在任意浏览器中登录 x.com | 免费 |
| YouTube | brew install yt-dlp |
免费 |
| Bluesky | 从 bsky.app 获取应用密码 | 免费 |
| TikTok + Instagram + Threads + Pinterest + YouTube 评论 | ScrapeCreators 密钥 | 100 个免费积分,之后按量付费 |
| Perplexity Sonar | OpenRouter 密钥 | 按量付费 |
| Web 搜索 | Brave Search 密钥 | 每月 2,000 次免费查询 |
macOS 钥匙串(可选)
在 macOS 上,你可以将密钥存储在系统钥匙串中,而不是 .env 文件。技能会自动将其作为最低优先级源拾取——冲突时 .env 文件和进程环境仍会覆盖。
# 交互式设置——提示每个已知密钥,空输入跳过
skills/last30days/scripts/setup-keychain.sh
# 或者手动存储单个密钥
security add-generic-password -a "$USER" -s last30days-XAI_API_KEY -w "xai-..."
# 查看 / 清理
skills/last30days/scripts/setup-keychain.sh --list
skills/last30days/scripts/setup-keychain.sh --delete XAI_API_KEY
条目存储为当前用户的 service name last30days-<KEY>。在非 Darwin 平台上,加载器是一个空操作,因此对 Linux/Windows 用户没有行为变化。
完整按源密钥矩阵、推理提供者优先级和 web 搜索后端优先级见 CONFIGURATION.md。
配置
第一天你可能会想了解两件事:
研究文件保存位置。 LAST30DAYS_MEMORY_DIR 默认值为 ~/Documents/Last30Days/(Windows:C:\Users\<you>\Documents\Last30Days\)。通过在你的 shell 中设置该环境变量覆盖,或者在每次运行时使用 --save-dir <path>。使用 --save-suffix=<name> 可以将同一主题的多个变体分开保存(例如按客户)。每次运行会生成 <slug>-raw[-suffix].md。
跨运行的趋势监控。 默认模式每次运行生成一个新鲜的 markdown 快照。要随时间累积发现,添加 --store 将数据持久化到 SQLite 数据库,然后使用 scripts/watchlist.py 进行定时运行(发现新内容时可选择发送 Slack / webhook),以及 scripts/briefing.py 生成每日/每周摘要。完整的节奏模式见 CONFIGURATION.md。
每个客户端包装脚本、自定义类别相关的子版块以及实验性的 beta 频道(用于进行中的自定义)也记录在 CONFIGURATION.md 中。
工作原理
- 你输入一个主题。 一个人、公司、产品、技术、"X vs Y"。任何内容。
- agent 确定哪些人重要。 找到 X 用户名(包括创始人)、GitHub 仓库、子版块、TikTok 话题标签、YouTube 频道。对于 "Kanye West",它知道 r/hiphopheads、@kanyewest 以及 YouTube 上的 "bully review"。对于 "OpenClaw",它会解析出 GitHub 上的 openclaw/openclaw 并获取实时 star 数。
- 所有源并行搜索。 多查询扩展。结果根据互动度、相关性和新鲜度进行评分。
- 其他人没有的深度。 来自反应视频的完整 YouTube 转录。带有 upvote 数的 Reddit 热门评论。TikTok 字幕。Polymarket 赔率。不仅仅是标题和链接。
- 同一个故事,合并处理。 无线音乐节在 Reddit 上宣布、在 X 上讨论、门票价格在 TikTok 上——会作为一个聚类,而不是三个独立条目。
- 综合成一份简报。 基于具体数据,附来源引用。按人们实际互动的内容排序。不是 "这是我找到的",而是 "这是重要的"。
- 然后它变成你的专家。 一次运行之后,你的 Claude 会话就知道社区知道的一切。可以问后续问题,让它写 prompt、起草邮件、规划行程、设计系统——所有这一切都基于当下真实的信息。
人们怎么说
"我找到了一个 Claude Code 技能,它能跨 Reddit、X、YouTube 和 HN 搜索任何主题最近 30 天的内容。然后还会为你写 prompt。我以前在写每篇内容之前,都是手动一个一个标签页搜索 Reddit 和 X 来做调研。那个步骤占了 90 分钟。它消除了这个痛点。" —— @itsjasonai
"这一个技能就替代了我整个调研工作流。你给它一个主题,它就抓取 Reddit、X 和网络上人们实际在讨论的内容。不是过时的博客文章,而是最近 30 天的真实对话。" —— @itswilsoncharles
"GitHub 今天趋势榜前 10 个仓库中有 5 个是 Claude 工具。第 1 名:mvanhorn/last30days-skill" —— @yieldhunter95
开源
MIT 许可。无跟踪。无分析。你的研究数据留在你的机器上。1,012 个测试。
使用 Python 3.12+、yt-dlp、Node.js(附带的 Bird 客户端用于 X 搜索)和 ScrapeCreators API 构建。v3 引擎架构由 @j-sperling 设计。
版本历史见 CHANGELOG.md。
Star 历史
@slashlast30days · github.com/mvanhorn/last30days-skill