> [!NOTE]
> 本文档由 WeHub 基于上游 README 翻译整理,属于社区翻译,非官方中文文档。
> [English](./README.en.md) · [原始项目](https://github.com/mvanhorn/last30days-skill) · [上游 README](https://github.com/mvanhorn/last30days-skill/blob/HEAD/README.md)
> 原作者、版权与许可证归属以原始项目及本仓库 LICENSE 文件为准。
# /last30days
**由 AI 智能体主导的搜索引擎,按点赞、喜爱和真金白银打分——不靠编辑。**
本 README 跟踪当前的 v3 流水线。运行时技能规范见 [skills/last30days/SKILL.md](skills/last30days/SKILL.md),该文件是最新命令与安装行为的权威来源。
**Claude Code(推荐——通过 marketplace 自动更新):**
```
/plugin marketplace add mvanhorn/last30days-skill
/plugin install last30days
```
**Codex、Cursor、Copilot、Gemini CLI,或 50 多种 [Agent Skills](https://agentskills.io) 宿主:**
```
npx skills add mvanhorn/last30days-skill -g
```
(`-g` 会为你的用户全局安装,所有项目可用。去掉该选项即可限定为单项目范围。)
更多安装方式(claude.ai 网页版、OpenClaw、手动安装)见下方 [安装](#install) 一节。
零配置。Reddit、HN、Polymarket 和 GitHub 开箱即用。运行一次后,设置向导会在 30 秒内解锁 X、YouTube、TikTok、arXiv、Techmeme 等更多来源。
---
Reddit 点赞。X 喜爱。YouTube 字幕。TikTok 互动。Polymarket 赔率背后是真金白银和内幕信息。每天都有数百万人用注意力和钱包投票。/last30days 并行搜索这一切,按真人实际互动量打分,再由 AI 智能体裁判综合成一份简报。
Google 聚合的是编辑。/last30days 搜索的是人。
别处得不到这种搜索,因为没有任何单一 AI 能同时触达全部来源。Google 搜索碰不到 Reddit 评论或 X 帖子。ChatGPT 与 Reddit 有合作,但搜不了 X 或 TikTok。Gemini 有 YouTube,却没有 Reddit。Claude 原生一个都没有。每个平台都是围墙花园,各有 API、令牌和认证。但你可以自带密钥和浏览器会话,于是 AI 智能体就能一次性搜索全部来源、横向对比打分,并告诉你什么才真正重要。
这就是突破点。不是一个更好的搜索引擎,而是十几个互不连通的平台,由智能体桥接在一起。
```
/last30days Peter Steinberger
```
你明天有个会议。你去 Google 对方。拿到的是 2023 年的 LinkedIn。/last30days 给你他们这个月真正在做什么:加入 OpenAI 做 Codex、对抗 Anthropic 对第三方智能体的封禁、在 GitHub 以 85% 合并率提交 23 个 PR、打造跨设备智能体控制的 "LobsterOS",还有 r/ClaudeCode 上 569 个赞在争论他是英雄还是"令人难以忍受"。这些内容散落在 X 帖子、Reddit 帖串、YouTube 字幕和 GitHub 提交里。Google 上都没有。
## 为什么做这个项目
我做它是为了跟上 AI 节奏。一切每天都在变,Reddit 和 X 上的极客总是最先掌握。我需要更好的提示词,而训练数据总是比社区已经摸透的东西落后几个月。
但它后来变成了更大的东西。现在我会在销售电话前跑一遍,了解一家业务过去 30 天的真实情况。开会前读某人最近的推文和播客字幕。去迪士尼世界前查哪些游乐设施关闭、社区怎么评价 Genie+。动手开发前先弄清人们真正在踩什么坑。
如果你要和 CEO 见面,你读过他们过去 30 天的全部推文和 YouTube 字幕吗?我读过。
## 数据来源,由大众打分
| Source | What the people tell you |
|--------|--------------------------|
| **Reddit** | 未经滤镜的观点。高赞评论带真实点赞数,免费,无需 API key。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 排行榜(X 上约 1000 个高信号 AI 账号)的精选故事聚类,带可溯源的内联引用(无需 X 认证)。当 `digg-pp-cli` 在 PATH 上时自动启用。 |
| **arXiv** | 炒作背后的论文。窗口期内的新研究,免费,无需 API key。当 `arxiv-pp-cli` 在 PATH 上时自动启用(首次运行设置会安装)。 |
| **Techmeme** | 科技新闻编辑层,按你的 30 天窗口过滤日期。免费,无需 API key。当 `techmeme-pp-cli` 在 PATH 上时自动启用(首次运行设置会安装)。 |
| **LinkedIn** | 职业信号。帖子与文章,文章权重更高。 |
| **StockTwits** | 交易者情绪。当你的话题是股票代码或加密货币时自动激活。 |
| **Threads** | 后 Twitter 时代的文字层。创作者与品牌的对话。 |
| **Pinterest** | 视觉发现。产品与想法的 Pin、收藏和评论。 |
| **Xiaohongshu (RED)** | 中国生活方式、产品与创作者信号。当本地运行已登录的 x-mcp 浏览器插件或 `xiaohongshu-mcp` 服务时,用 `--search xhs` 显式请求。 |
| **Bluesky** | 去中心化社交层。后 Twitter 迁移中的 AT Protocol 帖子。 |
| **Perplexity** | 有依据的 Sonar 综合、原始 Search API 行,以及 Deep Research。 |
| **Web** | 编辑报道、博客对比。众多信号之一,不是唯一信号。 |
社区贡献者还在持续增加更多来源。Truth Social 等小众来源已在引擎中,后续还会有更多。
一条 1,500 赞的 Reddit 帖串,比没人看的博客文章信号更强。一条 360 万播放的 TikTok,比新闻稿更能说明什么在文化上相关。Polymarket 上 6.6 万美元成交量支撑的赔率,比 pundit 的猜测更难反驳。
综合排序依据真人实际互动量。社交相关性,不是 SEO 相关性。
## 人们实际怎么用
**开会前。** `/last30days Peter Steinberger` - 加入 OpenAI Codex 团队,对抗 Anthropic 对第三方智能体的封禁,GitHub 上以 85% 合并率合并 23 个 PR,打造跨设备智能体控制的 LobsterOS。r/ClaudeCode:"Ever since OpenClaw released, it was widely known that if you run it through anything other than the API, you were gonna get banned eventually"(227 赞)。LinkedIn 上没有这些。
**读招聘信号。** `/last30days Listen Labs --hiring-signals` - 当前职位与招聘页面会成为有据引用的证据,反映重心转移:招聘企业安全、客户成功、基础设施或产品扩张。报告说的是招聘似乎在释放什么信号,而不是路线图会交付什么。
**在话题登顶前发现它。** 询问 `/last30days what's exploding in AI agents?`,技能会切换到发现模式:扫描 Reddit 分类列表、Hacker News 首页/最佳故事、Digg 的 AI 1000 信息流,以及已认证时的 X,然后返回 5-10 个按互动增速排序的话题。每条结果都包含跨来源数据、动量标签,以及一条可直接运行的 `/last30days ""` 后续查询。
**当大事发生时。** `/last30days Kanye West` - 英国拒签、Wireless Festival 取消、赞助商纷纷撤离。但 BULLY 在 Billboard 首发即排名第 2。Fantano 结束「Yay 休假」回归评测(65.3 万次观看)。SoFi Homecoming 请来 Lauryn Hill 和 Travis Scott,连唱 44 首歌。Polymarket:「Kanye 还会再发推吗?」86% 选 Yes。23 条 Reddit 讨论串、17 个 YouTube 视频、8.6 万 upvotes。
**用来对比工具。** `/last30days OpenClaw vs Hermes vs Paperclip` - 「它们不是竞争对手,而是不同层级。」OpenClaw 是执行器(GitHub 35.1 万 stars,已上线),Hermes 是自改进大脑(3.1 万 stars),Paperclip 是组织架构图(4.9 万 stars)。Star 数通过 GitHub API 实时拉取,而非过时的博客文章。并排表格涵盖架构、记忆、安全、最适合场景。据 @IMJustinBrooke:「OpenClaw = Charmander,Hermes = Charizard。」
**用来了解世界。** `/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 的嵌套格式可防止「概念渗漏(concept bleeding)」。先编辑再生成的工作流优于反复重生成。随后它会按社区验证有效的做法,为你写出可用于生产的 prompt。
## 新特性
自 5 月 v3.3 发布公告以来,截至 v3.11.1(2026 年 7 月):15 个版本中合并 175 个 PR,其中 122 个来自 52 位社区贡献者。以下是已落地内容。
### OpenAI Codex 一等公民集成
/last30days 现已成为原生 Codex 插件,并提供引导式安装——不是移植版,而是一等公民。渲染器感知引用(renderer-aware citations)让 Codex 输出读起来像简报,而非 URL 堆砌(#694),同一引擎也运行于 Claude Code、Cursor、Copilot、Gemini CLI、Claude Desktop、OpenClaw 及 50+ Agent Skills 宿主。Codex 插件清单由 [@rfoust](https://github.com/rfoust) (#686),Codex 认证修复由 [@tmchow](https://github.com/tmchow) (#698)。
### arXiv、Techmeme 与 Digg——免费,无需 API key
arXiv 带来炒作背后的论文,Techmeme 带来科技新闻的编辑层——免费、零 key,首次运行安装会自动安装其 CLI 以便激活(#709)。Digg 的 AI 1000 故事聚类同样无需 X 认证——安装时会为你安装免费 Digg CLI(#590)。Trustpilot 提供面向消费品牌研究的可选接入。
### 免费 Reddit 恢复真实分数与热门评论
Reddit 公开 .json API 已失效;免费路径以更强势头回归。无 key 的 RSS + shreddit 抓取(#457)、通过 arctic-shift 获取真实 upvote 数的专用 subreddit 发现(#696),以及相关性下限,避免病毒式偏题帖子劫持你的简报(#488,感谢 [@rzachsmith](https://github.com/rzachsmith)).。无需 API key。真实分数。包含热门评论。
### 每份简报中的最佳评论
评论现已成为各来源的默认开启层:Instagram 评论采用基于排名的多样性,避免五条热门观点全来自同一帖子(#751);YouTube 评论外加 ScrapeCreators 字幕备份,应对 yt-dlp 失败时(#637);社区投票评论加权计入 Best Takes,让社区最搞笑的句子在评分中得以保留(#592、#608)。
### 一条 doctor 命令
请求健康检查,doctor 会跑遍所有来源,然后开出精确修复方案——缺哪个 key、哪个 CLI 不在 PATH、哪条 cookie 已过期(#753)。再也不用猜 X 为何返回内容稀少。
### X 搜索,全面重建
X 管道自下而上重构:FROM 与 ABOUT 双通道,让人物本人发帖与围绕其的讨论都能上榜(#610);人物感知子查询消歧(#611);一方作者归属 grounding 配合互动信号排序(#613);单一 X 来源并自动后端故障转移(#622)。另有一条诚实的 `--diagnose`,可实际探测认证状态(#609)。
### 更多来源加入
通过 ScrapeCreators 接入 LinkedIn,文章作为高信号来源([@ravstr](https://github.com/ravstr), #702)。StockTwits 在股票与加密货币主题下自动激活([@wtiwana](https://github.com/wtiwana), #658)。Perplexity 扩展直接 API 模式与异步 Deep Research([@sk-holmes](https://github.com/sk-holmes), #629)。
### 社区加固安全
安全浪潮几乎全由社区推动:HTML 渲染器中的存储型 XSS 修复([@iliaal](https://github.com/iliaal), [@aaronjmars](https://github.com/aaronjmars)), 锁定的 cookie 临时文件、供应链加固 CI(OpenSSF Scorecard 与构建来源证明)([@shaanmajid](https://github.com/shaanmajid), [@hammadxcm](https://github.com/hammadxcm), [@aniruddh909](https://github.com/aniruddh909)), Semgrep 与 OSV-Scanner 扫描,外加 PR 依赖审查门禁([@23241a6749](https://github.com/23241a6749)), 测试覆盖率下限从 60% 引入并提升至 84%([@gourab5139014](https://github.com/gourab5139014)), Hermes 安全扫描已清除全部 CRITICAL 发现(#768)。
### 覆盖更广
希伯来语与非拉丁语系([@dudyme](https://github.com/dudyme)). 面向中文来源的 CJK 感知分词([@An-idd](https://github.com/An-idd)). 一波 Windows 兼容性改进。覆盖完整 Chromium 家族的 cookie 提取——Brave、Edge、Vivaldi、Opera、Arc([@andrey-esipov](https://github.com/andrey-esipov)) ——外加 macOS Keychain 与 Linux pass(1) 凭据来源。`--as-of` 历史回溯([@chiyi-creator](https://github.com/chiyi-creator)). 通过 uv 自动配置 Python 3.12([@buntysomroy](https://github.com/buntysomroy)). 用于读取公司招聘页的 `--hiring-signals`。运行间的 watchlist 增量。
### v3 原有能力仍在
v3 基础能力全部保留:预研究大脑,在任一 API 调用前解析正确的 handle、subreddit 与 hashtag(由 [@j-sperling](https://github.com/j-sperling)); 构建);Best Takes 在相关性之外对幽默与病毒性评分;跨来源聚类合并;单次对比(「CLI vs MCP」3 分钟而非 12 分钟);自动发现的 `--competitors` 对比;GitHub 人物模式(`--github-user=steipete`);ELI5 模式(任意运行后输入「eli5 on」);以及可分享、自包含的 HTML 简报(`--emit=html`)。配置项见 [CONFIGURATION.md](CONFIGURATION.md)。
## 安装
| 平台 | 安装 | 更新 |
|---------|---------|---------|
| **Claude Code**(推荐) | `/plugin marketplace add mvanhorn/last30days-skill` | 通过 marketplace 自动更新,或 `claude plugin update last30days@last30days-skill` |
| **Grok**(xAI Build CLI) | 先 `grok plugin marketplace add mvanhorn/last30days-skill`,再 `grok plugin install last30days` | `grok plugin update last30days` |
| **Codex、Cursor、Copilot、Gemini CLI,或 50+ [Agent Skills](https://agentskills.io) 任一宿主** | `npx skills add mvanhorn/last30days-skill -g` | `npx skills update last30days -g` |
| **claude.ai**(网页) | [下载 `last30days.skill`](https://github.com/mvanhorn/last30days-skill/releases/latest/download/last30days.skill),经 claude.ai > Customize > Skills > + > Create skill > Upload a skill 上传 | 重新下载并重新上传 |
| **Claude Desktop** | [下载适用于你平台的 `.mcpb`](https://github.com/mvanhorn/last30days-skill/releases/latest),拖入 Settings > Extensions | 重新下载并拖入新 bundle |
| **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` 会显示两条记录。每台机器请只使用一种安装方式。
### Grok (xAI Build CLI)
[Grok Build](https://docs.x.ai/build/features/skills-plugins-marketplaces)(`grok`)将 last30days 作为原生插件安装。直接安装会跟踪仓库:
```bash
grok plugin install mvanhorn/last30days-skill
```
或者将此仓库添加为 marketplace 源,然后按插件名称安装:
```bash
grok plugin marketplace add mvanhorn/last30days-skill
grok plugin install last30days
```
添加 `--trust` 可跳过安装确认。使用 `grok plugin update last30days` 进行更新。Grok 也会读取 Claude Code 清单以保持兼容;原生 `.grok-plugin/` 组合是一等路径(也是官方 [xAI marketplace](https://github.com/xai-org/plugin-marketplace) 列表所指向的)。`npx skills add` 仍然是有效的跨宿主回退方案。
### Codex、Cursor、Copilot、Gemini CLI 及其他 Agent Skills 宿主
通过开放的 [Agent Skills](https://agentskills.io) CLI 安装——支持 50+ 种 harness,包括 `codex`、`cursor`、`github-copilot`、`gemini-cli`、`claude-code`、`windsurf`、`cline`、`continue`、`roo`、`aider-desk`、`opencode`、`goose` 等(完整列表见 [vercel-labs/skills repo](https://github.com/vercel-labs/skills)).
```bash
npx skills add mvanhorn/last30days-skill -g
```
`-g`(global)标志会安装到用户目录,使技能在所有项目中可用。不使用 `-g` 时,`npx skills` 会项目本地安装到 `./.skills/`(随仓库提交)。对于研究世界的工具,全局安装是你想要的。
Codex 桌面版及其他文件夹模式宿主既可在普通文件夹中工作,也可在 Git 仓库中工作。首次研究前,请让宿主 agent 从已加载的技能目录运行捆绑的 `scripts/last30days.py --preflight`;在源码检出中,等效命令为 `python3 skills/last30days/scripts/last30days.py --preflight`。它会显示配置来源、浏览器 cookie 计划、计划写入、可选命令以及被忽略的项目配置,且不会读取 cookie、写入文件或执行研究。
默认会为 `npx skills` 检测到的 harness 安装。要指定特定 harness(或多个):
```bash
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
```
之后更新请使用:
```bash
npx skills update last30days -g
```
或通过 `npx skills` 全局更新所有已安装项:
```bash
npx skills update -g
```
使用 `npx skills list -g` 和 `npx skills remove last30days -g` 进行列出和移除。
### claude.ai(网页版)
1. 从最新发布版 [下载 `last30days.skill`](https://github.com/mvanhorn/last30days-skill/releases/latest/download/last30days.skill)
2. 前往 [claude.ai > Customize > Skills](https://claude.ai/customize/skills)
3. 在 Skills 面板中点击 `+` 按钮 > 点击 `Create skill` > `Upload a skill`,然后浏览或拖放文件
请先在 Capabilities 下启用「Code execution and file creation」——否则技能无法运行。
### Claude Desktop
Claude Desktop 通过 `.mcpb` 捆绑包(一键式 Model Context Protocol 包)将 `/last30days` 安装为 MCP 服务器。
1. 前往 [最新发布版](https://github.com/mvanhorn/last30days-skill/releases/latest) 并下载适用于你平台的 `.mcpb`:
- macOS Apple Silicon:`last30days-pp-mcp-darwin-arm64.mcpb`
- macOS Intel:`last30days-pp-mcp-darwin-amd64.mcpb`
- Linux x86_64:`last30days-pp-mcp-linux-amd64.mcpb`
2. 打开 Claude Desktop,前往 Settings > Extensions,拖入该文件。
3. 出现提示时,粘贴你要启用的数据源的 API 密钥。每个字段均为可选——若全部跳过,引擎会降级为仅网页模式。密钥存储在操作系统钥匙串中。
4. 重启 Claude Desktop。让 Claude「research Peter Steinberger」或任意主题,它会调用 `research` 工具。
**宿主要求:** PATH 中需有 Python 3.12+。捆绑包包含引擎源码,但使用你本地的 Python 解释器。Windows 请从 [python.org](https://www.python.org/downloads/) 安装;macOS 及多数 Linux 发行版自带兼容版本。
**密钥不会与 Code 技能同步。** Claude Desktop 与 Claude Code 按设计维护独立的凭据存储。如果你已为 Code 技能配置过 `~/.config/last30days/.env`,此处需要重新输入相同密钥一次。
Windows 支持暂缓,待各平台 manifest 入口点理顺后推出;请在后续 issue 中跟踪。
### OpenClaw
```bash
clawhub install last30days-official
```
对于 `/last30days` 研究之外的 X/Twitter 操作工作流,例如发推或回复、粉丝导出、媒体处理、监控和抽奖,请使用 [TweetClaw](https://github.com/Xquik-dev/tweetclaw) 作为配套 OpenClaw 插件。TweetClaw 由 Xquik-dev 维护,仅作为可选配套路径列出,并非 last30days 的依赖或背书。
### 手动安装(开发者)
```bash
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 秒内解锁更多数据源,包括免费的 arXiv 和 Techmeme CLI。
## 自带密钥(BYOK)
这些平台彼此没有关联。X 不知道 Reddit 的看法。YouTube 看不到 TikTok。但你可以自带 API 密钥和浏览器 token,瞬间即可同时访问它们全部。
| 数据源 | 你需要 | 费用 |
|---------|---------------|------|
| Reddit(含评论)+ HN + Polymarket + GitHub + StockTwits | 无 | 免费 |
| arXiv + Techmeme | 免费 CLI,首次运行设置时自动安装 | 免费 |
| X / Twitter | 在任意浏览器登录 x.com,或设置 `XQUIK_API_KEY` / `XAI_API_KEY` | 浏览器 cookie 免费;密钥因提供商而异 |
| YouTube | `brew install yt-dlp` | 免费 |
| Bluesky | 来自 bsky.app 的应用密码 | 免费 |
| TikTok + Instagram + Threads + Pinterest + LinkedIn + YouTube 评论 | ScrapeCreators 密钥 | 10,000 次免费调用,之后按量付费 |
| 小红书(RED) | 运行已登录的 x-mcp 浏览器插件或 `xiaohongshu-mcp` 服务,并在每次运行时通过 `--search xhs` 选择启用,或在 `.env` 中设置 `INCLUDE_SOURCES=xiaohongshu`;last30days 会先探测 `http://localhost:18060` 再探测 `http://host.docker.internal:18060`,或使用 `XIAOHONGSHU_API_BASE` 指定自定义 URL | 无需 last30days API 密钥;取决于你本地的浏览器会话服务 |
| DripStack(付费财经简报) | 选择启用:每次运行使用 `--search dripstack`,或在 `.env` 中设置 `INCLUDE_SOURCES=dripstack` | 无需密钥;免费公开搜索 API |
| Perplexity Sonar / Search API / Deep Research | Perplexity 密钥,或 OpenRouter 密钥作为 Sonar 回退 | 按量付费 |
| 网页搜索 | Brave Search 密钥 | 每月 2,000 次免费查询 |
### macOS 钥匙串(可选)
在 macOS 上,你可以将密钥存储在系统钥匙串中,而不是 `.env` 文件。技能会自动以最低优先级来源读取它们——发生冲突时,`.env` 文件和进程环境变量仍优先。
```bash
# Interactive setup — prompts for each known key, skip with empty input
skills/last30days/scripts/setup-keychain.sh
# Or store a single key by hand
security add-generic-password -a "$USER" -s last30days-XAI_API_KEY -w "xai-..."
# Inspect / clean up
skills/last30days/scripts/setup-keychain.sh --list
skills/last30days/scripts/setup-keychain.sh --delete XAI_API_KEY
```
条目以服务名 `last30days-` 存储在当前用户下。在非 Darwin 平台上,加载器为 no-op(空操作),因此 Linux/Windows 用户的行为不会有变化。
已有其他 Keychain 服务名下的密钥?请设置 [CONFIGURATION.md](CONFIGURATION.md#reusing-existing-macos-keychain-items) 中描述的非机密 `LAST30DAYS_KEYCHAIN_ALIASES` 映射,而不是复制密钥。
有关完整的按数据源密钥矩阵、推理提供商(reasoning provider)优先级和网页搜索后端优先级,请参阅 [CONFIGURATION.md](CONFIGURATION.md)。
## 配置
第一天你可能想知道的两件事:
**研究文件保存在哪里。** `LAST30DAYS_MEMORY_DIR` 默认为 `~/Documents/Last30Days/`(Windows:`C:\Users\\Documents\Last30Days\`)。可在 shell 中将该环境变量设为任意路径进行覆盖,或每次运行时使用 `--save-dir `。需要按 `--emit` 所选格式将渲染结果输出到精确路径时,请使用 `--output `。使用 `--save-suffix=` 可将同一主题的多个变体分开保存(例如按客户区分)。每次 `--save-dir` 运行会生成 `-raw[-suffix].md`。运行 `python3 skills/last30days/scripts/last30days.py --preflight` 可在研究运行前预览计划写入的内容。
**面向智能体与工作流的结构化输出。** 向 `/last30days` 请求机器可读的 JSON,即可获取稳定、带版本号的智能体配置文件(agent profile)。在脚本或开发中直接使用引擎时,运行 `python3 skills/last30days/scripts/last30days.py "AI coding agents" --emit=json`;仅当需要未版本化的内部 `Report` 转储时,才添加 `--json-profile=raw`。请参阅 [JSON 导出字段参考与版本策略](docs/reference/json-export.md)。
**无主题发现。** 向 `/last30days what's trending in AI agents?` 请求,可获取排序后的发现简报(discovery brief),而无需研究你已知晓的主题。在脚本或开发中直接使用引擎时,运行 `python3 skills/last30days/scripts/last30days.py --discover "AI agents"`;添加 `--emit=json` 可获取带版本号的发现契约(discovery contract)。发现模式与位置参数主题及 `--drill` 互斥。
**跨运行的趋势监控。** 默认模式每次运行生成一份全新的 Markdown 快照。若要随时间累积发现,请添加 `--store` 以持久化到 SQLite 数据库,然后使用 [`scripts/watchlist.py`](skills/last30days/scripts/watchlist.py) 进行定时运行(发现新内容时可选择通过 Slack / webhook 推送),并使用 [`scripts/briefing.py`](skills/last30days/scripts/briefing.py) 生成每日/每周摘要。完整节奏模式见 [CONFIGURATION.md](CONFIGURATION.md#trend-monitoring-store--watchlist--briefings)。
**可订阅的研究库。** 向 `/last30days` 请求以构建你的库订阅源,或直接使用 `python3 skills/last30days/scripts/last30days.py library feed` 进行脚本与开发。它会将已保存的简报转换为 `index.html`、本地 Atom `feed.xml` 以及可读的简报页面。仅当你希望托管 HTML 索引和简报页面时才添加 `--publish`;发布需显式选择加入,且默认公开。要使 Atom 订阅源可被订阅,请将生成的输出目录托管在 GitHub Pages 等静态主机上。
**搜索你已研究过的一切。** 向 `/last30days search my library for MCP servers` 或 `/last30days have I researched MCP servers before?` 提问。直接使用引擎时,运行 `python3 skills/last30days/scripts/last30days.py library search "MCP servers"`。搜索为离线且确定性的:它会增量索引与库订阅源相同的已保存简报,合并匹配的每次运行存储记录,并按主题与日期分组结果。当先前研究与当前主题重叠时,新运行还会显示紧凑的 **From your library**(来自你的库)部分;设置 `LAST30DAYS_LIBRARY_CONTEXT=off` 可禁用该被动上下文。
按客户包装的脚本、自定义类别同类 subreddit,以及进行中定制实验性 beta 通道,也记录在 [CONFIGURATION.md](CONFIGURATION.md) 中。
## 展示:社区研究订阅源
发布了定期 AI 更新、市场观察,或对 last30days 奇妙而小众的痴迷?在 [社区展示帖](https://github.com/mvanhorn/last30days-skill/issues/532). 中分享公开库 URL——或在静态主机上托管 `feed.xml` 后分享 Atom URL。所有者提交后,社区订阅源将在此链接;在此之前,该帖子为收集入口。
## 工作原理
1. **你输入一个主题。** 人物、公司、产品、技术、「X vs Y」。任何内容。
2. **智能体解析关键对象。** 查找 X 账号(含创始人)、GitHub 仓库、subreddit、TikTok 话题标签、YouTube 频道。对「Kanye West」,它知道 r/hiphopheads、@kanyewest 以及 YouTube 上的「bully review」。对「OpenClaw」,它会解析 GitHub 上的 openclaw/openclaw 并获取实时 star 数。
3. **所有来源并行搜索。** 多查询扩展。结果按互动量、相关性与新鲜度评分。
4. **别人没有的深度。** 来自反应类视频的完整 YouTube 字幕。带点赞数的 Reddit 热门评论。TikTok 字幕。Polymarket 赔率。不只是标题和链接。
5. **同一故事,合并呈现。** Reddit 上宣布 Wireless Festival、X 上讨论、TikTok 上的票价 = 一个聚类,而非三个独立条目。
6. **综合为一份简报。** 基于具体数据。按来源引用。按人们实际互动内容排序。不是「这是我找到的」,而是「这才是重要的」。
7. **然后它成为你的专家。** 运行一次后,你的 Claude 会话就掌握社区所知的一切。追问问题。让它写提示词、起草邮件、规划行程、设计系统——全部基于当下真实信息。
## 用户评价
> "我发现了一个 Claude Code 技能,能在过去 30 天内跨 Reddit、X、YouTube 和 HN 研究任何主题,然后为你写好提示词。我以前每写一篇内容前都要手动搜 Reddit 和 X 做调研。一个标签一个标签、一个帖子一个帖子。那部分要花 90 分钟。这个技能把它省掉了。" -@itsjasonai
> "这一个技能取代了我整个研究工作流。你给它一个主题,它就从 Reddit、X 和网络上抓取人们真正在讨论的内容。不是旧博客文章,而是过去 30 天的真实对话。" -@itswilsoncharles
> "今天 GitHub 上 10 个 trending 仓库里有 5 个是 Claude 工具。#1:mvanhorn/last30days-skill" -@yieldhunter95
## 开源
MIT 许可证。无追踪。无分析。你的研究留在本机。2,700+ 项测试。
基于 Python 3.12+、yt-dlp、Node.js(内嵌 Bird 客户端用于 X 搜索)和 ScrapeCreators API 构建。v3 引擎架构由 [@j-sperling](https://github.com/j-sperling). 设计。
完整社区贡献者列表见 [CONTRIBUTORS.md](CONTRIBUTORS.md),版本历史见 [CHANGELOG.md](CHANGELOG.md)。
## Star 历史
---
**@slashlast30days** · [github.com/mvanhorn/last30days-skill](https://github.com/mvanhorn/last30days-skill)