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:
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:
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
:
External Plugins
- zsh-autosuggestions → suggests commands as you type based on history
- zsh-syntax-highlighting → highlights commands in the shell for readability and errors
- zsh-history-substring-search → lets you search your command history by typing a substring and using the arrow keys
- zsh-kubectl-prompt → shows the current Kubernetes context/namespace in your prompt
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
:
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:
Usage:
Run fuck after a failed command, and it suggests/fixes it.
jq
A lightweight and powerful JSON processor.
Install:
Usage:
Extracts and formats JSON fields directly in the terminal.
fzf
A fast fuzzy finder for files, commands, history, and more.
Install:
Usage:
Can also be integrated with git, z, and more.
fd
A fast and user-friendly alternative to find. Often used with fzf.
Install:
Usage:
tldr
Simplified, community-driven man pages. Install:
Usage:
Shows concise examples instead of long man pages.
ripgrep
A blazing-fast alternative to grep.
Install:
Usage:
Recursively searches for a pattern in files.
eza
A modern replacement for ls
with better defaults and Git integration.
Install:
Usage:
Shows a detailed, colorized file listing with Git status.
zoxide
A smarter cd command that learns your habits.
Install:
Usage:
bat
A cat clone with syntax highlighting and Git integration.
Install:
Usage:
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.