Changelog

Notable changes in the release history:

0.7.3 - 2026-09-05

  • Two- and three-pane tabs in one keystroke: the new SpawnTabWithColumns action opens a tab that is already split into equal columns, instead of opening a tab and then splitting it. SUPER+SHIFT+Y opens two panes, SUPER+SHIFT+U opens three; both are in the command palette and the Shell menu. The columns come out the same width, inherit the tab's working directory, and focus lands on the leftmost one.
  • Configuration sync on upgrade: the first launch after an update merges the settings, tasks and commands the new build ships into the TOML files already presend (and possibly edited), so a new option is there to change without a manual step. Your comments, blank lines and key order survive, a value you set is never touched, anything you commented out stays off, and a file that changes is copied to <name>.bak first.

0.7.0 - 2026-09-04 - Folding Panes

  • Fold a pane to a strip: a pane can collapse to a thin band that shows only its title, and unfold back to exactly the place and size it had. SUPER+E (expand) and SUPER+SHIFT+E (undo expand) toggle between folded → normal → maximized in either direction
    • A strip is a click target that selects its pane and a double-click target that unfolds it. Folding the focused pane hands focus to its closest unfolded sibling, and the program inside a folded pane keeps its size until the pane comes back.
    • Fold state survives session restore and a multiplexer reconnect. nash cli fold-pane folds, unfolds or toggles from a script, and the new folded_pane_* options set the strip's thickness, font and colors.
  • Persist Explicit tab names: a renamed tab keeps its name after restart/restore.
  • The nash config sync command: merges the defaults this build ships into your own TOML files, with --dry-run to report the drift, --all for every bundled file, and a .bak copy of anything it changes. A configuration directory made of symlinks into a dotfiles repository keeps its links.
  • The multiplexer server left the application bundle: Nash installs nash-mux-server into its own support directory and starts it from there, so a running server no longer executes from a bundle and an update doesn't have to stop the server.
  • Documentation pass: corrected the Lua reference defaults, the task syntax spec, the multiplexer server install notes and the site navigation.

0.6.0 - 2026-08-29

  • The nash update command: one command reads the release feed, picks the corect architecture artifact, verifies it and installs it over the running build.
    • --check reports whether a release exists and exits 1 when one does, so a script can branch on it. --dry-run runs every check and writes nothing, --yes skips the prompt, and --restart closes the windows and starts the new build, which leaves the session snapshot for the restore dialog to offer back.
    • A download is checked against the SHA-256 the release publishes, and on macOS against codesign and spctl. A signed install accepts only a download that verifies under the same Developer ID team.
    • An install that Homebrew, apt, dnf, pacman, Flatpak, Snap, winget, Scoop or Chocolatey owns is not replaced; Nash defers and reports the command that updates it instead (best effort).

0.5.8 - 2026-08-28

  • Agent status inside the pane: coding agent activity now also draws as a badge in the corner of the pane that raised it, so a window of splits says which split is working. It repeats the tab's glyph for every state, and a turn that finished or failed also prints the time it ended and stays up until you type in that pane. The new pane_agent_status_* options control the position, size, colors and timestamp format.
  • Hook installation: nash agent-status install registers the Claude Code and Antigravity (agy) hooks for you, instead of transcribing JSON into two settings files by hand. It takes --scope project, --dry-run, and an agent name to do one of them; uninstall takes the entries back out and show reports what is registered where. Both writes merge, so every other key in those files keeps its value.
  • Fixes: an agent stopped by a usage limit or waiting on an MCP elicitation now shows the attention circle rather than looking idle. A Claude Code compaction no longer clears an active tab, a Stop event ends the turn even with background work pending, and interrupting a tool call clears the tab instead of leaving it spinning.

0.5.7 - 2026-08-25

  • Matrix Green theme: a phosphor-CRT theme joins the bundled themes and appears in the theme picker.
  • A theme can set the terminal text color: themes.toml gains a foreground key. Before this change, every theme printed plain shell output in the built-in gray, which looked wrong on a monochrome theme. The foreground option in the [ui] table of nash.toml overrides the theme.
  • Fix: an application update discarded the saved session snapshot, so the restore dialog came up empty and the window layout was lost. Nash now keeps the snapshot in ~/.config/nash/state/, which survives bundle updates.

0.5.6 - 2026-08-24

  • Multiplexer sessions: the new nash mux command manages a headless server that owns your panes. The panes outlive the window, a quit, and an application update. The [mux] table in nash.toml turns the mode on, and it ships disabled.
    • The command palette gains three session commands: Switch Session, New Session, and Rename Session.
    • nash mux update installs the server binary, so you can upgrade the server apart from the application.
  • Zoom a pane with SUPER+E: pane zoom now has a key binding.
  • Maximized pane cues: a maximized pane shows a "Maximized - N hidden" badge and keeps a triangle marker in its corner. The new maximized_pane_indicator and maximized_pane_badge_duration options control both cues.
  • Paused agent state: a pane that reports OSC 9;4;4 draws a solid orange circle. A tab that waits for your answer no longer looks like a tab that is busy.
  • Fixes: an interrupted agent turn left its tab spinning. A multiplexer client pane kept a stale progress mirror after Nash cleared the progress.

0.5.3 - 2026-08-20

  • The nash agent-status command: one Nash subcommand replaces the Python hook adapters for Claude Code and Antigravity (agy). The agy adapter accepts --tmux-passthru, so an agent that runs inside tmux reports its status too.
  • macOS: the application bundle adds its executable directory to the PATH of every process it starts. nash and the other bundled tools now run in a pane without a shell profile edit. The directory goes last, so a copy you installed yourself still wins.
  • Stale progress recovery: Nash records the foreground process group of a pane when progress starts, and clears the progress when that group goes away. An agent that crashed or was killed no longer leaves its tab reporting work forever.
  • Fix: the Claude Code adapter turned every notification into a solid progress circle, which replaced the unread completion glyph. The adapter now reacts only to a notification that Claude Code is blocked on you.

0.5.0 - 2026-08-17

  • Coding agent status in tabs: Nash reads the ConEmu OSC 9;4 progress sequences and shows coding agent activity in the tab title. Nash aggregates the activity from every pane, so an agent still reports work from a non-selected split, a zoomed tab, an inactive tab, or a pane behind an overlay.
    • Finished work and failed work get their own glyphs. A completed job never looks like a job that still runs at 100 percent.
    • An unread outcome stays on the tab until user selects that pane or types in it.
    • A Claude Code hook adapter ships in the application packages.

0.4.0 - 2026-08-15

  • Move a tab into its own window: a new Move Tab to New Window command
  • Proportional pane resize: when screen density is changed, each pane is adjusted accordingly
  • Pane highlight fixes and improvements
  • Added about dialog
  • Expose line height setting in nash.toml
  • New task target: tasks accept target = "new_tab_after_current", which opens the task in a tab directly right of the active tab.

0.3.0 - 2026-08-03

  • Tab search across windows and workspaces: the command SUPER+SHIFT+A opens a fuzzy-searchable list of every tab in every window and workspace
  • Tab styling moved into the core: Nash renders custom tab colors natively and respects the active, inactive, and hover states. Nash picks the text color by contrast ratio. The old Lua tab configuration is no longer needed.
  • Smart tab titles: tabs show "folder (process)" titles that Nash composes natively. The new smart_tab_titles and tab_title_ignored_processes options control the behavior.
  • Safer pane cleanup: Kills running task and reclaims memory. Nash gives a closed pane a 300 ms grace period to exit before it forces a kill, so the shell can save its history.
    • The new persistent_process_names option lists tmux, screen, and similar persistent sessions to keep alive
  • Command palette rework: the palette and the new pickers share one list implementation. A palette command that opens a modal no longer closes that modal immediately.
  • Window focus fixes: focusing a window now raises it on macOS and X11. Custom tab colors now respect the configured inactive background color.

0.2.0 - 2026-07-23

  • Config reload feedback and pane-navigation defaults: successful manual and file-change configuration reloads now show an in-app confirmation; default directional pane-navigation mappings were streamlined.
  • Open a new tab beside the current one: Cmd+Shift+T creates a tab immediately to the right of the active tab. This command is configurable and available in the command palette.
  • Stability and platform fixes: improved Windows IME and process handling, fixed several Wayland clipboard/scaling/drag-and-drop issues, fixed tmux control-mode Unicode input, Kitty ESC encoding, inline-image crash cases, and regex-search hangs; QuickSelect now hides non-matching labels.
  • Simpler close confirmations: issuing the same pane or tab close command again confirms the already-open close prompt.
  • Scalable tab titles: tab-bar text now follows terminal font-size adjustments.
  • Pane-management commands: added configurable commands for rotating pane layouts and moving the active pane into a new tab or window.
  • Session-save notifications: session saves now use a polished in-app toast instead of an OS-wide notification.
  • Restore saved sessions through the UI: a new Session Restore dialog lets users browse saved windows and tabs, restore an entire window or selected tab, and recover split layouts, tab appearance, Zen state, active selections, working directories, and running commands.
  • Persistent session state: Nash now saves and restores windows, tabs, panes, split layouts, geometry, pane working directories, and command state across restarts; state is saved safely during normal exit and termination signals.
  • Improved Zen Mode (UX): Zen Mode is now runtime state that persists with sessions and can be configured to apply globally or per tab, replacing the old startup-only setting.
  • Better tab renaming (UX): tab renaming now uses a dedicated editable dialog, preserves existing names for editing, and retains configured tab-number prefixes after a tab is renamed.
  • Shell integration documentation: added documentation for NASH_PROG command tracking and shell integration.

[0.1.6] - 2026-05-13

  • Added support for local tasks via .nash.toml files
  • Added automatic support for VS Code's tasks.json format.
    • Nash automatically detects and imports tasks from .vscode/tasks.json files in your project.
  • Improved command palette sizing and layout

[0.1.4] - 2026-05-10

  • Initial release of nash.
  • Lightning-fast Rust-based execution engine.
  • Basic command palette functionality.