Skip to content

CodeBotD/Nitro-Shell

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

20 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

⚑ NitroShell for macOS ⚑

A smarter, cooler, voice-activated terminal powered by CodeBotD (aka Mitri 😎)
Fuzzy search, typo fixing, ASCII art banners, and πŸ”Š talking shell powers!


⚠️ Requirements (macOS only)

  • zsh shell (default on macOS)
  • fzf for fuzzy menus
    β†’ Install with: brew install fzf
  • python3 for typo detection
  • (Optional) oh-my-zsh for themes/plugins

πŸ› οΈ Features

  • 🎀 Voice-activated greeting with say
  • πŸ” Fuzzy command launcher (fzf)
  • 🧠 Smart typo detection (Did you mean echo?)
  • 🎨 Orange + white ASCII banner
  • ⚑ Quick access with nitro or cmds
  • πŸ§ͺ Works in your normal terminal β€” no new apps!

πŸš€ Install NitroShell (macOS Only)

git clone https://github.com/CodeBotD/Nitro-Shell.git ~/.nitroshell
chmod +x ~/.nitroshell/shell.sh

πŸ”§ Setup .zshrc

Open your ZSH config:

nano ~/.zshrc

Paste this at the bottom:

# NITRO SHELL BY CODEBOTD

# NitroShell Boosters
source ~/.fzf.zsh
source ~/.zsh/zsh-autosuggestions/zsh-autosuggestions.zsh
source ~/.zsh/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh

alias nitro="~/.nitroshell/shell.sh"
alias cmds="say 'NitroShell activated' && nitro"

command_not_found_handler() {
  local cmd="$1"
  shift   # remove the wrong command, keep the rest (args)

  echo "zsh: command not found: $cmd"
  echo "NitroShell: Thinking... πŸ€”"

  # Collect all commands in PATH
  local all_cmds
  all_cmds=$(echo "$PATH" | tr ':' '\n' | xargs -I {} find {} -maxdepth 1 -type f -perm -111 2>/dev/null | xargs -n 1 basename | sort -u)

  # Use Python to guess close matches
  local suggestions
  suggestions=$(python3 - <<EOF
import difflib
commands = """$all_cmds""".split()
matches = difflib.get_close_matches("$cmd", commands, n=5, cutoff=0.5)
print("\n".join(matches))
EOF
)

  if [[ -z "$suggestions" ]]; then
    echo "NitroShell: I couldn't guess... πŸ₯²"
    return 127
  fi

  # Put into zsh array
  local -a suggestion_array
  suggestion_array=("${(@f)suggestions}")

  echo "NitroShell: Did you mean one of these?"
  local i=1
  for suggestion in "${suggestion_array[@]}"; do
    echo "  $i) $suggestion"
    ((i++))
  done
  echo "  0) Cancel"

  # Ask
  echo -n "Select number: "
  read choice

  # Make sure it's only digits
  if ! [[ "$choice" =~ '^[0-9]+$' ]]; then
    echo "⚠️ Please type just the number (like 1, 2, 3)."
    return 1
  fi

  if [[ "$choice" -eq 0 ]]; then
    echo "❌ Cancelled."
    return 1
  fi

  # zsh arrays are 1-indexed so this is safe
  local selected="${suggestion_array[$choice]}"

  if [[ -n "$selected" ]]; then
    echo "🧠 NitroShell is running: $selected $@"
    "$selected" "$@"
    return $?
  else
    echo "Invalid choice."
    return 127
  fi
}


` Save with CTRL+O, then press Enter

` Exit with CTRL+X

` Reload your shell:

source ~/.zshrc

βœ… Use NitroShell


    `🧨 Start NitroShell manually:

nitro

    πŸ—£οΈ Activate with voice:

cmds (not working)

    (This alias is set but may not work depending on your setup)

🧠 Try a typo:

ecoh

You’ll see:

zsh: command not found: ecoh NitroShell: Did you mean 'echo'? [Y/n]

πŸ‘‘ Made by Mitri (aka CodeBotD)

🧠 I’m Dimitrius Farida β€” a kid coder with big energy!
I build awesome tech like NitroShell, Roblox games, Minecraft mods, and more!

🌐 Check out more at github.com/CodeBotD

🧠 Wanna Contribute?

Found a bug? Got a πŸ”₯ idea like rainbow banners or a terminal minigame?

🎯 Fork the repo, make your changes, and send a PR!
Together we’ll make NitroShell smarter, cooler, and louder! πŸš€

🌟 Future Ideas

nitroboost β†’ Fancy shell animations πŸ’₯

fuel β†’ Show battery charge status πŸ”‹

ascii β†’ Random quotes or banners 🎨

historyboost β†’ Fuzzy search your past commands πŸ”

game β†’ A terminal game like Fishy Pong 

About

A custom Shell For MacOS with custom commands such as "Nitro"

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages