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

Select

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.

More information

  • Nushell — shell language and ecosystem docs
  • TermSurf — host that runs shell panes