OpenClaw agents run on a Mac (a Gateway). You talk to them from Telegram, the Control UI, or the official iOS app. The problem: once you close the app, you stop seeing when an agent finishes or asks you something — unless you keep a PWA open in the background.
I built reply-push-v2, an OpenClaw plugin that sends real native APNs push notifications to the official OpenClaw iOS app. No PWA, no background tab, no polling.
agentFinished — an agent finished its turn (agentQuestion — an agent asks you something via ask_user (Pro)humanMentioned — you are mentioned in a conversation (Pro)scheduledTaskFailed — a cron/scheduled task failed (Pro)subagentFailed — a subagent ended with error/timeout/kill (Pro)
Your Gateway holds no APNs keys: notifications go through the hosted OpenClaw push relay (ios-push-relay.openclaw.ai). The plugin auto-detects your paired iPhone node (iPhone preferred over Apple Watch), so a single-device setup needs zero config. It respects NIGHT_MODE and dedupes per category (15 s).
~/.openclaw/plugins/reply-push-v2/
~/.openclaw/openclaw.json, add the plugin to plugins.load.paths and enable its conversation hooks:
"reply-push-v2": { "enabled": true, "hooks": { "allowConversationAccess": true } }
(hooks.allowConversationAccess: true is required, otherwise OpenClaw blocks the agent_end hook.)
openclaw plugins list.
Or install straight from npm:
openclaw plugins install reply-push-v2
On load you will see:
[reply-push-v2] FREE edition: agentFinished only. Pro (all 5 categories): Gumroad - search "reply-push-v2"
| Category | Free | Pro |
|---|---|---|
agentFinished |
yes | yes |
agentQuestion |
— | yes |
humanMentioned |
— | yes |
scheduledTaskFailed |
— | yes |
subagentFailed |
— | yes |
Pro adds an agent allowlist, custom mention regex and priority support.
Feedback welcome — especially which of the five categories matter most to you.