Saltar al contenido

Etiqueta: consola

Herdr: el Tmux moderno para trabajar con agentes de IA en paralelo

Durante muchos años he sido usuario de tmux, hasta que, hace unas semanas, al revisar videos en YouTube, descubrí Herdr. Es una de esas herramientas que, después de incorporarla a tu flujo de trabajo, resulta difícil abandonar: permite mantener sesiones activas, dividir la terminal en varios paneles y trabajar con múltiples consolas sin llenar el escritorio de ventanas. Sin embargo, mi manera de desarrollar software ha cambiado bastante con el auge de la inteligencia artificial. En mi nuevo trabajo utilizo varios agentes de programación en paralelo y, al mismo tiempo, necesito mantener activos servidores, procesos de compilación, pruebas y otros servicios relacionados con los proyectos.

Tmux seguía funcionando, por supuesto, pero cada vez me costaba más navegar entre tantas ventanas y paneles. En ocasiones no recordaba dónde había dejado determinado agente, cuál seguía trabajando o cuál estaba esperando que respondiera una pregunta. Terminaba de recorrer las sesiones una por una para comprobar qué estaba ocurriendo.

herdr corriendo codex
herdr corriendo Codex

¿Qué es Herdr?

Herdr es un multiplexor de terminal diseñado específicamente para trabajar con agentes de programación. La forma más sencilla de explicarlo es que se trata de una especie de tmux modernizado y adaptado a la era de la inteligencia artificial.

Al igual que tmux, Herdr permite crear múltiples terminales, dividirlas en paneles y mantener las sesiones en ejecución en segundo plano. Puedes cerrar la ventana de la terminal, volver más tarde y continuar donde estabas, sin detener los agentes ni los procesos activos.

La diferencia es que Herdr no solo ve paneles: también reconoce los agentes que se ejecutan dentro de ellos. Es compatible con herramientas como Claude Code, Codex, OpenCode, GitHub Copilot CLI, Cursor Agent, entre otras. En una barra lateral se muestra si cada agente está trabajando, bloqueado, inactivo o ha terminado su tarea.

Esta pequeña diferencia resuelve uno de los principales problemas que tenía con tmux. Ya no necesito recorrer manualmente todos los paneles para saber qué agente requiere mi atención.

Espacios de trabajo, pestañas y paneles

Una de las características que más me gustaron es la manera en que Herdr organiza las terminales. La herramienta utiliza tres niveles:

  • Los espacios de trabajo permiten separar proyectos.
  • Las pestañas agrupan diferentes tareas dentro de cada proyecto.
  • Los paneles contienen las consolas, los agentes y los servicios que se ejecutan.

Por ejemplo, puedo tener un espacio de trabajo para cada proyecto. Dentro de él creo una pestaña para los agentes, otra para el servidor de desarrollo y otra para las pruebas o los registros. Si necesito observar dos procesos al mismo tiempo, simplemente divido la pestaña en varios paneles.

La barra lateral resume el estado de todos los agentes. De esta forma, puedo ver rápidamente quién continúa trabajando, quién necesita que apruebe una acción y quién ya finalizó. Al seleccionarlo, Herdr me lleva directamente a su panel para revisar el resultado y redactar el siguiente prompt.

Para quienes trabajamos con varios agentes en paralelo, esta vista resulta mucho más práctica que intentar recordar en qué ventana se encuentra cada uno.

Interfaz de Herdr
Ejemplo de la interfaz de Herdr

Una transición sencilla desde tmux

Otra razón por la que comencé a utilizar Herdr es que no tuve que aprender de cero una nueva forma de controlar la terminal. La herramienta conserva el mismo modelo de prefijo de tmux: por defecto se utiliza Ctrl+B Antes de ejecutar una acción.

También incluye varios atajos familiares. Con Ctrl+B y luego c Se crea una nueva pestaña, mientras que Ctrl+B y después n o p Permite avanzar o retroceder entre ellas. Para dividir paneles, navegar por los espacios de trabajo o desconectarse de una sesión, se sigue una lógica muy similar.

Si ya utilizas tmux, la adaptación es bastante rápida. Además, al presionar Ctrl+B y luego ? Puedes consultar todos los atajos disponibles.

Herdr también soporta el mouse por defecto. Es posible seleccionar paneles, pestañas, espacios de trabajo y agentes con un clic, cambiar el tamaño de las divisiones arrastrando sus bordes y abrir menús contextuales con el botón derecho. Aunque normalmente prefiero los atajos de teclado, el mouse resulta cómodo cuando quiero reorganizar rápidamente la interfaz.

Notificaciones cuando un agente necesita atención

Una de las funciones más útiles de Herdr es su sistema de notificaciones. La herramienta puede avisar cuando un agente termina una tarea o cuando necesita que respondamos una pregunta o aprobemos alguna acción. Esto permite dejar varios agentes trabajando y concentrarse en otra actividad sin revisar cada terminal constantemente. Cuando alguno finaliza, recibo el aviso, salto directamente a su panel, reviso lo que hizo y continúo la conversación con un nuevo prompt.

En la práctica, Herdr convierte un conjunto de terminales dispersas en una pequeña central de control para agentes. No ejecuta el trabajo por ellos ni reemplaza herramientas como Codex o Claude Code; simplemente ofrece una forma mucho más clara de organizarlos y supervisarlos.

Herdr funciona dentro de la terminal

Existen otras alternativas para administrar agentes, como cmux, pero muchas de ellas funcionan como aplicaciones independientes o buscan reemplazar la terminal que ya utilizas. Herdr adopta un enfoque diferente. Es una herramienta nativa de consola, desarrollada en Rust, que se ejecuta en la terminal que prefieras. No necesita Electron ni obliga a cambiar Ghostty, Kitty, iTerm2, Alacritty ni a cambiar ningún otro emulador de terminal que ya forme parte de tu entorno.

Para mí, esto es una gran ventaja. Puedo conservar el flujo de trabajo que he utilizado durante años, entrar por SSH cuando lo necesito y seguir trabajando exclusivamente desde la consola.

Una herramienta de código abierto para organizar el nuevo desarrollo con IA

Otro aspecto que me encanta es que Herdr es un proyecto de código abierto, distribuido bajo la licencia Apache 2.0. Esto permite revisar su código, proponer mejoras y contribuir con una herramienta que probablemente resulte cada vez más útil a medida que trabajar con varios agentes se convierta en algo habitual.

Después de muchos años utilizando tmux, no esperaba reemplazarlo fácilmente. Sin embargo, Herdr conserva las ideas que siempre me gustaron de tmux y añade justo lo que necesitaba para mi flujo de trabajo actual: una interfaz más moderna, organización por proyectos, soporte para el mouse, seguimiento del estado de los agentes y notificaciones cuando alguno requiere atención.

Si trabajas con muchas consolas, mantienes varios servicios activos o utilizas diferentes agentes de inteligencia artificial en paralelo, te recomiendo probarlo. En esencia, Herdr es el tmux de siempre, pero preparado para una forma de desarrollar software que apenas hace unos años no existía.

Happy coding!

Deja un comentario

Cómo tener un terminal de Ghostty siempre disponible al presionar una tecla (en Linux)

Si estas inmerso en el mundo tech, habrás notado que hace unas semana salió la version 1.0 de Ghostty. Un terminal multi-plataforma, con aceleración por GPU y enfocado a usar código nativo. Lo he estado desde entonces y remplazé a Yakuake (que siempre lo he usado en KDE) por este gran terminal, principalmente por el rendimiento que se siente al presionar las teclas. Sin embargo, uno de los problemas que tengo es que por ahora, no tiene una opción para mostrar un terminal al presionar una tecla, que es la principal razón por la que usaba Yakuake. Pues hoy te enseñaré cómo puedes lograr esto en tu sistema.

¿Por qué Ghostty?

Ghostty es una terminal que combina lo mejor de ambos mundos: la simplicidad de las terminales clásicas y las características modernas que necesitamos hoy en día. Es rápida, ligera y altamente personalizable. Además, su rendimiento es notable, especialmente en comparación con otras terminales que he usado en el pasado. La respuesta al presionar las teclas es instantánea, algo que valoro mucho como desarrollador.

Mis requerimientos

Desde los días que jugaba Quake y otros FPS. Me acostumbré a abrir la consola con ~, pero al momento de usar Linux necesito esa tecla así que la cambie por F1, porque esta mas arriba en la mayoría de teclados. En este ejemplo usaré F1 como la tecla que abrirá Ghostty.

Otro requerimiento en Linux es que sea pantalla completa para simular las terminales de antes (nunca superé esto) que ocupan toda la pantalla. Creo que me ayuda a comprender a separar la UI del terminal y evitar mezclar acciones.

Configurando abrir Ghostty con una tecla

Para abrir Ghostty con una tecla, hay 2 cosas que se deben hacer, un script para iniciar la aplicación si no está abierta. Pero si esta abierta, configurar Ghostty para que muestre la ventana de la terminal al abrir.

Paso 1: crear el script

Una vez instalado Ghostty, podemos empezar a crear el script. En mi caso como estoy usando Wayland con KDE, utilizo kdotool para ejecutar acciones a ventanas/aplicaciones. Si utilizas X11 puedes usar xdotool bajo cualquier entorno para controlar la ventana, solo remplaza el comando donde sea necesario.

Luego puedes usar este script detectar si Ghostty está abierto, si lo está, se enfoca la ventana. De lo contrario, se ejecuta el terminal. Puedes guardar este script en un lugar accesible, por ejemplo, en ~/scripts/open_ghostty.sh

#!/bin/bash

APP_NAME="ghostty"
CLASS_NAME="com.mitchellh.ghostty"

if [[ $(pgrep -x "$APP_NAME") ]]; then
# App is running. Get the window ID. Using tail -1 handles multiple instances.
WINDOW_ID=$(kdotool search --class "$CLASS_NAME" | head -1)

if [[ -n "$WINDOW_ID" ]]; then # Check if a window ID was actually found
# Check if the window is minimized (using window state)
WINDOW_STATE=$(kdotool getactivewindow)

if [[ "$WINDOW_STATE" == "$WINDOW_ID" ]]; then # Check if x position is negative (likely off-screen = minimized)
    kdotool windowminimize "$WINDOW_ID"
 else
    kdotool windowactivate "$WINDOW_ID"
    kdotool windowstate --add NO_BORDER --add FULLSCREEN "$WINDOW_ID"
    kdotool windowunmap "$WINDOW_ID" # Important for restoring from   minimized state
  fi
 else
   echo "Error: Could not find a valid window ID for $APP_NAME."
 fi
 else
   # App is not running, launch it
   "$APP_NAME" & # Important: Quote the variable to handle spaces in app name
 fi

Asegúrate de darle permisos de ejecución al script:

chmod +x ~/scripts/open_ghostty.sh

Paso 2: Asignar el script a la tecla F1

  • Abre la aplicación de Configuración del sistema de KDE Plasma.
  • Busca y selecciona «Atajos de teclado» (Shortcuts).
  • Haz clic en «Editar» > «Nuevo» > «Acción global» > «Comando/URL».
  • En el campo «Nombre», escribe algo descriptivo, como «Abrir Ghostty».
  • En el campo «Comando», ingresa la ruta completa a tu script, por ejemplo: /home/tuusuario/scripts/open_ghostty.sh.
  • Haz clic en el campo «Atajo de teclado» y luego presiona la tecla F1 en tu teclado.
  • Si la tecla F1 ya está asignada a otra función, deshabilita o cambia ese atajo antes de continuar.
  • Cierra la ventana de configuración y presiona F1 para probar si el script se ejecuta correctamente.
  • ¡Listo! Ya tienes tu terminal configurada.

Conclusión

Si eres un amante de las terminales y buscas una experiencia rápida y eficiente, te recomiendo probar Ghostty. Con lo leído en este artículo podrás tener acceso inmediato a un terminal y ser mas productivo.

Y tú, ¿qué terminal usas? ¿Has probado Ghostty? ¡Déjame tus comentarios!


Espero que este artículo te haya sido útil. Si tienes alguna pregunta o sugerencia, no dudes en dejarla en los comentarios. ¡Hasta la próxima! 🚀

Deja un comentario

¿Que consola comprar? ¿Wii, Xbox 360 o Playstation 3? (Parte 1/5)

Esta serie de artí­culos están escritos por mí­ con el fin de hacer una comparación entre las 3 consolas de esta generación (Nintendo Wii, Microsoft Xbox360 y Sony Playstation3) dando sus puntos buenos y puntos malos de manera neutral (favor leer todo el artí­culo) para que el lector decida por si mismo cual comprar si lo desea. Aquí­ no tomaré en cuenta la piraterí­a pues es ilegal y algo que daña mas bien la reputación de la consola, pues mientras mas tenga, los desarrolladores no querrán lanzar exclusividades pues perderán mucho dinero, habrán problemas con los servicios online, garantí­a, etc.

Console wars

Para empezar quiero responder ¿Por qué comprar una consola? En mi opinión prefiero muchí­simo tener una consola que una PC para jugar, las razones para ello son:

  • Menor costo: Comprar una consola por mas cara que sea siempre será mas barata que comprar una PC para videojuegos.
  • Tiempo de vida: Si compras una consola cuando sale, tendrás entre 4-7 años de soporte de software, es decir, vas a tener compañí­as sacando juegos para tu consola, a diferencia de la PC donde a los 3 ó 4 años será difí­cil correr un juego con el mismo hardware. Así­ que olví­date de actualizar el hardware en las consolas.
  • Juegos: Por mas que los fanáticos de PC digan lo contrario, existen mas exclusividades de tí­tulos de gran calidad para las consolas. Existen muchos juegos de PC que no logran salir para consolas pero son en menor cantidad que lo contrario.
  • El espacio: Una consola ocupa mucho menos espacio que un PC.

Por estas razones prefiero una consola, claro que no todo va a favor de las consolas, los usuarios de PC tienen la ventaja que con una PC de gama alta pueden superar los gráficos de una consola, ademas que existen herramientas para mods, desarrollo y modificación de juegos para PC que en consola no se ven (aunque Unreal 3 para PS3 esta demostrando lo contrario).

Ahora luego de esta introducción pasemos a la ayuda de elegir una consola, una de las cosas que la mayorí­a de personas eligen una consola es por su calidad de gráficos, esta mentalidad debe eliminarse (bueno las ventas de esta generación confirman que se ha eliminado, ya que la consola mas vendida es la que tiene menor potencia hardware) pues ahora las consolas ofrecen mas que un simple juego con gráficas, los factores que se deben tomar en cuenta para mi son:

  • Exclusividad de tí­tulos: No todos los juegos salen para todas las consolas, casi los grandes juegos suelen salir solo para una consola especifica, bien sea para ganar mas dinero, representar la marca de la consola, problemas legales, entre otros. Así­ que es muy importante tomar en cuenta esto, si eres super-fanático de Halo no compres un PS3 o Wii porque jamas llegará ese tí­tulo a esas consolas, y serí­a una lástima comprar una consola para la que no vayan a salir tus juegos favoritos. Ademas estos tí­tulos son lo que mas marcan diferencia entre las consolas: quien no relaciona los juegos de SuperMario, Zelda y Metroid con Nintendo, Halo, Gears of Wars con Xbox y Final Fantasy, Metal Gear, Gran Turismo con Playstation.
  • Precio: Tal vez el factor mas importante a largo plazo (sobre todo por los padres), para mí­ existen 2 tipos de costos: el inicial que serí­a el costo de la consola y controles extra; el costo a largo plazo que seria el costo de los juegos y costo de servicios extra tales como: acceso online, precio para jugar ciertos juegos, precio de las expansiones, artí­culos de la consola, etc. Tu decides cuanto deseas gastar en estas cosas de acuerdo a la calidad de las mismas.
  • Hardware: Unas consolas ofrecen mas prestaciones que otras, algunas ofrecen mejores gráficos, otra mejor procesamiento, otra controles mas sofisticados, otras se enfocan ser el centro multimedia del hogar, otras a ser puras consolas, etc. Esta parte es algo personal ya que no todas las personas andan buscando lo mismo en una consola y depende en lo que tu quieras invertir.
  • Precio/Hardware: Luego que se comparan por separado, se debe hacer esta relación. Ya que no queremos gastar mucho dinero en una consola que nos ofrece cosas que no querí­amos, o el caso contrario, gastar en una consola que nos ofrece lo que querí­amos.
  • Retrocompatibilidad: Si has sido dueño de una consola de la generación anterior, tal vez sea importante para ti jugarlos en la consola actual. Obviamente deberí­as comprar la consola de misma marca, ademas si, es probable que tengas apego a una saga de videojuegos en especí­fico que seguirá saliendo para la consola de la misma marca, ejemplo, si te hiciste fan de Halo en el Xbox y obviamente comprarás Xbox360 para tener Halo 3, si te hiciste fan de Final Fantasy en el PS1 y PS2 debes comprar un PS3, lo mismo con las sagas de Mario y Zelda que son exclusivas de Nintendo (Aunque con Linux en la PS3 puedes jugar juegos de SNES y NES)

Con esta serie de aspectos me basaré para hablar de cada consola, para hacer al final un resumen y que el lector decida cual es su favorita.

Siguiente post: Nintendo Wii

14 comentarios