Hunk 0.21
August 30, 2026 – September 2, 2026 · 3 releases
Hunk 0.21 turns reviews into a richer agent-aware workspace with authenticated live sessions, editable threaded notes, two-revision and two-file comparisons, more responsive navigation, and a broader extension surface.
New to Hunk? Use the default installer. It verifies downloads when release checksums and local tooling are available, and warns otherwise:
curl -fsSL https://hunk.dev/install.sh | shAlready on Hunk 0.20 or newer with the default install script, npm, or Homebrew? Move to this release with Hunk's canonical update command:
hunk updateOn an older Hunk release, update once through the installer or package manager that installed it, then use hunk update. mise, Nix, source, and custom-directory installs remain owned by their own update workflows. This is the current release; see all install options.
Related documentation
Section titled “Related documentation”Releases in this series
Section titled “Releases in this series”0.21.0
Section titled “0.21.0”September 2, 2026
Minor Changes
Section titled “Minor Changes”- Navigate a live review directly to a comment returned by
hunk session comment list. (#845) - Make the vertical space between files and hunks configurable. (#865)
- Add a
dimtone tohunk.registerLineHighlighterandhunk session highlight addfor fading diff text toward line backgrounds while preserving syntax highlighting token hues. (#909) - Let extensions select syntax highlighting by exact filename or basename/path glob, in addition to file extensions. (#851)
- Let extensions register generic top-level CLI command trees with raw arguments, cancellable streaming I/O, validated exit statuses, and one-time delegation into built-in Hunk commands, including a dependency-free
hunk gh 123example that fetches GitHub pull-request diffs directly. (#888) - Publish
hunk_viewedand store-backednote_changedextension lifecycle events so progress and note UIs can follow hunk navigation and agent comments. (#939) - Give opted-in extension panes the current line's
{ side, line }source address oncurrentLine, matching command selection, so a pane can follow the cursor without waiting for a keypress. (#940) - Require Node.js 22 or newer for npm installs. Standalone Hunk binaries continue to run without Node.js. (#917)
- Resize the built-in files sidebar with the terminal, showing its compact projection at medium widths and keeping split review after the sidebar hides. Extension API v12 adds
ExtensionPaneSize.fractionfor bounded body-axis fractional sizing while preserving manual overrides. (#924) - Authenticate local session producers and CLI controls with automatically discovered owner-private credentials, signed responses, scoped reconnect replacement, and bounded handshakes. Expose only minimal public daemon health, refuse unsafe PID-based replacement, and let interactive Hunk windows reconnect automatically after an incompatible incumbent becomes idle. (#933)
- Add editable inline review notes and arbitrarily nested threaded replies with mouse and keyboard actions, including reviewer dismissal of reply-free live agent notes. (#925)
- Add a pane-wide
onActivatecallback to the extension API for primary mouse presses. (#965) - Support backend-native
hunk diff <from> <to>reviews across Git, Jujutsu, and Sapling, with pinned source expansion, working-copy isolation, explicithunk diff --files <left> <right>file comparison, and structuredrangeEndpointsin extension API generation 14. (#938) - Show a fully expanded file tree when the file sidebar reaches its preferred 34-column width, and keep resize drags active while its layout changes. (#921)
Patch Changes
Section titled “Patch Changes”- Enable unchanged-context expansion in Jujutsu-backed reviews. (#890)
- Add a
/compare/section to hunk.dev with head-to-head pages for delta, difftastic, diff-so-fancy,git diff, and Plannotator, each also served as Markdown for coding agents. (#968) - Provide complete key event data to command matchers and programmatically invoked handlers. (#774)
- Add Ctrl-D and Ctrl-U aliases for half-page review scrolling. (#855)
- Fence late session lifecycle commits so stopped or replaced generations cannot authenticate, reconnect, publish daemon launch metadata, or mutate broker client state. (#955)
- Keep explicit top and bottom jumps from being overridden by a pending selection reveal. (#928)
- Stop installing Bun beside prebuilt Hunk packages so pnpm global updates cannot corrupt Bun's shared platform-package projection. Standalone platform binaries continue to work without a separate Bun installation. (#908)
- Fill the review stream on first paint instead of leaving it blank until the user scrolls. (#922)
- Contain unexpected session broker lifecycle failures behind one fixed, redacted user-visible message. (#956)
- Let focused editors inside extension panes receive keys before Hunk's global shortcuts. (#954)
- Make the checksum-aware curl installer the default across the website and docs, add an accessible tabbed install selector, and establish
hunk updateas the canonical updater from Hunk 0.20 onward. (#919) - Retry session broker connections after synchronous WebSocket startup failures. (#950)
- Keep iTerm2 sessions connected to the local session daemon when their terminal identifiers contain native punctuation. (#936)
- Keep wrapped diff geometry aligned with rendered note-guide and add-note columns. (#858)
- Accept the documented
dimtone when routing line-highlight commands through the session daemon. (#937) - Recognize pacman/AUR-managed installations via
HUNK_INSTALL_SOURCE=pacmanand suppress automatic update notices for them. (#850) - Upgrade the OpenTUI runtime and reusable component peer requirement to 0.5.6. (#914)
- Publish dated prerelease notes on hunk.dev without promoting them as the latest stable release or default install target. (#961)
- Refuse curl installs alongside competing Hunk binaries unless explicitly forced, and print each conflicting path, version, PATH precedence, and package-manager removal guidance. (#960)
- Exit cleanly when the terminal hosting a review disconnects instead of leaving an unreachable Hunk process behind. (#724)
- Restore first-frame and scroll responsiveness for large review streams. (#942)
- Fix washed-out or wrong-hue diff colors in ~25 bundled themes (gruvbox, rosé pine, tokyo-night, material, everforest, laserwave, night-owl, slack, and others) by re-harvesting every theme's diff accents from its real VS Code accent tokens. (#828)
- Stop the theme contrast guards from washing out diff accents: low-contrast sign colors now get the smallest readable adjustment instead of a fixed 45% blend, and word-level diff emphasis is derived to the renderer's own separation floor so the highlight you see is the one the theme defines. (#825)
- Refuse to start watch mode under Bun versions older than 1.3.14, which can deadlock filesystem watcher cleanup and leave Hunk unresponsive. (#902)
0.21.0-beta.1
Section titled “0.21.0-beta.1”September 1, 2026
Minor Changes
Section titled “Minor Changes”- Add a pane-wide
onActivatecallback to the extension API for primary mouse presses. (#965)
Patch Changes
Section titled “Patch Changes”- Fence late session lifecycle commits so stopped or replaced generations cannot authenticate, reconnect, publish daemon launch metadata, or mutate broker client state. (#955)
- Contain unexpected session broker lifecycle failures behind one fixed, redacted user-visible message. (#956)
- Let focused editors inside extension panes receive keys before Hunk's global shortcuts. (#954)
- Retry session broker connections after synchronous WebSocket startup failures. (#950)
- Publish dated prerelease notes on hunk.dev without promoting them as the latest stable release or default install target. (#961)
- Refuse curl installs alongside competing Hunk binaries unless explicitly forced, and print each conflicting path, version, PATH precedence, and package-manager removal guidance. (#960)
0.21.0-beta.0
Section titled “0.21.0-beta.0”August 30, 2026
Minor Changes
Section titled “Minor Changes”- Navigate a live review directly to a comment returned by
hunk session comment list. (#845) - Make the vertical space between files and hunks configurable. (#865)
- Add a
dimtone tohunk.registerLineHighlighterandhunk session highlight addfor fading diff text toward line backgrounds while preserving syntax highlighting token hues. (#909) - Let extensions select syntax highlighting by exact filename or basename/path glob, in addition to file extensions. (#851)
- Let extensions register generic top-level CLI command trees with raw arguments, cancellable streaming I/O, validated exit statuses, and one-time delegation into built-in Hunk commands, including a dependency-free
hunk gh 123example that fetches GitHub pull-request diffs directly. (#888) - Publish
hunk_viewedand store-backednote_changedextension lifecycle events so progress and note UIs can follow hunk navigation and agent comments. (#939) - Give opted-in extension panes the current line's
{ side, line }source address oncurrentLine, matching command selection, so a pane can follow the cursor without waiting for a keypress. (#940) - Require Node.js 22 or newer for npm installs. Standalone Hunk binaries continue to run without Node.js. (#917)
- Resize the built-in files sidebar with the terminal, showing its compact projection at medium widths and keeping split review after the sidebar hides. Extension API v12 adds
ExtensionPaneSize.fractionfor bounded body-axis fractional sizing while preserving manual overrides. (#924) - Authenticate local session producers and CLI controls with automatically discovered owner-private credentials, signed responses, scoped reconnect replacement, and bounded handshakes. Expose only minimal public daemon health, refuse unsafe PID-based replacement, and let interactive Hunk windows reconnect automatically after an incompatible incumbent becomes idle. (#933)
- Add editable inline review notes and arbitrarily nested threaded replies with mouse and keyboard actions, including reviewer dismissal of reply-free live agent notes. (#925)
- Support backend-native
hunk diff <from> <to>reviews across Git, Jujutsu, and Sapling, with pinned source expansion, working-copy isolation, explicithunk diff --files <left> <right>file comparison, and structuredrangeEndpointsin extension API generation 14. (#938) - Show a fully expanded file tree when the file sidebar reaches its preferred 34-column width, and keep resize drags active while its layout changes. (#921)
Patch Changes
Section titled “Patch Changes”- Enable unchanged-context expansion in Jujutsu-backed reviews. (#890)
- Provide complete key event data to command matchers and programmatically invoked handlers. (#774)
- Add Ctrl-D and Ctrl-U aliases for half-page review scrolling. (#855)
- Keep explicit top and bottom jumps from being overridden by a pending selection reveal. (#928)
- Stop installing Bun beside prebuilt Hunk packages so pnpm global updates cannot corrupt Bun's shared platform-package projection. Standalone platform binaries continue to work without a separate Bun installation. (#908)
- Fill the review stream on first paint instead of leaving it blank until the user scrolls. (#922)
- Make the checksum-aware curl installer the default across the website and docs, add an accessible tabbed install selector, and establish
hunk updateas the canonical updater from Hunk 0.20 onward. (#919) - Keep iTerm2 sessions connected to the local session daemon when their terminal identifiers contain native punctuation. (#936)
- Keep wrapped diff geometry aligned with rendered note-guide and add-note columns. (#858)
- Accept the documented
dimtone when routing line-highlight commands through the session daemon. (#937) - Recognize pacman/AUR-managed installations via
HUNK_INSTALL_SOURCE=pacmanand suppress automatic update notices for them. (#850) - Upgrade the OpenTUI runtime and reusable component peer requirement to 0.5.6. (#914)
- Exit cleanly when the terminal hosting a review disconnects instead of leaving an unreachable Hunk process behind. (#724)
- Restore first-frame and scroll responsiveness for large review streams. (#942)
- Fix washed-out or wrong-hue diff colors in ~25 bundled themes (gruvbox, rosé pine, tokyo-night, material, everforest, laserwave, night-owl, slack, and others) by re-harvesting every theme's diff accents from its real VS Code accent tokens. (#828)
- Stop the theme contrast guards from washing out diff accents: low-contrast sign colors now get the smallest readable adjustment instead of a fixed 45% blend, and word-level diff emphasis is derived to the renderer's own separation floor so the highlight you see is the one the theme defines. (#825)
- Refuse to start watch mode under Bun versions older than 1.3.14, which can deadlock filesystem watcher cleanup and leave Hunk unresponsive. (#902)