Documentation
Agent waiting for input? Get notified and reply from your phone
When Claude Code, Codex or a script needs you, distinguish completion alerts, permission approvals and missing information. Send a signed choice or text reply with Ntfyx.
Updated
Why an agent can stop halfway
#A coding agent can finish tests and still need a person to choose a target, explain a requirement or approve an operation. If you have left the terminal, that wait can be easy to miss. Ntfyx sends an encrypted question to your phone or an authorized Web Inbox. Your sending client verifies the signed answer before the workflow continues.
Completion, permission and an open question are different events; choose the integration that matches the wait.
| What happened | What to use | What happens next |
|---|---|---|
| The task or command finished | send or a completion hook | You read the result; no answer is required. |
| A supported tool needs permission | Native PermissionRequest adapter | Allow or Deny goes back to that invocation. |
| The workflow needs a choice or missing information | ask or local stdio MCP | The agent or script receives the verified choice or text. |
| An arbitrary terminal prompt is blocked | An explicit integration or the terminal | Ntfyx does not automatically read or answer every prompt. |
Before you connect
#Use Ntfyx CLI 0.1.2 on macOS or Linux and a compatible primary phone app. The iPhone app is awaiting App Store review. Android 1.0.0 is in Google Play production review and available to configured Internal testers. Neither status announces public store availability. Android push requires Google Play services.
The phone authorizes each computer or server as its own Source; an optional Web Inbox receives new messages after phone authorization.
curl -fsSL https://ntfyx.me/install.sh | bash
ntfyx connect
ntfyx topicsReceive a permission request
#Run setup in dry-run mode first, review the change, then install the supported adapter. Claude Code Bash, Edit and Write and Codex Bash and apply_patch have real-host verification on Linux x64. Codex requires you to trust the hooks with /hooks and use its interactive TUI; codex exec does not ask for approvals.
Native macOS approvals and Claude interactive terminal takeover do not have the same verified coverage. A timeout, unknown payload or invalid answer falls back to the terminal without Allow.
ntfyx setup claude-code --dry-run
ntfyx setup claude-code
# For Codex: review and trust the hooks with /hooks.
ntfyx setup codex --dry-run
ntfyx setup codexAsk for the next environment
#Use an explicit choice when the workflow can enumerate valid answers. Work is your local CLI alias; replace it with an alias from ntfyx topics. This request asks what to inspect. It does not deploy to the selected environment.
ntfyx ask "Which environment should I check?" \
--choice staging=Staging --choice production=Production \
--topic Work --wait 60s --expires 90s --jsonAsk for missing information
#For an instruction such as “check the checkout flow”, use a text request. For an agent, configure the local MCP server and tell it to use ntfyx_ask when it needs your answer. The agent must actively call the tool; an existing AskUserQuestion or terminal question is not automatically converted into a Ntfyx request.
Treat text as input to the workflow. Never evaluate a phone reply as shell code.
ntfyx ask "What should I check next?" \
--text --topic Work --wait 60s --expires 90s --jsonTry the complete input loop
#Download and inspect this harmless example. It waits for a verified choice or text answer and prints a completion line; it runs no deployment, purchase or other external action. An unanswered request exits without that completion line. The CLI performs answer verification and the one-time claim.
curl -fsSLo input-demo.sh https://ntfyx.me/examples/scripts/input-demo.sh
cat input-demo.sh
bash input-demo.sh Work choice
bash input-demo.sh Work textIf you do not answer in time
#The wait duration must not exceed the request lifetime. The CLI cancels a timed-out wait unless you explicitly keep it pending. Deny, expiry, verification failure and an uncertain claim must not authorize the next action. A reply arriving after an invocation has ended cannot bring that invocation back.
A one-time claim coordinates consumption of an answer; it does not guarantee exactly-once effects in another service.
| Outcome | Expected workflow behavior |
|---|---|
| Verified Allow or valid choice/text with a successful claim | Continue only the corresponding supported workflow. |
| Deny or expiry | Stop or return control to the terminal. |
| Network or verification failure | Report the uncertainty; do not invent an answer. |
| Unknown or previously consumed claim | Do not blindly repeat an external action. |
When you need the whole conversation
#Ntfyx carries notifications and individual questions. If you need to inspect the entire Claude conversation and continue the session from another device, compare Claude Remote Control. If a tool has no supported permission integration, a completion notification remains useful, but it does not provide automatic input forwarding.
Privacy, phones and availability
#Titles, questions, options and answers are encrypted on your devices. The relay still sees routing metadata, timing and sizes. Endpoint compromise can expose plaintext. The two phone platforms share the interaction protocol, while store purchases and push providers differ. Restoring a purchase never restores your encryption keys.