Sobre o projeto
Hunk é um visualizador de diff baseado em terminal projetado para revisar changesets produzidos por agentes de codificação. Em vez de imprimir um patch simples, ele abre uma interface de revisão interativa construída sobre OpenTUI e a biblioteca Pierre diffs. O projeto é licenciado sob MIT e distribuído como binário autônomo para macOS, Linux e Windows, com caminhos adicionais de instalação via npm, Homebrew, mise e Nix.
O fluxo de trabalho principal espelha comandos Git familiares, mas renderiza os resultados em uma interface de revisão. `hunk diff` mostra as alterações atuais do repositório, incluindo arquivos não rastreados, `hunk show` revisa um commit específico, e `hunk log` abre um navegador de histórico que recorre à saída estática quando redirecionado. Um modo watch recarrega automaticamente revisões baseadas em arquivos e no Git conforme a árvore de trabalho muda. Arquivos brutos e patches também podem ser comparados diretamente, e patches podem ser enviados via stdin.
Os principais recursos da interface incluem um fluxo de revisão multiarquivo com navegação lateral, layouts dividido, unificado e automático responsivo, realce de sintaxe, suporte a mouse, alternâncias de visualização em tempo de execução e um modo compatível com paginador. Uma capacidade distintiva são as anotações inline de IA e agente colocadas ao lado do código, apoiadas por um fluxo de trabalho de agente documentado no qual um agente carrega um arquivo de skill e interage com uma sessão ativa do Hunk.
O Hunk detecta automaticamente checkouts do Jujutsu e Sapling, além do Git, e pode ser configurado como paginador para os três sistemas de controle de versão. As preferências são persistidas em arquivos de configuração TOML no nível do usuário ou do repositório, abrangendo temas, modo de layout, seleção de VCS, largura de tabulação, espaçamento, animações e mais. Cada atalho de teclado é um comando nomeado que pode ser remapeado por meio de uma tabela de keybindings.
Uma API de extensão experimental permite carregar extensões TypeScript que podem adicionar fluxos de trabalho de CLI, contribuir com temas e mapeamentos de linguagem, adicionar backends de VCS, transformar changesets antes da revisão, substituir a barra lateral por um componente React personalizado e responder a eventos de ciclo de vida. Extensões podem ser instaladas a partir de repositórios Git, e um tópico do GitHub `hunk-extension` marca contribuições da comunidade. O mesmo renderizador de diff também é publicado como um componente OpenTUI para incorporação em outros aplicativos.
O README inclui uma tabela de comparação de recursos com lumen, difftastic, delta, diff-so-fancy e GNU diff, observando que o Hunk se concentra na revisão interativa de changesets completos, em vez de diffing estrutural.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.