Blog

Claude Code y Herdr: deja al agente trabajando y vuelve desde el portátil

Cómo montar Claude Code en un servidor con Herdr para lanzar una tarea larga, cerrar la sesión y seguirla desde casa, desde el portátil o desde el móvil.

· 4 min de lectura · Programacion.net

El caso de uso que más se repite entre quienes prueban Herdr es este: tienes un servidor (o un equipo de sobremesa siempre encendido) con el código y las credenciales, y quieres lanzar una tarea larga a Claude Code, irte, y ver desde otro sitio si ha terminado o si te está esperando. Vamos a montarlo.

Lo que necesitas

Acceso SSH normal al servidor, Herdr instalado en las dos máquinas (en el servidor puede instalarlo Herdr por ti, ya lo veremos) y Claude Code en el servidor. Compruébalo antes de nada:

Ventana de terminal
ssh workbox

workbox puede ser un alias de tu ~/.ssh/config. Usarlo en vez del usuario@host te ahorra escribirlo cada vez y, sobre todo, deja que Herdr lo reutilice.

Instalar la integración de Claude Code

En el servidor, dentro de Herdr o desde cualquier terminal:

Ventana de terminal
herdr integration install claude

Esto escribe un gancho (hooks/herdr-agent-state.sh) en tu directorio de Claude (~/.claude o el de CLAUDE_CONFIG_DIR) y lo registra en settings.json. El gancho hace una sola cosa: cuando empieza una sesión, le dice a Herdr cuál es su identificador. El estado (trabajando, bloqueado, hecho) no sale de ahí; lo deduce Herdr mirando la pantalla. Lo que te da la integración es la restauración: si el servidor de Herdr se reinicia, el panel vuelve con claude --resume <id> y no pierdes la conversación.

Opción A: como tmux

La forma más sencilla, y la única que funciona desde un cliente SSH de móvil:

Ventana de terminal
ssh workbox
herdr
claude

Todo corre en el servidor. Le das la tarea a Claude Code, esperas a ver que arranca, y te desconectas con ctrl+b y luego q (o cierras el terminal sin más). Cuando vuelvas, ssh workbox y herdr otra vez, y ahí está.

Desde el móvil es exactamente igual: cualquier cliente SSH, y la interfaz de Herdr se adapta a la pantalla estrecha. En iPhone, la documentación recomienda moshi.

Opción B: la interfaz en local

Ventana de terminal
herdr --remote workbox

Aquí el servidor sigue en el remoto, pero la interfaz la pinta tu Herdr local, con tu tema y tus atajos. La primera vez, si en el servidor no hay Herdr o está desactualizado, te pregunta antes de instalarlo o actualizarlo. La ventaja frente a la opción A es que las funciones del escritorio local llegan al servidor: puedes pegar una imagen del portapapeles en la conversación con Claude Code y Herdr la copia a un fichero temporal remoto.

Opción C: varias máquinas a la vez

Si tienes más de un servidor, o quieres el local y el remoto en la misma ventana:

Ventana de terminal
herdr machine add workbox --label "Servidor de pruebas"
herdr

La máquina aparece en la barra lateral con sus espacios de trabajo, y la lista de agentes combina los de todas. Cambias de una a otra con un clic. Si se cae la conexión con el servidor, lo ves atenuado y Herdr reintenta solo; el local sigue funcionando. Más detalle en Conectar máquinas.

Saber cuándo te necesita

Con el agente trabajando en otra máquina, lo que quieres es que te avise. Herdr tiene notificaciones para dos momentos: cuando un agente termina y cuando se bloquea esperándote. Se configuran en ~/.config/herdr/config.toml:

[ui.toast]
delivery = "terminal"
delay_seconds = 1

terminal pide la notificación a la terminal exterior, y por eso funciona también a través de SSH. system usa las notificaciones del sistema operativo local, y herdr muestra un aviso dentro de la aplicación. Si tienes varias sesiones de Claude Code, el estado bloqueado en la barra lateral te dice cuál pide permiso sin abrir cada panel.

Desde un script, sin abrir la interfaz

Todo lo anterior también se hace por línea de comandos, apuntando a la máquina guardada:

Ventana de terminal
herdr --machine "Servidor de pruebas" agent list
herdr --machine "Servidor de pruebas" agent prompt w1:p1 "Revisa el diff y arregla los tests" --wait --timeout 600000
herdr --machine "Servidor de pruebas" agent read w1:p1 --source recent-unwrapped --lines 80

agent prompt --wait envía el texto y espera hasta que el agente queda en espera, hecho o bloqueado. Es la base para encadenar tareas o para que un agente le encargue trabajo a otro; la guía de automatización con agentes tiene las recetas.

Un par de avisos

Si la clave SSH tiene contraseña, cárgala en ssh-agent antes de usar las conexiones en segundo plano de las máquinas guardadas, que no pueden preguntártela. Y si trabajas con Git dentro de los paneles remotos y quieres firmar o autenticarte con tu agente SSH, activa ForwardAgent yes para ese host en tu configuración; Herdr no lo hace por ti.