- Version: 1.1.0
- Author: seinfold
- License: MIT (see
LICENSE) - Credits: Fish shell, eza, tree, fzf, neofetch, zoxide, GNU screen, irssi, GitHub CLI, JetBrainsMono Nerd Font (Nerd Fonts project), Bun completion contributors
Shellfish tunes your Debian/Ubuntu terminal in minutes. One guided session installs the essentials, locks in high-contrast fonts/icons, and leaves your shell tidy (with backups).
| Component | Purpose |
|---|---|
| fish shell | Modern shell with custom modifications that you can tune to your likings |
| eza | Fast, colourful replacement for ls with Git status and icons |
| tree | Recursive directory tree view |
| fzf | Fuzzy finder for history, files, and command output |
| neofetch | System summary banner |
| zoxide | z and zi smart directory jumping |
| git | Version control CLI used by Shellfish helpers |
| curl | HTTP utility used during setup and scripting |
| wget | Alternate download utility for environments without curl |
| python3 | Runtime for gitget helper script |
| GNU screen | Terminal multiplexer keeping long-running sessions alive |
| irssi (optional) | IRC client you can run inside screen |
| gh (optional) | GitHub CLI for quick repo listing and SSH auth checks |
| unzip | Required to unpack font archives |
| JetBrainsMono Nerd Font Light | Installed automatically so Fish icons render correctly (keep your terminal on this font or another Nerd Font) |
Shellfish automatically installs JetBrainsMono Nerd Font Light. Switching your terminal to a non Nerd Font may hide file/folder graphic elements.
Quick reminders for the helpers Shellfish installs:
-
gg/gitget– list or clone GitHub repositories.gg --list # show repos as name.git gg my-repo.git # clone by name gg 3 # clone the third entry
-
scr/screens– easy managing of GNU screen sessions.scr NAME # opens screen NAME - use for game consoles / irc / development servers scr NAME log # opens screen NAME - use for game consoles / irc / development servers with logging under ~/Documents/logs screens # list all screens running that you can join with 'scr' or detach them with Ctrl-A → D
-
irc– shortcut to IRC session with Irssi on a network of your choosing.irc # opens irc server connection, use with screen to keep chats open that you can return to -
stay <command>– run a command detached from the terminal (nohupwrapper). -
ls/treelist– aliased toeza --iconsandtree -a -I '.git'for glyph-rich directory views.
git clone https://github.com/seinfold/shellfish.git ~/shellfish
cd ~/shellfish
chmod +x shellfish.sh
./shellfish.sh- GitHub support – guided prompts store your GitHub username for
gitget, optionally install a sample~/.ssh/config, and create~/.ssh/id_ed25519_github; typeabortanytime to skip and remember to rungh auth login. - irssi – choose whether to install the IRC client; if enabled you can pick a default network (ircnet/libera/oftc/efnet/custom).
- SSH shortcuts – guided prompts capture alias/server/user/port (type
abortto skip), update~/.ssh/config, and generate matching lowercase/uppercase Fish helpers in~/.config/fish/functions/ssh_shortcuts.fish.
Shellfish automatically replaces your ~/.bashrc - but don't worry it will create backups that you can revert to by just running the script again.
-
Add your GitHub key (if generated):
cat ~/.ssh/id_ed25519_github.pubPaste into GitHub → Settings → SSH and GPG keys.
-
Authenticate GitHub CLI (if enabled):
gh auth login --hostname github.com --git-protocol ssh --web
-
Open a fresh Fish terminal
-
Set a default GitHub user for gitget (if you skipped it during setup):
fish -c 'set -Ux GITGET_GITHUB_USER <username>'
- Bash path linkings to installed apt packages might have inconsistencies - Under repair, this basically means that you might need to re-install some tool via apt so that they work with Fish terminal
- Installer doesn't fully uninstall - if you run the installer again to revert changes, it will still leave all installed packages. Check /documents for User Guide that has single command to run to remove all installed packages, modify it so that you wont remove anything you already had
- Tweak the generated
~/.config/fish/functions/ssh_shortcuts.fishentries anytime or rerun the installer to add more shortcuts. - Bind
Ctrl+Sto the screen list:bind \cs 'screens\n'inconfig.fish.
Shellfish automatically backs up any file it changes with a timestamped .bak. When you rerun the installer it detects those backups and offers to restore the previous state before applying new settings.
ASCII art credit: based on classic “><((°>” fish tweaked for Shellfish.
