Skip to content

Supercharging My Terminal: Zsh, Oh My Zsh and CLI Essentials

Most developers spend a huge chunk of their day inside the terminal, so making it fast, functional, and pleasant to use is worth the effort. Out of the box, the default shell experience feels pretty barebones — but with the right setup, it can become a powerful productivity tool.

In this post, I’ll walk through how I supercharged my terminal using Zsh, Oh My Zsh, and the Powerlevel10k theme, along with some of my favorite CLI tools that make everyday tasks faster and more enjoyable. Whether you’re looking for a cleaner prompt, smarter autocompletion, or just a bit of flair, this setup strikes a nice balance between aesthetics and efficiency.


Why zsh?

Zsh (Z shell) is a drop-in replacement for Bash that comes with more modern features like:

  • Smarter autocompletion
  • Better history search
  • Plugin + theme ecosystem
  • Customizable prompts

It’s fast, widely supported, and pairs perfectly with tools like Oh My Zsh.

Installing Zsh

On macOS, Zsh has been the default shell for several years now so you don't really need to do anything.

You can verify this with:

echo $SHELL

Oh My Zsh

Oh My Zsh is a framework that makes managing your zsh configuration easy. It comes with tons of useful plugins and themes.

Install it with:

sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

This creates a ~/.zshrc file where you can configure plugins and themes.

Oh My Zsh: Plugins

Here are all the Oh My Zsh plugins that I use:

Built-ins:

  • gh → adds completions for the GitHub CLI
  • git → provides many helpful aliases and functions for Git
  • sudo → quickly prefix your current or previous command with sudo by pressing Esc twice
  • extract → defines a function called extract that can unpack a wide variety of archive file types
  • kubectl → adds completions for kubectl
  • gcloud → adds completions for the Google Cloud CLI
  • poetry → completions for the Python Poetry dependency manager

to enable these, just add them to the plugins arrayin your ~/.zshrc:

plugins=(
  gh
  git
  sudo
  extract
  kubectl
  gcloud
  poetry
)

External Plugins

These require installation before adding them to your ~/.zshrc:

install zsh-autosuggestions:

git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

install zsh-syntax-highlighting:

git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting

install zsh-history-substring-search:

git clone https://github.com/zsh-users/zsh-history-substring-search ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-history-substring-search

install zsh-kubectl-prompt:

git clone https://github.com/superbrothers/zsh-kubectl-prompt.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-kubectl-prompt

After installing, enable them in your ~/.zshrc:

plugins=(
  git
  sudo
  extract
  kubectl
  gcloud
  poetry
  zsh-autosuggestions
  zsh-syntax-highlighting
  zsh-history-substring-search
  zsh-kubectl-prompt
)

Oh My Zsh: Theme

Powerlevel10k is a fast, highly customizable Zsh theme. It gives you a beautiful prompt with Git status, execution time, and plenty of customization options. The project has limited ongoing development, but it’s still one of the fastest and most popular prompts available.

Install with:

git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k

Then enable in your ~/.zshrc:

ZSH_THEME="powerlevel10k/powerlevel10k"

Restart your terminal, and Powerlevel10k will guide you through an interactive setup wizard to pick your preferred style.

Pro tip: Install a Nerd Font (like MesloLGS NF) for full symbol support in the prompt.


CLI Essentials

These are the command-line tools I use daily to make my terminal workflow faster, smarter, and more enjoyable.

thefuck

Corrects your last command automatically when you mistype.

Install:

brew install thefuck

Usage:

usage

Run fuck after a failed command, and it suggests/fixes it.

jq

A lightweight and powerful JSON processor.

Install:

brew install jq

Usage:

curl https://api.github.com/repos/romkatv/powerlevel10k | jq '.stargazers_count'

Extracts and formats JSON fields directly in the terminal.

fzf

A fast fuzzy finder for files, commands, history, and more.

Install:

brew install fzf

Usage:

ctrl + r     # search command history
fzf          # fuzzy search files in current directory

Can also be integrated with git, z, and more.

fd

A fast and user-friendly alternative to find. Often used with fzf.

Install:

brew install fd

Usage:

fd "main.py"     # find files matching 'main.py'
fd -e md         # find all markdown files

tldr

Simplified, community-driven man pages. Install:

brew install tldr

Usage:

tldr tar

Shows concise examples instead of long man pages.

ripgrep

A blazing-fast alternative to grep.

Install:

brew install ripgrep

Usage:

rg "TODO" src/

Recursively searches for a pattern in files.

eza

A modern replacement for ls with better defaults and Git integration.

Install:

brew install eza

Usage:

eza -lah --git

Shows a detailed, colorized file listing with Git status.

zoxide

A smarter cd command that learns your habits.

Install:

brew install zoxide

Usage:

z foo      # jump to directory matching "foo"
zi bar     # interactive directory search

bat

A cat clone with syntax highlighting and Git integration.

Install:

brew install bat

Usage:

bat main.py

Outputs file contents with line numbers and colors.

Note: You can also customize the theme for bat


With this setup, your terminal becomes more than just a shell — it’s a powerful workspace that adapts to your workflow. Zsh provides a modern foundation, Oh My Zsh and Powerlevel10k make your prompt functional and beautiful, and the curated set of CLI tools boosts productivity while keeping things simple.

You can see my full configuration, including all plugins, theme settings, and aliases, in my .zshrc on GitHub — feel free to use it as a starting point or inspiration for your own setup.

Experiment, tweak, and make it your own — the terminal is yours to supercharge.