Repository navigation
v0.24.0-beta.0
Pre-releaseHunk 0.24 beta: beyond the diff
This first 0.24 beta brings complete-file and directory browsing, a live workspace compass, and easier extension and agent setup into the same terminal workspace as your reviews. It also moves syntax highlighting into a worker by default and makes automatic diff layout respond to the space left by your side panes.
For npm- and curl-managed installs, select this beta explicitly:
hunk update 0.24.0-beta.0
npm install -g hunkdiff@0.24.0-beta.0This is a prerelease. Stable installs continue to use 0.23.0; Homebrew does not distribute this beta.
Browse the whole file, then find your next review
hunk open shows complete syntax-highlighted files and browses directories with lazy loading, live refresh, and keyboard or mouse navigation. You can inspect the surrounding source without manufacturing a diff. #1148
The new read-only workspace status view makes tracked and untracked changes, staging state, and sibling worktrees easy to inspect, with navigation into history and full diff reviews. Static and versioned JSON output are available too. #1067
A review that follows your workspace
Syntax highlighting now runs in a worker by default, with grammar warmup during startup to reduce the input stall after the first review frame appears. Large-diff highlight failures use bounded retries rather than restarting on every scroll. #1105, #785
Automatic layout now considers the available diff width after side panes and padding, so opening a pane can switch the review to unified and closing it can restore split. auto_split_min_width lets you choose that threshold. scroll_off keeps context around the current line, and the note composer's save shortcut is remappable. #1170, #1109, #962
This beta also fixes comment targets drifting after wheel scrolling, preserves notes across reloads that temporarily omit their files, and keeps live sessions registered while a window is suspended. #1143, #1164, #1131, #1134
Easier extensions, agent setup, and shell navigation
hunk extension install now accepts npm packages—including scopes, versions, ranges, and tags—alongside Git sources, without running npm lifecycle scripts. Folder-local package imports also work in compiled Hunk binaries. Extensions gain generation-scoped presentation filters and independent left/right pane controls. #1162, #1163, #1118, #1171
Install agent pointer skills through the skills CLI; hunk skill show supplies the full instructions matched to your installed Hunk version. Bash and Zsh completions help discover commands, flags, and supported values. #1167, #1157
Compatibility notes
- Layout defaults: auto mode now uses a threshold of 160 available diff columns. Explicit
splitandunifiedmodes still override automatic selection; configureauto_split_min_widthto change the threshold. - Navigation defaults:
scroll_offdefaults to five context rows. Setscroll_off = 0or pass--scroll-off 0to restore edge-only scrolling. - Highlighting:
--fastis now a no-op and will be removed in a later release. Windows compiled binaries and custom themes withsyntax_scopescontinue to highlight inline. - Extensions: the public extension API is now version 31. New APIs should be gated on
hunk.apiVersionwhen supporting older Hunk releases. - Persistent state: Hunk now uses the XDG state directory while preserving existing state and global extension locations. #920
- Runtime requirements: npm installs require Node.js 22 or newer; standalone binaries do not require Node.js.
Community contributors
- @0xferrous fixed combined conflict diffs and plain-text pager output through pipes. #1102, #1112
- @Ajay-Satish-01 made the note-composer save shortcut remappable. #962
- @andreifilip123 added the configurable context margin around the current line. #1109
- @andrewloux improved macOS test portability and kept noted files recoverable across reloads. #1146, #1131
- @bottercode fixed lockfile refresh during release versioning. #1158
- @brettinternet added generation-scoped extension presentation filters. #1118
- @edenbuilds validated extension VCS watch hooks before registration. #1080
- @elucid fixed installer release lookup, clarified session-selector errors, and sped up terminal-theme refresh. #1140, #1149, #1130
- @HackAttack fixed annotated-note navigation, wheel-scroll comment targets, and suspended-session registration. #1147, #1143, #1134
- @igshehata preserved text entered immediately after opening a note composer. #1125
- @LandonSchropp added hunk-verdict and hunk-backup to the extension directory. #1137
- @masonmcelvain made worker highlighting the default and warmed grammars during startup. #1105
- @mikemikimike moved persistent state to the XDG state directory. #920
- @mvanhorn fixed folder-extension package imports in compiled binaries. #1163
- @silvioprog added Bash and Zsh shell completions. #1157
- @strawberry-little-bear corrected terminal-width handling for grapheme Prepend characters. #1153
- @teepark made automatic layout depend on available diff width and added its configurable threshold. #1170
All merged pull requests (44)
- publish v0.23.0 notes by @benvinegar in #1135
- resolve releases from the apex domain by @elucid in #1140
- bump taiki-e/install-action from 2.86.3 to 2.87.14 in the github-actions group by @dependabot[bot] in #1139
- adopt new hunk logo, flat favicon, and brand guide by @benvinegar in #1145
- explain selector misses instead of protocol-validation-failed by @elucid in #1149
- refresh terminal colors via direct OSC probe by @elucid in #1130
- pass the lifecycle, trust prompt and jj source tests on macOS by @andrewloux in #1146
- Add hunk-mark-read to hunk-extension marketplace by @benvinegar in #1155
- measure grapheme Prepend scalars with the cluster that follows them by @strawberry-little-bear in #1153
- compact same-directory rename labels by @benvinegar in #1156
- add complete-file viewer and lazy directory browser by @benvinegar in #1148
- Fix/draft note focus transition by @igshehata in #1125
- render conflicted Git diffs by @0xferrous in #1102
- handle plain text output through pipes by @0xferrous in #1112
- add generation-scoped presentation scope API by @brettinternet in #1118
- bound and surface large-diff highlight retries by @benvinegar in #785
- Add hunk-guide and hunk-verdict to hunk-extension marketplace by @benvinegar in #1159
- Highlighting: Make the worker the default and warm it during startup by @masonmcelvain in #1105
- reveal note composers at the bottom edge by @benvinegar in #1160
- preserve filter focus when results reappear by @benvinegar in #1161
- reject non-callable VCS operation watch hooks by @edenbuilds in #1080
- stop annotated navigation skipping notes drawn outside hunks by @HackAttack in #1147
- refresh bun.lock when versioning packages by @bottercode in #1158
- Add LandonSchropp/hunk-verdict and hunk-backup to the extension directory by @LandonSchropp in #1137
- add scroll_off setting for viewport margin by @andreifilip123 in #1109
- keep a session connected when a reload leaves out a noted file by @andrewloux in #1131
- stop wheel scroll and stale hover from drifting comment targets off the highlighted line by @HackAttack in #1143
- restore comment targets after batched wheel returns by @benvinegar in #1164
- add bash and zsh shell completions by @silvioprog in #1157
- release stdin before launching terminal editors by @benvinegar in #1165
- support managed npm package sources by @benvinegar in #1162
- add a workspace compass with sibling worktrees by @benvinegar in #1067
- link GitHub release notes after hunk update by @benvinegar in #1166
- load folder-local packages in compiled binaries by @benvinegar in #1163
- let note composer save be remapped by @Ajay-Satish-01 in #962
- reveal pane edges independently by @benvinegar in #1171
- distribute version-matched agent skills via skills CLI by @benvinegar in #1167
- trim verbose README prose by @benvinegar in #1174
- keep sessions alive while window is suspended by @HackAttack in #1134
- store persistent state under XDG state directory by @mikemikimike in #920
- isolate suspension test daemon port by @benvinegar in #1176
- clarify configuration overrides and examples by @benvinegar in #1175
- Auto width threshold by @teepark in #1170
- prepare 0.24.0-beta.0 by @benvinegar in #1177
Release notes: https://hunk.dev/changelog/0.24/
Full changelog: v0.23.0...v0.24.0-beta.0