Fish shell configuration and setup scripts for macOS.
- Fish Shell Configuration - Custom aliases, functions, and settings
- Setup Script - Automated installation script for Fish shell, nvm, pnpm, and plugins
- Custom Functions - Helper functions for git, development, and system management
Run the setup script to install everything:
bash ./setupThis will:
- Install Fish shell (via Homebrew)
- Install Fisher plugin manager
- Install nvm.fish (Node version manager)
- Install Node.js v25.1.0
- Install pnpm (via Corepack)
- Install Fisher plugins (nvm.fish, done, bass, tide)
- Set Fish as your default shell
- Configure your Fish environment with all custom functions and aliases
-
Copy the config files to your Fish directory:
cp fish/config.fish ~/.config/fish/config.fish cp fish/functions/* ~/.config/fish/functions/ cp fish/conf.d/nvm-auto-setup.fish ~/.config/fish/conf.d/
-
Install Fisher:
curl -sL https://raw.githubusercontent.com/jorgebucaran/fisher/main/functions/fisher.fish | source && fisher install jorgebucaran/fisher
-
Install plugins:
fisher install jorgebucaran/nvm.fish fisher install franciscolourenco/done fisher install edc/bass fisher install IlanCosman/tide@v6
-
Install Node.js v25.1.0:
nvm install v25.1.0 nvm use v25.1.0 nvm use default
reload- Reload Fish configurationeditfish- Open Fish config in editorhelpme- Show all custom commandsmkcd <dir>- Create directory and cd into itextract <file>- Extract various archive formatsff <name>- Find files by namefd <name>- Find directories by nameduh- Show disk usage of current directoryserve [port]- Start HTTP server (default: 8000)note [text]- Quick note takinggit-cred-clear- Clear GitHub credentials from keychaingit-cred-update <user> <token>- Update GitHub credentialsgit-cred-view- View GitHub username
Type these and press space to auto-expand:
gst→git statusgco→git checkoutgaa→git add --allgcm→git commit -mgps→git pushgpl→git pullgd→git diffgl→git log --oneline --graph --decorate --all
ll,la,l- Enhanced ls commands..,...,....- Quick directory navigationgs,ga,gc,gp,gl,gd,gb,gco,gst,gsp- Git shortcutsshowfiles/hidefiles- Toggle hidden files in Findercleanup- Remove .DS_Store filesports- Show listening portsmyip- Show public IPweather- Show weatherbeep- System beep sound
my-shell/
├── fish/
│ ├── config.fish # Main Fish configuration
│ ├── init-shell # Setup script (executable)
│ ├── functions/
│ │ ├── reload.fish # Reload config function
│ │ ├── editfish.fish # Edit config function
│ │ ├── mkcd.fish # Create and cd function
│ │ ├── extract.fish # Extract archives function
│ │ ├── ff.fish # Find files function
│ │ ├── fd.fish # Find directories function
│ │ ├── grep.fish # Colored grep function
│ │ ├── duh.fish # Disk usage function
│ │ ├── serve.fish # HTTP server function
│ │ ├── note.fish # Note taking function
│ │ ├── git-cred-clear.fish # Clear git credentials
│ │ ├── git-cred-update.fish # Update git credentials
│ │ ├── git-cred-view.fish # View git credentials
│ │ └── helpme.fish # Help function
│ └── conf.d/
│ └── nvm-auto-setup.fish # Auto-install Node.js v25.1.0
├── .gitignore
└── README.md
- macOS
- Homebrew (for installing Fish shell)
- Git
The setup script installs and configures Node.js v25.1.0 by default. This version is automatically activated on shell startup via the nvm-auto-setup.fish configuration file.
To use a different version:
nvm install <version>
nvm use <version>
nvm use defaultApache-2.0