Summary
SupSub 全文搜索 —— 在订阅源(公众号 / 网站)和文章正文里跨源搜索内容。用户说「搜一下 X 相关的内容 / 文章」「在 supsub 里搜 X」「查 X 相关文章」「全文搜索 X」「找 X 的内容」「search articles/content in SupSub」时使用本 skill。⚠️…
supsub-ai/supsub-cli
SupSub ? / 我的?
npx skills add supsub-ai/supsub-cli --skill supsub-search
SupSub 全文搜索 —— 在订阅源(公众号 / 网站)和文章正文里跨源搜索内容。用户说「搜一下 X 相关的内容 / 文章」「在 supsub 里搜 X」「查 X 相关文章」「全文搜索 X」「找 X 的内容」「search articles/content in SupSub」时使用本 skill。⚠️…
Other skills from supsub-ai/supsub-cli.
npx skills add supsub-ai/supsub-cli
Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.
master
Parsed from SKILL.md frontmatter.
Files included with this skill beyond the listing page.
SKILL.md
6,800 B
SUMMARY.md
1,051 B
全量搜索:在订阅源(公众号、网站)和文章正文里同时搜,可按类型缩小范围。
拿到一个词 X,看动词,不看 X 像不像专名:
| 用户说法 | 意图 | 走哪 |
|---|---|---|
| 「搜一下 X」「查 X 相关文章」「全文搜 X」 | 检索 | 本 skill(全站) |
| 「看一下最近 X 的内容」「X 最近有什么」「X 更新了吗」「读读 X」 | 浏览某主体的内容流 | 先比对订阅范围(见下) |
| 「我的订阅 / 我的公众号 / 我的网站」 | 已限定本人范围 | supsub-sub |
| 「我的关注点」 | 已限定本人范围 | supsub-focus |
浏览意图的处理步骤:
supsub sub list -o json + supsub focus list -o json;name / title 做包含匹配(忽略大小写);supsub sub contents --source-id <sid> --type <t>;命中关注点 → supsub focus contents --id <fid>;两边都命中就都列出来让用户选(同一个词很可能既是源名又是关注点主题);supsub search <X> 全站搜索,不要反问「要不要我帮你搜一下」。用户的浏览意图没有变,只是这个词不在他的订阅里;正确做法是搜完再说明「你没有订阅叫 X 的源,以下是全站结果」。实测教训:「看一下最近 Anthropic 的内容」曾被直接送进全站 search,返回一堆第三方评论文章,而用户自己订阅的 Anthropic 官方博客源、以及「Anthropic 公司动态与 AI 前沿进展」关注点被完全绕过。用户提某个主体名时,他自己订阅的那份优先。
curl -fsSL https://raw.githubusercontent.com/SupSub-AI/supsub-cli/master/scripts/install.sh | bash(native 安装,装到 ~/.local、支持后台自动更新);或包管理器 npm i -g @supsub/cli / pnpm add -g @supsub/clisupsub auth status 显示 Authenticated(首次使用先 supsub auth login)supsub auth login 为用户打开浏览器授权(命令会自动打开浏览器并阻塞等待授权,请用足够长的超时,如 10 分钟;用户只需在浏览器点确认,无需在终端输入任何内容),授权成功后重试原命令。无浏览器 / 无头环境再回退为提示用户 SUPSUBNOBROWSER=1 supsub auth login。supsub search <keyword> [--type <ALL|MP|WEBSITE|CONTENT>]
| Flag | Default | Description |
|---|---|---|
--type |
ALL |
搜索范围:ALL(源 + 文章)/ MP(公众号源)/ WEBSITE(网站源)/ CONTENT(文章正文) |
<keyword> 是位置参数,可以是中文或英文,建议用引号包起来避免 shell 拆分。
# 全量搜索(默认 ALL:同时搜源 + 文章)
supsub search "RAG"
# 只搜公众号
supsub search "阮一峰" --type MP
# 只搜网站
supsub search "hacker news" --type WEBSITE
# 只搜文章正文
supsub search "向量数据库" --type CONTENT
# JSON
supsub search "MCP 协议" -o json
JSON shape: {"success":true,"data":{"results":[...],"recommendations":[...],"prompts":[...]}}
results 是异质数组,每条形如:
// 源结果(type=MP 或 WEBSITE 时)
{ "type": "SOURCE", "data": { "sourceType": "MP", "sourceId": 12345, "isSubscribed": false, "img": "...", "name": "...", "description": "...", "introduction": "...", "url": "..." } }
// 文章结果(type=CONTENT 时)
{ "type": "CONTENT", "data": { "contentId": "...", "title": "...", "summary": "...", "url": "...", "coverImage": "...", "publishedAt": 1700000000, "publishedAtText": "2026-01-16 07:30", "sourceId": 12345, "sourceName": "...", "sourceType": "MP", "isSubscribed": false, "keywords": [...], "tags": [...] } }
recommendations 是后端推荐的相关源(SourceBasic[]),prompts 是后端给的搜索建议词。
文章结果的
publishedAtText("YYYY-MM-DD HH:mm")由 CLI 补齐,直接用它排序/展示即可,不要再自己去转publishedAt这个 Unix 秒(原字段保留只为方便数值排序)。SOURCE结果没有发布时间,不带该字段。
-o json:results[] 是 {type, data} 联合类型,先看 type 再访问 data 字段。--type ALL(默认)会同时返回源 + 文章混排;想精确控制结果类型时显式指定 MP / WEBSITE / CONTENT。supsub search "<词>" --type MP -o json → 取 data.results[].data.sourceId → supsub sub add --source-id <id> --type MP(参考 supsub-sub skill)。supsub search "<词>" --type CONTENT -o json 拿到 contentId 与 sourceId,目前 CLI 没有"按 contentId 取文章详情"命令,需要通过 supsub sub contents --source-id <id> --type <T> 在该源内浏览。data.results[].data.isSubscribed 字段可以判断当前结果是否已经订阅,避免重复 sub add。pageSize=10),不支持翻页;如果想要更多结果,调整关键词缩小或扩大搜索范围。0 OK,1 业务错误(后端 4xx),2 UNAUTHORIZED,64 INVALID_ARGS(--type 不在白名单时),10 网络错误,11 服务端错误(5xx)。