Update Nash Without Leaving Your Terminal
Updating a terminal is a little awkward. The app you want to replace is the app you are typing into. Most updaters solve that with a dialog, a relaunch, and a hope that nothing is lost.
Nash solves it with a command: nash update. It checks for a release,
downloads the right build for your machine, verifies it, and installs it over
the one you are running. On macOS app bundles and Linux AppImages, your windows
stay open until you choose to restart. Windows installer updates close running
Nash processes, so save your work first.
One Command, One Decision
nash update --check # is there a newer release?
nash update --dry-run # run every check, write nothing
nash update # install itBefore it asks anything, Nash tells you what it found: your version, how Nash is installed, the latest release, the file it picked for your processor, and the checks it will run. Then it asks one question, and you answer it.
Verified Before It Replaces Anything
An updater that installs a file it cannot trust is worse than no updater. Nash checks the download before it touches your install:
- HTTPS all the way. A redirect to plain HTTP is refused.
- Complete. The size must match the release feed, so a truncated download never installs.
- The right bytes. When a release publishes a SHA-256 digest, Nash compares it with the file.
- The right publisher, on macOS. The download must be signed by the same Developer ID team as the Nash you already have, and Gatekeeper must accept it.
If a check fails, nothing is installed. If Nash cannot write to the folder that holds your install, it tells you before the download, not after. On macOS the swap is a rename, and a failure puts your old bundle back.
It Knows What It Does Not Own
If Homebrew, apt, dnf, pacman, Flatpak, Snap, winget, Scoop, or Chocolatey
installed Nash, replacing its files behind its back would corrupt that tool's
records. So Nash does not. It prints the command that updates that install, for
example brew upgrade --cask nash, and stops. nash update --check still tells
you that a release exists.
Your Layout Survives the Restart
On macOS app bundles and Linux AppImages, nash update does not close your
windows by default. It installs the new build and tells you that a restart is
needed. Nash saves your window layout when it exits, so the
session restore dialog offers your
tabs and panes back on the next start.
On those installs, want the restart done for you? Run this from another terminal:
nash update --restartNash asks each window to exit, which lets it save the session, then starts the new build. It refuses to run inside a Nash pane, because closing the windows would close the pane that runs the command.
Windows installer updates close running Nash processes themselves, even without
--restart. Save your work before starting the update.
Built for Scripts
--yes skips the prompt, --check reports without installing, and --dry-run
shows what would happen. The guide has a ready-made snippet for a scheduled
check. Two palette entries, Check for Updates and Install Update, run
the same commands in a new tab.
Nash also checks on its own about once a day and shows a notice that names
nash update. That background check never downloads or installs anything.
You can turn it off in custom.lua.
New Settings Arrive Safely Too
A new release often adds settings, tasks, or commands. The first time a new
build starts, Nash merges them into your TOML files, adding only what is
missing. Your values, comments, and key order stay as you wrote them, and Nash
keeps a .bak copy of any file it changes. Comment out a default to keep it
off. See Configuration Sync.
There Is a Whole Command Behind It
nash update is one of several subcommands. nash cli controls a running Nash,
nash mux manages multiplexer sessions, nash agent-status connects your
coding agent, and nash shell-completion prints completions for Bash, Zsh, and
Fish. The nash Command is a tour.
Try It
You need Nash 0.6.0 or newer. If you run an older build, download the latest from the download page once.
nash update --check
nash updateThe update guide covers every option, what each platform does, and what to do when a check fails.
A terminal should be easy to keep current without risking the work in it. Nash tries to make that true.
-Nash Team