ShellX is designed to work with Bash 4.0+, Zsh 4.0+, and Fish 3.2+. Bash and Zsh are natively supported. Fish Shell is supported via a dedicated shellx.fish bootstrap file.
brew install bashapt install zsh or equivalentshellx.fish — do not source shellx.sh directlybass is installed:
GOPATH, JAVA_HOME, …) propagate into the Fish sessionshellx CLI command + PATH setup onlybrew install fish (macOS) or apt install fish (Debian/Ubuntu)Add SHELLX_HOME and source shellx.fish in ~/.config/fish/config.fish:
set -gx SHELLX_HOME /path/to/.shellx
source $SHELLX_HOME/shellx.fish
(Optional) Install bass for full environment propagation:
# With Fisher
fisher install edc/bass
To silence the basic-mode notice without installing bass:
set -gx SHELLX_FISH_QUIET 1
ShellX uses several advanced shell features that are only available in Bash 4+ and Zsh:
declare -A my_arraytypeset -A my_arrayfor item in "${array[@]}"; do ...for item in "${array[@]}"; do ...${var:offset:length}, ${var//pattern/replacement}, etc.echo $SHELL
# or
echo $0
# Bash
bash --version
# Zsh
zsh --version
# Fish
fish --version
When ShellX loads, it will check your shell automatically:
# If using a non-compatible shell, you'll see:
# ShellX: WARNING - This shell may not be fully compatible with ShellX.
# ShellX: Requires Bash 4+ or Zsh for full functionality.
# ShellX: Current shell: /bin/sh
# If Fish is detected on a wrong entrypoint, you'll see:
# ShellX: Fish Shell detected. Source shellx.fish instead of shellx.sh.
# ShellX: Add to ~/.config/fish/config.fish:
# ShellX: source /path/to/.shellx/shellx.fish
shellx.fish)shellx.fish)# Install Bash 4+ on macOS
brew install bash
# Add to ~/.zshrc or ~/.bashrc
export SHELL=$(which bash) # if using Bash
If you’re currently using an unsupported shell:
chsh -s /bin/zsh # Set default shell to Zsh
# or
chsh -s /usr/local/bin/bash # Set default shell to Bash (Homebrew)
# or
chsh -s /usr/local/bin/fish # Set default shell to Fish (Homebrew)
Restart your terminal for changes to take effect
source /path/to/shellx.sh to .bashrcsource /path/to/shellx.sh to .zshrcsource /path/to/shellx.fish to ~/.config/fish/config.fishbash --version or zsh --versionls -la ~/.shellx.plugins.d/shellx debug enabled and check outputShellX may consider alternative data storage mechanisms (YAML, JSON files) to reduce array dependency, but this would require significant refactoring and is not planned in the near term.