关于 pp-pushover
pp-pushover 是面向 Agent 和运维流程的 Pushover 命令行技能,可发送通知、追踪紧急回执并管理 Open Client 消息。它还提供配额检查和本地脱敏历史记录。
主要功能
- 01发送带优先级的通知
- 02监控或取消紧急回执
- 03查看发送配额
- 04搜索脱敏通知历史
- 05同步 Open Client 消息
- 06管理投递组和设备
适用场景
- 01发送运维或测试通知
- 02确认紧急通知是否已确认
- 03批量发送前检查配额
- 04同步并检索 Open Client 收件箱
MCP 相关
README 提供了安装并注册 pushover-pp-mcp 的说明。MCP 服务可供兼容客户端连接;具体暴露内容未在此处说明。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ mvanhorn/ printing-press-library --skill pp-pushover安装后在 Claude Code 中输入/pp-pushover确认已加载。
详细介绍
Pushover — Printing Press CLI
前置条件:安装 CLI
此技能使用 pushover-pp-cli 二进制文件。在调用此技能中的任何命令前,必须确认 CLI 已安装。如果尚未安装,请先安装:
- 使用 Printing Press 安装程序安装。默认情况下,macOS/Linux 上的二进制文件安装到
$HOME/.local/bin,Windows 上则安装到%LOCALAPPDATA%\Programs\PrintingPress\bin:npx -y @mvanhorn/printing-press-library install pushover --cli-only - 验证:
pushover-pp-cli --version - 确保报告的安装目录位于将调用此技能的 Agent/运行时的
$PATH中。
如果 npx 安装失败(没有 Node、处于离线状态等),请改用直接通过 Go 安装的方式(需要 Go 1.26.6 或更高版本):
go install github.com/mvanhorn/printing-press-library/library/social-and-messaging/pushover/cmd/pushover-pp-cli@latest
如果安装后 --version 报告“command not found”,说明运行时无法在 $PATH 中找到二进制文件目录。在验证成功之前,不要继续执行技能命令。
何时使用此 CLI
对于需要移动推送通知、紧急通知回执跟踪、配额感知发送、群组投递管理或检索 Open Client 消息的 Agent 或运维工作流,请使用 pushover-pp-cli。
独特功能
这些功能是此 API 的其他任何工具都不具备的。
面向 Agent 的基础能力
-
notify— 使用参数或标准输入发送通知,并支持通过环境变量/配置文件设置默认值、使用命名优先级以及验证紧急通知。让 Agent 无需泄露令牌值或记忆原始端点格式,即可发送测试通知或运维通知。
pushover-pp-cli notify "Printing Press test" --priority low --json
回执操作
-
emergency watch— 发送紧急通知或监控其回执,轮询确认状态并支持取消。将紧急通知从发出后不再跟进的发送方式,转变为可审计的值班工作流。
pushover-pp-cli emergency watch --receipt <receipt> --poll-interval 30s --cancel-on-timeout --json
运维安全
-
quota— 从应用限制端点查看每月发送上限、剩余发送次数和重置时间。Agent 可以在群发或重复发送测试通知前检查发送额度。
pushover-pp-cli quota --json
持续积累的本地状态
-
history— 搜索并导出本 CLI 发送的通知及其回执结果的本地脱敏记录。显示此 CLI 发送了什么、何时发送以及使用了哪种优先级,而不存储原始用户密钥或令牌。
pushover-pp-cli history list --since 24h --json -
inbox sync— 将 Open Client 消息下载到本地 SQLite,然后可选择执行服务端删至操作。让拥有 Open Client 设备的 Agent 既能使用 Pushover 发送消息,也能检索收件箱。
pushover-pp-cli inbox sync --device-id <device-id> --json
命令参考
notify — 从参数、--message 或标准输入发送适用于 Agent 的通知
pushover-pp-cli notify— 使用环境变量默认值、命名优先级、紧急通知验证和已脱敏的本地历史记录发送通知
emergency — 监视紧急优先级回执
pushover-pp-cli emergency watch— 以安全的轮询间隔持续检查紧急回执,直至进入终止状态
quota — 检查应用的发送配额
pushover-pp-cli quota— 显示月度限额、剩余发送次数和重置时间
history — 查看已脱敏的本地通知记录
pushover-pp-cli history— 列出本地记录的通知发送pushover-pp-cli history show— 显示一条本地历史记录
inbox — 在本地同步 Open Client 消息
pushover-pp-cli inbox sync— 将下载的 Open Client 消息存入本地 SQLitepushover-pp-cli inbox list— 列出本地同步的 Open Client 消息
apps — 查看应用级消息配额
pushover-pp-cli apps— 检查每月消息限额、剩余发送次数和重置时间
devices — 管理 Open Client 设备
pushover-pp-cli devices create— 注册新的 Open Client 桌面设备pushover-pp-cli devices delete-through— 删除已下载且消息 ID 不高于指定最大值的 Open Client 消息
glances — 更新 Pushover Glances 小组件
pushover-pp-cli glances— 更新 Glances 小组件字段
groups — 创建、查看和管理 Pushover 投递组
pushover-pp-cli groups add-user— 向投递组添加用户pushover-pp-cli groups create— 创建投递组pushover-pp-cli groups disable-user— 暂时停用组用户pushover-pp-cli groups enable-user— 重新启用已停用的组用户pushover-pp-cli groups get— 获取投递组名称和用户pushover-pp-cli groups list— 列出账户拥有的投递组pushover-pp-cli groups remove-user— 从投递组中移除用户pushover-pp-cli groups rename— 重命名投递组
licenses — 分配和查看 Pushover 许可证额度
pushover-pp-cli licenses assign— 为用户或电子邮件地址分配预付许可证额度pushover-pp-cli licenses credits— 检查剩余许可证额度
messages — 发送应用通知并下载 Open Client 消息
pushover-pp-cli messages download— 下载 Open Client 设备的待处理消息pushover-pp-cli messages send— 发送 Pushover 通知
receipts — 查看并取消紧急优先级消息回执
pushover-pp-cli receipts cancel— 取消一条紧急优先级回执的重试pushover-pp-cli receipts cancel-by-tag— 取消与某个标签匹配的活跃紧急优先级重试pushover-pp-cli receipts get— 获取紧急优先级回执状态
sounds — 查找通知声音
pushover-pp-cli sounds— 列出内置通知声音和账户自定义通知声音
subscriptions — 管理 Pushover 订阅迁移
pushover-pp-cli subscriptions— 将现有用户密钥迁移为订阅用户密钥
teams — 管理 Pushover for Teams 成员
pushover-pp-cli teams add-user— 向团队添加用户pushover-pp-cli teams get— 显示团队信息和用户pushover-pp-cli teams remove-user— 从团队中移除用户
users — 验证用户并登录 Open Client 会话
pushover-pp-cli users login— 登录用户以使用 Open Client,并返回用户密钥和会话密钥pushover-pp-cli users validate— 验证用户密钥或组密钥,以及可选的设备
查找合适的命令
如果你知道想要做什么,但不确定该用哪个命令,可以直接询问 CLI:
pushover-pp-cli which "<capability in your own words>"
which 会根据自然语言能力查询,从此 CLI 精选的功能索引中匹配最合适的命令。退出代码 0 表示至少找到一个匹配项;退出代码 2 表示没有可靠匹配项——请改用 --help,或使用更具体的查询。
使用示例
发送低优先级测试
pushover-pp-cli notify "Printing Press test" --priority low --json
使用环境变量/配置凭据,并记录一条本地账本记录。
批量操作前检查配额
pushover-pp-cli quota --json --select remaining,reset
读取专用的应用限制端点。
验证目标
pushover-pp-cli users validate --user-key "$PUSHOVER_USER_KEY" --json
确认密钥有效,再在脚本中使用。
监控紧急回执
pushover-pp-cli emergency watch --receipt <receipt> --json
以安全的间隔轮询官方回执端点。
身份验证设置
为发送、配额、用户、群组、声音、回执、概览、订阅和许可工作流设置 PUSHOVER_APP_TOKEN 和 PUSHOVER_USER_KEY。旧版 PUSHOVER_TOKEN 和 PUSHOVER_USER 可作为本地兼容别名使用。若未指定标志,Open Client 工作流会使用 PUSHOVER_CLIENT_SECRET 和 PUSHOVER_DEVICE_ID。
运行 pushover-pp-cli doctor 验证设置。
Agent 模式
在任意命令中添加 --agent。它会展开为:--json --compact --no-input --no-color --yes。
-
可通过管道传递 — JSON 输出到 stdout,错误输出到 stderr
-
可筛选 —
--select保留部分字段。点分路径可深入嵌套结构;数组会逐项遍历。对于输出冗长的 API,这对控制上下文大小至关重要:pushover-pp-cli groups list --app-token your-token-here --agent --select id,name,status -
可预览 —
--dry-run显示请求,但不会发送 -
适合离线使用 — 可用时,同步/搜索命令可使用本地 SQLite 存储
-
非交互式 — 绝不显示提示,每个输入都通过标志提供
-
显式重试 — 仅当已存在的创建操作也应视为成功时,才使用
--idempotent
响应封套
从本地存储或 API 读取数据的命令会在输出中附带来源信息封套:
{
"meta": {"source": "live" | "local", "synced_at": "...", "reason": "..."},
"results": <data>
}
解析 .results 获取数据,并查看 .meta.source 以确认数据来自实时 API 还是本地存储。只有当 stdout 连接到终端时,才会将便于阅读的 N results (live) 摘要打印到 stderr;通过管道接收的内容/Agent 消费者会在 stdout 中获得纯 JSON。
Agent 反馈
当你(或 Agent)发现此 CLI 有不妥之处时,请记录下来:
pushover-pp-cli feedback "the --since flag is inclusive but docs say exclusive"
pushover-pp-cli feedback --stdin < notes.txt
pushover-pp-cli feedback list --json --limit 10
条目会保存在本地 ~/.pushover-pp-cli/feedback.jsonl。除非设置了 PUSHOVER_FEEDBACK_ENDPOINT,并且传入了 --send 或设置了 PUSHOVER_FEEDBACK_AUTO_SEND=true,否则不会发送任何 POST 请求。默认行为仅保存在本地。
写下让你感到意外的地方,而不是提交错误报告。简短、具体、单行:这才是能够不断积累价值的内容。
输出传递
每个命令都接受 --deliver <sink>。除了输出到 stdout(或改为输出到指定接收端)之外,命令也会将输出发送到指定接收端,让 Agent 无需手动通过管道即可转发命令结果。支持三种接收端:
| 接收端 | 效果 |
|---|---|
stdout | 默认;仅写入 stdout |
file:<path> | 以原子方式将输出写入 <path>(临时文件 + 重命名) |
webhook:<url> | 将输出正文 POST 到该 URL(使用 application/json,或在启用 --compact 时使用 application/x-ndjson) |
不支持的协议会被拒绝,并返回结构化错误,列出支持的协议。Webhook 请求失败会返回非零状态码,并在 stderr 中记录 URL 和 HTTP 状态码。
命名配置
配置是保存的一组标志值,可在多次调用中重复使用。如果计划任务中的 Agent 每次运行都使用相同配置调用同一命令,可使用配置——这就是 HeyGen 的“Beacon”模式。
pushover-pp-cli profile save briefing --json
pushover-pp-cli --profile briefing groups list --app-token your-token-here
pushover-pp-cli profile list --json
pushover-pp-cli profile show briefing
pushover-pp-cli profile delete briefing --yes
显式指定的标志始终优先于配置值;配置值优先于默认值。agent-context 会在 available_profiles 下列出所有可用配置,方便进行自省的 Agent 在运行时发现它们。
退出码
| 代码 | 含义 |
|---|---|
| 0 | 成功 |
| 2 | 用法错误(参数错误) |
| 3 | 未找到资源 |
| 5 | API 错误(上游问题) |
| 7 | 请求受限(等待后重试) |
| 10 | 配置错误 |
参数解析
解析 $ARGUMENTS:
- 为空、
help或--help→ 显示pushover-pp-cli --help输出 - 以
install开头 → 以mcp结尾 → 安装 MCP;否则 → 参见上文的先决条件 - 其他任何内容 → 直接使用(作为带有
--agent的 CLI 命令执行)
MCP 服务安装
从此 CLI 发布的公共库条目或预构建版本中安装 MCP 二进制文件,然后进行注册:
claude mcp add pushover-pp-mcp -- pushover-pp-mcp
验证:claude mcp list
直接使用
- 检查是否已安装:
which pushover-pp-cli如果未找到,则提供安装选项(请参阅本技能顶部的“先决条件”)。 - 根据上方的“独特功能”和“命令参考”,将用户查询匹配到最合适的命令。
- 使用
--agent标志执行:pushover-pp-cli <command> [subcommand] [args] --agent - 如果有歧义,请查看子命令帮助:
pushover-pp-cli <command> --help。