Documentation
CLI reference.
Send notifications, ask questions, inspect state, and integrate carefully.
Connections and delivery
connect displays an existing connection without silently replacing it. create explicitly asks for a new Topic. send publishes a notification. ask supports confirmation, choices, and text. Use --help for the exact syntax supported by your installed build.
ntfyx connect
ntfyx create
ntfyx send "Done"
ntfyx ask "Continue?" --allow-deny
ntfyx result REQUEST_ID
ntfyx doctorResult and claim are different
Reading result is read-only. It is not permission to repeat an action. A verified answer must pass a one-time claim and a durable local ledger before resuming the original invocation. Retry ambiguous delivery with the original ID and exact signed bytes. Never turn a timeout, cancellation, invalid answer, or network error into Allow.
Exit codes
0 means the documented command succeeded; denial uses its documented decision result. Input errors use 2, expiry 11, cancellation 12, replacement 13, timeout 14, already consumed 15, pairing or ambiguous Topic 20, revoked or invalid credential 21, quota or inactive Topic 22, network or delivery uncertainty 23, verification failure 24, local storage failure 25, unsupported host 26. Parse structured JSON rather than display text in automation.
Timeouts and stdin
ask owns its request and applies the keep-pending rule when its wait ends. result only observes and does not cancel the request when a wait ends. stdin data must remain within the 16 KiB payload limit. Claude permission context that exceeds the limit returns to the terminal; it must never be truncated and remotely approved.
Local security
Credentials live in restricted local files. Compiled binaries must not auto-load project .env or bunfig files. Run from untrusted working directories only with the hardened released executable. Do not paste pairing links, recovery codes, tokens, or content into diagnostic reports.