zeph_ask
Request user input with quick-reply buttons and a text field in one notification, then wait for their tap or typed response. Use for confirmations, choices, and free-text answers.
Instructions
Ask the user a question with quick-reply buttons and a text input field. Combines prompt (buttons) and input (text) in a single notification. The user can either tap a button or type a response. actions is the steering surface, not decoration: pass 2–4 buttons on nearly every ask — the next-step candidates you would otherwise write as prose (next command, review, stop) plus a safe Done-like fallback. Leave actions out ONLY when the answer is inherently free-form text (a name, a path, a paragraph); a bare text box on a "done — what next?" ask leaves the phone with nothing to tap. Blocks until the user responds or the timeout is reached. Requires ZEPH_HOOK_ID environment variable. The user may also attach screenshots or files to the answer: those arrive as local absolute paths in the attachments field of the result, and reading them is part of reading the answer. NOTE: unlike zeph_notify and zeph_file, this tool is never end-to-end encrypted — the hook route it uses cannot carry the sender key — so do not put secrets in the question or expect a private answer.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | Context or instructions | |
| title | Yes | Question or request title | |
| actions | No | Quick-reply buttons (1-4). Expected on nearly every ask — the phone steers by tapping, so put the next-step candidates here (next command, review, stop) plus a Done-like fallback. Omit ONLY when the answer is inherently free-form text; never omit on a "done — what next?" ask. | |
| timeout | No | Seconds to wait for response (default: 120) | |
| fallback | No | Action ID to auto-select on timeout | |
| inputType | No | Input field type (default: text) | text |
| placeholder | No | Input field placeholder hint |