Saltar al contenido

Categoría: Apple/Mac

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

Usando fish shell y Starship para hacer la terminal más bonita y productiva

Soy de los usuarios de computadoras a los que les encanta usar la terminal para todo lo que sea posible. Tal vez porque vengo de los días de MS-DOS y nunca me acostumbré del todo al mouse ni a las interfaces gráficas de usuario. De hecho, esa es una de las razones por las que amo Linux, pues todo es posible desde la consola. Por ello, hace tiempo decidí dedicarle tiempo a hacerla bonita y agradable visualmente, porque paso más tiempo allí y para ser más productivo. En este caso migré a fish, una shell rápida y con funcionalidades de zsh incluidas por defecto. Adicionalmente, agregué starship para mejorar la apariencia rápidamente utilizando diseños preexistentes.

Ejemplo de mi terminal con fish + starship
Ejemplo de mi terminal con fish + starship

¿Por qué decidí probar fish?

Durante mucho tiempo usé zsh junto con Oh My Zsh. No tengo quejas graves, al contrario, es una buena combinación y permite tener plugins, temas, autocompletado, integración con Git y muchas mejoras sobre Bash. Sin embargo, con el tiempo también puede sentirse un poco pesada o depender de demasiadas configuraciones.

Uno de los detalles que más me gustaron de fish es que muchas de esas cosas que normalmente uno instala con plugins en zsh ya vienen listas desde el inicio. El autocompletado inteligente, las sugerencias basadas en el historial y el resaltado de sintaxis funcionan prácticamente sin esfuerzo.

Eso, para mí, tiene mucho valor. No quería pasar una tarde completa ajustando plugins, revisando compatibilidades o copiando configuraciones de otras personas. Quería una shell moderna, cómoda y rápida, pero sin convertir la configuración de la terminal en otro proyecto paralelo.

Fish se siente más amigable desde el primer uso. Cuando escribes un comando, te sugiere opciones según lo que ya has ejecutado. Si escribes mal algo, el resaltado te ayuda a darte cuenta. Si navegas entre carpetas o usas comandos repetidos, la experiencia se vuelve bastante fluida.

¿Para qué usar Starship?

Después de migrar a fish, quería que la terminal también se viera bien. Pero, siendo honesto, tampoco quería perder demasiado tiempo configurando un prompt desde cero. Ya he pasado por esa etapa de probar temas, mover símbolos, cambiar colores y revisar capturas de pantalla hasta que todo se vea bonito.

Por eso decidí usar Starship. Es un prompt moderno, rápido y compatible con varias shells, como fish, zsh y bash. La idea es sencilla: instalarlo, activarlo y tener una terminal visualmente agradable sin dedicarle demasiadas horas. Staship tiene una base de datos de configuraciones y diseños ya existentes, en la que basta con seleccionar el que más te guste y luego editar detalles menores. Así ahorras mucho tiempo.

Starship muestra información útil directamente en el prompt. Por ejemplo, la rama actual de Git, el estado del repositorio, las versiones de lenguajes como Node.js, Python, Rust o Go, la duración de los comandos y otros datos según el proyecto en el que estés trabajando. Esto es especialmente útil al trabajar con varios repositorios. Puedes estar en un proyecto frontend, luego pasar a un backend, revisar algo viejo en PHP o abrir una carpeta con scripts personales. Tener esa información visible ayuda a evitar errores menores, como ejecutar un comando en la rama equivocada o no notar el entorno en el que estás trabajando.

Ejemplo del terminal de Skatox mostrando el historial de comandos SVN
Ejemplo de mi terminal mostrando el historial de comandos SVN

Instalación en Arch Linux

Como uso Arch Linux, la instalación fue bastante sencilla. En mi caso lo hice directamente con pacman.

sudo pacman -S fish starship

Si todo funciona bien y queremos dejarla como shell por defecto:

chsh -s /usr/bin/fish

Después de cerrar sesión y volver a entrar, fish debería iniciarse como shell principal. Luego hay que activarlo en la configuración de fish. El archivo normalmente está en:

~/.config/fish/config.fish

Allí agregué esta línea:

starship init fish | source

Con eso ya Starship empieza a funcionar al abrir una nueva terminal.

Conclusión

Usar fish y Starship no va a convertirnos mágicamente en mejores programadores, pero sí puede hacer que la terminal sea un lugar más cómodo para trabajar. Y eso importa bastante cuando pasamos muchas horas al día escribiendo comandos, moviéndonos entre carpetas, usando Git, ejecutando pruebas o levantando servicios.

En mi caso venía de zsh con Oh My Zsh, y aunque sigue siendo una gran combinación, fish me pareció más directo. Muchas cosas que antes configuraba con plugins ahora vienen listas desde el inicio. Menos tiempo para ajustar la herramienta y más tiempo para usarla.

Starship completó la experiencia porque me permitió contar con una terminal bonita, informativa y moderna sin dedicar demasiado tiempo a personalizarla. A veces uno solo quiere que las cosas funcionen y se vean bien, sin tener que pasar horas configurando cada detalle.

La terminal sigue siendo uno de mis espacios favoritos en Linux. Personalizarla no es solo una cuestión estética, también es una forma de hacer más agradable el lugar donde trabajamos todos los días. Fish y Starship me dieron justamente eso: una terminal más cómoda, más útil y visualmente mucho mejor.

Deja un comentario

Cómo redimensionar varias imágenes desde Finder en macOS

Yo tengo mi propia instancia de Nextcloud (un Dropbox libre) para almacenar en la nube mis archivos de forma privada y cifrada. Al tomar fotos desde mi iPhone, utiliza una resolución muy alta que considero innecesaria para fotos personales, entonces al subirlas a la nube, éstas ocupan mucho espacio. Generalmente luego administro, decido cuáles borro y cuales debo redimensionar para que tengan mejor tamaño. Para ello en Linux utilizo KIM (KDE Image Manipulation), pero ayer estaba editando videos en macOS y no quería pasar a mi portátil solo para esta operación. Así fue como descubrí que macOS ofrece herramientas para crear una entrada en el menú de acciones rápidas, para redimensionar varias imágenes desde Finder.

Redimensionar varias imágenes desde Finder

Si trabajas con imágenes en macOS y necesitas redimensionarlas rápidamente, puedes agregar una Acción Rápida al menú contextual de Finder. Esto te permitirá cambiar el tamaño de cualquier imagen con solo hacer clic derecho, a continuación puedes ver como será el resultado de lo que vamos a hacer.

Menu de acciones rápidas en Finder para redimensionar múltiples imágenes

Así quedará el menu para redimesionar las imágenes

Pasos a seguir

  1. Abre Automator desde el menú de aplicaciones, o busca “Automator” en Spotlight y ábrelo.
  2. Selecciona “Acción rápida” como tipo de documento.
  3. Luego debes configurar la acción, primero haz clic en el ítem de Archivos y Carpetas en el menú izquierdo, luego en donde dice Obtener los elementos de Finder especificados. Arrástralo a la sección principal como se observa en la siguiente imagen:
  4. Luego en la barra lateral de la izquierda, haz clic en Fotos, luego busca Ajustar tamaño de imágenes y agrégalo al flujo de trabajo.
  5. En el menú que sale, dile omitir y luego decide el máximo horizontal de tus fotos, en mi caso puse 1920px.
  6. Ve a Archivo > Guardar y asígnale un nombre como “Escalar Imagen”.

Ahora, selecciona cualquier imagen en Finder, haz clic derecho, ve a Acciones Rápidas y prueba la opción. Vas a notar como redimensionar varias imágenes desde Finder automáticamente sin instalar una aplicación de terceros.

Conclusión

Este método te ahorra tiempo al evitar abrir editores de imagen ni comprar software para este propósito. Puedes crear varias acciones con diferentes tamaños y optimizar tu flujo de trabajo en macOS.

Deja un comentario

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

Como comenté en una entrada anterior, desde hace un par de semanas he estado utilizando Ghostty como mi principal terminal en los sistemas operativos que uso: Linux y macOS. En ambos sistemas estoy acostumbrado a tener una terminal siempre disponible al presionar una tecla, algo inspirado de los días en que jugaba Quake y sacaba la terminal del juego para ejecutar comandos.

Abrir ghostty con una tecla en macOS

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 necesitaba utilizar esa tecla así que me acostumbre a usar F1, que suele estar ubicada arriba de ~.

En el caso de macOS, por la naturaleza del sistema, prefiero tener una terminal que ocupe casi toda la pantalla y centrada. A diferencia de Linux donde me gusta una terminal a pantalla completa (también porque lo uso en mi laptop).

Configurando Ghostty con una tecla

Para macOS vamos a instalar y usar un servicio de código abierto llamado skhd. Este servicio se ejecuta como demonio escuchando las combinaciones del teclado para realizar acciones sobre ello. En este caso, lo usaremos para que al presionar F1, lance la aplicación si no se está ejecutando.

Configurando skhd

Empecemos por instalando skhd con homebrew y ejecutándolo como servicio de macOS:

brew install koekeishiya/formulae/skhd
skhd --start-service

Luego creamos un archivo de configuración en ~/.config/skhd/skhdrc con el siguiente contenido:

f1: osascript -e 'tell application "Ghostty" to activate'

Configurando Ghostty

Luego, para que nuestra terminal se enfoque una vez que presionamos nuestra tecla, debemos abrir Ghostty.

Dentro de la terminal, haz clic en la barra de menú y luego en Ajustes o Settings. Se abrirá un archivo de texto con la configuración de la terminal, ahí escribiremos las siguientes opciones:

keybind = global:f1=toggle_visibility
macos-non-native-fullscreen = true

Estas opciones permiten que al presionar F1 se abra el terminal y que no utilice la pantalla completa por defecto de macOS, sino que expanda al máximo la ventana. Haz clic de nuevo la barra de menú y selecciona la opción para recargar la configuración.

¡Y listo! Ya tienes un terminal al alcance de un botón en macOS.

Deja un comentario