Herramientas de usuario

Herramientas del sitio


cursos:sdd:03-herdr

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
cursos:sdd:03-herdr [2026/10/18 23:58] – Monoespaciado en el atajo Ctrl+b g claudecursos:sdd:03-herdr [2026/10/19 00:22] (actual) – herdr: revisión de coherencia (duplicado de espacios, ejemplos unificados, New worktree, erratas) claude
Línea 4: Línea 4:
  
 Sirve para lo que pasa en cuanto trabajas con más de un agente a la vez:  Sirve para lo que pasa en cuanto trabajas con más de un agente a la vez: 
-uno implementando, otro revisando la spec y un tercero pasando los tests, cada uno en su panel, y tú sin tener que ir mirándolos uno a uno. +uno implementando, otro revisando la spec y un tercero pasando los tests, cada uno en su panel, y tú sin tener que ir mirándolos uno a uno: la barra lateral te dice cuál te necesita.
-Por eso es importante que herdr enseña en la barra lateral la lista de agentes, para saber cuál requiere nuestra atención.+
  
 ---- ----
Línea 19: Línea 18:
  
   * Windows   * Windows
-<sxh bash>+<sxh powershell>
 powershell -ExecutionPolicy Bypass -c "irm https://herdr.dev/install.ps1 | iex" powershell -ExecutionPolicy Bypass -c "irm https://herdr.dev/install.ps1 | iex"
 </sxh> </sxh>
Línea 32: Línea 31:
 </sxh> </sxh>
  
-La primera vez sale un asistente que propone **instalar las integraciones** de los agentes que encuentra en el ''PATH'': si tienes OpenCode y Claude Code, instala las dos. Di que sí: qué son está en la [[#integracionesrecuperar_la_conversacion_tras_reiniciar|sección 5]].+La primera vez pregunta si quieres **instalar las integraciones** de los agentes que encuentra en el ''PATH''. Di que sí: sirven para que herdr sepa **en qué estado está cada agente**. Si no las instalaste o instalas un agente después, están en los ajustes (''Ctrl+b s'') → **integrations**; tras instalarla, sal del agente y vuelve a lanzarlo para que la cargue. 
 + 
 +{{:cursos:sdd:herdr_integraciones.png?600|}}
  
 Se abre la interfaz: a la izquierda la **barra lateral** con los espacios de trabajo y los agentes, y a la derecha el panel con una shell. En esa shell se arranca el agente como siempre: Se abre la interfaz: a la izquierda la **barra lateral** con los espacios de trabajo y los agentes, y a la derecha el panel con una shell. En esa shell se arranca el agente como siempre:
Línea 66: Línea 67:
 </sxh> </sxh>
  
-Se recarga sin parar a los agentes con **menu → reload config** en la barra lateral. Desde la terminal, ''herdr server reload-config'' solo recarga el servidor, y esta parte la dibuja la ventana.+Se recarga sin parar a los agentes con **menu → reload config** en la barra lateral o con ''Ctrl+b R''. Desde la terminal, ''herdr server reload-config'' solo recarga el servidor, y esta parte la dibuja la ventana.
  
 El nombre se le pone al panel con el botón derecho → **Rename pane** (en la [[#con_el_raton|sección 2]] está con capturas). El nombre se le pone al panel con el botón derecho → **Rename pane** (en la [[#con_el_raton|sección 2]] está con capturas).
Línea 73: Línea 74:
  
 <sxh plain> <sxh plain>
-○ daw-proyecto +○ implementa 
-  daw-proyecto · claude +  reservas-api · claude 
-○ sdd +○ revisa 
-  daw-proyecto · claude+  reservas-api · claude
 </sxh> </sxh>
  
Línea 162: Línea 163:
 <note tip>El menú del panel cambia según el caso: si el panel ya tiene nombre añade **Clear pane name**, y si hay otro panel al lado, **Swap with focused pane**. Las opciones son las mismas, pero no siempre están en la misma posición: léelas antes de pinchar.</note> <note tip>El menú del panel cambia según el caso: si el panel ya tiene nombre añade **Clear pane name**, y si hay otro panel al lado, **Swap with focused pane**. Las opciones son las mismas, pero no siempre están en la misma posición: léelas antes de pinchar.</note>
  
-==== Crear un espacio de trabajo ====+==== Gestionar los espacios de trabajo ====
  
-Al arrancar, herdr abre un espacio de trabajo en la carpeta desde la que lo lanzas. Para trabajar en otro proyecto a la vez, se crea otro espacio: 
- 
-  * Crear un espacio de trabajo: clic en **new**, al pie de la lista de espacios de la barra lateral. 
   * Cambiarle el nombre: botón derecho sobre el espacio, **Rename**.   * Cambiarle el nombre: botón derecho sobre el espacio, **Rename**.
   * Cerrarlo, con todas sus pestañas y paneles: botón derecho, **Close**.   * Cerrarlo, con todas sus pestañas y paneles: botón derecho, **Close**.
  
-<note important>El espacio nuevo se abre en la **carpeta del panel en el que estás**, no en la del otro proyecto. Si lo creas con **new**, haz ''cd'' en su panel al proyecto que toca. O mejor, créalo desde cualquier panel con la orden, que le da la carpeta y el nombre de una vez:+<note important>Con **new**, el espacio se abre en la **carpeta del panel en el que estás**, no en la del otro proyecto, y hay que hacer ''cd''. Para otro proyecto, mejor crearlo desde cualquier panel con la orden, que le da la carpeta y el nombre de una vez:
 <sxh bash> <sxh bash>
-herdr workspace create --cwd ~/proyectos/tienda --label tienda+herdr workspace create --cwd ~/proyectos/tienda-web --label tienda-web
 </sxh> </sxh>
 </note> </note>
Línea 179: Línea 177:
  
 ===== 3. Worktrees de Git ===== ===== 3. Worktrees de Git =====
-Si uno de nuestros workspaces es un worktree de Git , simplemente es como un nuevo workspace en Herdr. 
-Podemos hacer que todos los worktree de git aparezcan agrupados si abrimos el worktree con el menú de **Open worktree...** del workspace de Herdr. 
  
-Para ello pulsamos con el botón derecho sobre el espacio del proyecto → **Open worktree...**, y se elige el worktree de la lista. La opción solo sale si la carpeta del espacio es un repositorio Git.+Un worktree de Git es una carpeta más, así que en herdr es un espacio de trabajo más. Si se crea desde herdr, además **cuelga del espacio del proyecto** y los worktrees del repositorio salen agrupados. Es lo normal para tener un agente por spec, cada uno en su rama. 
 + 
 +Botón derecho sobre el espacio del proyecto (la opción solo sale si su carpeta es un repositorio Git): 
 + 
 +  * **New worktree**: se escribe el nombre de la rama y herdr crea la rama, el worktree y su espacio de trabajo de una vez. 
 +  * **Open worktree...**: para un worktree que ya existe; se elige de la lista.
  
 {{:cursos:sdd:herdr-worktree-menu.png?700|}} {{:cursos:sdd:herdr-worktree-menu.png?700|}}
Línea 195: Línea 196:
  
 ===== 4. El skill de herdr: que el agente maneje herdr ===== ===== 4. El skill de herdr: que el agente maneje herdr =====
-Lo siguiente que podemos hacer es que desde claude code o opencode podamos decirle que queremos hacer cosas en herdr. Lo único que hay que hacer es añadir a nuestro claude code o opencode el skill para manejar herdr.+Con el skill de herdr, el agente (OpenCode, Claude Code...) puede manejar herdr por ti. Se instala así:
  
 <sxh bash> <sxh bash>
Línea 201: Línea 202:
 </sxh> </sxh>
  
-A partir de ahí, desde OpenCode o claude code dentro de herdr se le puede pedir que abra paneles, lance órdenes en ellos, lea su salida y espere a que terminen. Por ejemplo:+A partir de ahí, desde OpenCode o Claude Code dentro de herdr se le puede pedir que abra paneles, lance órdenes en ellos, lea su salida y espere a que terminen. Por ejemplo:
  
   * Lanzar los tests en otro panel sin quitarte el foco:   * Lanzar los tests en otro panel sin quitarte el foco:
Línea 230: Línea 231:
 ===== 5. Usando herdr ===== ===== 5. Usando herdr =====
  
-==== La lista de agentes: la verdadera ventaja de herdr ====+==== La lista de agentes ====
  
-Abajo a la izquierda, bajo **agents**, herdr enseña **todos los agentes que tienes en marcha**, de todos los espacios de trabajo y pestañas, cada uno con un punto de color que dice en qué estado está:+Lo que hace útil a herdr es la lista de agentes, abajo a la izquierda bajo **agents**: están **todos los agentes que tienes en marcha**, de todos los espacios de trabajo y pestañas, y de un vistazo sabes **cuál necesita tu atención**. Para llegar hasta él no hay que buscar su espacio ni su pestaña: **clic en el agente** y estás en su panel. 
 + 
 +{{:cursos:sdd:herdr-estados.png?300|}} 
 + 
 + 
 +==== El estado de cada agente ==== 
 + 
 +Cada agente está en un estado, marcado con un punto de color, que dice si te necesita:
  
 ^ Color ^ Estado ^ Qué significa ^ Qué haces tú ^ ^ Color ^ Estado ^ Qué significa ^ Qué haces tú ^
 +| <color #40a02b>○</color> Verde, hueco | ''idle'' | Ha terminado y ya lo has visto | Darle la siguiente tarea |
 | <color red>●</color> Rojo | ''blocked'' | Espera una respuesta: un permiso, una pregunta, una decisión | **Ir a contestarle** | | <color red>●</color> Rojo | ''blocked'' | Espera una respuesta: un permiso, una pregunta, una decisión | **Ir a contestarle** |
-| <color blue>●</color> Azul | ''done'' | Ha terminado y aún no lo has mirado | Revisar el resultado |+| <color #179299>●</color> Verde azulado, relleno | ''done'' | Ha terminado y aún no lo has mirado | Revisar el resultado |
 | <color #c9a000>●</color> Amarillo | ''working'' | Está trabajando | Nada, déjalo | | <color #c9a000>●</color> Amarillo | ''working'' | Está trabajando | Nada, déjalo |
-| <color green>●</color> Verde | ''idle'' | Ha terminado y ya lo has visto | Darle la siguiente tarea | 
  
-Haciendo **clic en un agente** de la lista vas directamente a su panel, esté en el espacio de trabajo y la pestaña que esté. 
-Con el teclado, ''Ctrl+b g'' abre la misma lista; dentro de ella, ''b'' deja solo los bloqueados. 
  
-Esa es la verdadera ventaja de herdr frente a tmux: lanzas varios agentes, no tienes que ir mirándolos uno a uno y te basta un vistazo a la lista para saber **cuál requiere tu atención**. Cuando un punto se pone rojo o azul, clic y a atenderlo.+ 
 +Cuando un punto se pone rojo o verde azulado, clic y a atenderlo.
  
 El estado también **sube** a la lista de espacios de trabajo: un agente ''blocked'' marca como bloqueados su pestaña y su espacio, así que ves qué proyecto te necesita aunque tengas muchos. El estado también **sube** a la lista de espacios de trabajo: un agente ''blocked'' marca como bloqueados su pestaña y su espacio, así que ves qué proyecto te necesita aunque tengas muchos.
Línea 249: Línea 256:
 <note warning>''idle'' **no quiere decir que haya hecho bien el trabajo**, solo que ha vuelto al prompt. Y si el agente saca una pregunta con un aspecto que herdr no conoce, puede marcarlo como ''idle'' en vez de ''blocked''. Antes de darle la siguiente tarea, mira qué ha dejado en pantalla.</note> <note warning>''idle'' **no quiere decir que haya hecho bien el trabajo**, solo que ha vuelto al prompt. Y si el agente saca una pregunta con un aspecto que herdr no conoce, puede marcarlo como ''idle'' en vez de ''blocked''. Antes de darle la siguiente tarea, mira qué ha dejado en pantalla.</note>
  
-==== Cliente y servidor: cerrar no es parar ==== +==== Cerrar herdr ====
- +
-herdr arranca un **servidor en segundo plano** que es el dueño de los paneles, y la ventana que ves es solo un **cliente** conectado a él. Por eso: +
- +
-  * **Cerrar la terminal no para nada**: los agentes siguen trabajando. +
-  * Para salir a propósito dejando todo en marcha, ''Ctrl+b q''. +
-  * Para volver, otra vez: +
-<sxh bash> +
-herdr +
-</sxh> +
- +
-  * Para acabar de verdad y parar todos los paneles: +
-<sxh bash> +
-herdr server stop +
-</sxh> +
- +
-<note important>Lo que sobrevive a cerrar la ventana **no sobrevive a reiniciar el ordenador** (ni a ''herdr server stop''). Al volver, herdr recupera la distribución de paneles y sus carpetas, pero los procesos son nuevos. Para que además recupere **la conversación del agente**, instala su integración ([[#integracionesrecuperar_la_conversacion_tras_reiniciar|más abajo]]).</note> +
- +
-Como el servidor sigue vivo, puedes dejar a un agente implementando en el ordenador del instituto, entrar por ''ssh'' desde casa o desde el móvil, ejecutar ''herdr'' y ver por dónde va. +
- +
-=== Guardar un espacio de trabajo y volver a cargarlo === +
- +
-herdr no tiene una orden para guardar: **guarda solo y continuamente** la sesión entera (espacios de trabajo, pestañas, paneles, sus nombres y sus carpetas) en ''~/.config/herdr/session.json'', y la vuelve a montar al arrancar. +
- +
-Para tener la distribución de cada proyecto guardada aparte y cargarla cuando toque, se usa una **sesión con nombre**: otro herdr independiente, con sus propios espacios y paneles. +
- +
-  * Crear la sesión, o volver a ella si ya existe: +
-<sxh bash> +
-herdr --session sdd +
-</sxh> +
- +
-  * Se montan en ella los espacios, pestañas y paneles del proyecto. No hay que guardar nada. +
-  * Cerrarla parando sus paneles. Queda guardada: +
-<sxh bash> +
-herdr session stop sdd +
-</sxh> +
- +
-  * Cargarla otro día. Vuelve la misma distribución en las mismas carpetas, y los agentes con su conversación si tienen la integración ([[#integracionesrecuperar_la_conversacion_tras_reiniciar|más abajo]]): +
-<sxh bash> +
-herdr --session sdd +
-</sxh> +
- +
-  * Ver las sesiones que hay y cuáles están en marcha: +
-<sxh bash> +
-herdr session list +
-</sxh> +
- +
-  * Borrar una que ya no se usa. Tiene que estar parada: +
-<sxh bash> +
-herdr session delete sdd +
-</sxh> +
- +
-<note important>''herdr'' a secas abre siempre la sesión ''default'', no la última que usaste. Para volver a una sesión con nombre hay que dar su nombre con ''--session''.</note> +
- +
-<note tip>Si sales con ''Ctrl+b q'' en vez de pararla, la sesión sigue en marcha, y ''herdr --session sdd'' te devuelve a ella con los agentes trabajando.</note> +
- +
-==== Integraciones: recuperar la conversación tras reiniciar ==== +
- +
-Sin integración, herdr ya ve los agentes: los reconoce por el proceso y **lee su pantalla** para saber si están trabajando o esperando. La integración es un pequeño añadido que herdr **escribe en la configuración del propio agente** para que el agente le cuente cosas directamente por su socket, sin que herdr tenga que adivinarlas. +
- +
-Lo que se gana: +
- +
-  * **Recuperar la conversación**: el agente le dice a herdr en qué sesión está. Si el servidor se reinicia (reinicio del ordenador, ''herdr server stop''), herdr vuelve a abrir el agente **con esa misma conversación**, en lugar de una shell vacía. Esto lo hacen todas las integraciones. +
-  * **Estado más fiable**: en algunos agentes, OpenCode entre ellos, el agente informa él mismo de si está ''working'' o ''blocked''. Leer la pantalla falla cuando sale una pregunta con un aspecto que herdr no conoce; el aviso del propio agente, no. +
- +
-Qué escribe en cada agente: +
- +
-^ Agente ^ Qué instala ^ Dónde ^ Recupera la conversación ^ Informa del estado ^ +
-| OpenCode | Un plugin de OpenCode | ''~/.config/opencode/plugins/'' | ✓ | ✓ | +
-| Claude Code | Un //hook// ''SessionStart'' | ''~/.claude/hooks/'' y ''settings.json'' | ✓ | | +
- +
-Los plugins de OpenCode están en [[cursos:sdd:03-opencode#plugins|su tema]] y los //hooks// se verán en el tema 9; aquí basta con saber que herdr los instala y los quita solo. +
- +
-Las órdenes, por si no las instalaste en el asistente o instalas un agente después: +
- +
-  * Instalar la integración de OpenCode: +
-<sxh bash> +
-herdr integration install opencode +
-</sxh> +
- +
-  * La de Claude Code: +
-<sxh bash> +
-herdr integration install claude +
-</sxh> +
- +
-  * Ver cuáles tienes instaladas y si están desactualizadas: +
-<sxh bash> +
-herdr integration status +
-</sxh> +
- +
-  * Quitarla, si ya no la quieres. Borra lo que instaló y deja el resto de tu configuración intacta: +
-<sxh bash> +
-herdr integration uninstall opencode +
-</sxh> +
- +
-<note important>Tras instalar la integración hay que **reiniciar el agente** (salir de OpenCode y volver a lanzarlo) para que cargue el plugin. Y si un día herdr deja de recuperar las conversaciones tras una actualización, mira ''herdr integration status'': la integración puede haberse quedado vieja y basta con volver a instalarla.</note>+
  
-<note tip>También se instalan desde la pestaña de integraciones de los ajustes de herdr, que es la misma pantalla que abre el asistente del primer arranque.</note>+Los agentes no corren dentro de la ventana de herdr, sino en un **proceso aparte** (el servidor de herdr), así que puedes cerrar herdr cuando quieras, aunque la terminal avise de que hay un proceso en ejecución: los agentes siguen trabajando y, al volver a ejecutar ''herdr'', todo está como lo dejaste. Si reinicias el ordenador vuelven los espacios de trabajo, pestañas y paneles, pero los agentes solo recuperan su conversación si tienen la [[#arrancar|integración]].
  
 ---- ----
Línea 364: Línea 276:
 | ''R'' | Recargar ''config.toml'' | | ''R'' | Recargar ''config.toml'' |
 | ''b'' | Mostrar u ocultar la barra lateral | | ''b'' | Mostrar u ocultar la barra lateral |
-| ''g'' | muestra la lista de paneles para ir a uno de ellos |+| ''g'' | Ir a cualquier agente o terminal (lista con filtros) |
  
 ==== Espacios de trabajo ==== ==== Espacios de trabajo ====
Línea 408: Línea 320:
 ---- ----
  
-===== 7. Enlaces =====+===== 7. Más información =====
  
   * [[https://herdr.dev|herdr.dev]]: web oficial.   * [[https://herdr.dev|herdr.dev]]: web oficial.
cursos/sdd/03-herdr.1792360708.txt.gz · Última modificación: por claude