Conserva tus terminales de Claude Code, Codex y OpenCode, o trabaja desde la app
Happier los ejecuta como la misma sesión que habrías arrancado tú — así que puedes manejarla desde su propia TUI, desde el teléfono o desde los dos, sin que la sesión se entere.
Si vives en una terminal, casi todo lo que se escribe sobre ejecutar agentes de programación desde el teléfono suena a que te pidan que lo dejes. Es justo negarse a eso. Nada de una pantalla de teléfono es mejor que tmux y un teclado para la parte del trabajo en la que de verdad eres bueno.
Así que aquí la afirmación es más estrecha. Una sesión de Happier es una sesión con dos frontales: una terminal en el ordenador que hace el trabajo es uno, la app de tu teléfono es el otro. Cambiar entre ellos no arranca nada nuevo — el id de sesión, la transcripción, el modo de permisos y los mensajes encolados son los mismos objetos al otro lado del cambio.
Empieza en la terminal o en la app, y muévete entre las dos
- Empieza en la terminal
- Ejecuta
happieren un repositorio y obtienes el agente por defecto con la app enganchada.happier codex,happier opencode,happier geminiy el resto del registro son lo mismo apuntado a otra CLI. Estás en tu propia terminal, en tu propio shell, con tus propios alias; la app está mirando. - Empieza en la app, termina en la terminal
- Arranca una sesión desde el teléfono en el tren y luego ejecuta
happier attach <session-id>cuando te sientes. Sin id abre un selector de las sesiones en marcha en ese ordenador, y marca aquellas a las que no puede engancharse con el motivo en vez de esconderlas. - Devuelve la sesión a la app
- Tomar el control local se hace desde la terminal; devolverlo se puede pedir desde la app. Happier esperará primero a que el turno actual de la terminal llegue a un punto seguro de parada, porque forzar un prompt dentro de una TUI ocupada es como se pierde el trabajo que tenía a medias.
- Usa la terminal integrada en la app
- Un shell en vivo en el ordenador conectado, acoplado al panel inferior, a la barra lateral o al panel de detalles, que sobrevive a un refresco de la página y conserva el mismo shell mientras lo mueves de sitio. Es el mismo transporte de terminal que usa la app para ejecutar los inicios de sesión de los proveedores.
Qué agentes mueven una sesión entre la terminal y la app
Tres de los trece, y no se comportan igual. Codex es exclusivo — un solo conductor cada vez. OpenCode no lo es, y Claude Code puede ser cualquiera de las dos cosas, según el runtime con el que lo arranques.
| Agente | Terminal y app a la vez | Se reengancha con | Qué significa en la práctica |
|---|---|---|---|
| Claude Code | Uno cada vez, o los dos | tmux | Con el runtime por defecto, un mensaje que envías desde la app mientras manejas la terminal espera en la cola en lugar de escribirse en tu sesión; las solicitudes de permiso se siguen reenviando a la app, y ese puente está activado por defecto. El runtime de terminal unificado es el caso de «los dos» — véase abajo. |
| Codex | Uno cada vez | tmux | La misma exclusividad. Happier espera a que el turno local termine, se aborte o salga antes de recuperar la sesión y entregar lo que hayas encolado. |
| OpenCode | Los dos a la vez | El attach propio de OpenCode | Control local compartido sin nada que habilitar antes: la app se puede seguir escribiendo mientras la TUI de OpenCode está enganchada, y no hay ningún multiplexor de por medio. |
Los otros diez agentes que ejecuta Happier siguen arrancando desde la terminal con happier <agent> y siguen apareciendo en tu teléfono. Lo que no hacen es dejarte llevar la sesión de vuelta a su propia TUI a mitad de camino.
Maneja una misma sesión de Claude Code desde la terminal y desde la app
Dirigir e interrumpir son movimientos distintos. Interrumpir detiene el turno en marcha y arranca otro a partir de tu mensaje. Dirigir añade al turno en marcha — el trabajo continúa, ahora sabiendo lo que le acabas de decir. Los dos son útiles, y el segundo es el que quieres cuando levantas la vista del teléfono y te das cuenta de que está a punto de renombrar el archivo equivocado.
Anthropic documenta la entrada en streaming del Agent SDK como mensajes en cola que se procesan de forma secuencial, con la posibilidad de interrumpir. Ese es el runtime que Happier usa para Claude Code por defecto y, para la mayoría de las sesiones, es el adecuado. La propia terminal de Claude Code acepta el otro tipo de mensaje: escribe mientras trabaja y la instrucción se suma al trabajo que ya está en vuelo.
El runtime de terminal unificado es cómo llega la app hasta ahí. Happier arranca la TUI real de claude dentro de un host de terminal compartido — tmux donde lo tengas, si no el zellij que Happier incluye — transmite esa terminal a todos los dispositivos en los que tengas la sesión iniciada, y escribe lo que envías desde la app en el mismo compositor en el que habrías escrito tú. Un proceso de Claude Code, una sesión, dos teclados sobre ella. Puedes estar escribiendo en la TUI en tu escritorio mientras esa misma sesión se contesta desde un teléfono, y ninguno de los dos extremos deja fuera al otro.
Está apagado hasta que lo enciendes, en los ajustes del proveedor Claude Code. Necesita tmux o el zellij incluido, así que hoy eso significa macOS y Linux; en Windows la CLI te dice que uses WSL2 en lugar de arrancar algo que no puede verificar. Y cuando la terminal está en un estado en el que escribir no sería seguro — hay un diálogo abierto, o estás a medias de una línea tuya — Happier retiene tu mensaje en vez de escribir por encima de ti.
Qué necesita el attach: tmux, el mismo ordenador, un daemon en marcha
El que pilla a la gente: en macOS y Linux, engancharse a una sesión de Claude Code o de Codex arrancada desde la app requiere tener activada la integración con tmux antes de que esa sesión arranque. Actívala después y la sesión que ya está en marcha no es enganchable — nunca se lanzó dentro de tmux para empezar. También tienes que engancharte desde el mismo ordenador que posee la sesión y con la misma cuenta que la arrancó.
Windows no usa tmux. Allí una sesión se lanza Oculta, en Windows Terminal o en una consola, y happier attach enfoca el host que ya existe en lugar de reengancharse a un multiplexor. Es una elección por máquina y por sesión, no global.
La terminal integrada necesita tu daemon en marcha y conectado para el ordenador al que apuntas. Si el daemon está desconectado, Happier muestra un estado de error en vez de un shell que no hace nada en silencio.
tmux, el modo de sesión de Windows y dónde se acopla la terminal
Nada de esta página necesita configuración si arrancas tus sesiones desde la terminal — esa vía funciona en cuanto la CLI está instalada. Los ajustes que sí requieren una decisión son la integración con tmux, el modo de sesión de Windows y dónde se acopla la terminal integrada, y los tres están en la referencia de configuración.

