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 happenedWhat to useWhat happens next
The task or command finishedsend or a completion hookYou read the result; no answer is required.
A supported tool needs permissionNative PermissionRequest adapterAllow or Deny goes back to that invocation.
The workflow needs a choice or missing informationask or local stdio MCPThe agent or script receives the verified choice or text.
An arbitrary terminal prompt is blockedAn explicit integration or the terminalNtfyx 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.

Terminal
curl -fsSL https://ntfyx.me/install.sh | bash
ntfyx connect
ntfyx topics

Receive 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.

Terminal
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 codex

Ask 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.

Terminal
ntfyx ask "Which environment should I check?" \
  --choice staging=Staging --choice production=Production \
  --topic Work --wait 60s --expires 90s --json

Ask 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.

Terminal
ntfyx ask "What should I check next?" \
  --text --topic Work --wait 60s --expires 90s --json

Try 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.

Terminal
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 text

If 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.

OutcomeExpected workflow behavior
Verified Allow or valid choice/text with a successful claimContinue only the corresponding supported workflow.
Deny or expiryStop or return control to the terminal.
Network or verification failureReport the uncertainty; do not invent an answer.
Unknown or previously consumed claimDo 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.