cursos:sdd:05-herdr
Diferencias
Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anteriorRevisión previa | |||
| cursos:sdd:05-herdr [2026/11/05 21:14] – borrado - editor externo (Fecha desconocida) 127.0.0.1 | cursos:sdd:05-herdr [2026/11/05 21:14] (actual) – ↷ El nombre de la página cambió de cursos:sdd:03-herdr a cursos:sdd:05-herdr claude | ||
|---|---|---|---|
| Línea 1: | Línea 1: | ||
| + | ====== 5. herdr ====== | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | Sirve para lo que pasa en cuanto trabajas con más de un agente a la vez: | ||
| + | uno implementando, | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== 1. Puesta en marcha ===== | ||
| + | |||
| + | ==== Instalar ==== | ||
| + | |||
| + | * Linux y macOS | ||
| + | <sxh bash> | ||
| + | curl -fsSL https:// | ||
| + | </ | ||
| + | |||
| + | * Windows | ||
| + | <sxh powershell> | ||
| + | powershell -ExecutionPolicy Bypass -c "irm https:// | ||
| + | </ | ||
| + | |||
| + | ==== Arrancar ==== | ||
| + | |||
| + | Desde la carpeta del proyecto: | ||
| + | |||
| + | <sxh bash> | ||
| + | cd mi-proyecto | ||
| + | herdr | ||
| + | </ | ||
| + | |||
| + | La primera vez pregunta si quieres **instalar las integraciones** de los agentes que encuentra en el '' | ||
| + | |||
| + | {{: | ||
| + | |||
| + | 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: | ||
| + | |||
| + | <sxh bash> | ||
| + | opencode | ||
| + | </ | ||
| + | |||
| + | herdr lo detecta solo, sin configurar nada. Vale igual con '' | ||
| + | |||
| + | ==== Actualizar ==== | ||
| + | |||
| + | <sxh bash> | ||
| + | herdr update | ||
| + | </ | ||
| + | |||
| + | Los agentes que estén trabajando **no se paran** al actualizar: el servidor viejo sigue vivo hasta que lo reinicias. Al terminar, '' | ||
| + | |||
| + | < | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== 2. Espacios de trabajo, pestañas y paneles ===== | ||
| + | |||
| + | herdr organiza los terminales en tres niveles: | ||
| + | |||
| + | ^ Nivel ^ Qué es ^ Para qué se usa ^ | ||
| + | | **Espacio de trabajo** | El contenedor de un proyecto | Uno por repositorio o por tarea | | ||
| + | | **Pestaña** | Una distribución de paneles dentro del espacio | Separar vistas: '' | ||
| + | | **Panel** | Un terminal de verdad. Los paneles de una pestaña se ven **a la vez**, uno junto a otro | Un agente, una shell, los tests en marcha | | ||
| + | |||
| + | Es decir: el espacio de trabajo es el proyecto, la pestaña es una pantalla de ese proyecto y los paneles son los trozos en los que partes esa pantalla. | ||
| + | |||
| + | {{: | ||
| + | |||
| + | Todo se hace **con el ratón**: clic para cambiar de panel o de espacio, arrastrar el borde para redimensionar, | ||
| + | |||
| + | ==== Con el ratón ==== | ||
| + | |||
| + | Los ejemplos son dos proyectos: '' | ||
| + | |||
| + | === Espacio de trabajo nuevo === | ||
| + | |||
| + | Se pulsa **new**, abajo en la lista de '' | ||
| + | |||
| + | {{: | ||
| + | |||
| + | El espacio nuevo se abre en la misma carpeta y **toma el nombre de la carpeta en la que esté su shell**: al hacer '' | ||
| + | |||
| + | {{: | ||
| + | |||
| + | === Pestaña nueva === | ||
| + | |||
| + | Se pulsa el **'' | ||
| + | |||
| + | {{: | ||
| + | |||
| + | Pide el nombre antes de crearla. Aquí, '' | ||
| + | |||
| + | {{: | ||
| + | |||
| + | === Renombrar una pestaña === | ||
| + | |||
| + | Botón derecho sobre la pestaña → **Rename**. | ||
| + | |||
| + | {{: | ||
| + | |||
| + | Se escribe el nombre y **save**. La pestaña '' | ||
| + | |||
| + | {{: | ||
| + | |||
| + | === Panel a la derecha === | ||
| + | |||
| + | Botón derecho dentro del panel → **Split right**. | ||
| + | |||
| + | {{: | ||
| + | |||
| + | El panel se parte en dos, uno al lado del otro. | ||
| + | |||
| + | {{: | ||
| + | |||
| + | === Renombrar un panel === | ||
| + | |||
| + | Botón derecho dentro del panel → **Rename pane**. | ||
| + | |||
| + | {{: | ||
| + | |||
| + | El nombre sale en el borde de arriba del panel. Aquí, '' | ||
| + | |||
| + | {{: | ||
| + | |||
| + | === Panel abajo === | ||
| + | |||
| + | Botón derecho dentro del panel → **Split down**. | ||
| + | |||
| + | {{: | ||
| + | |||
| + | El panel se parte en dos, uno encima del otro. Aquí, '' | ||
| + | |||
| + | {{: | ||
| + | |||
| + | <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.</ | ||
| + | |||
| + | ==== Gestionar los espacios de trabajo ==== | ||
| + | |||
| + | * Cambiarle el nombre: botón derecho sobre el espacio, **Rename**. | ||
| + | * Cerrarlo, con todas sus pestañas y paneles: botón derecho, **Close**. | ||
| + | |||
| + | <note important> | ||
| + | <sxh bash> | ||
| + | herdr workspace create --cwd ~/ | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== 3. Worktrees de 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...**: | ||
| + | |||
| + | {{: | ||
| + | |||
| + | Cada worktree es un espacio de trabajo completo, con sus pestañas y paneles, que en la lista de espacios cuelga del proyecto. Aquí, '' | ||
| + | |||
| + | {{: | ||
| + | |||
| + | < | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== 4. El skill de herdr: que el agente maneje herdr ===== | ||
| + | Con el skill de herdr, el agente (OpenCode, Claude Code...) puede manejar herdr por ti. Se instala así: | ||
| + | |||
| + | <sxh bash> | ||
| + | npx skills add herdrdev/ | ||
| + | </ | ||
| + | |||
| + | 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: | ||
| + | <sxh plain> | ||
| + | en herdr, abre un panel abajo, lanza npm test y avísame cuando acabe | ||
| + | </ | ||
| + | |||
| + | * Leer la salida de otro panel y actuar sobre ella: | ||
| + | <sxh plain> | ||
| + | lee en herdr la salida del panel de los tests y arregla lo que falle | ||
| + | </ | ||
| + | |||
| + | * Arrancar otro agente que revise el trabajo: | ||
| + | <sxh plain> | ||
| + | en herdr, abre un panel a la derecha con otro opencode que revise specs/ | ||
| + | </ | ||
| + | |||
| + | Todo lo que hace queda en sus paneles, a la vista, y puedes intervenir en cualquier momento. | ||
| + | |||
| + | <note warning> | ||
| + | El skill es para pedirle cosas **a mano mientras trabajas**. | ||
| + | Instálalo solo con '' | ||
| + | </ | ||
| + | |||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== 5. Usando herdr ===== | ||
| + | |||
| + | ==== La lista de agentes ==== | ||
| + | |||
| + | 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. | ||
| + | |||
| + | {{: | ||
| + | |||
| + | |||
| + | ==== 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 # | ||
| + | | <color red> | ||
| + | | <color # | ||
| + | | <color # | ||
| + | |||
| + | |||
| + | |||
| + | Cuando un punto se pone rojo o verde azulado, clic y a atenderlo. | ||
| + | |||
| + | <note tip>'' | ||
| + | |||
| + | ==== Orden de la lista: grouped o priority ==== | ||
| + | |||
| + | Arriba a la derecha de la lista (la flecha roja) está cómo se ordenan los agentes. **Clic encima** y cambia entre los dos modos: | ||
| + | |||
| + | {{: | ||
| + | |||
| + | * **'' | ||
| + | * **'' | ||
| + | |||
| + | En cuanto tengas más de dos o tres agentes, pon '' | ||
| + | |||
| + | |||
| + | ==== Cerrar herdr ==== | ||
| + | |||
| + | 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 '' | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== 6. Configuración ===== | ||
| + | |||
| + | La configuración está en '' | ||
| + | |||
| + | ==== Las filas de la lista ==== | ||
| + | |||
| + | Cada array de '' | ||
| + | |||
| + | <sxh ini; title: ~/ | ||
| + | [ui.sidebar.agents] | ||
| + | rows = [ | ||
| + | [" | ||
| + | [" | ||
| + | ] | ||
| + | </ | ||
| + | |||
| + | El nombre se le pone al panel con el botón derecho → **Rename pane** (en la [[# | ||
| + | |||
| + | <sxh plain> | ||
| + | ○ implementa | ||
| + | reservas-api · claude | ||
| + | ○ revisa | ||
| + | reservas-api · claude | ||
| + | </ | ||
| + | |||
| + | Los tokens de las filas de agentes: | ||
| + | |||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | |||
| + | Un valor que no existe desaparece con su separador '' | ||
| + | |||
| + | ==== Filas distintas para un agente ==== | ||
| + | |||
| + | '' | ||
| + | |||
| + | <sxh ini; title: ~/ | ||
| + | [ui.sidebar.agents.rows_by_agent] | ||
| + | claude = [ | ||
| + | [" | ||
| + | [" | ||
| + | [" | ||
| + | ] | ||
| + | </ | ||
| + | |||
| + | <note important>'' | ||
| + | |||
| + | Un token también puede ir con estilo, en vez del nombre suelto: '' | ||
| + | |||
| + | ==== La lista de espacios de trabajo ==== | ||
| + | |||
| + | Las filas de la lista de espacios van en '' | ||
| + | |||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | |||
| + | ==== El título de la ventana ==== | ||
| + | |||
| + | '' | ||
| + | |||
| + | <sxh ini; title: ~/ | ||
| + | [ui] | ||
| + | window_title = " | ||
| + | sidebar_width = 40 | ||
| + | sidebar_max_width = 60 | ||
| + | </ | ||
| + | |||
| + | Por defecto '' | ||
| + | |||
| + | ==== Recargar ==== | ||
| + | |||
| + | * '' | ||
| + | * **menu → reload config** en la barra lateral, o '' | ||
| + | |||
| + | <note warning>'' | ||
| + | |||
| + | ==== Más información ==== | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== 7. Atajos de teclado ===== | ||
| + | |||
| + | '' | ||
| + | |||
| + | Por ejemplo, '' | ||
| + | |||
| + | ==== General ==== | ||
| + | |||
| + | ^ Tecla ^ Orden ^ | ||
| + | | ''?'' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | |||
| + | ==== Espacios de trabajo ==== | ||
| + | |||
| + | ^ Tecla ^ Orden ^ | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | |||
| + | ==== Pestañas ==== | ||
| + | |||
| + | ^ Tecla ^ Orden ^ | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | |||
| + | ==== Paneles ==== | ||
| + | |||
| + | ^ Tecla ^ Orden ^ | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== 8. Orca: hacia un IDE de agentes ===== | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | * **Editor**: un editor al estilo de VS Code para abrir y retocar ficheros sin salir. | ||
| + | * **Revisión del diff**: se ve lo que ha cambiado cada agente y se comenta cualquier línea; los comentarios le llegan al agente para que los corrija. | ||
| + | * **Navegador integrado**: | ||
| + | * **GitHub**: las PR y las issues del proyecto, y abrir un worktree directamente desde una issue. | ||
| + | |||
| + | ^ ^ herdr ^ Orca ^ IDE ^ | ||
| + | | Varios agentes a la vista con su estado | ||
| + | | Un worktree por agente | ||
| + | | Revisar y comentar el diff del agente | ||
| + | | Editor de código | ||
| + | | Depurador, refactorizaciones, | ||
| + | |||
| + | Orca es probablemente por donde van a ir los IDEs: ya no son el sitio donde se **escribe** código, sino donde se **ejecutan agentes y se revisan sus resultados**. Por eso se parece a un IDE con menos cosas (sobra casi todo lo que sirve para teclear código) al que se le suma lo que tiene herdr. | ||
| + | |||
| + | De todas formas, la frontera no es fija: depende de los plugins de cada uno. Un IDE con plugins para agentes se acerca a Orca, y a herdr ya se le pueden instalar [[https:// | ||
| + | |||
| + | <sxh bash> | ||
| + | herdr plugin install persiyanov/ | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== 9. Más información ===== | ||
| + | |||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | |||
| + | |||
| + | |||
