关于 pp-pypi
用于检查和分析 PyPI 数据的只读 Printing Press CLI 技能。支持适合 Agent 的 JSON 输出、基于本地 SQLite 的工作流和 RSS 订阅,无需身份验证。
主要功能
- 01只读检查 PyPI
- 02获取最新包与更新 RSS
- 03自然语言命令查询
- 04Agent 模式 JSON 与字段筛选
- 05本地 SQLite 同步和搜索
- 06将输出发送到文件或 Webhook
适用场景
- 01查看近期新增的软件包
- 02跟踪 PyPI 最近更新
- 03在 Agent 工作流中查询 PyPI 数据
MCP 相关
README 说明可安装 PyPI MCP 服务 `pypi-pp-mcp` 并将其注册到 Claude Code,但未说明它提供的资源或工具。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ mvanhorn/ printing-press-library --skill pp-pypi安装后在 Claude Code 中输入/pp-pypi确认已加载。
详细介绍
Pypi — Printing Press CLI
前置条件:安装 CLI
此技能使用 pypi-pp-cli 二进制文件。**调用此技能中的任何命令之前,必须确认 CLI 已安装。**如果尚未安装,请先安装:
- 使用 Printing Press 安装程序安装。默认情况下,macOS/Linux 上的二进制文件安装到
$HOME/.local/bin,Windows 上安装到%LOCALAPPDATA%\Programs\PrintingPress\bin:npx -y @mvanhorn/printing-press-library install pypi --cli-only - 验证:
pypi-pp-cli --version - 确保所报告的安装目录位于将调用此技能的 Agent/运行时的
$PATH中。
如果 npx 安装失败(没有 Node、处于离线状态等),则改用直接通过 Go 安装(需要 Go 1.26.6 或更高版本):
go install github.com/mvanhorn/printing-press-library/library/developer-tools/pypi/cmd/pypi-pp-cli@latest
如果安装后 --version 报告“command not found”,说明运行时无法在 $PATH 中找到二进制文件目录。验证成功之前,请勿继续执行技能命令。
何时不使用此 CLI
对于需要创建、更新、删除、发布、评论、点赞、邀请、订购、发送消息、预订、购买或更改远程状态的请求,请勿启用此 CLI。此 CLI 仅提供用于检查、导出、同步和分析的只读命令。
命令参考
pypi — 管理 pypi
rss — 获取近期更新和最新软件包的 RSS 订阅源
pypi-pp-cli rss newest-packages— PyPI 上最新添加的软件包的 RSS 订阅源。pypi-pp-cli rss recent-updates— PyPI 上最近更新的软件包的 RSS 订阅源。
查找合适的命令
知道要做什么,但不确定该用哪个命令时,可以直接询问 CLI:
pypi-pp-cli which "<capability in your own words>"
which 会根据自然语言能力查询,从此 CLI 精选的功能索引中匹配最合适的命令。退出代码 0 表示至少有一个匹配项;退出代码 2 表示没有足够可靠的匹配项——请改用 --help 或使用更具体的查询。
身份验证设置
无需身份验证。
运行 pypi-pp-cli doctor 以验证设置。
Agent 模式
为任何命令添加 --agent。它会展开为:--json --compact --no-input --no-color --yes。
-
支持管道处理 — JSON 输出到 stdout,错误输出到 stderr
-
支持筛选 —
--select保留部分字段。点分路径可访问嵌套结构;数组会逐元素遍历。对于内容冗长的 API,这是缩小上下文的关键:pypi-pp-cli rss newest-packages --agent --select id,name,status -
支持预览 —
--dry-run显示请求,但不会发送 -
适合离线使用 — 有本地 SQLite 存储时,同步/搜索命令可以使用该存储
-
非交互式 — 从不提示输入,所有输入均通过标志指定
-
只读 — 不要使用此 CLI 执行创建、更新、删除、发布、评论、点赞、邀请、订购、发送或其他会修改状态的请求
响应封装
从本地存储或 API 读取数据的命令会将输出封装在一个来源信息对象中:
{
"meta": {"source": "live" | "local", "synced_at": "...", "reason": "..."},
"results": <data>
}
解析 .results 获取数据,并查看 .meta.source 以确认数据来自实时来源还是本地来源。只有当 stdout 是终端时,才会将便于阅读的 N results (live) 摘要输出到 stderr——通过管道接收输出的程序/Agent 会在 stdout 获得纯 JSON。
Agent 反馈
当你(或 Agent)发现此 CLI 有异常之处时,请记录下来:
pypi-pp-cli feedback "the --since flag is inclusive but docs say exclusive"
pypi-pp-cli feedback --stdin < notes.txt
pypi-pp-cli feedback list --json --limit 10
记录会保存在本地的 ~/.pypi-pp-cli/feedback.jsonl 中。除非设置了 PYPI_FEEDBACK_ENDPOINT,并且传入了 --send 或设置了 PYPI_FEEDBACK_AUTO_SEND=true,否则不会发送 POST 请求。默认情况下,反馈仅保存在本地。
请写下让你感到意外的地方,而不是提交缺陷报告。简短、具体,用一行描述:这才是能够不断积累价值的内容。
输出交付
每个命令都接受 --deliver <sink>。输出会发送到指定的接收端,并且可以同时输出到标准输出,也可以替代标准输出,这样 Agent 就能路由命令结果,无需手动通过管道传递。支持三种接收端:
| 接收端 | 效果 |
|---|---|
stdout | 默认;仅写入标准输出 |
file:<path> | 将输出原子写入 <path>(临时文件 + 重命名) |
webhook:<url> | 将输出正文 POST 到该 URL(使用 application/json;指定 --compact 时使用 application/x-ndjson) |
遇到未知方案时会拒绝请求,并返回结构化错误,列出受支持的方案。Webhook 请求失败时会返回非零状态码,并在标准错误中记录 URL 和 HTTP 状态码。
命名配置
配置文件是一组保存的标志值,可在多次调用中重复使用。如果定时运行的 Agent 每次都以相同配置调用同一命令,就可以使用配置文件,例如 HeyGen 的“Beacon”模式。
pypi-pp-cli profile save briefing --json
pypi-pp-cli --profile briefing rss newest-packages
pypi-pp-cli profile list --json
pypi-pp-cli profile show briefing
pypi-pp-cli profile delete briefing --yes
显式标志的优先级始终高于配置文件中的值;配置文件中的值优先级高于默认值。agent-context 会在 available_profiles 下列出所有可用配置文件,让进行自省的 Agent 能在运行时发现它们。
退出代码
| 代码 | 含义 |
|---|---|
| 0 | 成功 |
| 2 | 用法错误(参数错误) |
| 3 | 未找到资源 |
| 5 | API 错误(上游问题) |
| 7 | 受到速率限制(等待后重试) |
| 10 | 配置错误 |
参数解析
解析 $ARGUMENTS:
- 为空、
help或--help→ 显示pypi-pp-cli --help输出 - 以
install开头 → 以mcp结尾 → 安装 MCP;否则 → 参见上文的先决条件 - 其他任何内容 → 直接使用(作为 CLI 命令执行,并带上
--agent)
安装 MCP 服务
- 安装 MCP 服务:
go install github.com/mvanhorn/printing-press-library/library/other/pypi-pp-cli/cmd/pypi-pp-mcp@latest - 在 Claude Code 中注册:
claude mcp add pypi-pp-mcp -- pypi-pp-mcp - 验证:
claude mcp list
直接使用
- 检查是否已安装:
which pypi-pp-cli如果未找到,请提供安装选项(参见本技能顶部的先决条件)。 - 根据用户查询,从上文的独特功能和命令参考中选择最合适的命令。
- 使用
--agent标志执行:pypi-pp-cli <command> [subcommand] [args] --agent - 如果含义不明确,请查看子命令帮助:
pypi-pp-cli <command> --help。