Ask the user for free-form text
ask_textAsk users an open-ended question and collect typed responses for inputs that cannot be enumerated, such as URLs, identifiers, or naming preferences.
Instructions
Ask the user an open-ended question and wait for a typed answer. Use this only when the answer cannot be enumerated — a URL, a credential-free identifier, a naming preference, or extra context you cannot infer. If a handful of concrete answers would cover most cases, use ask_choice instead so the user can answer with one keystroke. Returns the typed string in answer.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| default | No | Optional pre-filled answer the user can accept or edit. | |
| question | Yes | The open-ended question to ask. Prefer ask_choice when the reasonable answers are enumerable. | |
| timeout_ms | No | Optional override, in milliseconds, for how long to wait for the user. Defaults to the server setting (HIM_TIMEOUT_MS, 300000). | |
| placeholder | No | Optional format hint shown inside the input, e.g. "owner/repo" or "an absolute Windows path". |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| via | Yes | Channel that produced the outcome. | |
| tool | Yes | Name of the tool that produced this result. | |
| answer | Yes | The answer as a string: chosen label, "yes"/"no", or the typed text. | |
| status | Yes | Outcome. Only `answered` carries a usable answer. `needs_user_input` means you must ask the user yourself, in chat, using the question and options in `message`. | |
| message | Yes | Human-readable summary, including options when the question is still unanswered. | |
| fallback | Yes | Configured fallback mode (HIM_FALLBACK). | |
| form_url | Yes | Loopback form URL, when the http fallback served this question. | |
| question | Yes | The question as it was asked. | |
| selected | Yes | Selected labels; exactly one for ask_choice, N for ask_multi_select. | |
| confirmed | Yes | ask_confirm only: true for yes, false for no. | |
| free_text | Yes | Optional free-text note supplied alongside a choice. | |
| next_step | Yes | What you should do next. Follow it. | |
| elapsed_ms | Yes | Wall-clock time spent waiting for the user, in milliseconds. | |
| client_elicitation | Yes | Whether the connected client declared MCP form-elicitation support during initialize. | |
| auto_reject_suspected | Yes | True when a decline came back so fast that the client probably auto-rejected rather than asking the user. |