用途
pp-docker-hub 是一个面向 Docker Hub 的 Printing Press 只读命令行工具,用于检查和检索 Docker Hub 上的公开仓库信息,例如搜索容器镜像、浏览标签、查看镜像大小、检查 Dockerfile 以及探索仓库元数据。它基于 Docker Hub 公共 API。
该工具驱动 docker-hub-pp-cli 二进制,属于只读命令集,显式不支持创建、更新、删除、发布、评论、点赞、邀请、下单、发送消息或改变远端状态等请求。
主要能力
- 全文搜索:通过
docker-hub-search在所有 Docker Hub 仓库中进行全文搜索,返回名称、描述、星标数和拉取次数。 - 仓库元数据:通过
repositories <namespace> <repository>获取指定仓库的完整元数据,包括拉取次数、星标数、描述和最后更新时间。 - 能力查询:通过
which "<自然语言能力描述>"将能力描述解析为最匹配的命令。退出码 0 表示至少有一个匹配,退出码 2 表示没有确信匹配,可回退到--help或使用更窄的查询。 - Agent 模式:在任意命令后添加
--agent,等价于--json --compact --no-input --no-color --yes。 - 字段筛选:
--select保留部分字段,支持点路径进入嵌套结构,数组按元素遍历。 - 干跑预览:
--dry-run显示请求而不实际发送。 - 离线友好:在本地 SQLite 存储可用时,sync/search 命令可使用本地存储。
- 非交互式:从不提示,所有输入均为标志。
- 输出投递:所有命令接受
--deliver <sink>,sink 支持stdout(默认)、file:<path>(原子写入 tmp + rename)、webhook:<url>(POST output body,application/json或--compact时application/x-ndjson)。未知 scheme 会以结构化错误拒绝,webhook 失败返回非零并在 stderr 记录 URL 和 HTTP 状态。 - 命名配置档案:profile 是一组保存的 flag 值,可在多次调用间复用。支持
profile save/list/show/delete。显式 flag 优先于 profile 值,profile 值优先于默认值。agent-context在available_profiles下列出所有可用 profile。 - 反馈记录:
feedback命令可在本地记录使用中的意外情况,默认仅本地存储于~/.docker-hub-pp-cli/feedback.jsonl,除非设置DOCKER_HUB_FEEDBACK_ENDPOINT并传入--send或设置DOCKER_HUB_FEEDBACK_AUTO_SEND=true,否则永不 POST。
使用方式
安装:使用 Printing Press 安装器,二进制默认安装到 macOS/Linux 的 $HOME/.local/bin 和 Windows 的 %LOCALAPPDATA%\Programs\PrintingPress\bin:
npx -y @mvanhorn/printing-press-library install docker-hub --cli-only
验证:docker-hub-pp-cli --version
若 npx 安装失败(无 Node、离线等),可回退到直接 Go 安装(需 Go 1.26.6 或更新版本):
go install github.com/mvanhorn/printing-press-library/library/developer-tools/docker-hub/cmd/docker-hub-pp-cli@latest
若安装后 --version 报 "command not found",说明运行时的 $PATH 中看不到二进制目录,需先解决验证问题再使用本工具命令。
认证:无需认证。可运行 docker-hub-pp-cli doctor 验证设置。
示例:
docker-hub-pp-cli docker-hub-search --agent --select id,name,status
docker-hub-pp-cli which "<capability in your own words>"
docker-hub-pp-cli repositories <namespace> <repository>
响应信封:从本地存储或 API 读取的命令将输出包裹在 provenance 信封中:
{
"meta": {"source": "live" | "local", "synced_at": "...", "reason": "..."},
"results": <data>
}
解析 .results 获取数据,.meta.source 判断是 live 还是 local。仅当 stdout 是终端时,人类可读的 "N results (live)" 摘要才打印到 stderr;管道/agent 消费者在 stdout 得到纯 JSON。
退出码:0 成功;2 用法错误(参数错误);3 资源未找到;5 API 错误(上游问题);7 速率受限(等待并重试);10 配置错误。
参数解析:空、help 或 --help 显示帮助输出;以 install 开头且以 mcp 结尾为 MCP 安装,否则参见安装说明;其他直接以 --agent 执行 CLI 命令。
MCP 服务器安装:
go install github.com/mvanhorn/printing-press-library/library/other/docker-hub-pp-cli/cmd/docker-hub-pp-mcp@latest
注册到 Claude Code:
claude mcp add docker-hub-pp-mcp -- docker-hub-pp-mcp
验证:claude mcp list
适用场景
- 搜索并发现 Docker Hub 上的容器镜像。
- 查看特定仓库的标签、大小与元数据。
- 在 agent 工作流中以纯 JSON 形式获取 Docker Hub 数据。
- 通过输出投递将结果路由到文件或 webhook。
限制
- 只读:不得用于创建、更新、删除、发布、评论、点赞、邀请、下单、发送或其他变更请求。
- 使用前必须确认 CLI 已安装且可执行文件目录在
$PATH中,否则不得继续执行技能命令。 - 需 Go 1.26.6 或更新版本才能进行直接 Go 安装。
- 其他具体价格、收费、平台细节暂未提供。