Agent Notifier
All posts
9 min readcomparisonai-agentspush-notifications

Agent Notifier vs ntfy vs Pushover: the difference is the round trip

If all you need is a phone buzz when a script finishes, Pushover and ntfy are excellent and you should probably use one of them. This post is about the two things they were never built to do: let an agent ask you something and carry on once you answer, and put the actual work - the diagram, the diff, the screenshot, the narrated summary - on your phone instead of a 40-character teaser.

The short answer

These three products look almost identical on a feature grid and are actually solving different problems.

Pushover

Best value for one-way alerts

Pay once, get a dependable notification pipe, never think about it again.

ntfy

Best if you want to own it

Open source, genuinely self-hostable, and a well-designed generic pub/sub system.

Agent Notifier

Best when the notification is not the point

Built for the moment your agent is blocked on you, and for showing you what it actually produced.

Everything below is sourced from vendor documentation, verified on 31 July 2026, and linked at the bottom. Where a competitor is better, we say so.

The question that actually separates them

Run a coding agent for an afternoon and you will hit this moment. It has written the migration and needs to know whether to drop the column. It has three plausible refactors and needs you to pick. It is about to run something destructive and wants a yes.

A notification tells you that happened. It does not help you answer. With a traditional push service the loop is: buzz, walk to the laptop, read the terminal, type, resume. The agent sits idle the whole time, and the notification saved you nothing except the discovery that it was waiting.

What you actually want is for the agent to block, for the question to arrive on your phone with its choices, and for your answer to go straight back to the process that was waiting. That is a round trip, not a notification - and it is the axis on which these three products genuinely differ.

Blocking question with a typed answer

Agent stops, you answer, the answer returns to the waiting process

Agent Notifier
Supported:First-class. The hook blocks and hands your answer back to the agent.
Pushover
Not supported:No typed reply. Receipts carry acknowledgement metadata only.
ntfy
Partially supported:Buildable on generic pub/sub - you design correlation, auth, and timeout.

Approve or reject a tool call

A permission prompt answered from the phone

Agent Notifier
Supported:Approval routing for Claude Code and Copilot CLI hooks.
Pushover
Partially supported:Emergency priority gives a binary acknowledgement, not an approve/deny decision.
ntfy
Partially supported:Action buttons fire a publisher-defined HTTP request.

Answer an interactive CLI prompt remotely

Device codes, passphrases, and stdin prompts relayed to the phone

Agent Notifier
Supported:The command runs in a pty and its prompts reach your phone.
Pushover
Not supported:Not a feature.
ntfy
Not supported:Not a feature.

Falls back safely when the phone is unreachable

A dead battery must never wedge a running agent

Agent Notifier
Supported:The hook emits no decision and the agent uses its normal local prompt.
Pushover
Partially supported:Emergency messages expire after at most three hours.
ntfy
Partially supported:Whatever your custom integration decides to do.
Being precise, because this is the whole claim
Pushover does have a real round trip for emergency messages: the recipient acknowledges, and the sender can poll a receipt or take a callback. But the documented payload carries acknowledgement metadata, not text the person typed. And ntfy is generic pub/sub, so you can absolutely build a reply channel on it - a human publishes to a reply topic, your program waits on it over SSE. You are just building the correlation IDs, auth, timeouts, and waiting logic yourself. Neither ships a correlated typed-answer primitive.

What it looks like when it is built in

Agent Notifier ships hooks for Claude Code and Copilot CLI, and installing them is one command. After that, when the agent asks a question the hook blocks it, the question arrives on your phone with its answer choices, and whatever you pick is returned to the agent as the tool result. The agent keeps going. You never opened the laptop.

In the repo you are working in
curl -fsSL https://notifier.aicrew.in/install.sh | sh

The same channel carries permission approvals, and wrapping any interactive command relays its device codes and passphrase prompts to your phone too. If the hook cannot reach us it emits no decision at all and your agent falls back to its normal local prompt - a dead phone must never be able to wedge your agent.

The other half: what actually arrives

The second thing a generic notification service cannot do is show you the work. Agents do not produce one-line statuses. They produce diffs, architecture diagrams, test output, screenshots, generated files, and long written summaries. Pushover gives you 1,024 characters and one image. ntfy gives you plain text and an attachment.

Agent Notifier renders the substance in the notification and in the feed, so triage from a phone is real triage rather than a prompt to go and look somewhere else.

Markdown, rendered

Headings, lists, tables, and code blocks arrive formatted. An agent’s written summary reads like a document, not like raw asterisks.

Mermaid diagrams, drawn

Fenced ```mermaid blocks are pulled out of the Markdown and rendered as actual diagrams. Ask an agent to explain the architecture it just built and you get a picture, on your phone, in the notification.

Screenshots, files, and video

Images preview inline and open full screen. Files, logs, and video attach and download. Multiple attachments per message, not one.

Filtering that matches how you triage

Filter the feed by what happened - alerts, progress, artifacts, links - and group by project and session. On a busy day that is the difference between a feed and a firehose.

The one people do not expect: send text as audio

This is the feature that changes how people actually use the product, and neither competitor has anything like it.

Add --as-audio and the server narrates the message into speech, attaches it, and delivers it as playable audio. Point it at a Markdown or text file and it will narrate the whole document. You pick the voice and the speed.

Narrate a long report instead of reading it
notify.py "Nightly report ready" --as-audio \
  --file-path ./reports/nightly.md --voice af_bella --speed 1.1

Playback keeps running when the app is backgrounded or the phone is locked, with proper lock-screen controls. So the overnight agent run becomes something you listen to on the walk to the coffee shop rather than a wall of text you promise yourself you will read later. Long scripts are chunked automatically rather than failing.

ntfy can place a text-to-speech phone call on paid plans with a verified number, which is a genuinely useful escalation tool - but it is a call, not an attached recording you can scrub, pause, and replay. Pushover has no equivalent.

Text delivered as spoken audio

Server-side narration you can listen to while driving or walking

Agent Notifier
Supported:--as-audio narrates a message or a whole Markdown file, with voice and speed control.
Pushover
Not supported:Not a feature.
ntfy
Partially supported:Text-to-speech phone calls, on paid plans with a verified number.

Markdown rendered in the notification

Agent Notifier
Supported:Headings, lists, and code render as formatted text, not raw asterisks.
Pushover
Partially supported:Basic HTML or monospace, and the two are mutually exclusive.
ntfy
Not supported:Plain text.

Mermaid diagrams rendered inline

Architecture and flow diagrams your agent emits as fenced code

Agent Notifier
Supported:Fenced mermaid blocks are extracted and drawn as diagrams.
Pushover
Not supported:Not a feature.
ntfy
Not supported:Not a feature.

Rich media attachments

Agent Notifier
Supported:Images, audio, video, and files, previewed inline with a full-screen viewer.
Pushover
Partially supported:One image per message, up to 5 MiB.
ntfy
Supported:Any file. 2 MiB per attachment on the free hosted tier.

Filter the feed by what happened

Show only failures, only artifacts, only progress

Agent Notifier
Supported:Type filters plus project and session grouping across feed and project views.
Pushover
Partially supported:Separate applications and delivery groups.
ntfy
Partially supported:Flat topics; grouping is a naming convention.

Message length

Agent Notifier
Supported:Long bodies; oversized payloads degrade gracefully instead of failing.
Pushover
Partially supported:1,024 characters, 250-character title.
ntfy
Supported:No comparable documented hard character cap.

The boring parts that still matter

Per-message priority

Agent Notifier
Supported:Quiet, normal, high, emergency, plus Focus-breaking time-sensitive alerts.
Pushover
Supported:Five levels, including emergency retry until acknowledged.
ntfy
Supported:Five levels.

Access control by default

Agent Notifier
Supported:Per-project API keys: scoped, rotatable, revocable.
Pushover
Supported:Application token plus a user or group key.
ntfy
Not supported:The public instance defaults to open read and write on any topic name.

Self-hosting

Agent Notifier
Not supported:Hosted service only.
Pushover
Not supported:Hosted service only.
ntfy
Supported:Fully self-hostable under Apache-2.0 and GPLv2.

Who can publish to your topic

One row there deserves expanding. ntfy’s public instance is open by design: anyone who knows a topic name can read it and publish to it, and the docs are refreshingly candid that a topic name is obscurity, not authentication. For hobby alerts that is a reasonable trade. For an agent that receives approval decisions, a channel a stranger can guess and write to is the wrong shape entirely. Self-hosted ntfy fixes this properly with ACLs and deny-all defaults, and paid ntfy.sh tiers let you reserve topics.

Pricing, honestly

Agent Notifier

Free tier
100 notifications, lifetime
Paid
$9.99/month or $99.99/year
Included volume
Unlimited sending while subscribed

Pushover

Free tier
30-day trial
Paid
$4.99 one-time, per platform
Included volume
10,000 messages/month, shared across all your applications

ntfy.sh (hosted)

Free tier
Free, 250 messages/day
Paid
$6/mo Supporter · $12/mo Pro · $25/mo Business
Included volume
2,500 to 50,000 messages/day by tier

ntfy (self-hosted)

Free tier
Free
Paid
Your server costs
Included volume
Whatever your hardware does

Pushover is the cheapest by a wide margin and it is not close. A one-time $4.99 per platform against $9.99 a month is roughly the difference between a coffee and a streaming subscription. If one-way alerts are all you need, paying us instead would be a bad trade. Self-hosted ntfy is cheaper still, at the price of running a server.

We charge a subscription because we run a stateful service. An approval waiting on your answer, media storage, and server-side narration are ongoing costs, not a one-time download.

Where the others are genuinely better

Pick ntfy if you want to own it

  • Apache-2.0 and GPLv2, self-hostable from a binary, a package, or Docker. Your messages never leave your infrastructure.
  • Excellent generic transport: HTTP, SSE, WebSockets, polling, cached retrieval, and multi-topic subscriptions. It composes into things we do not do.
  • Publish from email, from curl, from anything. No SDK, no account required.
  • One caveat worth knowing: for instant delivery from a self-hosted server, iOS needs an upstream relay, and the docs describe the iOS app as less mature than Android.

Pick Pushover if you want cheap and permanent

  • $4.99 once per platform, then 10,000 messages a month, free, forever.
  • Emergency priority that retries until a human acknowledges is a genuinely good design.
  • Optional documented end-to-end encryption for iOS and Android message content.
  • It has been reliable for over a decade. That is worth something real.

When Agent Notifier is the wrong choice

We would rather you pick correctly than churn in a month.

  • You need to self-host. We are a hosted service. Use ntfy.
  • You only send one-way alerts. Pushover does that well for a one-time fee.
  • You need email-to-push or Android broadcast intents. ntfy has those; we do not.
  • Your volume is enormous and uniform. Per-message pricing at scale may beat a flat subscription.

If any of this sounds like your week

The free tier is 100 notifications with every feature unlocked - approvals, rich media, Mermaid, narration, all of it. Enough to wire a real agent end to end and decide with evidence rather than a comparison table, including this one.

  1. Install the harness: curl -fsSL https://notifier.aicrew.in/install.sh | sh
  2. Run your agent until it asks you something.
  3. Answer it from your phone, and watch the agent carry on.

Sources

All competitor claims were checked against vendor documentation on 31 July 2026. Pricing and limits change - if you find something out of date here, tell us and we will correct it.