Cuando Claude Code necesita que elijas entre varias opciones, llama a una herramienta llamada AskUserQuestion y espera tu elección. Un hook PreToolUse que coincida con AskUserQuestion puede responder por ti devolviendo la pregunta con el campo answers relleno. Así es como respondes a las preguntas de Claude Code desde el móvil: un hook envía la pregunta y sus opciones al móvil, espera tu elección y la devuelve. Claude Code Notifier lo hace en Mac, Windows y Linux con su herramienta ccn y su app para el móvil.
01Qué es AskUserQuestion
A veces Claude llega a una bifurcación que no debería decidir solo. ¿Qué framework? ¿Mantener la API antigua o eliminarla? ¿Arreglar el test o el código? En lugar de adivinar, hace una breve pregunta de opción múltiple. En la terminal ves la pregunta y unas cuantas opciones con etiqueta y descripción, y eliges una con el teclado.
Como cualquier llamada a herramienta, AskUserQuestion pasa primero por los hooks de Claude Code. Esa es la puerta que necesita una respuesta remota.
Las preguntas no son lo mismo que los prompts de permisos. Un prompt de permisos pide un sí o un no sobre una acción concreta, y lo responde el hook PermissionRequest (consulta Aprueba solicitudes de permisos de Claude Code desde el móvil). Una pregunta te pide elegir, y la respuesta es una etiqueta, no un sí.
02Cómo da la respuesta un hook
Un hook PreToolUse recibe el input de la herramienta como JSON por la entrada estándar. En AskUserQuestion, el input contiene un array questions. Cada pregunta tiene question (el texto), header (una etiqueta corta), options (cada una con label y description) y multiSelect.
Con esta herramienta no basta con devolver "allow", porque la respuesta tiene que salir de algún sitio. La referencia de hooks de Anthropic indica que el hook debe devolver las questions en updatedInput y añadir un objeto answers que asocie el texto de cada pregunta con la etiqueta elegida:
{
"hookSpecificOutput": {
"hookEventName": "PreToolUse",
"permissionDecision": "allow",
"updatedInput": {
"questions": [
{
"question": "Which framework?",
"header": "Framework",
"options": [
{ "label": "React", "description": "Component library" },
{ "label": "Vue", "description": "Progressive framework" }
],
"multiSelect": false
}
],
"answers": { "Which framework?": "React" }
}
}
}
En una pregunta de selección múltiple, une las etiquetas elegidas con comas. Si el hook no imprime nada, la pregunta aparece en la terminal como siempre.
Cómo registrarlo
{
"hooks": {
"PreToolUse": [
{
"matcher": "AskUserQuestion",
"hooks": [
{ "type": "command", "command": "/path/to/your-answer-script" }
]
}
]
}
}
Pon esto en ~/.claude/settings.json para que se aplique a todos los proyectos. Para ver todos los eventos de hooks y dónde encaja cada uno, consulta Los hooks de Claude Code, explicados.
Una nota sobre las ejecuciones no interactivas
En las ejecuciones con claude -p, la documentación de Anthropic dice que AskUserQuestion solo está disponible cuando la ejecución tiene un host de permisos que reciba el prompt, como un callback canUseTool del Agent SDK. En una ejecución con script sin más, puede que Claude directamente no pregunte. Esta guía trata sobre sesiones interactivas.
03Qué hace que una respuesta desde el móvil funcione bien
El JSON es lo fácil. Las cuestiones de diseño son las mismas que con los prompts de permisos:
- Muestra la pregunta completa. El header, la pregunta y la descripción de cada opción importan. Una etiqueta sola ("Opción B") no sirve de nada en la pantalla de bloqueo.
- Mantén la terminal usable. Si estás en el ordenador, deberías poder responder ahí, no esperar a un hook que está esperando a tu móvil.
- Ríndete limpiamente. Si no llega ninguna respuesta, el hook debería no devolver nada antes de su timeout para que aparezca el prompt en la terminal.
- Usa el texto exacto. Las claves de
answersdeben ser el texto de la pregunta tal como lo escribió Claude, y los valores, las etiquetas de las opciones.
04Usar Claude Code Notifier
Claude Code Notifier es una herramienta independiente de TouchTap Ltd, no creada por Anthropic. Su herramienta de línea de comandos, ccn, instala un hook PreToolUse para AskUserQuestion junto con sus otros hooks. Cuando Claude hace una pregunta y no estás, tu móvil muestra la pregunta y sus opciones. Toca una, el hook da la respuesta y Claude sigue adelante.
Instálalo en Mac o Linux:
curl -fsSL https://claudecodenotifier.com/install.sh | sh
o en Windows desde PowerShell (beta):
irm https://claudecodenotifier.com/install.ps1 | iex
Después empareja tu móvil escaneando el código QR o escribiendo el código de 6 dígitos de la app. Conecta tu móvil a Claude Code explica el proceso en cada sistema operativo.
Tu presencia decide dónde respondes
ccn aplica a las preguntas la misma regla de presencia que a los permisos. Si has escrito algo en los últimos 30 segundos, la terminal pregunta como siempre y el móvil recibe como mucho un aviso. Si no estás, la terminal espera al móvil hasta el límite que elijas (hold_ceiling_seconds, de 30 a 3600, 600 por defecto) y deja de esperar en cuanto tocas el teclado.
Elige qué llega a tu móvil
Las preguntas tienen su propio ajuste, notify_on_question, independiente de notify_on_permission y notify_on_done, así que puedes mantener un tipo y desactivar otro. ccn config show muestra lo que está activo, y la mayoría de los ajustes también se pueden cambiar por ordenador desde la app del móvil.
Las horas de silencio también se aplican, por ejemplo ccn config set quiet_hours 22:00-08:00. Consulta Horas de silencio y No molestar.
Sin un móvil vinculado, ccn sigue mostrando una notificación de escritorio gratuita en el ordenador cuando Claude hace una pregunta, para que sepas que tienes que volver. Para responder desde el móvil necesitas la app, que se descarga gratis y requiere una suscripción o una compra vitalicia para usarla. Consulta los precios.
05Preguntas, instrucciones de seguimiento y finalización
Las preguntas son uno de los tres momentos en los que Claude te espera. Los otros dos son los prompts de permisos y el final de un turno. Justo cuando Claude termina, Claude Code Notifier también te deja enviar la siguiente instrucción desde el móvil, que el hook Stop devuelve a Claude como su próxima instrucción. Entre los tres cubren casi todo lo que deja una tarea larga en espera. Deja Claude Code en marcha y aléjate los combina en una sola rutina.
06Preguntas frecuentes
¿Puedo escribir una respuesta libre en lugar de elegir una opción?
La vía documentada del hook responde con las etiquetas de las opciones a través del campo answers. En Claude Code Notifier, eliges entre las opciones en el móvil. Si ninguna encaja, deja la pregunta para la terminal o guía a Claude con una instrucción de seguimiento cuando termine.
¿Por qué el "allow" de mi hook PreToolUse no responde a la pregunta?
Porque AskUserQuestion necesita una respuesta, no solo permiso. Devuelve updatedInput con las questions originales y un objeto answers, como se muestra arriba.
¿Y si Claude hace varias preguntas a la vez?
El array questions puede contener más de una. El objeto answers necesita una entrada por cada pregunta, con su texto exacto como clave.
¿Funciona en VS Code, Cursor o JetBrains?
El hook pertenece a Claude Code, no a la terminal, así que también se dispara en la terminal integrada de un IDE. Consulta Notificaciones de Claude Code en las terminales de VS Code, Cursor y JetBrains.