I feel that customizing your terminal is like setting up your desk. And when you share your screen with a colleague or present your work, I guess it becomes an opportunity to come off as a cool person :P Here are some of the CLI tools and functions that I use -

🔍 fzf — Fuzzy Finder for Everything

fzf is a command-line fuzzy finder that makes navigating through files, commands, and processes much easier. It's kind of like ctrl + P on vscode, but for your terminal

Here are some practical ways to use it:

# Search through command history
cat ~/.zsh_history | fzf

# Find and kill processes
kill -9 $(ps aux | fzf | awk '{print $2}')

#  Navigate to subdirectories without typing the full path. fzf offers an interactive way to choose.
cd $(find . -type d -maxdepth 3 | fzf)

Install it via Homebrew:

brew install fzf

🧙‍♂️ Git Branch Management Made Easy

This function helps me switch between git branches quickly. This too uses fzf btw

# Add this to your .zshrc or .bashrc
gitco() {
  if [[ "$1" == "-b" ]]; then
    shift
    git checkout -b "$@"
  elif [[ "$1" == "-r" ]]; then
    shift
    git fetch --all
    git checkout "$(git branch -r | fzf | sed 's/^  origin\\///')"
  else
    git checkout "$(git branch | fzf | sed 's/^..//')"
  fi
}

# Usage:
# gitco -b   # Create and switch to new branch
# gitco                   # Switch to existing local branch
# gitco -r                # Switch to remote branch

💻 Zsh Plugins + Theme

You'll find tons of plugins and themes for zsh.
Here's what my ~/.zshrc looks like:

plugins=(
  git
  colored-man-pages
  colorize
  pip
  python
  brew
  osx
  zsh-autosuggestions
)
ZSH_THEME="bubblified"

🐮 cowsay + lolcat = Terminal Joy

This is probably the nerdiest and happiest part of my setup:

cowsay -f vader "Namastey Arun, May the force be with you" | lolcat --spread 1.0
 ______________________________________
/ Namastey Arun, May the force be with \
\ you                                  /
 --------------------------------------
        \    ,-^-.
         \   !oYo!
          \ /./=\.\______
               ##        )\/\
                ||-----w||
                ||      ||

               Cowth Vader
The sooner our happiness together begins, the longer it will last.
                -- Miramanee, "The Paradise Syndrome", stardate 4842.6

Yep. This runs every time I open a terminal. It did slow down opening up new terminal tabs/windows for me though.

Install them with:

brew install cowsay lolcat

You can check available cowfiles with:

cowsay -l

⚔️ nvim

I’m not a Vim expert yet, so I can’t justify using Neovim or SpaceVim. But here’s what I love: both are way more colorful out of the box and come with a bunch of built-in plugins that make the whole experience feel modern and powerful.
Plus, installing and managing plugins is much easier compared to classic Vim. Neovim supports plugin managers like vim-plug, packer.nvim, and lazy.nvim, which let you add, update, or remove plugins with just a few lines in your config—no more manual copying or setup hassles.

Install it:

brew install neovim

Set it as your default editor:

export EDITOR=nvim

bat — Better Syntax Highlighting for

bat is a modern replacement for cat that displays file contents with syntax highlighting, line numbers, and Git integration. It makes reading code and config files in the terminal much more pleasant and readable.

Sample usage:

bat myfile.go
bat --theme=TwoDark myfile.go
bat --line-range=10:20 app.js

htop — Interactive Process Viewer

htop is an interactive system monitor and process viewer. Unlike the traditional top, htop offers a colorful, user-friendly interface for monitoring system resources, sorting processes, and killing tasks interactively.

Sample usage:

htop
# Use arrow keys to navigate, F9 to kill a process, and F2 to customize the display

tldr — Simplified Man

tldr provides simplified, community-driven help pages for common commands. Instead of wading through lengthy man pages, you get concise examples and explanations.

Sample usage:

tldr tar
tldr grep

thefuck — Corrects Command Typos

thefuck automatically suggests and runs corrections for mistyped commands. If you enter a command with a typo or wrong flag, just type fuck and it will fix and re-run it for you.

Sample usage:

grpe myfile.txt
fuck

exa — Modern Replacement for ls

exa is a modern, colorful replacement for the ls command. It adds features like tree views, Git status integration, and better file listing formats.

Sample usage:

exa -l
exa --tree
exa --git

z — Quick Directory Navigation

z lets you jump to frequently used directories by typing just a part of the path. It learns your habits over time, making navigation lightning-fast.

Sample usage:

z projects
z src

If you have any favorite tools or configurations that make your terminal experience better, feel free to share in the comments!