Getting Started
notMyShell (NMSh) is a terminal frontend that operates over a persistent, real shell session (zsh, Bash, or Fish). Instead of replacing the shell or running commands as isolated subprocesses, NMSh orchestrates a hidden pseudo-terminal (PTY) running that shell.
Installation
Section titled “Installation”Homebrew (macOS)
Section titled “Homebrew (macOS)”Homebrew is the recommended install method on macOS.
brew install raiseCatError/tap/nmshnmshTo update, use brew upgrade raiseCatError/tap/nmsh.
Build from source (macOS, Linux, WSL 2)
Section titled “Build from source (macOS, Linux, WSL 2)”You need:
- Node.js 22 or newer
- zsh (default), Bash 4.4+, or Fish
git clone https://github.com/raiseCatError/notMyShell.gitcd notMyShellnpm installnpm run buildnpm linknmshNote on GUI terminals: To start NMSh from a GUI terminal like Ghostty or Zed, use absolute paths so macOS
PATHdifferences cannot break startup:command = direct:/absolute/path/to/node /absolute/path/to/nmsh. Never setnmshas your system/login shell withchsh.
First Launch
Section titled “First Launch”When you first run nmsh, you will be greeted by Setup Cat. Setup Cat guides you through the initial customization, including choosing a layout (Bottom, Top, or Flow), a prompt style, and a theme.
If you skip setup or want to change it later, type /setup in the composer.
Switching Shells
Section titled “Switching Shells”NMSh uses a shared ShellAdapter for zsh, Bash, and Fish. To switch the shell of your current session, type:
/shellTo set the default shell for new sessions, go to /settings and navigate to the Sessions tab.