Skip to content

Hunk 0.23

September 30, 2026 · 1 release

Hunk 0.23 brings diff search, bundled GitHub review, an inline status line, and a default theme that follows your terminal, while making daemon version mismatches easier to resolve.

New to Hunk? Use the default installer. It verifies downloads when release checksums and local tooling are available, and warns otherwise:

Terminal window
curl -fsSL https://hunk.dev/install.sh | sh

Already on Hunk 0.20 or newer with the default install script, npm, or Homebrew? Move to this release with Hunk's canonical update command:

Terminal window
hunk update

On 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.

September 30, 2026

  • Bundle hunk gh for reviewing GitHub pull requests, commits, and comparisons without a separate extension or the GitHub CLI, with exact-id controls through [extensions] disabled, --disable-extension, and --enable-extension. (#1129)
  • / now searches diff content from a less-style prompt on the status row and n / N step through matches with in-diff marks; the file filter stays on Tab and in the menu ("hunk.review.focusFilter" = "/" restores it), note stepping ships unbound, and extension API 27 adds ctx.selection.files. (#1096)
  • Make a session daemon left over from a previous Hunk build visible and replaceable. A window the daemon refuses now shows a sticky status-bar notice naming which side is older and what to do: run hunk daemon restart when the daemon is the older build, or relaunch the window when it is the newer one. A window whose registration the daemon rejects after the handshake gets its own notice instead of silently reconnecting. hunk session commands fail with a structured daemon-build-mismatch error that says which side is older, counts the attached windows, and recommends an action; under --json it is returned in-band with the build details. New hunk daemon status reports the daemon's version, uptime, and attached windows, and new hunk daemon restart replaces the daemon with one from the current build after confirming how many windows that disconnects. Under HUNK_DEBUG=1 the daemon logs which parser rejected a registration. (#1099)
  • Let file-view extensions declare complete code documents and map symbolic spans into them for host-owned, theme-aware syntax highlighting with bounded worker, cache, and plain-fallback behavior. (#1053)
  • The bottom status row is now a host-owned status line with real inline inputs for the file filter and hunk log search, and extension API 26 lets extensions set status items (ctx.statusLine) and ask for a line of text inline (ctx.prompts.line()). (#1095)
  • Add a terminal theme that follows the terminal's own foreground, background, and ANSI palette for diffs, chrome, and syntax highlighting, and make it the default theme. Hunk re-reads the terminal's colors and repaints when the terminal reports a color-scheme change or on SIGWINCH, so switching terminal themes restyles a running Hunk. (#1128)
  • Let reviewers configure a fixed number of rows per mouse-wheel event for faster large-diff scrolling. (#853)
  • Keep the focused file filter and its current text open across content reloads. (#1095)
  • npm installs now fall back to the bundled JavaScript runtime when the prebuilt binary cannot run on the machine, report signal exits as 128 + signal, and pick the native arm64 build under Rosetta. (#1099)
  • Fix hunk patch (and other review flows) under the Nix flake package by installing the hunkdiff alias next to hunk, mirroring the npm package's dual binaries. Without it the review flow fails with "unable to execute '…/bin/hunkdiff'". (#1108)
  • Truncate long status prompt lead-ins so typed input stays visible beside the keyboard-mode badge on narrow terminals. (#1095)
  • Opening the help dialog or menu for the first time no longer waits ~300 ms. (#1079)
  • Large reviews no longer print a MaxListenersExceededWarning over the terminal UI when more than ten files are on screen. (#1111)
  • Preserve surrounding whitespace in content search queries when matching, repeating, and reopening the prompt. (#1096)
  • Highlight every non-overlapping search occurrence on a matching line while keeping only the first landed match current. (#1096)
  • Resolve bundled skills from the nearest matching directory, preferring hunkdiff/skills, then skills, then node_modules/hunkdiff/skills within that directory to avoid unrelated ancestor and nested-package copies. (#1116)
  • Reduce startup input stalls by loading syntax-highlighting WASM without synchronous base64 decoding. (#1078)
  • Pass the selected line to Zed (zed and zeditor) when opening a file with e, matching the existing Helix support. (#1073)

Older: Hunk 0.22 · All releases