herdr es un multiplexor de terminal, como tmux o Zellij, pensado para quien trabaja con varios agentes de programación a la vez: Claude Code, Codex, OpenCode, Copilot CLI y muchos más. Reparte la pantalla en workspaces, pestañas y paneles, mantiene las sesiones vivas aunque cierres la terminal o se corte el SSH, y te dice de un vistazo qué agente está trabajando, cuál ha terminado y cuál te está pidiendo permiso. Es gratuito, de código abierto y está escrito en Rust. Lo hemos probado con la versión 0.9.5, la más reciente, y todas las capturas de esta página, salvo la primera, son nuestras.

Qué es herdr y qué problema resuelve
Los agentes de programación de terminal se han vuelto tan rápidos que mucha gente ya no lanza uno, sino tres o cuatro: uno revisa código, otro escribe pruebas y otro arregla un fallo en otra rama. El problema es saber en qué está cada uno. Con varias pestañas de terminal o con tmux hay que ir mirando panel por panel para descubrir que el agente lleva diez minutos parado esperando a que le digas «sí». herdr nace para eso: detecta el estado de cada agente y lo muestra en una barra lateral, y además permite que los propios agentes abran paneles, se manden instrucciones y se esperen entre ellos.
- Quién lo hace: la organización herdrdev de GitHub, con web en herdr.dev. El proyecto empezó en marzo de 2026 y ronda las 47,000 estrellas en GitHub.
- Licencia: Apache 2.0 desde julio de 2026. Antes fue AGPL, y por eso algunas copias antiguas todavía lo dicen.
- Cómo está hecho: un único binario en Rust, sin Electron, para Linux, macOS y Windows (este último, todavía en beta).
- Qué no es: no es un agente ni un modelo de IA. No sustituye a Claude Code o a Codex: los ejecuta dentro de sus terminales y los vigila.
Instalación
La forma oficial en Linux y macOS es su guion de instalación. Como cualquier curl … | sh, descarga y ejecuta código: si prefieres revisarlo antes, bájalo primero a un archivo y léelo.
curl -fsSL https://herdr.dev/install.sh | sh
También está en Homebrew y en mise, y se puede compilar con Cargo:
brew install herdr mise use -g herdr # desde el código fuente git clone https://github.com/herdrdev/herdr && cd herdr && cargo build --release
En Windows, desde PowerShell:
powershell -ExecutionPolicy Bypass -c "irm https://herdr.dev/install.ps1 | iex"
Si el antivirus bloquea esa orden, la documentación ofrece una alternativa que descarga primero un install.cmd. Los binarios de Windows no están firmados, así que SmartScreen avisará la primera vez. Para actualizar basta con herdr update, y con herdr channel set preview se pasa al canal de versiones de prueba. En las versiones de GitHub están los binarios sueltos para Linux (x86_64 y ARM), macOS (Intel y Apple Silicon) y Windows.
herdr --versionherdr 0.9.5
Primer arranque
Se entra al proyecto y se ejecuta herdr. La primera vez aparece una pantalla de bienvenida que resume lo esencial: es una terminal que se puede manejar con el ratón (clic en la barra lateral para cambiar de workspace, arrastrar los bordes para cambiar el tamaño, clic derecho para los menús) y con el teclado, con ctrl+b como prefijo, igual que en tmux.
cd ~/proyectos/tienda-web herdr

Justo después ofrece instalar las integraciones con los agentes. No son obligatorias: herdr detecta a los agentes mirando el proceso y la pantalla, pero con la integración el estado es más fiable y puede reanudar la sesión del agente si el servidor se reinicia. Se instalan desde esa ventana o con herdr integration install claude (o codex, opencode…).

Con integración están Claude Code, Codex, GitHub Copilot CLI, Cursor Agent CLI, OpenCode, Pi, OMP, Droid, Devin CLI, Kimi Code, Kilo Code, Hermes, Qoder, Qwen Code, Letta, MastraCode, Grok CLI y Antigravity CLI. Amp, Kiro, Maki, Gemini CLI y Cline se detectan sin integración, aunque la documentación avisa de que los dos últimos están menos probados.
Workspaces, pestañas y paneles
herdr organiza el trabajo en tres niveles. Un workspace es normalmente un proyecto, y toma el nombre de su carpeta y su rama de Git; dentro hay pestañas, y cada pestaña se divide en paneles, cada uno con su propia terminal. En la captura, el workspace tienda-web tiene tres paneles: uno con la shell, otro ejecutando las pruebas y otro con watch.

Los atajos que más se usan, todos después de ctrl+b (el prefijo):
prefix+vdivide el panel a la derecha yprefix+minus, hacia abajo.prefix+h,j,kyl(o las flechas) mueven el foco entre paneles.prefix+zamplía el panel actual a toda la pantalla yprefix+xlo cierra.prefix+ccrea una pestaña yprefix+shift+n, un workspace nuevo.prefix+wsalta a la lista de workspaces yprefix+boculta o muestra la barra lateral.prefix+[entra en el modo copia, para desplazarse por la salida y copiar texto.prefix+gabre el selector «Go to» yprefix+?, la lista completa de atajos.prefix+qdesengancha herdr y lo deja trabajando en segundo plano.

El estado de cada agente
Es la función que justifica herdr. Cada panel con un agente lleva uno de estos estados, que suben en cascada a la pestaña y al workspace para que se vean desde la barra lateral:
- working: el agente está trabajando.
- blocked: está esperando algo de ti, normalmente permiso para ejecutar una orden o una respuesta a una pregunta.
- idle y done: está parado o ha terminado su tarea.
- unknown: herdr no sabe qué hay en el panel, como en una shell normal.
En la siguiente captura hay tres agentes en el workspace api-pagos: uno trabajando, otro bloqueado pidiendo permiso y otro inactivo. Para hacerla no instalamos agentes reales, sino un pequeño guion que informa de su estado a herdr con la misma orden que usan las integraciones, así que el texto de los paneles es nuestro; la barra lateral es exactamente la de herdr.

Con muchos agentes abiertos, el selector Go to (prefix+g) es la forma más rápida de moverse: lista todas las terminales y agentes de todos los workspaces con su estado y permite buscar por nombre.

Un aviso de la propia documentación: el estado es una ayuda, no una garantía. Un agente que acaba de hacer una pregunta puede aparecer un momento como «idle», y que un agente esté inactivo no significa que haya que aprobar lo que propone.
Sesiones que no se pierden
herdr funciona con un servidor en segundo plano. Si cierras la ventana, te desenganchas con prefix+q o se corta la conexión SSH, los paneles y los agentes siguen funcionando. Al volver a ejecutar herdr, todo aparece donde estaba.
herdr session list # sesiones en marcha herdr session attach work # engancharse a una sesión con nombre herdr --session work # crear o usar la sesión «work» herdr server stop # terminar la sesión de verdad


Hay un matiz importante: si lo que se reinicia es el servidor de herdr o el propio ordenador, los procesos no sobreviven. herdr guarda y restaura la distribución de paneles y workspaces y, en los agentes con integración, puede reanudar su sesión, pero los programas en marcha se pierden. Desde la 0.9.4 guarda la sesión antes de que el Mac se reinicie o Windows se apague.
Varias máquinas en una ventana
Desde la versión 0.9.0, herdr puede mostrar en la misma barra lateral la máquina local y servidores a los que se conecta por SSH, con una lista común de agentes. También puede engancharse directamente a un herdr remoto:
herdr --remote workbox herdr --remote ssh://you@server:2222
Es útil cuando los agentes trabajan en un servidor potente o en una máquina de desarrollo remota y quieres vigilarlos desde el portátil.
Una API para que los agentes se coordinen
Casi todo lo que se hace con el teclado se puede hacer desde la línea de órdenes, y las respuestas son JSON. Eso permite que un agente abra paneles, lance a otro agente, le mande una tarea y espere a que termine. Algunas órdenes:
herdr workspace list # workspaces abiertos herdr pane split --direction right # dividir el panel actual herdr pane run w1:p2 "npm test" # ejecutar una orden en otro panel herdr agent list # agentes y su estado herdr agent prompt reviewer "Revisa el diff de pagos.py" herdr agent wait reviewer --until idle --until blocked --timeout 600000 herdr agent rename w1:p1 reviewer
Cada panel recibe variables de entorno como HERDR_PANE_ID, HERDR_WORKSPACE_ID y HERDR_SOCKET_PATH, para que lo que se ejecute dentro sepa dónde está. Con herdr worktree create se puede además abrir un worktree de Git como workspace nuevo, para que dos agentes trabajen en ramas distintas del mismo repositorio sin pisarse.
Configuración
La configuración está en ~/.config/herdr/config.toml (en Windows, %APPDATA%\herdr\config.toml). Lo más cómodo es partir de la configuración por defecto y recargarla sin reiniciar:
herdr --default-config > ~/.config/herdr/config.toml herdr server reload-config
[ui] mouse_capture = false [terminal] default_shell = "nu" [worktrees] directory = "~/.herdr/worktrees"
Desde la 0.9.2 se pueden tener varios prefijos a la vez, por ejemplo prefix = ["ctrl+space", "ctrl+s"], algo útil si ya usas tmux con ctrl+b.
Limitaciones y cosas a tener en cuenta
- No metas tmux dentro de herdr: la detección de agentes deja de funcionar dentro de un tmux lanzado en un panel.
- Historial con secretos: el historial de pantalla de los paneles viene desactivado porque, como recuerda la documentación, puede contener tokens, prompts y salidas con datos sensibles. Se activa con
pane_history = trueen la sección[experimental]. - Descarga reglas de detección: herdr baja de herdr.dev, de forma automática, las reglas con las que reconoce a cada agente. Se puede desactivar con
manifest_check = falseen[update]. - Windows, en beta: no permite
herdr terminal attachni el traspaso en vivo al actualizar, el cursor puede parpadear y el método de entrada de idiomas asiáticos puede aparecer descolocado. - El socket es tu cuenta: cualquiera que pueda usar el socket de herdr puede ejecutar órdenes como tú. No lo compartas ni ejecutes herdr como root.
herdr, herdr-core y la app de escritorio
En octubre de 2026 el proyecto se ha ampliado. Además del herdr de terminal que describe esta página, herdrdev publica herdr-core (la orden hc), un motor de terminales para agentes sin interfaz, y la Herdr app, una aplicación de escritorio nativa construida sobre él, que es lo que hoy muestra la portada de herdr.dev. La versión de terminal sigue desarrollándose y su documentación se ha movido a herdr.dev/tui. La app tiene telemetría activada por defecto (un informe diario sin el contenido de las terminales, que se desactiva en sus ajustes) y sus extensiones son JavaScript sin aislamiento, así que conviene instalar solo las de confianza. Si prefieres una ventana en lugar de la terminal, la explicamos en nuestra guía de la Herdr app, con la instalación, los estados de los agentes y cómo crear temas propios.
¿Merece la pena frente a tmux?
Si solo necesitas terminales que sobrevivan a un corte de SSH, tmux o Zellij siguen siendo suficientes, y herdr lo reconoce en su propia documentación, con una guía para quien viene de ellos. herdr gana cuando trabajas con varios agentes a la vez: la barra lateral con el estado de cada uno evita revisar los paneles a mano, el selector «Go to» encuentra cualquier agente en un segundo y la API permite montar flujos en los que un agente coordina a los demás. Si usas Claude Code, aquí tienes cómo encajan sus comandos, y si trabajas con Codex, cómo dirigirlo.
Fuentes: el repositorio herdrdev/herdr (README, licencia y notas de las versiones 0.9.0 a 0.9.5); la documentación oficial: instalación, primeros pasos, teclado, agentes, configuración y persistencia y acceso remoto; herdr-core y Herdr app. Las capturas son de decodigo.com con herdr 0.9.5 en un contenedor de pruebas, salvo la primera, del repositorio oficial (Apache 2.0).
