À propos du projet

Hunk est un visualiseur de diff basé sur le terminal conçu pour examiner les modifications apportées par les agents de codage. Au lieu d'imprimer un patch simple, il ouvre une interface de révision interactive basée sur OpenTUI et la bibliothèque Pierre diffs. Le projet est sous licence MIT et est distribué sous forme de binaire autonome pour macOS, Linux et Windows, avec des chemins d'installation supplémentaires via npm, Homebrew, mise et Nix. Le flux de travail principal reflète les commandes Git familières mais affiche les résultats dans une interface de révision. `hunk diff` affiche les modifications actuelles du référentiel, y compris les fichiers non suivis, `hunk show` examine un commit spécifique, et `hunk log` ouvre un navigateur d'historique qui bascule vers une sortie statique lorsqu'il est redirigé. Un mode de surveillance recharge automatiquement les révisions basées sur des fichiers et Git lorsque l'arbre de travail change. Les fichiers et les patchs bruts peuvent également être comparés directement, et les patchs peuvent être transmis à partir de stdin. Les principales fonctionnalités de l'interface incluent un flux de révision multi-fichier avec navigation dans le volet latéral, des dispositions split, unified et auto réactives, un éclairage de syntaxe, un support de la souris, des commutateurs de vue à l'exécution, et un mode compatible avec le paginateur. Une capacité distinctive est les annotations AI et agent en ligne placées à côté du code, prises en charge par un flux de travail d'agent documenté où un agent charge un fichier de compétence et interagit avec une session Hunk en direct. Hunk détecte automatiquement les vérifications Jujutsu et Sapling en plus de Git, et peut être configuré comme le paginateur pour les trois systèmes de contrôle de version. Les préférences sont persistantes dans des fichiers de configuration TOML au niveau de l'utilisateur ou du référentiel, couvrant les thèmes, le mode de disposition, la sélection VCS, la largeur des onglets, l'espacement, les animations, etc. Chaque raccourci clavier est une commande nommée qui peut être réaffectée via un tableau de raccourcis clavier. Une API d'extension expérimentale permet de charger des extensions TypeScript qui peuvent ajouter des flux de travail CLI, contribuer des thèmes et des mappages de langage, ajouter des backends VCS, transformer les modifications avant la révision, remplacer le volet latéral par un composant React personnalisé, et répondre aux événements de cycle de vie. Les extensions peuvent être installées à partir de référentiels Git, et un sujet GitHub `hunk-extension` marque les contributions de la communauté. Le même rendu de diff est également publié en tant que composant OpenTUI pour être intégré dans d'autres applications. Le fichier README inclut un tableau de comparaison de fonctionnalités avec lumen, difftastic, delta, diff-so-fancy et GNU diff, notant que Hunk se concentre sur la révision interactive de l'ensemble des modifications plutôt que sur le diffing structurel.