Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 

Repository files navigation

I-Shell

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.

What you get

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.

Requirements

  • macOS with Homebrew, or Debian/Ubuntu/Kali with apt
  • git and make (only if you use bash - needed to build ble.sh)
  • curl (only if the Starship or Ghostty fallback installers run)

Usage

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 usage

The installer will:

  1. Detect your shell and package manager.
  2. Install the plugins/tools listed above.
  3. Append source lines to your shell rc file (only if not already present).
  4. Ask whether to install Ghostty and, if yes, walk you through visual customization.
  5. Reload your shell so the new features are live immediately.

The uninstaller will:

  1. Strip the source / eval lines it added (a timestamped backup is saved as <rcfile>.i-shell-bak.<epoch> first).
  2. Ask before uninstalling each package group (zsh-autosuggestions, zsh-syntax-highlighting, zsh-completions, bash-completion, fzf, fish).
  3. Ask before deleting ~/.local/share/blesh (the ble.sh install).
  4. Ask before removing Starship (whether from your package manager or the community installer).
  5. 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).

Keyboard shortcuts

The whole point of installing this stuff is these shortcuts.

fzf - fuzzy pickers (all shells)

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.

Autosuggestions - the greyed-out ghost text

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)

Completions

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.

Line editing (built-in but worth remembering)

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

What it edits

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.

Notes

  • 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 .deb installer 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 compaudit reports insecure zsh directories, the script fixes their permissions automatically.

License

MIT

About

One script to add IDE-like intellisense - autosuggestions, syntax highlighting, fuzzy search, smart completions - to zsh, bash, or fish. macOS + Linux. Optional Ghostty and Starship setup.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages