典型使用场景
push778 最适合放在页面最前面展示,因为这玩意儿不是抽象概念,它是能立刻落地的通知中枢。你写完脚本、接上 AI、连上设备,消息就能直接飞到 iPhone。
从代码到现实世界,统一推到一部手机上
你可以把现实世界、代码世界和 AI 世界的事件,统一收敛到 iPhone 通知里。它不是只能发一句“测试成功”,而是能承担真正重要的提醒、回执和告警。
AI / MCP 消息回执
让 AI 代码代理、MCP 工具、自动化工作流在完成任务、报错、需要人工确认时,第一时间把结果推送到手机。
服务器运维告警
服务异常、容器崩溃、磁盘空间过低、证书即将过期、备份失败、任务超时,都可以通过脚本直接发送告警。
智能家居与物联网
天然气泄漏、烟雾报警、水浸传感器触发、门磁异常、摄像头识别到陌生人,这类消息很适合走 critical 通知。
家庭健康提醒
例如心率异常、老人跌倒检测、血氧过低、心脏病家属需要的紧急通知,都可以通过联网设备或家庭网关快速推送。
交易与业务监控
订单支付成功、风控事件触发、库存不足、关键客户留言、支付接口失败、爬虫发现目标价格变化,都可即时提醒。
个人自动化实验室
脚本跑完、GitHub Action 成功、NAS 下载完成、家庭服务器恢复上线、模型训练结束,统统可以推过来。通知栏就是你的控制面板。
push778:把你自己的 iPhone 变成可编程通知终端
push778 是一款 iPhone 自定义推送工具。 目标很直接:简单调用接口,就能把消息推送到自己的 iPhone。 没有奇怪的重型后台,没有多余花活,只有系统级推送在安静干活。
它依赖苹果 APNs,具备及时、稳定、可靠的特点;不会持续消耗设备电量,因为消息依赖系统推送服务与推送扩展,APP 本体并不需要一直运行;同时也强调隐私安全,支持通过加密等方式,尽量确保包括作者本人在内的任何人都无法窃取你的推送内容。
除了常规 API 调用外,push778 还可以作为 OpenClaw Skill 与 MCP 能力的一部分接入 AI 工作流,让 Agent、脚本、服务和设备在完成任务时把结果直接推送到你的手机。
push778 是什么
给自己发推送
通过 HTTP 请求,把服务端事件、脚本结果、告警消息、自动化状态,直接发到自己的 iPhone。
低功耗
消息依赖 iOS 系统推送机制和通知扩展,APP 本体不需要常驻。电量不会被后台瞎啃。
重视隐私
支持加密推送等方式,尽量避免推送内容在传输与存储环节被第三方看到。该严谨的时候就别让消息裸奔。
使用教程
第一次使用很简单,逻辑只有三步:打开 APP → 复制测试 URL → 替换内容并请求。
打开 push778,复制测试 URL
在 APP 中获取你的设备推送地址,也就是包含 key 的测试 URL。这个 key 类似你的私有收件地址,别乱贴到公共场所。
修改内容,请求这个 URL
你可以直接发 GET 请求,也可以发 POST 请求。请求成功后,iPhone 会立即收到推送。
按需要追加参数
例如分组、复制内容、角标、图标、图片、铃声、点击跳转链接、重要警告、时效性通知等,都可以通过参数控制。
你要求我已经把原本示例中的域名直接替换成了你自己的服务地址。
URL 格式
URL 由推送 key 以及 title、subtitle、body 组成,常见组合如下:
请求方式
push778 支持 GET、POST 和 JSON 请求。无论哪种方式,参数名保持一致。
GET 请求示例
GET 请求参数拼接在 URL 后面,例如:
适合快速测试、命令行脚本、Webhook 拼接、浏览器调试。
POST 表单示例
POST 请求参数放在请求体中,例如:
适合后端任务、定时脚本、自动化流程,参数结构更清晰。
POST JSON 示例
POST 请求支持 JSON:
推荐在服务端、自动化平台、AI 流程里优先使用 JSON,参数更好维护。
/push 路径 JSON 示例
JSON 请求时,key 可以放在请求体中,此时 URL 路径应为 /push:
这个方式更适合统一网关、消息转发服务、批量推送系统。
请求参数说明
下面是 push778 支持的主要参数。具体效果可以在 APP 内预览。
| 参数 | 说明 |
|---|---|
| title | 推送标题 |
| subtitle | 推送副标题 |
| body | 推送内容 |
| markdown | Markdown 内容,传递此参数时将忽略 body。发送时注意特殊字符处理。 |
| device_key | 单个设备 key |
| device_keys | key 数组,用于批量推送 |
| level | 推送中断级别:critical(重要警告,静音下也响)、active(默认,亮屏显示)、timeSensitive(专注状态下可显示)、passive(仅加入通知列表) |
| volume | 重要警告音量,0-10,默认 5 |
| badge | 推送角标,可为任意数字 |
| call | 传 1 时,通知铃声重复播放 |
| autoCopy | 传 1 时自动复制推送内容。iOS 14.5 以上需手动长按或下拉通知触发复制 |
| copy | 指定复制内容,不传则复制整个推送内容 |
| sound | 自定义推送铃声 |
| icon | 自定义图标,替换默认 push778 图标。相同 URL 仅下载一次并缓存 |
| image | 推送图片 |
| group | 消息分组,通知中心和历史消息都可按 group 聚合查看 |
| ciphertext | 加密推送密文 |
| isArchive | 传 1 保存推送,其他值不保存;不传则遵循 APP 设置 |
| url | 点击通知跳转的 URL,支持 URL Scheme 和 Universal Link |
| action | 传 none 时,点击推送不会弹窗 |
| id | 使用相同 ID 时更新对应通知内容。需要 push778 / server 对应版本支持,JSON 传参时需使用字符串类型 |
| delete | 传 1 时删除通知,需与 id 参数一起使用,并要求系统开启“后台 App 刷新” |
MCP 接入
push778 支持 MCP,可以接入 AI 工具链、编辑器和自动化系统,让 Agent、脚本、服务和设备在完成任务时把结果直接推送到你的手机。
上面是 MCP 的示例配置,适合 VS Code、自动化平台或自定义 Agent 环境。
OpenClaw Skill 页面
push778 也提供 OpenClaw Skill 安装方式,适合把推送能力直接挂到 Agent 工作流里,用于任务完成回执、错误告警、人工确认提醒和异常通知。
安装后,OpenClaw 就可以通过这个 Skill 调用 push778,把关键结果实时推送到 iPhone。
快捷指令支持
push778 支持使用 iOS 快捷指令直接发送推送。适合把手机本地动作、分享菜单、自动化触发,与通知系统打通。
例如:
隐私与安全
push778 的设计重点之一是尽可能保护用户隐私。推送内容可以通过一定方式做加密处理,尽量降低消息被中间人或服务端窥视的风险。
同时你也应当注意:
推送次数限制
正常使用基本没有限制,但异常使用的 IP 可能会被封禁 24 小时。
- 5 分钟内超过 1000 次错误请求(如 400 / 404 / 500)
- 5 分钟内超过 5 次 405 错误请求
- 5 分钟内超过 5 次错误请求,且 User-Agent 为特定异常特征
另外,同一时刻建立超过 1000 条 TCP 连接时,新增请求会被拒绝。大量发送推送时,请优先使用 HTTP/2 复用连接。
如果你是自行部署服务端,则通常不受这些公共服务限制。
多设备说明
同一个 key 只能由一台设备使用。如果多台设备共用同一个 key,只有最后打开 APP 的那台设备会收到推送。
常见问题
无法收到推送
先在 App 设置中检查 Device Token 是否正常。如果不正常,通常是设备与苹果服务器连接异常;如果正常,尝试重启设备,并检查请求返回状态码是否为 200。
Device Token 显示未知
这通常意味着设备没有正常连接到苹果服务器,可能同时伴随 iMessage 不可用、其他 App 也收不到推送等现象。可以尝试切换网络、重启手机;如果你代理了 Apple 服务,也可尝试关闭代理。这个问题本质上是设备和苹果服务器之间的连接问题。
莫名收到未知推送,比如 NoContent
可能原因包括:Safari 对历史 URL 自动补全并预加载、聊天软件预请求你发出的 API URL、或者推送 key 已泄露。建议必要时重置 key。
提示服务器错误
偶尔出现一次通常可以忽略,可能是设备进后台后请求超时等原因造成。持续出现时再检查服务端和网络。
时效性通知无效
可以尝试重启设备解决。iOS 的通知策略偶尔会有点脾气,这不稀奇。
无法保存通知历史,或下拉推送没有复制按钮
可以尝试重启设备。通常是推送服务扩展未正常运行,导致保存历史或复制逻辑没有执行。
自动复制推送失效
iOS 14.5 之后由于权限收紧,无法在收到推送时直接自动复制到剪贴板。可以改用下拉通知、左滑查看,或点击复制按钮完成复制。
默认打开通知历史列表
退出 APP 时停留在历史消息页面,下次打开时就会回到该页面。
推送 API 是否支持 POST 请求?
支持。push778 支持 GET、POST,也支持 JSON。无论哪种请求方式,参数名都一样。
特殊字符导致推送失败,比如链接、斜杠、加号
这通常是 URL 手动拼接不规范导致。所有路径参数都应该先做 URL 编码,特别是包含 /、+、空格、中文、链接等字符时。
如果你使用成熟的 HTTP 库,一般会自动处理编码;但手动拼 URL 时,最好别赌运气,直接统一编码。