I-Shell (short for Intelligent Shell) is a single script that upgrades your terminal with modern IDE-like features - inline autosuggestions, syntax highlighting, fuzzy history search, smart completions - for zsh, bash, or fish, on macOS (Homebrew) and Debian/Ubuntu/Kali (apt). Optionally installs and themes Ghostty, a GPU-accelerated terminal, and wires up a git-aware Starship prompt.
Safe to re-run - every step checks before installing, appending, or removing.
| Feature | zsh | bash | fish |
|---|---|---|---|
| Inline autosuggestions (fish-style ghost text) | zsh-autosuggestions |
ble.sh |
built-in |
| Syntax highlighting as you type | zsh-syntax-highlighting |
ble.sh |
built-in |
Fuzzy history + file search (Ctrl-R, Ctrl-T) |
fzf |
fzf |
fzf |
| Rich tab completions | zsh-completions + compinit |
bash-completion |
built-in |
Optional add-ons:
- Ghostty terminal with a picker for theme (Catppuccin Mocha, Dracula, Nord, Gruvbox Dark, GitHub Dark), font family/size, and background transparency + blur.
- Starship prompt with git branch/status indicators.
- macOS with Homebrew, or Debian/Ubuntu/Kali with
apt gitandmake(only if you use bash - needed to buildble.sh)curl(only if the Starship or Ghostty fallback installers run)
One script handles both install and uninstall:
git clone https://github.com/nightowl0077/I-Shell.git
cd I-Shell
chmod +x i-shell.sh
# --- install ---
./i-shell.sh # install for your current shell
./i-shell.sh install # same as above
./i-shell.sh install zsh # install for a specific shell (zsh|bash|fish)
# --- uninstall ---
./i-shell.sh uninstall # uninstall for your current shell
./i-shell.sh uninstall bash # uninstall for a specific shell
./i-shell.sh --help # print usageThe installer will:
- Detect your shell and package manager.
- Install the plugins/tools listed above.
- Append
sourcelines to your shell rc file (only if not already present). - Ask whether to install Ghostty and, if yes, walk you through visual customization.
- Reload your shell so the new features are live immediately.
The uninstaller will:
- Strip the
source/evallines it added (a timestamped backup is saved as<rcfile>.i-shell-bak.<epoch>first). - Ask before uninstalling each package group (
zsh-autosuggestions,zsh-syntax-highlighting,zsh-completions,bash-completion,fzf,fish). - Ask before deleting
~/.local/share/blesh(the ble.sh install). - Ask before removing Starship (whether from your package manager or the community installer).
- Ask before removing Ghostty; if you previously had a Ghostty config, offer to restore it from the newest
~/.config/ghostty/config.bak.*backup.
Every uninstall step is opt-in, so you can drop things selectively (e.g. keep fzf but remove everything else).
The whole point of installing this stuff is these shortcuts.
| Shortcut | What it does |
|---|---|
Ctrl-R |
Fuzzy-search your command history. Type any substring, hit Enter to run. |
Ctrl-T |
Fuzzy-search files under the current directory and paste the picked path into your command line. |
Alt-C (macOS: Esc-C or Option-C) |
Fuzzy-search subdirectories and cd into the one you pick. |
Inside any fzf picker: type to filter, ↑/↓ to move, Enter to accept, Esc to cancel, Tab to multi-select.
Applies to zsh (zsh-autosuggestions), bash (ble.sh), and fish (built-in). Suggestions come from your history and directory context.
| Shortcut | What it does |
|---|---|
→ (right arrow, cursor at end of line) |
Accept the whole suggestion |
Ctrl-E |
Accept and jump to end of line |
Alt-F / Esc-F |
Accept just the next word of the suggestion |
Ctrl-U |
Clear the current line (dismisses the suggestion) |
| Shortcut | What it does |
|---|---|
Tab |
Trigger completion or cycle through matches |
Tab Tab (zsh) |
Show the full menu of matches |
Shift-Tab (zsh menu) |
Cycle backwards through matches |
Tab now completes flags, subcommands, git branches, remote hosts, package names, and more - driven by zsh-completions / bash-completion / fish's built-in system.
| Shortcut | What it does |
|---|---|
Ctrl-A / Ctrl-E |
Jump to start / end of line |
Alt-B / Alt-F |
Move back / forward one word |
Ctrl-W |
Delete previous word |
Ctrl-U / Ctrl-K |
Delete to start / end of line |
Ctrl-L |
Clear the screen |
| Shell | File touched |
|---|---|
| zsh | ~/.zshrc |
| bash | ~/.bashrc (ble.sh init is prepended, since it must load early) |
| fish | ~/.config/fish/config.fish |
| Ghostty | ~/.config/ghostty/config (existing config is backed up to config.bak.<timestamp>) |
Every append is guarded by a marker check, so re-running the script is idempotent.
- bash has no first-class equivalent to
zsh-autosuggestions, so the script installs ble.sh, which provides both autosuggestions and syntax highlighting. First install takes a minute (git clone +make). - fish ships with autosuggestions and highlighting out of the box, so its setup is the shortest.
- Ghostty on Debian/Ubuntu/Kali: apt only carries Ghostty on Ubuntu 26.04+. On older releases the script offers to download the community
.debinstaller from mkasberg/ghostty-ubuntu to a temp file so you can inspect it before running. - Same pattern for the Starship fallback installer - it's downloaded to a temp file, then run only after you confirm. No blind
curl | bash. - If
compauditreports insecure zsh directories, the script fixes their permissions automatically.
MIT