Sobre el proyecto
Hunk es un visor de diferencias basado en terminal diseñado para revisar conjuntos de cambios producidos por agentes de programación. En lugar de imprimir un parche simple, abre una interfaz de revisión interactiva construida sobre OpenTUI y la biblioteca Pierre diffs. El proyecto tiene licencia MIT y se distribuye como un binario independiente para macOS, Linux y Windows, con rutas de instalación adicionales a través de npm, Homebrew, mise y Nix.
El flujo de trabajo principal refleja comandos de Git familiares, pero muestra los resultados en una interfaz de revisión. `hunk diff` muestra los cambios actuales del repositorio, incluidos los archivos no rastreados; `hunk show` revisa un commit específico; y `hunk log` abre un navegador de historial que recurre a una salida estática cuando se redirige. Un modo watch recarga automáticamente las revisiones respaldadas por archivos y por Git a medida que cambia el árbol de trabajo. También se pueden comparar directamente archivos sin procesar y parches, y los parches se pueden canalizar desde stdin.
Las características clave de la interfaz incluyen un flujo de revisión multifichivo con navegación lateral, diseños dividido, unificado y automático adaptable, resaltado de sintaxis, soporte para ratón, alternancias de vista en tiempo de ejecución y un modo compatible con paginador. Una capacidad distintiva son las anotaciones inline de IA y agentes colocadas junto al código, respaldadas por un flujo de trabajo de agentes documentado en el que un agente carga un archivo de habilidades e interactúa con una sesión activa de Hunk.
Hunk detecta automáticamente checkouts de Jujutsu y Sapling además de Git, y se puede configurar como paginador para los tres sistemas de control de versiones. Las preferencias se conservan en archivos de configuración TOML a nivel de usuario o repositorio, abarcando temas, modo de diseño, selección de VCS, ancho de tabulación, espaciado, animaciones y más. Cada atajo de teclado es un comando con nombre que se puede reasignar mediante una tabla de keybindings.
Una API de extensiones experimental permite cargar extensiones de TypeScript que pueden añadir flujos de trabajo de CLI, aportar temas y asignaciones de lenguaje, agregar backends de VCS, transformar conjuntos de cambios antes de la revisión, reemplazar la barra lateral con un componente React personalizado y responder a eventos del ciclo de vida. Las extensiones se pueden instalar desde repositorios Git, y un tema de GitHub `hunk-extension` marca las contribuciones de la comunidad. El mismo renderizador de diferencias también se publica como componente de OpenTUI para incrustarlo en otras aplicaciones.
El README incluye una tabla comparativa de características frente a lumen, difftastic, delta, diff-so-fancy y GNU diff, y señala que Hunk se centra en la revisión interactiva de conjuntos de cambios completos en lugar del diffing estructural.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.