Shell
A single-binary shell that ships with TermSurf—Nushell by default, zsh when you need traditional muscle memory.
What you can do
Use a modern shell in the same install as TermSurf. Run structured data workflows and interactive work without a large plugin download as the default path.
The shell is derived from Shannon / Nushell-family tooling. It ships with TermSurf so you get a ready host and a ready shell together. The traditional escape hatch is zsh (macOS’s default login shell)—not bash.
Nushell and zsh
ahsh starts in Nushell (nu). That is the default interactive mode for structured pipelines and daily work.
On startup it also boots a login-style zsh worker. It injects your real shell environment—typically .zprofile / .zshrc (PATH, Homebrew, tools you already configured)—into the Nushell session. After first download, your Mac’s PATH should already work.
Switch between Nushell and zsh with the shell’s mode toggle (Shift+Tab in the usual binding). Environment and working directory stay synced. There is no bash mode on the product path.
Installation
Install Astrohacker with the Homebrew cask. Shell is included. There is no separate shell formula. Command: ahsh.
Install Astrohacker TermSurf
Homebrew cask · Apple silicon macOS
brewtapastrohackerlabs/astrohacker
brewtrustastrohackerlabs/astrohacker
brewinstall--caskastrohacker
Then open Astrohacker TermSurf.app from Applications.
After install, check the version: ahsh --version
Configuration
ahsh is Nushell-based. It loads the usual Nushell startup files from the resolved Nushell config directory (via Nushell’s nu_config_dir()):
env.nu— environment and path setup (read before the main config)config.nu— shell configuration, keybindings, and interactive settings
Default location on macOS/Linux with an XDG-style layout: $XDG_CONFIG_HOME/nushell/ (typically ~/.config/nushell/). If XDG_CONFIG_HOME is set, ahsh expects the Nushell config path to match that base. An empty XDG dir with older config elsewhere can produce a warning.
Override files on the CLI with Nushell-style --config / --env-config when needed. TermSurf-owned browser profiles remain under astrohacker/terminal/. See TermSurf configuration.