用途:按用户需求从 npm pi-package 生态检索符合的 Pi Agent 包(extension/skill/theme/prompt),采集 npm 元数据与 GitHub 信号,质量评估后输出 Markdown 表格与风险提示。与 pi-trending 互补:后者做热度发现,本技能做“我要找做 X 的包”的需求驱动检索。
主要能力:工具为手动触发(disable-model-invocation: true),加载后由 LLM 主导澄清、评估与整理,脚本仅负责检索与采集。流程分四阶段:① LLM 简短提问澄清用途、类型偏好与约束,生成 2-5 个英文关键词;② 脚本对每个关键词调 npm search API(text=keywords:pi-package <kw>),取相关度 Top 250 窗口合并去重,硬过滤无 repository 或月下载 < 10 的包,按命中关键词数/最高 searchScore/月下载初排并截断到 --max-candidates(默认 50),并发 gh api 取 GitHub 信号(stars/pushed_at/open_issues);③ LLM 结合 literal_keywords、matched_keywords、description、downloads、github、types、dependents、npm_score 判断相关度与质量并过滤;④ 按相关度排序输出 Markdown 表格(序号、包名、类型、一句话说明、安装命令),末尾附风险提示。安装命令按类型生成:extension 用 bunx pi extension install <name>,skill 用 bunx skills add <name>,theme 用 bunx pi theme install <name>,prompt 用 bunx pi prompt install <name>,无类型提示查看包说明。
使用方式:uv run --script scripts/search_pi_extensions.py <kw1> <kw2> ... [--max-candidates N] [--max-results-per-keyword N] [--verbose]。脚本基于 uv 的 PEP 723 单文件,零依赖(标准库 + gh CLI);stdout 仅输出 JSON,诊断与警告写 stderr;须 gh CLI 已认证(gh auth status)。
限制:npm 检索为排序检索而非严格筛选,附加全文词不缩小 total,仅改变排序,可能漏掉未命中关键词但语义相关的包;github=null 的包无法评估社区活跃度;pi 生态很新,质量参差;数据时效为下载量近 30 天、GitHub 信号为查询时刻;未认证时 gh 限流 60 req/hour,可能批量失败。