프로젝트 소개
Hunk는 코딩 에이전트가 생성한 변경 집합을 검토하는 데 초점을 맞춘 터미널 기반 diff 뷰어입니다. 단순한 패치를 출력하는 대신, OpenTUI와 Pierre diffs 라이브러리 위에 구축된 대화형 검토 인터페이스를 엽니다. 이 프로젝트는 MIT 라이선스이며 macOS, Linux, Windows용 독립 실행형 바이너리로 배포되고, npm, Homebrew, mise, Nix를 통한 추가 설치 경로도 제공합니다.
핵심 워크플로는 익숙한 Git 명령을 닮았지만 결과를 검토 UI로 렌더링합니다. `hunk diff`는 추적되지 않은 파일을 포함한 현재 저장소 변경 사항을 보여주고, `hunk show`는 특정 커밋을 검토하며, `hunk log`는 리다이렉트 시 정적 출력으로 대체되는 히스토리 브라우저를 엽니다. watch 모드는 작업 트리가 변경됨에 따라 파일 및 Git 기반 검토를 자동으로 다시 로드합니다. 원시 파일과 패치도 직접 비교할 수 있으며, 패치는 stdin으로 파이프로 전달할 수 있습니다.
주요 인터페이스 기능으로는 사이드바 탐색이 있는 다중 파일 검토 스트림, 분할, 통합, 반응형 자동 레이아웃, 구문 강조, 마우스 지원, 런타임 보기 토글, 페이저 호환 모드가 있습니다. 두드러지는 기능은 코드 옆에 배치되는 인라인 AI 및 에이전트 주석으로, 에이전트가 스킬 파일을 로드하고 실행 중인 Hunk 세션과 상호작용하는 문서화된 에이전트 워크플로로 지원됩니다.
Hunk는 Git 외에도 Jujutsu와 Sapling 체크아웃을 자동 감지하며, 세 가지 버전 관리 시스템 모두의 페이저로 구성할 수 있습니다. 환경 설정은 사용자 또는 저장소 수준의 TOML 구성 파일에 유지되며, 테마, 레이아웃 모드, VCS 선택, 탭 너비, 간격, 애니메이션 등을 다룹니다. 모든 키보드 단축키는 키바인딩 테이블을 통해 재매핑할 수 있는 이름 있는 명령입니다.
실험적 확장 API를 사용하면 TypeScript 확장을 로드하여 CLI 워크플로 추가, 테마 및 언어 매핑 제공, VCS 백엔드 추가, 검토 전 변경 집합 변환, 사이드바를 사용자 정의 React 컴포넌트로 교체, 수명 주기 이벤트 응답을 할 수 있습니다. 확장은 Git 저장소에서 설치할 수 있으며, `hunk-extension` GitHub 토픽이 커뮤니티 기여를 표시합니다. 동일한 diff 렌더러는 다른 애플리케이션에 임베드할 수 있도록 OpenTUI 컴포넌트로도 게시됩니다.
README에는 lumen, difftastic, delta, diff-so-fancy, GNU diff와의 기능 비교 표가 포함되어 있으며, Hunk가 구조적 diffing보다 대화형 전체 변경 집합 검토에 초점을 둔다고 언급합니다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.