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.