터미널 기반 리뷰형 diff 뷰어와 에이전트 인라인 주석 통합
Hunk는 터미널에서 다중 파일 변경집을 인터랙티브한 리뷰 UI로 제공하고 에이전트·AI 인라인 주석을 지원하는 TypeScript 기반 CLI 도구이다.
TL;DR
Hunk는 OpenTUI 렌더러와 Pierre diffs 파서를 결합해 터미널에서 멀티파일 변경집을 스트리밍 형태로 인터랙티브하게 리뷰하도록 설계된 CLI 도구이다. 이 도구는 코드 옆에 에이전트·AI 인라인 주석을 표시하고 분할·스택·자동 레이아웃과 마우스 및 키보드 입력을 모두 지원해 기존 텍스트 페이저의 한계를 보완한다. Git의 core.pager로 등록하거나 hunk 명령으로 직접 실행하면 로컬 워킹 트리, 커밋, 패치 스트림을 그대로 읽어 리뷰 UI로 변환하며 Jujutsu와 Sapling도 네이티브로 감지한다. 설치는 npm 또는 Homebrew로 가능하며 Node.js 18+가 요구된다.
주요 기능
- 스트리밍 방식으로 다중 파일 변경집을 연속적 리뷰 흐름으로 탐색한다.
- 코드 옆에 에이전트 및 AI 주석을 인라인으로 표시해 변경 의도와 코멘트를 함께 제공한다.
- 분할, 스택, 자동 반응형 레이아웃을 지원해 다양한 터미널 크기에서 가독성을 유지한다.
- 워치 모드로 워킹 트리 변화나 파일 변경을 자동으로 다시 로드한다.
- 키보드·마우스·페이저·git difftool 연동을 통해 기존 도구와 호환되게 동작한다.
어떻게 동작하는가
Hunk는 OpenTUI를 렌더링 레이어로 사용해 터미널에서 위젯, 사이드바, 메뉴 같은 인터랙티브 컴포넌트를 그린다. 패치 파싱과 구조적 변경 관리에는 Pierre diffs(@pierre/diffs) 패키지를 활용해 파일별 라인 바운드와 변경 정보를 추출한다. Git, Jujutsu(jj), Sapling(sl)에서 오는 패치나 stdin으로 전달된 패치를 받아 내부 리뷰 스트림으로 변환하고, hunk pager 인터페이스를 통해 Git의 core.pager와 직접 연동한다.
해결 문제
텍스트 페이저 기반의 단일 파일 diff 출력은 변경 컨텍스트 파악과 멀티파일 리뷰 흐름을 유지하는 데 한계가 있다. Hunk는 멀티파일 변경집을 스트리밍 방식의 리뷰 UI로 변환해 파일 간 네비게이션, 사이드바 탐색, 인라인 주석을 일관되게 유지한다. 이로 인해 패치별 컨텍스트 보존, 에이전트 주석 연계, 터미널에서의 상호작용성 문제를 해결한다.
지금 주목받는 이유
Hunk는 리뷰 중심의 터미널 UI와 에이전트 주석의 결합이라는 실용적 조합에 더해 Git/서드파티 VCS 통합을 지원하면서 6790개의 스타를 기록해 활발한 관심을 받고 있다.
차별점
- OpenTUI 기반으로 터미널 상호작용과 반응형 레이아웃을 제공해 GUI 없이도 풍부한 인터랙션을 가능하게 한다.
- 에이전트·AI 주석을 코드 옆에 인라인으로 통합해 변경 의도와 자동 코멘트를 동일 화면에서 확인하게 한다.
- 멀티파일 리뷰 스트림과 사이드바 네비게이션을 기본으로 제공해 전체 변경집을 연속적으로 살펴보기 쉽게 만든다.
사용 사례
- 로컬에서 여러 파일이 포함된 변경집을 빠르게 훑고 각 변경에 대해 바로 코멘트를 남기거나 에이전트에게 코드 리뷰 작업을 위임할 때 사용한다.
- git diff나 git show를 기존 워크플로우에 페이저로 연결해 터미널 환경에서 GUI 수준의 리뷰 경험을 얻고자 할 때 사용한다.
- 자동화 에이전트가 실시간 세션에 주석을 추가하도록 연동해 에이전트 보조 리뷰 또는 코드 문맥 확인 용도로 사용한다.
시작하기
전역 npm 패키지로 설치하려면 npm i -g hunkdiff를 실행하거나 macOS에서는 brew install hunk로 Homebrew 패키지를 사용할 수 있다. 설치 후 hunk와 hunk --version 명령으로 실행과 버전 확인이 가능하며 hunk diff, hunk show 같은 명령으로 로컬 변경집이나 특정 커밋을 바로 열 수 있다. Git 통합을 원하면 git config --global core.pager "hunk pager"로 페이저를 설정하거나 별칭을 만들어 기존 워크플로우를 유지하면서 Hunk를 도입할 수 있다.
요구사항
- Node.js 18 이상 런타임이 필요하다.
- macOS, Linux, Windows에서 실행 가능하며 macOS 사용자는 Homebrew 패키지도 제공된다.
- Git은 대부분의 워크플로우에서 권장되며 Jujutsu와 Sapling 체크아웃도 자동 감지를 통해 지원된다.
이미지 분석
7.4k
Stars
209
Forks
+207
Trending
0
조회수
관련 토론
아직 관련 토론이 없습니다.
댓글
댓글을 작성하려면 로그인이 필요합니다.