hunk

AI Coding ToolsTUITypeScript

★ 9,237주당 +88조회 4

무엇인가

hunk는 에이전트가 만든 변경 집합을 사람이 검토하는 장면을 전제로 한 터미널 diff 뷰어다. `git diff` 출력을 페이저로 넘겨 읽는 자리와 편집기 내장 diff 패널 사이에 놓이며, 여러 파일을 하나의 리뷰 흐름으로 이어 본다는 점이 다르다.

어떻게 동작하나

렌더링은 OpenTUI, diff 계산은 Pierre diffs가 맡는다. 화면은 사이드바와 다중 파일 리뷰 스트림으로 나뉘고 split·unified·auto 레이아웃을 터미널 폭에 맞춰 전환한다. 코드 옆에는 AI·에이전트 주석이 인라인으로 붙는다. watch 모드에서 직접 파일 리뷰와 Git 기반 리뷰는 파일시스템 관찰로 갱신하고, 이벤트를 놓치거나 watcher를 쓸 수 없으면 주기 폴링으로 대체한다. Jujutsu·Sapling 리뷰는 폴링만 쓴다. VCS 어댑터가 이력 순회·필터·ref 해석을 담당하며 Git과 Jujutsu 어댑터가 함께 배포된다.

무엇과 다른가

`hunk log`는 저장소 관리자가 아니라 읽기 전용 이력 화면이다. 터미널에서는 데스크톱 이력 브라우저가 열리고, 파이프·리다이렉트로는 셸용 정적 레코드가 나가며 `--static`으로 강제할 수 있다. 정적 출력은 커밋·작성자·날짜·메시지·브랜치/북마크·리모트·태그를 유지하고 `--oneline`은 압축 레코드를 낸다. 대화형 이력은 커밋을 로컬 달력 날짜로 묶고 작성자 핸들과 상대 시간을 표시하며, View 메뉴의 Graph view를 켜면 날짜 그룹 대신 커밋 토폴로지 레인이 그려진다.

어떻게 쓰나

설치 스크립트는 macOS·Linux에서 독립 실행 바이너리를 `~/.hunk`에 넣고, `SHA256SUMS`와 체크섬 도구가 있으면 검증하고 없으면 경고한다. 릴리스 탐색은 Hunk의 익명 집계 엔드포인트를 쓰고 실패하면 GitHub로 넘어간다. Windows는 npm 또는 mise 2026.8.6 이상, Nix는 `flake.nix`의 `default` 패키지, Omarchy는 mise를 통해 기본 도구로 설치된다. 0.20부터 npm·Homebrew·기본 설치 스크립트는 `hunk update`로 갱신한다. 설정은 `~/.config/hunk/config.toml`과 `.hunk/config.toml`에 두고 theme, tab_width, file_gap, hunk_gap, wheel_scroll_lines, animations, exclude_untracked를 지정한다. 에이전트 연동은 다른 터미널에서 `hunk diff`나 `hunk show`를 띄운 뒤 `hunk skill path`가 돌려주는 스킬 파일을 에이전트에 추가하는 방식이다.

전제와 한계

실행 대상은 macOS·Linux·Windows다. x86-64는 SSE4.2가 필요하고 arm64에는 CPU 기능 하한이 없다. Node.js 22 이상은 npm 설치에만 필요하며 설치 스크립트·Homebrew·mise·Nix가 배포하는 독립 바이너리는 Node 없이 동작한다. `--all`이나 작성자·메시지·날짜·경로 필터를 쓰면 순회가 뒤섞이거나 커밋이 가려질 수 있어 범위 선택이 비활성화된다. 리치 STML 주석 본문은 `--experimental`로 리뷰를 시작해야 하고 기본은 일반 텍스트 주석이다. `HUNK_INSTALL_DIR`을 직접 지정한 설치는 같은 디렉터리로 설치 스크립트를 다시 실행해야 하며, mise·Nix·소스 설치는 각 도구로 갱신한다. 이전에 `modem-dev/tap`으로 설치했다면 `brew uninstall modem-dev/tap/hunk`로 먼저 제거한다.

유사 도구