last30days-skill
好奇心造就科学家和诗人。——法朗士
last30days:每个月都重置一次的 AI 世界,它负责把你拉回“最新版本”
/last30days 不是那种“我去网上搜一下”就结束的助手。
它更像一位专门做情报的夜班编辑:你睡觉,它翻遍全网;你醒来,它把过去 30 天真正热过、吵过、赌过、拍过视频讲过的东西,整理成一份带引用、能落地的“新鲜情报简报”。
它的性格写在 README 里,几乎有点挑衅:
The AI world reinvents itself every month. This skill keeps you current.
AI 圈每个月都像换季:
上个月还在讨论 A 工具的最佳玩法,这个月大家已经在 B 平台用完全不同的套路冲榜。
你要是只靠旧帖子、旧教程、旧 prompt,很容易在新世界里拿着旧地图迷路。
/last30days 就是来干这个的:
它会在过去 30 天里,去这些地方“听风声、看热度、抓共识”:
- X
- Bluesky
- YouTube
- TikTok
- Hacker News
- Polymarket
- 以及 web(博客、新闻、教程、文档)
它不只收集链接,而是把社区真正 upvote、转发、点赞、下注、在镜头前讲出来的内容,做评分、去重、再写成一个grounded narrative(有真实引用的叙事总结)。
它到底是什么(repo description 的那句话,够硬)
仓库描述开门见山:
AI agent skill that researches any topic across Reddit, X, YouTube, HN, Polymarket, and the web - then synthesizes a grounded summary
它不是“新闻聚合”,它是“多源研究 + 综合写作”,而且重点是 grounded:
写出来的不是玄学结论,而是能指回来源的叙事。
v2.9.5:它最近长了哪些“新器官”?
/last30days v2.9.5 一上来就说:我不只是更新,我还进化了。
1)Bluesky/AT Protocol 加入信号源(可选开启)
它现在把 Bluesky 也当成“舆论场”之一了,而且是一条完整流水线:
- search
- score
- dedupe
- render
开启方式很直白:在环境变量里放:
BSKY_HANDLEBSKY_APP_PASSWORD(在 bsky.app/settings/app-passwords 创建)
它像一只新学会听“另一片森林”动静的鹿:不再只盯着 X 的风向,也会去 Bluesky 看新火苗。
2)Comparative mode:它会做对比评测,而且是并行三轮研究
你问 “X vs Y”,它不敷衍。它会做 3 parallel research passes,然后输出:
- strengths
- weaknesses
- head-to-head table
- data-driven verdict
README 给的例子很明确:
/last30 cursor vs windsurf
它像一个认真到有点较真的评测编辑:不是凭感觉站队,而是把证据摆到同一张桌面上。
3)Per-project .env:每个项目一套钥匙
你可以在项目根目录放:
.claude/last30days.env
它会覆盖全局的 ~/.config/last30days/.env。
像它在说:“别把工作号和生活号混在一起,我懂。”
4)SessionStart config check:开局先体检
Claude Code session 启动时,它会自动验证你的配置。
像它自己先摸一摸脉搏:“钥匙带了吗?管道通了吗?别跑一半才发现缺 KEY。”
5)Expanded test coverage:455+ tests
它甚至把自己测试数写出来:455+ tests across all modules。
像一位研究员同时也是工程师:不仅要跑得快,还要跑得稳。
v2.9.1:每次研究自动存档到 Documents,悄悄给你建知识库
v2.9.1 的变化很“低调但致命”:
Every run now saves the complete briefing as a topic-named .md file to your Documents folder.
路径是:
~/Documents/Last30Days/
它像一个勤奋到会自己归档的助理:
你每问一次,它就帮你把“这次的世界状态”存一份,久而久之,你就有了自己的研究图书馆。
v2.9:ScrapeCreators 一把钥匙管三扇门(Reddit + TikTok + Instagram)
它把 Reddit 默认切到 ScrapeCreators:
SCRAPECREATORS_API_KEY一个 key 覆盖三源:Reddit、TikTok、Instagram
它像突然学会了“合并通行证”:不用三套钥匙,不用多次配置,一个 key 让三条河都能流进来。
并且它还强化了:
- Smart subreddit discovery:自动找到最合适的社区
- Top comments elevated:把高赞评论提升权重并展示(带
💬和 upvote 数)
安装:它给你三条路,分别适配不同的“宿主”
1)Claude Code 插件(推荐)
它最推荐的安装方式:
1 | /plugin marketplace add mvanhorn/last30days-skill |
它像在说:“我就是为 Claude Code 这身衣服量体裁衣的,别绕路。”
同时也给了 ClawHub 的一键安装:
1 | clawhub install last30days-official |
2)Gemini CLI
1 | gemini extensions install https://github.com/mvanhorn/last30days-skill.git |
3)手动安装(Claude Code / Codex)
它也允许你把它克隆到本地,像收编一个私人研究员:
1 | # Clone the repo |
然后配置你的钥匙串(如果你已经 codex login,OpenAI key 可省):
1 | mkdir -p ~/.config/last30days |
它还支持“项目级别的钥匙覆盖”:
- 在项目根目录创建
.claude/last30days.env(覆盖全局)
X 搜索认证:它更喜欢“明确的通行证”,不想每次弹窗问你要不要开门
它说得很清楚:X search prefers explicit env auth,原因是:
- headless 本地运行更顺滑
- 避免浏览器 cookie / macOS Keychain 提示
推荐流程:
- 登录 x.com
- 开 dev tools,复制
auth_token和ct0 - 保存为
AUTH_TOKEN和CT0 - 重跑
/last30days
验证命令:
1 | node ~/.claude/skills/last30days/scripts/lib/vendor/bird-search/bird-search.mjs --whoami |
要求:
- Node.js 22+(用于 vendored Twitter GraphQL client)
如果你不想给 cookie,那也可以走另一条路:
设置 XAI_API_KEY,它会走 xAI 的 x_search 作为 fallback。
Codex CLI:同一份 SKILL,同一套引擎,只是换了个舞台
它也能在 OpenAI Codex CLI 里跑。安装路径变成:
1 | git clone https://github.com/mvanhorn/last30days-skill.git ~/.agents/skills/last30days |
调用方式:
$last30days- 或通过
/skills菜单
它像一位会换场子的演员:换了剧院,台词没变,表演还是那套。
Open Variant:给“常驻机器人”准备的 watchlist + briefings + history
如果你在用 Open Claw 或类似 always-on 的环境,它还有一个 open variant。
这个版本不再满足于“一次性研究”,它要开始“长期盯盘”。
启用方式:
1 | cp variants/open/SKILL.md ~/.claude/skills/last30days/SKILL.md |
然后你可以像给一个情报员布置长期跟踪任务一样,把主题塞进 watchlist:
1 | last30 watch my biggest competitor every week |
手动跑(或者交给 cron/launchd/always-on bot):
1 | last30 run all my watched topics |
查历史积累:
1 | last30 what have you found about AI video? |
它像一个已经开始“自己建档案柜”的研究员:
- Watchlist:按计划跟踪
- Briefings:日/周 digest
- History:全文检索你的研究数据库
- Native web search:可选并行 web 搜索后端(Parallel AI / Brave / OpenRouter)
可选 web 搜索 key:
1 | PARALLEL_API_KEY=... # Parallel AI (preferred - LLM-optimized results) |
检查各来源是否可用:
1 | python3 scripts/last30days.py --diagnose |
用法:一句话丢给它,它就去跑 2-8 分钟的“多源研究流水线”
它的调用方式很简单:
1 | /last30days [topic] |
示例(README 原样列的):
/last30days prompting techniques for ChatGPT for legal questions/last30days iOS app mockups for Nano Banana Pro/last30days What are the best rap songs lately/last30days remotion animations for Claude Code
它还坦诚了取舍:
- 找得多、跑得深,所以慢:2-8 minutes
- 但有
--quick给你“速度优先” - 有
--deep给你“彻底优先”
它会做什么:三段式人格——研究、综合、交付
README 把它的工作定义成三步:
- Researches:扫过去 30 天的讨论(多平台)
- Synthesizes:找模式、找 best practices、找“真正有效的”
- Delivers:要么输出可复制的 prompts,要么输出 curated 的专家级答案
它就像一台自动运转的编辑部:
记者出去跑线索 → 编辑做归纳 → 主编写成能直接发布的稿子。
选项(Options):它不是只有一根油门,它是一整套变速箱
| Flag | Description |
|---|---|
--days=N |
回看 N 天(例如 --days=7 做周报) |
--quick |
更快、来源更少、跳过 supplemental search |
--deep |
更深、来源��多、supplemental 更扩展 |
--debug |
详细日志 |
--sources=reddit |
只查 Reddit |
--sources=x |
只查 X |
--include-web |
加入 native web search(需要 web search API key) |
--store |
写入 SQLite(用于 watchlist/briefing) |
--diagnose |
输出可用性诊断后退出 |
Requirements:它像一位带着工具箱的研究员,也会提前告诉你“缺什么别怪我”
它列得很清楚:
- Reddit:需要 OpenAI auth(
OPENAI_API_KEY或codex login) - X:需要
AUTH_TOKEN+CT0,或XAI_API_KEY作为替代 - Node.js 22+:用于 X search(bundled GraphQL client)
- yt-dlp(可选):用于 YouTube 搜索 + transcript 提取
brew install yt-dlp或pip install yt-dlp
一句话总结就是它自己说的那句:
At least one auth path is required.
它怎么做到的:Two-Phase Search Architecture(先广撒网,再精准补刀)
它的架构有两阶段,像一场真正的调研:
Phase 1:Broad discovery(先把湖面扫一遍)
- OpenAI Responses API 的
web_search(reddit.com 范围) - Vendored Twitter GraphQL(或 xAI fallback)
- YouTube + transcript(通过 yt-dlp)
- HN(Algolia API)
- Polymarket(Gamma API)
- WebSearch(博客、新闻、教程、文档)
- Reddit
.json富化(真实 upvotes/comments) - 统一 scoring:recency、relevance、engagement
Phase 2:Smart supplemental search(从第一轮里挖出“关键坐标”,再二次定向搜索)
- 从 Phase 1 提取实体:X 的 @handles,Reddit 的 subreddit
- 进行 targeted follow-up:
from:@handle topic、subreddit scoped 搜索 - 用 Reddit 的免费
.jsonendpoint(不额外要 key) - 合并 + 去重
--quick会跳过,--deep会扩展
它像一只懂得复盘的猎犬:
第一圈闻到味道后,不会傻跑,而是锁定踪迹再追。
模型回退链:它不轻易放弃,会自己找下一条路
Reddit search(via OpenAI)会自动 fallback:
gpt-4.1 -> gpt-4o -> gpt-4o-mini
如果你的 org 没权限,它不会卡死,而是换下一台发动机继续跑。
安全与隐私:它会告诉你“哪些数据会出门”,也会告诉你“哪些数据留在家里”
它把“数据去哪了”列成表:
- 你的研究 topic(query string)会发给对应的 API provider
- 本地会存:
- API keys:
~/.config/last30days/.env - watchlist DB:
~/.local/share/last30days/research.db - briefings:
~/.local/share/last30days/briefs/
- API keys:
并强调 key 隔离:
每把钥匙只发给自己的门口,OpenAI key 不会跑去 xAI/Brave/Parallel 之类的地方。
它的尾声:像一句海报文案,也像一句自嘲
README 最���用两句话把它的灵魂钉在墙上:
30 days of research. 30 seconds of work. Eight sources. Zero stale prompts.
它像在说:
“别再用过期 prompt 了。世界已经换季了。把问题扔给我,我去把过去 30 天的真实声音捞出来。”
