Deja de quedarte en "esperando aprobación": soluciona los avisos de permisos en Claude Code, Codex y OpenCode (sin pasarte al YOLO total)
Una forma práctica de saber si estás bloqueado por una aprobación real, por una configuración que no se aplica o por un problema de interfaz o conexión, y cómo mantener las sesiones avanzando con seguridad.
- CLI
- 0.2.17
- Ref de preview
- a2c45c8
Lo que de verdad te hace perder tiempo con Claude Code, Codex u OpenCode no suele ser un fallo.
Es esta:
Inicias una sesión, está funcionando, te alejas… y cuando vuelves dice alguna variante de:
- "waiting for approval" (esperando aprobación)
- "needs permission" (necesita permiso)
- "waiting for input" (esperando entrada)
Si estás delante del terminal, suele ser una decisión de 5 segundos.
Desde el móvil (o cuando ya has olvidado qué estaba haciendo), es fácil acabar:
- aprobando algo que no querías aprobar, o
- sin hacer nada durante una hora porque no te diste cuenta
Esta guía cubre el término medio:
mantener las sesiones avanzando sin convertir las aprobaciones en "YOLO total".
Resumen
- Primero decide con qué tipo de "aprobación" estás tratando:
- un aviso de permiso real (esperado)
- un problema de configuración que no se aplica (habitual)
- un problema de interfaz o conexión (también habitual)
- Si usas Codex, revisa las capas de tu configuración de aprobaciones y la confianza del proyecto.
- Si estás con el móvil, el flujo seguro es abrir la sesión en una interfaz que muestre la solicitud en contexto antes de aprobar.
- Happier es una opción que ayuda porque las aprobaciones y solicitudes de permiso son persistentes (Bandeja (Inbox)) y al tocar una notificación vas directamente a la sesión y al servidor correctos.
El problema (en pocas palabras)
Las aprobaciones son una barrera de seguridad.
El problema no es que existan. El problema es cuando se vuelven:
- invisibles (no te diste cuenta)
- ambiguas (no tienes claro qué estás aprobando)
- incoherentes (cambiaste la configuración, pero sigue preguntando)
Y esos tres problemas empeoran en el móvil.
Enfoques habituales y sus contrapartidas
- Desactivarlo todo (YOLO / "never ask"): rápido, pero arriesgado cuando estás cansado.
- Quedarte en el terminal hasta que termine: seguro, pero pierde el sentido de lanzar sesiones largas.
- SSH desde el móvil: funciona, pero revisar aprobaciones en un terminal diminuto es muy incómodo.
Si quieres que las aprobaciones sean explícitas y revisables desde el móvil, Happier es una app de código abierto que te permite ejecutar y orquestar Claude Code, Codex, OpenCode y otros agentes entre dispositivos.
Si no conoces Happier (qué es y dónde conseguirlo)
Si no conoces Happier: es una app complementaria de código abierto (móvil / web / escritorio) para sesiones como Claude Code, Codex y OpenCode.
El flujo es: mantén la sesión ejecutándose en una máquina de confianza y usa Happier desde el móvil para revisar las aprobaciones en contexto.
Para empezar:
- Cómo usar Happier desde el móvil
- GitHub: https://github.com/happier-dev/happier
- Instalación / descarga: https://github.com/happier-dev/happier#how-it-works
- Discord: https://discord.gg/W6Pb8KuHfg
Paso 1: clasifica la "aprobación"
Caso A: es un aviso de permiso real
Este es el caso sano: la sesión quiere hacer algo con efectos secundarios.
Si usas Happier, los modos de permisos existen precisamente para controlar con qué frecuencia se te pregunta:
- Predeterminado (Default)
- Solo lectura (Read-only)
- YOLO seguro (Safe YOLO) (permite lecturas automáticamente y pregunta antes de escribir)
- YOLO (omite tantas preguntas como permita el proveedor)
No todos los proveedores admiten todos los modos. Happier muestra la política que se aplica de verdad.
Caso B: tu configuración no se aplica (Codex es el ejemplo habitual)
Codex tiene un modelo real de configuración por capas.
Si cambiaste algo y no pasó nada, los culpables habituales son:
- editaste el archivo de configuración en la ubicación equivocada
- una capa con más prioridad está sobrescribiendo el ajuste
- la configuración del proyecto no se carga porque el proyecto no es de confianza
- la política de tu organización impone restricciones
En la documentación de Codex esto aparece como:
- configuración de usuario en
~/.codex/config.toml - configuración a nivel de proyecto y control por "confianza"
- opciones como
approval_policyysandbox_mode
Una pista importante: si ves a gente compartiendo configuraciones que dicen "never ask" y aun así les pregunta, no son imaginaciones tuyas. Hay errores específicos de cada entorno que se ven exactamente así.
Caso C: la interfaz está bien, pero estás desconectado
A veces la sesión está esperando, pero tú estás viendo un flujo desactualizado.
Si la máquina entró en reposo o cambiaste de red, puedes acabar en un estado en el que:
- la sesión está bloqueada
- pero no ves el aviso
En ese caso, la "solución" es reconectar y abrir la sesión correcta.
Paso 2: elige un flujo acorde al riesgo
Una regla útil:
- Antes de aprobar algo con efectos reales (escrituras o instalaciones), comprueba:
- qué está haciendo
- dónde lo está haciendo
- qué ha cambiado recientemente
Por eso importa una interfaz cómoda en el móvil.
El flujo de Happier (cuando quieres aprobaciones explícitas)
Happier trata "lo que necesita tu atención" como datos reales:
- una Bandeja global
- solicitudes de aprobación
- solicitudes de permiso
- solicitudes de acción del usuario (como "Exit Plan Mode")
Esto importa porque sobrevive a la navegación. No es un modal que se te escapó.
En el móvil, el enrutado de notificaciones también es estricto:
- te lleva directamente a la sesión correcta
- y evita aprobar automáticamente en servidores desconocidos
Solución de problemas
Configuré approval_policy = "never" y sigue preguntando
Trátalo como uno de estos casos:
- desajuste de confianza o de capas de configuración
- error del cliente específico del entorno
Prueba a:
- confirmar qué capa de configuración se está cargando
- probar la misma sesión en otro entorno (WSL / VM)
- actualizar la herramienta (estos problemas a menudo se corrigen sin anuncio)
No veo los avisos en el móvil
Normalmente es por:
- un desajuste en el enrutado de notificaciones o en el perfil del servidor, o
- no estás abriendo la sesión que tiene el aviso
Usa una única "lista de pendientes" (la Bandeja) en lugar de revisar varias sesiones.