Persistencia y acceso remoto
Herdr mantiene los paneles en marcha en un servidor en segundo plano. Tu cliente de terminal puede desconectarse y volver más tarde.
Para los flujos de trabajo en local, por SSH y con herdr --remote, mira Cómo trabajar con Herdr.
Desconectarse y volver
Sección titulada «Desconectarse y volver»Desconecta el cliente con ctrl+b q; los paneles y los agentes siguen en marcha. Vuelve a conectarte ejecutando herdr otra vez. Para la sesión y sus paneles con herdr server stop.
Cuando Herdr arranca de nuevo tras una parada completa del servidor, restaura la forma guardada de la sesión. Para saber qué sobrevive a la desconexión, al reinicio del servidor, a la reproducción del historial de pantalla, a la restauración nativa de la sesión del agente y al traspaso en caliente, mira Estado de la sesión y restauración.
Sesiones con nombre
Sección titulada «Sesiones con nombre»Usa sesiones con nombre cuando quieras servidores de Herdr independientes.
herdr session listherdr session attach workherdr session attach side-projectherdr session stop workherdr session delete side-projectUna sesión con nombre tiene sus propios paneles, pestañas, espacios de trabajo, sockets y estado de ejecución. Comparte el mismo fichero de configuración global.
Al borrar una sesión, usa el nombre exacto que muestra herdr session list, mayúsculas incluidas. En sistemas de ficheros que no distinguen mayúsculas, herdr session delete foo se niega a borrar una sesión llamada Foo.
Usa --json en scripts:
herdr session list --jsonherdr session stop work --jsonherdr session delete side-project --jsonMáquinas SSH guardadas
Sección titulada «Máquinas SSH guardadas»Para tener la máquina local y varias máquinas SSH en una sola ventana de Herdr, mira Conectar máquinas. Esa guía cubre la configuración, el cambio entre máquinas, las reconexiones, los ajustes y la automatización remota. Eliminar una máquina guardada solo desconecta el cliente; no para las sesiones de esa máquina.
Conexión remota por SSH
Sección titulada «Conexión remota por SSH»Cómo trabajar con Herdr compara las vías de conexión. Entra por SSH en el servidor y ejecuta herdr allí para la vía al estilo tmux, usa máquinas SSH guardadas para trabajar con varias máquinas, o conéctate por SSH desde tu máquina local:
herdr --remote workboxherdr --remote ssh://tú@servidor:2222En este modo, el servidor remoto es el dueño de los paneles en marcha y envía por SSH el contenido de sus terminales y el estado de la sesión. Tu Herdr local pinta la interfaz, con su barra lateral, sus menús y su tema. Como el cliente corre en local, Herdr puede llevar funciones del escritorio local a la sesión remota, como pegar una imagen del portapapeles: copia la imagen a un fichero temporal remoto y pega esa ruta.
Por defecto, herdr --remote usa tus atajos de teclado locales en esa conexión. Así conservas tu memoria muscular aunque el servidor remoto tenga otra configuración. Después de editar los atajos locales, usa la acción reload config de la interfaz para aplicarlos sin desconectarte. Usa --remote-keybindings server cuando prefieras la configuración del servidor remoto. Los atajos de comandos personalizados locales no se envían, porque esos comandos se ejecutarían en el host remoto.
Para los destinos habituales, usa tu configuración de SSH:
Host workbox HostName servidor.ejemplo.com User tú Port 2222Y conéctate con:
herdr --remote workboxLa conexión remota y las máquinas SSH guardadas admiten clientes locales Linux, macOS y Windows conectando a hosts Linux o macOS en x86_64 y aarch64, o a hosts Windows en x86_64. Las versiones local y remota no tienen que coincidir siempre que ambas admitan la generación estable de puntos de acceso. En hosts Linux y macOS, Herdr prefiere un herdr compatible que ya esté en el PATH remoto, y después comprueba las rutas habituales de instalación directa, Homebrew, mise y perfiles de Nix. En hosts Windows, Herdr comprueba el PATH y la versión gestionada activa. Si no hay un binario compatible, las ejecuciones interactivas ofrecen instalar o actualizar uno; las no interactivas fallan en vez de modificar el host. Las instalaciones en Linux y macOS usan ~/.local/bin/herdr; las de Windows usan el paquete completo de Windows con su runtime ConPTY local. Si ~/.local/bin no está en el PATH remoto, Herdr avisa después de instalar.
Por defecto, herdr --remote ejecuta la configuración remota y el puente a través de una configuración de SSH temporal que incluye primero la tuya y añade después ajustes de keepalive de respaldo. Tus ajustes de keepalive prevalecen. Los clientes Linux y macOS usan además un socket de control privado por conexión para reutilizarla; el OpenSSH de Windows no. Define [remote].manage_ssh_config = false para usar ssh a secas, sin la configuración generada por Herdr ni el socket de control.
La conexión remota usa tu autenticación normal de OpenSSH. Si el destino usa una clave protegida con contraseña en un shell no interactivo, un script, una tarea de CI o una terminal móvil que no pueda mostrar la petición de contraseña, carga antes la clave en ssh-agent:
ssh-addherdr --remote workboxAnte cualquier fallo de autenticación remota, comprueba primero el acceso SSH normal con ssh workbox y vuelve a ejecutar herdr --remote workbox.
Una simple diferencia de versión no reemplaza ni reinicia un servidor remoto en marcha. La conexión remota pregunta antes de parar un servidor al que le falte la compatibilidad necesaria o el soporte de demonio desconectado. En las máquinas guardadas, esto incluye también las capacidades de superficie y comprobación de salud descritas en Conectar máquinas. La respuesta por defecto es No; parar el servidor termina los procesos de sus paneles. Para optar por el traspaso en caliente experimental cuando haga falta esa actualización única, pasa --handoff:
herdr --remote workbox --handoffSi entras primero por SSH y ejecutas herdr en el servidor, Herdr corre por completo en el servidor y no puede acceder al portapapeles de tu escritorio más allá del pegado de texto normal de la terminal.
En hosts Linux y macOS, Herdr puede copiar el binario local actual cuando las plataformas coinciden. En instalaciones de Homebrew, mise y Nix, cuando las plataformas difieren, o en hosts Windows, descarga de https://herdr.dev/latest.json el fichero de la versión que corresponde al cliente actual.
Para compilaciones locales o paquetes personalizados, define HERDR_REMOTE_BINARY con la ruta de un fichero local antes de conectar. Usa un ejecutable de Herdr suelto para destinos Linux o macOS y un paquete completo herdr-windows-x86_64.zip para destinos Windows.
HERDR_REMOTE_BINARY=target/release/herdr herdr --remote workboxSesiones remotas con nombre
Sección titulada «Sesiones remotas con nombre»Usa --session junto con --remote para conectarte a una sesión con nombre del host remoto:
herdr --remote workbox --session agentsConexión directa a una terminal
Sección titulada «Conexión directa a una terminal»La conexión completa a Herdr abre toda la interfaz del espacio de trabajo. La conexión directa abre una sola terminal gestionada por el servidor dentro de tu terminal actual.
La conexión directa está disponible en Linux y macOS, no en Windows nativo.
Conexión por destino de agente:
herdr agent attach reviewerConexión por ID de terminal:
herdr terminal attach term_abc123La conexión directa transmite primero el estado pintado actual de la terminal y después los fotogramas ANSI en vivo. La entrada va directa a esa terminal.
Desconecta con ctrl+b q. Para enviar un ctrl+b literal, ctrl+b ctrl+b.
Solo un cliente de conexión directa con escritura es dueño de la entrada y del tamaño de una terminal. Usa --takeover para sustituir al dueño actual:
herdr terminal attach term_abc123 --takeoverPara puentes de terceros que solo necesitan los bytes pintados de la terminal, usa un observador de sesión de terminal de solo lectura:
herdr terminal session observe w1:p1 --cols 120 --rows 40Imprime registros JSON terminal.frame, uno por línea, con los bytes ANSI en base64, y después un registro terminal.closed cuando el servidor cierra el flujo. Varios observadores pueden mirar la misma terminal sin tomar la entrada, el tamaño, el desplazamiento ni la propiedad por takeover.
Para un puente interactivo, usa un controlador de sesión de terminal con escritura:
herdr terminal session control w1:p1 --takeover --cols 120 --rows 40El modo de control imprime los mismos registros de fotogramas, uno por línea, y lee por la entrada estándar comandos JSON, también uno por línea. terminal.input envía texto o bytes en base64, terminal.resize cambia el tamaño del área del controlador, terminal.scroll desplaza la vista conectada y terminal.release cierra el controlador. Solo un controlador es dueño de la entrada y del tamaño a la vez.