Moshi y Herdr: controla tus agentes de IA desde el teléfono
Moshi y Herdr: controla tus agentes de IA desde el teléfono
Configura Moshi y Herdr para controlar Claude Code, OpenCode o Codex desde el teléfono. Sesiones persistentes, notificaciones, diff viewer y code review
Llevo un tiempo buscando la manera de tener un agente de IA corriendo 24/7 al que pueda hablarle desde el teléfono, con una experiencia parecida a la que tengo cuando programo en mi PC. En concreto quería dos cosas:
- Que tuviera acceso a las memorias de las demás sesiones que se han ido guardando en Engram (revisa mi artículo sobre Engram si no sabes de qué hablo).
- Poder abrir una terminal, revisar los diffs de los archivos modificados y pedirle a algún agente de IA que modifique algo del código, sin tener que pasar por todo el proceso de prender mi PC solo para eso. Además, no siempre ando con mi PC para todos lados.
En este artículo te cuento cómo lo resolví con Moshi y Herdr. Pero antes, un repaso rápido de lo que probé y no terminó de funcionar para mi caso de uso.
Lo que probé antes 🧪
hermes-agent. Con el ZimaBlade ya preparado como mi sandbox o patio de juegos, fue lo primero que quise probar debido a su gran popularidad. Dos cosas lo descartaron: el consumo masivo de memoria RAM (al menos en la versión que probé, 1 GB en idle 😒, sin hacer nada más) y que no podía usar mi suscripción de Claude Code sin exponerme a que Anthropic me baneara.
ZeroClaw. Este estaba muy bien, y te lo recomiendo si lo que te preocupa es la RAM: seguía sin poder usar Claude Code, pero ya tenía un agente 24/7 de bajo consumo. En mis pruebas consumía entre 10 y 15 MB de RAM. En contra, la instalación y la configuración me resultaron un poco engorrosas. Lo usé un tiempo para gestionar el homelab y alguna tarea pequeña, pero no era exactamente lo que buscaba.
Termux. Es tal cual tener una terminal en tu teléfono: te conectas por SSH a tu VPS o PC remota sin problema. Pero es todo muy primitivo: con datos móviles la sesión se cae en cualquier momento y, si sales de la app, tienes que volver a conectar. Y algo que no parece importante, pero molesta mucho cuando estás acostumbrado a escribir deslizando el dedo sobre el teclado (swipe): no lo permite y tampoco tienes autocompletado.
Moshi: la terminal que buscaba 📱
Así llegué a Moshi. Permíteme presentártelo. De entrada, tiene app para iPhone y Android. Antes de que avancemos debo advertirte: esta app sí requiere suscripción, aunque tiene un periodo de prueba y algunas funciones que no necesitan una suscripción activa. Lo que te recomiendo es que la pruebes, veas si te gusta y decidas si realmente necesitas la suscripción. Yo así lo hice: me gustó y, en lugar de pagar mes con mes o anualmente, pagué el lifetime y se acabó. Por ahora estoy conforme.
Instalación en el host 🛠️
A diferencia de Termux, Moshi sí requiere que instales algunos binarios en el host al que te vas a conectar. Solo es cuestión de seguir las instrucciones de la documentación, que en resumen son los siguientes comandos:
# macOS
brew tap rjyo/moshi
brew trust rjyo/moshi
brew install moshi-hook
brew install mosh tmux
# Debian, Ubuntu o WSL en Windows
curl -fsSL https://getmoshi.app/install.sh | sh
sudo apt install mosh tmux
A la fecha en que escribo este artículo, para ejecutarlo en Windows necesitas WSL. Puede que con el tiempo tenga soporte nativo.
Luego, para conectar el host con la app de tu teléfono, puedes usar tu clave SSH o, lo que yo te recomiendo, usar Easy Pair, que genera un código QR en la terminal. Desde tu teléfono solo tienes que escanearlo y listo, lo que facilita todo el proceso de conexión.
Para que la terminal genere el código QR, ejecuta:
moshi-hook host setup

Hasta aquí ya deberías tener una conexión estable a tu host, VPS o PC remota, y podrías simplemente ejecutar desde la terminal tu agente de IA (claude, opencode, kimi o el que suelas utilizar), pero no le estarías sacando el máximo provecho.
Herdr en lugar de tmux 🐑
Podrías quedarte con tmux, que instalamos en los comandos anteriores, pero yo personalmente te recomiendo utilizar Herdr.

Si todavía no has oído hablar de tmux ni de Herdr, te lo resumo rápido: los dos son multiplexores de terminal. Y si ese término no te dice nada, quédate con esta idea: es un programa que mantiene tus comandos ejecutándose en segundo plano. Normalmente, si abres una terminal, lanzas un comando y la cierras a medio proceso, el comando muere de golpe. Con un multiplexor no. El proceso sigue corriendo aunque cierres la terminal o se te caiga la conexión SSH, y cuando vuelves a conectarte lo encuentras donde lo dejaste. Justo lo que necesitas para un agente que trabaja mientras tú andas con el teléfono en la mano, saltando de aplicación en aplicación.
Lo único que no sobrevive es un reinicio del equipo, y ahí está la primera razón por la que prefiero Herdr. Con tmux, al menos sin plugins, después de reiniciar no queda nada. Herdr, en cambio, en el siguiente arranque vuelve a abrir tus paneles, workspaces y tabs, y si tenías un agente corriendo intenta retomar el hilo de la conversación que tenías en proceso.
La segunda razón es que Herdr está pensado específicamente para agentes de IA. Te avisa con una notificación, del sistema, en la propia terminal o dentro de Herdr, cuando el agente necesita una acción tuya o cuando simplemente terminó, y en su sidebar puedes ver de un vistazo el estado de cada agente: working, blocked, done o idle.
Desde que lo encontré ya no uso la terminal de la misma manera. Si eres de utilizar la terminal a puros atajos de teclado, Herdr los tiene y, si no me equivoco, comparte varios con tmux, por si vienes de este. Pero si lo quieres usar con mouse, no te juzgo 👀: Herdr también lo soporta perfectamente. Para instalarlo, igualmente solo sigue la guía de instalación. Se trata de ejecutar un solo comando y listo. Como nota, este sí tiene soporte nativo para Windows.
Si decides instalar Herdr para probarlo, te súper recomiendo que le agregues la skill oficial a tu agente. Con eso puedes pedirle que abra paneles, workspaces o tabs de Herdr, que los cierre… en fin, puedes gestionar todo Herdr desde tu agente.
Ahora, desde la app de Moshi, cuando quieras conectarte a tu host verás herdr además de tmux, y tú decides cuál usar. Mi regla es sencilla: si lo que voy a ejecutar es un agente de IA, uso Herdr. Si solo es algún comando, tmux.

Notificaciones con moshi-hook 🔔
Para que Moshi te envíe notificaciones sobre la actividad de tu agente (por ejemplo, si ya terminó o si requiere tu intervención para contestar alguna pregunta), necesitas configurar moshi-hook. Dentro de la app ve a Settings > Integraciones > Agent hooks, copia el token del dispositivo y, en el host, ejecuta los siguientes comandos:
moshi-hook pair --token <token-de-Moshi>
moshi-hook install
En mi experiencia, al menos por ahora, cuando actualizas tu agente (digamos, Claude Code) o el propio moshi-hook, el hook que rastrea los eventos y acciones de tus agentes para enviarte las notificaciones se desconfigura y tienes que volver a ejecutar:
moshi-hook install
Si no estás seguro de si te hace falta, puedes ejecutar:
moshi-hook status
Este comando te dirá si todo está bien o si hace falta volver a ejecutar el install.
Por último, para que moshi-hook persista incluso después de un reinicio, ejecuta:
# Linux o WSL
moshi-hook service install
moshi-hook service status
# macOS
brew services start moshi-hook
Moshi en acción 🚀
Hasta aquí la configuración. Ahora déjame mostrarte con qué te encontrarías desde la app, ya en acción:

Si usas Claude Code, como en mi caso, luciría de esta manera. He abierto una sesión de Herdr. Arriba puedes ver el nombre asignado a la sesión y el tipo de conexión (mosh en este caso). El siguiente es el botón para ver el diff de los archivos modificados. Debo resaltar que para sesiones de Herdr no funciona correctamente, pero sí para sesiones de tmux (más adelante te muestro cómo luciría). Y el último botón es para ver los servidores activos en el host:

Al darle tap a uno de ellos, se abre en un webview sin salir de Moshi.
Regresando a la imagen anterior, en la barra de herramientas inferior verás distintos botones. Todos son personalizables. Los que ves ahí son los que me resultan más útiles a mí.
De izquierda a derecha, los que yo tengo configurados son: Ctrl, Esc, Tab, Enter y un… ¿joystick? No sé bien cómo llamarlo, pero puedes pulsar y arrastrar hacia la dirección que quieras para simular las flechas direccionales. Yo lo prefiero en lugar del D-Pad que trae por defecto. Luego tenemos los atajos.

Los atajos también son configurables: por defecto ya trae algunos para tmux, Claude Code y Herdr, pero puedes agregar los tuyos.
El siguiente botón, que se ve casi oculto, sirve para pegar directamente en la terminal lo que tengas en el portapapeles.
El ícono de diálogo abre un campo de texto donde puedes usar tu teclado con autocompletado o dictar, ya sea con el dictado de tu teclado o con el de Moshi. Si usas el de Moshi, este tiene algunos modelos de speech-to-text que se ejecutan localmente en tu teléfono y traduce lo dictado directamente al inglés (en caso de que le hables en español, por ejemplo). Lo que envíes ahí va directo a la terminal y hace Enter automáticamente.

Finalmente, el último botón solo sirve para mostrar u ocultar el teclado.
Code review desde el teléfono: el diff viewer 🔍
Volvamos ahora al apartado del diff. Como te comentaba, por ahora solo funciona en tmux. Lo que haces es dirigirte a la carpeta donde hay cambios y, si tienes Git inicializado y hay cambios pendientes, verás el ícono de diff en naranja, como en la siguiente imagen.
![]()
Al presionarlo, en la primera tab verás la lista de archivos modificados y el diff. Si presionas la flechita, deshaces los cambios, y si le das al +, agregas el archivo a staged.

Las siguientes tres tabs son Commits, Branches y PRs activas.

La última tab te permite ver el working tree y abrir cualquiera de los archivos.

Como ves, lo del diff está muy completo si quieres hacer code review directamente desde tu teléfono.
Notificaciones y cuota del agente 📊
Regresemos a la home de la app de Moshi. Si te deslizas hacia la izquierda, verás las notificaciones de las sesiones que has tenido, con el estado del agente y también el consumo de la cuota del agente que utilizas. En mi caso lo he probado con Claude Code, OpenCode y Codex, y los tres funcionan muy bien. En la captura de la derecha puedes ver las cuotas de Claude Code y de Codex al mismo tiempo. Oficialmente moshi-hook soporta también Cursor, Kimi Code y hasta hermes-agent, entre otros, pero no he llegado a probarlos. Si usas alguno de ellos y te muestra el detalle, cuéntame en los comentarios.

Al abrir alguna de las sesiones verás más detalle sobre ella, que luciría parecido a esto:

Como te he ido mostrando, Moshi está muy completo y tiene más características, como pegar imágenes directamente en el agente o gestos para moverte entre paneles, working trees y tabs de Herdr, entre muchas otras. Yo lo uso diariamente y, si te animas a usarlo, te invito a que lo explores todo lo que puedas. Seguramente me habré olvidado de alguna función que te pueda ser útil.
Recomendación extra 🔐
Si te conectas vía Moshi a tu homelab, está de más decirlo, pero lo recomendable es hacerlo a través de una VPN tipo Tailscale. Una vez conectado a tu VPN, accedes a tus servidores vía Moshi sin ningún problema.
Y si quieres ver a qué me conecto yo desde Moshi, en Mi Homelab Setup: más de 50 contenedores Docker en Raspberry Pi te cuento cómo está montado. 🏠
Cuéntame, ¿qué te ha parecido Moshi? ¿Te he picado la curiosidad para darle una oportunidad? Espero tus comentarios. 💬
¿Te sirvió? Compartelo con alguien