⚠️ 使用前先理解信任邊界:本 skill 的價值就在於「打通 walled garden」。為了打通,它會 (a) 讀取你瀏覽器的 X / Twitter cookie、(b) 接受多個第三方 API key (ScrapeCreators / OpenRouter / Brave / 等)、(c) 透過內嵌 JS 客戶端對 X 做未授權的 API 呼叫(X TOS 灰色地帶)。本教學第 6 章會詳細說明每個信任面。
last30days-skill 完整教學
30 分鐘從安裝到能對任何主題(人 / 公司 / 產品 / 事件)跑出 grounded 跨平台 brief。
1. 專案定位
1.1 一句話總結
/last30days 是 Matt Van Horn 開源的 AI agent-driven 跨平台研究 skill,把 13+ 個 walled garden(Reddit / X / YouTube / TikTok / Instagram / HN / Polymarket / GitHub …)並聯檢索,用 engagement 評分後合成成一份 grounded brief。
1.2 它解決什麼問題?
研究 / 內容 / 銷售工作者的痛點:
- Google 只看到編輯端內容:Reddit comment、X thread、TikTok caption、YouTube transcript 全是搜不到的暗網
- 每平台都是 walled garden:要查 X 要 cookie,要查 YouTube transcript 要 yt-dlp,要查 TikTok 要 ScrapeCreators,要查 Polymarket odds 要爬 API
- 手動切 tab 太累:開 10 個分頁、複製貼上、整理成 Notion 寫一篇文章 = 90 分鐘
- AI 只看到舊資料:ChatGPT / Claude / Gemini 各有平台限制,沒一個能同時看 Reddit + X + YouTube + TikTok + Polymarket
/last30days 的解法:
- BYOK (Bring Your Own Keys):全部本機跑,cookie / API key 在你機器上
- 平行 fanout 13+ 來源:planner 先規劃哪個 source 做哪個 query,並行發
- Engagement-weighted 評分:Reddit 1500 upvotes > 一篇沒人看的 blog;TikTok 3.6M views 比 press release 真實
- AI judge 合成:跨來源 cluster merge → grounded brief(不是 “here’s what I found”,是 “here’s what matters”)
1.3 與類似工具的差異
| 工具 | 來源覆蓋 | last30days 差異 |
|---|---|---|
| Google search | 編輯內容 | last30days 看 Reddit / X / TikTok 等 walled garden |
| Perplexity | 公開 web + 一些 X | last30days 直接讀 Reddit comments、TikTok captions、YouTube transcripts、Polymarket odds |
| ChatGPT search | 有 Reddit deal,但無 X / TikTok | last30days 全部都讀 |
| Gemini Deep Research | 強在公開 web | last30days 強在「人在哪裡 talk shit」 |
| Apify scrapers | 自己組 | last30days 已經組好且 BYOK / 開源 |
1.4 適合誰
- ✅ 內容創作者:寫文章 / 拍 YouTube 前先掃近 30 天社群討論
- ✅ 銷售 / BD:見客戶前
/last30days <client_name>看他們最近在 X / Reddit 講什麼 - ✅ VC / 投資人:盡調某新創前掃社群口碑 + Polymarket odds
- ✅ AI / Tech 重度使用者:追新模型、新工具、新 prompt pattern
- ✅ Trip planning / 消費決策:去 Disney / Universal 前看近 30 天社群抱怨什麼
- ⚠️ 需要 audit trail / 機密研究:本工具會打外部 API,不適合機密 / NDA 標的
2. 安裝指南
2.1 環境前提
| 元件 | 版本 / 需求 | 說明 |
|---|---|---|
| Python | 3.12+ | engine 主程式 |
| Node.js | 任意現代版 | vendored Bird client (X scraping) 用 |
| 平台 host | 4 選 1 | claude.ai web / Claude Code / OpenClaw / Hermes / Gemini CLI |
2.2 安裝方式(5 選 1)
方法 1:claude.ai web(最簡單,無需 CLI)
- 到 latest release 下載
last30days.skill檔案 - claude.ai → Settings > Capabilities > Skills
- 務必先打開 “Code execution and file creation”(skill 不會跑)
- 點
+拖入.skill檔 - 在對話內打
/last30days <topic>觸發
方法 2:Claude Code (CLI)
1/plugin marketplace add mvanhorn/last30days-skill
⚠️ 已知問題:v3.0.0 plugin.json 寫成
"skills": ["./"]會被 Claude Code validator 拒絕(issue #362)。若 install 失敗,等 v3.0.1+ 或手動修:1# 編輯 cache 內 manifest 2sed -i.bak 's|"skills": \[".*"\]|"skills": "./skills/"|' \ 3 ~/.claude/plugins/cache/last30days-skill/last30days/3.0.0/.claude-plugin/plugin.json升級:
claude plugin update last30days@last30days-skill
方法 3:OpenClaw / ClawHub
1clawhub install last30days-official
方法 4:Gemini CLI
1# Gemini CLI v0.9.0 有 install bug,要先 clone
2git clone https://github.com/mvanhorn/last30days-skill
3gemini extensions install ./last30days-skill
方法 5:Hermes / 手動
1git clone https://github.com/mvanhorn/last30days-skill.git ~/.claude/skills/last30days
或從 source build claude.ai .skill 檔:
1cd last30days-skill
2bash skills/last30days/scripts/build-skill.sh # 產出 dist/last30days.skill
2.3 第一次跑 — 30 秒 setup wizard
1/last30days
setup wizard 會檢查 ~/.config/last30days/.env(或專案的 .claude/last30days.env),逐步問:
- 要不要設 ScrapeCreators API key?(10,000 free calls,解鎖 TikTok / Instagram / YouTube comments / Reddit comments)
- 要不要設 OpenRouter key?(Perplexity 等)
- 要不要設 Brave Search key?(web 來源)
- 要不要 log in X.com 在你瀏覽器?(提取 cookies 用)
完全不設定也能用:Reddit (公開 JSON) + HN + Polymarket + GitHub 出廠即用。
2.4 安裝後驗證
1/last30days nvidia earnings reaction
預期看到:
- 第一行
🌐 last30days v3.2.x · synced YYYY-MM-DDbadge - 多個 source 平行檢索進度
- 最後產 grounded brief 含每個 cluster 的 source 引用 + engagement 數字
3. 核心架構解析
3.1 整體流程
1 user query
2 │
3 ▼
4 ┌─────────────────────────┐
5 │ STEP 0: canonical path │ 確認 SKILL.md 是 cache 版而非 marketplace stale
6 └────────────┬────────────┘
7 ▼
8 ┌─────────────────────────┐
9 │ Pre-flight resolution │ 解析 entity (Person / Org / Product / Topic)
10 │ ─ GitHub repo lookup │ for "OpenClaw" → openclaw/openclaw + live stars
11 │ ─ X handles │ for "Peter Steinberger" → @steipete
12 │ ─ Subreddit detection │ for "Kanye West" → r/hiphopheads
13 │ ─ Competitor expansion │ for "OpenClaw" → +Hermes +Paperclip
14 └────────────┬────────────┘
15 ▼
16 ┌─────────────────────────┐
17 │ Planner (lib/planner) │ 決定哪個 source 跑哪個 query (capability map)
18 └────────────┬────────────┘
19 ▼
20 ┌─────────────────────────┐
21 │ Fanout (lib/fanout) │ 並行發 13+ source 的 query batches
22 │ parallel: reddit / x / │
23 │ youtube / tiktok / ... │
24 └────────────┬────────────┘
25 ▼
26 ┌─────────────────────────┐
27 │ Per-source enrich │
28 │ ─ Reddit comments │
29 │ ─ YouTube transcripts │
30 │ ─ TikTok captions │
31 │ ─ Polymarket odds │
32 └────────────┬────────────┘
33 ▼
34 ┌─────────────────────────┐
35 │ Normalize + Dedupe │ 跨來源做 lib/normalize → lib/dedupe → lib/cluster
36 │ → fusion (lib/fusion) │ same-story cluster merge (Wireless Festival 三來源 = 1 cluster)
37 └────────────┬────────────┘
38 ▼
39 ┌─────────────────────────┐
40 │ Score + Rerank │ engagement × relevance × freshness
41 │ (lib/relevance, │
42 │ lib/rerank, │
43 │ lib/quality_nudge) │
44 └────────────┬────────────┘
45 ▼
46 ┌─────────────────────────┐
47 │ Grounding │ cite-by-source (lib/grounding + lib/snippet)
48 └────────────┬────────────┘
49 ▼
50 ┌─────────────────────────┐
51 │ Render (lib/render + │ 輸出 markdown brief 或 self-contained HTML
52 │ lib/html_render) │ (--emit=html, v3.2.0+)
53 └─────────────────────────┘
3.2 35+ 個 source library 一覽
| 來源 | lib 檔案 | 認證需求 |
|---|---|---|
| Reddit (post + 公開 JSON) | reddit_public.py | 無 |
| Reddit (with comments) | reddit_enrich.py | ScrapeCreators API key |
| Hacker News | hackernews.py | 無 |
| Polymarket | polymarket.py | 無 |
| GitHub | github.py | 無(rate limit 較緊;用 gh auth token 提升) |
| X / Twitter | bird_x.py / xai_x.py / xurl_x.py / xquik.py | browser cookie 或 X API key |
| YouTube (search + transcript) | youtube_yt.py | yt-dlp(brew install) |
| YouTube (comments) | (via ScrapeCreators) | ScrapeCreators API key |
| TikTok | tiktok.py | ScrapeCreators API key |
instagram.py | ScrapeCreators API key | |
| Threads | threads.py | ScrapeCreators API key |
pinterest.py | ScrapeCreators API key | |
| Bluesky | bluesky.py | bsky.app handle + app password |
| Truth Social | truthsocial.py | optional token |
| Xiaohongshu (RED) | xiaohongshu_api.py | 不確定 |
| Digg AI 1000 | digg.py | digg-pp-cli on PATH(auto-detect) |
| Perplexity Sonar | perplexity.py | OpenRouter key |
| Web search | (lib + Brave) | Brave Search API key |
3.3 SKILL.md 的合約密度
skills/last30days/SKILL.md 是 1668 行的 prompt contract,特色:
- STEP 0 canonical path self-check:開頭就強制 LLM 確認自己讀的是 cache 版 SKILL.md 而非 marketplace stale 版(曾出 2026-04-22 三個 test run 因此誤跑)
- Named failure mode 文件化:v3.0.6 0/8 regression 復盤直接寫進 SKILL.md(“Opus 4.7 在 8 次連續 invocation 都把 /last30days 當成 generic keyword 改寫”)
- OUTPUT CONTRACT (BADGE + LAWS):強制第一行印
🌐 last30days v{VERSION} · synced {YYYY-MM-DD}作為 LAW 2 / LAW 4 的 enforcement anchor - Pinned SKILL_ROOT resolution:engine bash call 一律走
~/.claude/plugins/cache/last30days-skill/last30days/<latest>/,避免吃 OpenClaw 舊版
對「prompt 即工程」的工作流是教科書級範本。
3.4 entity resolution 的聰明處
planner 會根據 query 推測 entity type 與相關 anchor:
/last30days Peter Steinberger→ 解析到@steipete、GitHubsteipete/*、提及他的 r/ClaudeCode threads/last30days OpenClaw→ 解析到openclaw/openclawGitHub + live star count/last30days OpenClaw vs Hermes vs Paperclip→ 三個 entity 並聯 + auto-expand competitor → table view/last30days Iran vs USA→ 多市場 Polymarket 自動拉
3.5 Cookie 提取機制(關鍵安全議題)
chrome_cookies.py (265 行) 流程:
- 找 Chrome 的
CookiesSQLite 檔(~/Library/Application Support/Google/Chrome/Default/Cookies) - 呼叫 macOS
security find-generic-password -w -s "Chrome Safe Storage"取 Keychain 密碼(會跳系統授權對話框) - 用 PBKDF2 derive AES-128-CBC key
- 用系統
opensslCLI 解 v10 加密 cookie value(零 pip 依賴設計) - Chrome 130+ 多了 32-byte SHA-256 prefix,要 strip 掉
safari_cookies.py (182 行) 解析 macOS 上的 binary cookie 格式。
為什麼需要這個? X / Twitter 沒有合理價的官方 API;要查 X 必須用 logged-in cookie。但這代表 skill 有讀你 cookie 的能力(即使只用於指定 domain),使用前要清楚信任邊界(見 §6)。
4. CLI / 用法詳細
4.1 基本觸發
1/last30days <topic>
<topic> 可以是:
- 人名:
Peter Steinberger、Sam Altman、Kanye West - 公司:
Anthropic、Roboflow - 產品:
Claude Code skills、Universal Epic Universe - 比較:
OpenClaw vs Hermes vs Paperclip、Iran vs USA - 事件:
nvidia earnings reaction、Wireless Festival cancellation - 學習:
Nano Banana Pro prompting、React 19 server components
4.2 重要 flags(從 SKILL.md / 變更紀錄推測常用 flag)
| flag | 用途 |
|---|---|
--emit=html | 產 self-contained shareable HTML brief(v3.2.0+) |
--store | 存到 watchlist(持續追蹤主題) |
--ephemeral / --no-topic | 跑一次但不建 recurring topic(issue #275) |
--competitors | 自動發現並比較競品(v3 加) |
--vs <X> <Y> | 顯式 N-pass 比較模式 |
--help | 印目前所有 flag(要從 cache 版 SKILL.md 同位讀) |
注意:因為 skill 整個是 LLM 讀 SKILL.md 推導動作,flag 由 LLM 解析,不是傳統 argparse。實際支援度以 ~/.claude/plugins/cache/.../SKILL.md 內為準。
4.3 設定檔位置(兩層)
| 路徑 | 用途 |
|---|---|
.claude/last30days.env | 專案層(覆寫全域) |
~/.config/last30days/.env | 使用者全域 |
| 環境變數 | fallback |
權限必須是 600 或 400,否則 SessionStart hook 會警告 chmod。
4.4 環境變數參考
1# 主 keys
2SCRAPECREATORS_API_KEY=sc_xxxxxx # TikTok / Instagram / Threads / Pinterest / Reddit comments / YT comments
3AUTH_TOKEN=xxx CT0=xxx # X / Twitter cookies (從瀏覽器)
4XAI_API_KEY=xai-xxxxxx # 替代 X scraping 的 xAI 入口
5OPENAI_API_KEY=sk-xxxxxx # OpenAI judge LLM (synthesis)
6OPENROUTER_API_KEY=sk-or-xxxxxx # Perplexity / 多 model fallback
7GEMINI_API_KEY=AIzaxxxxxx # Gemini judge
8BRAVE_API_KEY=BSAxxxxxx # web search
9BSKY_HANDLE=xx.bsky.social BSKY_APP_PASSWORD=xxx
10TRUTHSOCIAL_TOKEN=xxx
11APIFY_API_TOKEN=apify_api_xxxxxx # (optional 替代某些 source)
12
13# behavior
14SETUP_COMPLETE=1 # skip setup wizard
15LAST30DAYS_CONFIG_DIR=/custom/path # override config dir (testing)
4.5 SessionStart hook 行為
hooks/scripts/check-config.sh 在 Claude Code session 啟動時跑(timeout: 5 秒):
- 確認
.claude/last30days.env或~/.config/last30days/.env權限是否 ≤ 600 - 計算 active source 數量(HN + Polymarket 永遠免費;其他依 key 啟用)
- 印 ready message 或 setup welcome message
沒有寫檔,沒有外連。純 read-only 檢查。
5. 應用場景
5.1 Workflow A — 銷售前掃客戶 30 天社群動向
1/last30days <client_company_or_CEO>
預期收:他們最近發的 tweets、Reddit 上對這家公司的討論、YouTube 上的 podcast 出席、GitHub 上的 PR / release(如果 tech 公司)、Polymarket 對其相關事件的 odds。比 LinkedIn 真實 100 倍。
5.2 Workflow B — 內容創作前找 community 真正關注的 angle
1/last30days React 19 server components --emit=html
得 self-contained HTML brief(v3.2.0+),可直接 share 給編輯。每個論點背後都 cite Reddit thread / X post / YouTube video。
5.3 Workflow C — 三方 / 多方比較
1/last30days OpenClaw vs Hermes vs Paperclip
planner 認出三個 entity → 並聯 fanout → 自動 table view(架構 / memory / security / 適用場景)。星數 / release pace 即時抓 GitHub API。
5.4 Workflow D — 旅遊 / 消費決策
1/last30days Universal Epic Universe
社群最近抱怨什麼(wait time / closures)、隱藏 tip、即將 launch 設施。
5.5 Workflow E — 預測 / 賭 / 投資 sentiment
1/last30days Iran vs USA
Polymarket odds + 13+ news / social source 合成。“Day 38 of war / Polymarket: ceasefire by Dec 31 at 74%” 這種帶數字的 grounded statement。
5.6 Workflow F — 自家產品的市場感知
1/last30days <your_product_name>
Reddit / X 上對你產品的 raw 評論、競品提到你的次數、TikTok 上有沒有人在示範。對 PMF 期 startup 是 weekly ritual。
6. 資安掃描報告
6.1 整體風險等級
🟡 中等(程式碼乾淨;功能本身需要明確的信任邊界宣告)
6.2 程式碼安全
🟢 無發現:
| 項目 | 結果 |
|---|---|
eval() / exec() | 全 src 無 |
os.system() / shell=True | 全 src 無 |
pickle.load | 無 |
Subprocess 用 list(cmd) 不是 string | ✅ 正確(無 command injection) |
| Hooks SessionStart 行為 | 純讀檔 + 印訊息,無寫檔 / 無外連 |
| 隱藏字元 / Unicode 攻擊 | 無 |
| Hardcoded secret | 無(env.py 全部從環境變數 / .env 讀) |
6.3 行為信任邊界(必看)
為了打通 walled garden,本 skill 會做下列事情。使用者必須清楚同意:
🟡 6.3.1 讀本機瀏覽器 cookie
chrome_cookies.py / safari_cookies.py / cookie_extract.py (合計 826 行) 會:
- 開 Chrome 的 SQLite cookie DB(
~/Library/Application Support/Google/Chrome/Default/Cookies) - 呼叫 macOS
securityCLI 取 Keychain 內 Chrome 的 master encryption key(會跳系統 dialog 要求輸入 macOS 密碼) - 用 openssl 解 AES-128-CBC v10 cookie value
- 解析 Safari binary cookie 格式
理論上能讀整個 cookie 庫(不只 X.com)。實務上 skill 只用於提取 X 認證 cookie,但程式碼能力大於用途;高度敏感環境建議:
- ⛔ 不要在跑公司機密信箱 / 密碼管理工具的同個 Chrome profile 跑
- ✅ 開獨立 Chrome profile 只 log in X,給 skill 用
- ✅ 或改用 X API key(
XAI_API_KEY)走純 API 路徑
🟡 6.3.2 跨 13+ 第三方 API key
下面 keys 都會經本 skill 進出:
| Key | 風險 |
|---|---|
OPENAI_API_KEY | judge LLM 看你 query + 部分 retrieved content |
OPENROUTER_API_KEY | 同上 |
XAI_API_KEY | 同上 |
SCRAPECREATORS_API_KEY | TikTok / Instagram / Reddit comments — provider 看到你查啥 |
BRAVE_API_KEY | web search — provider 看到 query |
AUTH_TOKEN / CT0 | 你 X 帳號 cookie,可被 misuse 為登入 X |
緩解:
- 用專用 API key(不是公司主 key)
- 設月度上限 / spending limit(每個 provider 都有)
- 把
~/.config/last30days/.env設chmod 600(hook 會檢查) - 不要在共用機器跑
🟡 6.3.3 X / Twitter scraping (TOS 灰色地帶)
scripts/lib/vendor/bird-search/ 內嵌 JS Twitter client,逆向 X 內部 GraphQL endpoint。這違反 X 的 Terms of Service §III「不得使用未授權自動工具存取服務」。
實務後果:
- 個人輕度使用:X 大概不會抓你(流量太小)
- 自動化 / 商用 / 高頻:X 可能 lock 你帳號(曾發生)
- 法律層級:在美國 / 歐盟 scraping public data 多被視為合法(hiQ v. LinkedIn 案例),但仍可能被 X 個別 ban
緩解:用 XAI_API_KEY(xAI 自家 X 資料 API,付費但合法)取代 cookie scraping。
🟢 6.3.4 SessionStart hook(無風險)
hooks/scripts/check-config.sh 純 read-only 檢查 + 印訊息,timeout 5 秒。可審計(73 行 bash),無外連。
6.4 三層風險總結
| 層級 | 等級 | 摘要 |
|---|---|---|
| 程式碼本身 | 🟢 低 | 無危險 pattern,subprocess 安全使用 |
| 信任邊界(cookie + API key) | 🟡 中 | 程式能讀整個 Chrome cookie;多 API key 出口 |
| TOS / 法律邊界(X scraping) | 🟡 中 | X TOS 灰色地帶;個人輕度使用實務上沒事 |
6.5 安全使用 checklist
-
.env檔權限設chmod 600(hook 會警告) - 用獨立 Chrome profile 給 skill(避免主 profile cookie 被讀)
- 每個第三方 API key 設獨立帳號 + spending limit
- 不在共用 / 公司機密機器上跑
- 高頻 / 商用想穩定,付費走
XAI_API_KEY而非 cookie scraping - 機密 / NDA 標的不要查(query 會打 OpenAI / OpenRouter / Brave / ScrapeCreators 等多家 provider)
7. FAQ
Q1:免設定能跑嗎? A:可以。Reddit (公開 JSON) + HN + Polymarket + GitHub 出廠即用。setup wizard 是讓你逐步解鎖更多 source。
Q2:Claude Code 安裝失敗顯示 “skills: Invalid input”? A:v3.0.0 已知 bug(issue #362),plugin.json 錯寫成 array。等 v3.0.1+ release 或手動修 cache:
1sed -i.bak 's|"skills": \[".*"\]|"skills": "./skills/"|' \
2 ~/.claude/plugins/cache/last30days-skill/last30days/3.0.0/.claude-plugin/plugin.json
Q3:為什麼第一行要印 badge? A:SKILL.md 的 OUTPUT CONTRACT 強制:badge 是 LAW 2 / LAW 4 的 enforcement anchor。沒 badge 表示 LLM 根本沒讀 SKILL.md → 強制 abort 重來。
Q4:能用在公司 / 商用嗎? A:MIT License 允許商用,但注意:
- 多 API key 各 provider 自家有 TOS(OpenAI 商用 ToS / Brave 商用 plan)
- X scraping 違反 X TOS(用 XAI_API_KEY 走 paid 通道)
- 公司資安政策可能禁讀 browser cookie
Q5:跑一次大概多少 API 成本? A:取決於設定 source 數量:
- 純免費 source:$0
- 加 ScrapeCreators:免費 10K calls,每次 query ~10-50 calls → 可跑 200-1000 次
- 加 OpenRouter Perplexity:每次 query ~$0.01-0.05
- 加 Brave Search:免費 2K queries / 月
Q6:怎麼追蹤特定主題長期變化?
A:/last30days <topic> --store 把它加進 watchlist。scripts/watchlist.py 是 watchlist manager(299 行)。
Q7:跨 model 表現? A:作者主要在 Opus 4.7 上 calibrate(SKILL.md 多次提及)。Sonnet 4.5 / Haiku 應該也能跑但 SKILL.md 1668 行對小 model context 壓力大。
Q8:可以私部署 / 內網跑嗎? A:除了 Reddit / HN / Polymarket / GitHub 是公開 web,其他 source 都要連外(X / YouTube / TikTok 等)。Synthesis judge LLM 也要連 OpenAI / OpenRouter / xAI。真正內網跑需要全部 source 都換成 self-hosted(Ollama judge + 公司內部知識庫)。
8. 進階技巧
8.1 用 --emit=html 產可分享的 brief
1/last30days nvidia earnings reaction --emit=html
得到一份 self-contained HTML(無外部 CSS / JS 依賴),可直接 email / Slack 給同事。v3.2.0 新加。
8.2 把 watchlist 跑成 cron
1# 每天早上 8 點掃所有 watched topics
20 8 * * * cd /path && claude /last30days --refresh-watchlist --emit=html
8.3 搭配 --competitors 自動找競品
1/last30days <your_product> --competitors
planner 自動 expand 同類別產品,跑 N-pass 比較。
8.4 自家加新 source
scripts/lib/<new_source>.py 實作 Source protocol(看 bluesky.py 是好範本,不到 200 行),然後加進 SOURCE_CAPABILITIES(issue #319 提示這個 dict 是 planner 知道 source 存在的關鍵)。PR 上去社群很歡迎。
8.5 對 entity 用 GitHub 模式
1/last30days Peter Steinberger
自動觸發 GitHub person-mode:抓他 30 天 PR、release、commit velocity、cross-org 活動。對 tech 人物特別準。
8.6 ELI5 mode
/last30days <topic> --eli5(v3.x)會把 brief 簡化到「五歲小孩看懂」。Onboarding new team member 好用。
9. 整合進其他工作流
9.1 與 ai-knowledge-template (本專案)
1# 跑完 brief 存進 inbox
2/last30days <topic> --emit=html > /tmp/brief.html
3cp /tmp/brief.html "inbox/$(date +%Y-%m-%d)-last30days-<topic>.html"
4
5# 或讓 brief 進 graphify 知識圖
6graphify analyze /tmp/brief.html
9.2 與 NotebookLM
把 brief 餵進 NotebookLM 做 follow-up Q&A:
1nlm: /tmp/brief.html
9.3 與 Discord 自動發
寫 cron + webhook:每天早上把 watched topics 的 brief 自動 post 到團隊 channel。
9.4 與其他 Claude Code skills
| 搭配 | 用途 |
|---|---|
/web-research 等廣度型 skill | last30days 做時間 + engagement 維度,互補 |
/spec / /plan | 用 last30days 蒐集需求 → 直接餵進 spec workflow |
/competitor-analysis | 用 --competitors flag 直接得 N-pass 比較 |
10. 重點摘要 Checklist
-
/last30days= 跨 13+ walled garden 的 BYOK 研究 skill - 核心定位:Google 搜編輯,這個搜「人」(Reddit upvotes / X likes / Polymarket 真錢)
- 安裝 5 種:claude.ai / Claude Code / OpenClaw / Hermes / Gemini CLI
- 0 設定即用:Reddit + HN + Polymarket + GitHub
- 進階加值:ScrapeCreators (10K free) + browser cookie 解鎖 X / TikTok / Instagram
- 🟡 安全注意:讀本機 Chrome / Safari cookie;多 API key 出口;X scraping TOS 灰色地帶
- 建議使用:獨立 Chrome profile + API key spending limit +
.env chmod 600 - Plugin v3.0.0 已知 bug:
"skills": ["./"]拒絕;改用"./skills/"字串型 - v3.2.0 新功能:Digg AI 1000 source +
--emit=htmlself-contained brief - Prompt engineering 教科書:1668 行 SKILL.md 含 STEP 0 self-check + LAWs + named failure mode 復盤
- 作者活躍:mvanhorn 維護,社群 PR 流入快(4 個月 25.8k stars)
11. 進一步閱讀
官方
- 主 repo:
mvanhorn/last30days-skill - Releases:https://github.com/mvanhorn/last30days-skill/releases
- CHANGELOG:CHANGELOG.md
- SKILL.md(隨 release 變動):在你本機
~/.claude/plugins/cache/last30days-skill/last30days/<latest>/SKILL.md
周邊
- ScrapeCreators — TikTok / Instagram / Reddit comments API
- Polymarket — 預測市場
- yt-dlp — YouTube transcript 提取
- OpenRouter — 多 LLM provider 統一 API
- Brave Search API
- Bluesky AT Protocol
社群討論
- 安裝相關 issue #362 (plugin.json validator)
- 版本一致性 issue #284
- xquik missing capability issue #319
同類 / 競品
- Perplexity Sonar(單 API 多源整合)
- ChatGPT search(有 Reddit deal 但無 X / TikTok)
- Gemini Deep Research
免責聲明:本教學由 AI Knowledge Template 自動產生。本 skill 涉及讀取本機 browser cookies、跨多家第三方 API、X scraping 等行為;使用者完全自負:(a) 對個人 / 商業帳號 cookie 的存取後果、(b) 各 API provider 與 X TOS 違反的後果、(c) skill 行為與資料外洩風險。本教學作者與 last30days-skill 開發團隊均不對誤用 / 違法使用負責。
Comments