ntfy alternative

Free ntfy alternative for encrypted developer alerts.

Use Nerve when you want phone alerts with sender/agent separation and encrypted payloads by default.

A different default trust model

ntfy is simple and flexible. Nerve optimizes for operational events where senders should be limited to one capability: send an encrypted signal.

Good fit for CI and servers

Use it for GitHub Actions failures, deploy events, cron failures, VPS health checks, and manual runbook breadcrumbs.

Agent stays optional

Nerve starts as a signal pipe. The agent is separate, explicit, and intended for trusted machines only.

When ntfy is still better

ntfy is excellent when you want simple topics, broadcast-style pub/sub, or self-hosted notifications with very little ceremony. If topic flexibility is the main requirement, use ntfy. If the concern is “what can a leaked CI secret do?”, Nerve's send-only credential model is the reason to consider it.

Topic name vs. pipe credential

A topic name is easy to copy into scripts, but it can become a shared secret. A Nerve sender DSN is also a secret, but it is scoped to one pipe and cannot read old messages. That difference matters for CI systems, laptops, and small VPS scripts where secrets get copied around.

Operational payload hygiene

Even encrypted alerts should be short. Send the status and a pointer to logs, not the whole log. This keeps phone notifications readable and reduces the chance that a secret appears in alert text.

Quick start

go install github.com/nerve-ink/nerve-cli/cmd/nerve@latest
export NERVE_DSN="nerve://TOKEN:[email protected]"
echo "deploy failed" | nerve send

FAQ

Does Nerve require self-hosting?

No for the hosted beta. You can send encrypted signals through the hosted relay.

Can Nerve replace ntfy topics?

For developer alert workflows, yes. For broad pub/sub notification use, ntfy may still be a better fit.

Does Nerve expose plaintext to the relay?

Signal and command payloads are encrypted before they reach the relay.