24 Zsh Plugins🔌 Every Developer & DevOps Engineer 🖥 Should Use in 2025
Prerequisites ## Why Plugins Matter ## The Setup ### 1. zsh-autosuggestions (Fish-like suggestions) ### 2. zsh-syntax-highlighting (Real-time command validation) ## The Power Plugin List ## What Each Plugin Does ### Cloud & Infrastructure Plugins ### Language Plugins ### Productivity Plugins ### Community Plugins ## Activate Your Configuration ## Real-World Examples ### Before: ### After with plugins: ### Directory Navigation: ### Archive Extraction: ## Performance Considerations ## Bonus: Useful Aliases from These Plugins ## Next Steps ## Conclusion If you're using Zsh with Oh My Zsh, you're already ahead of the game. But are you leveraging the full power of its plugin ecosystem? Let me show you how to transform your terminal into a productivity powerhouse. Before we dive in, make sure you have: To verify your setup: The default Zsh installation with Oh My Zsh comes with just the git plugin enabled. While that's a good start, you're missing out on intelligent auto-completions, helpful aliases, and productivity shortcuts that can save you hours every week. First, let's install two community plugins that are absolute game-changers: Now, let's add the essential plugins. Open your ~/.zshrc file and replace the plugins=() section with this configuration: After updating your .zshrc, reload it: Having many plugins can slow down shell startup. If you notice lag: Once activated, you get dozens of useful aliases: Type alias in your terminal to see all available aliases! A well-configured terminal is a developer's best friend. These plugins transform Zsh from a simple shell into an intelligent assistant that autocompletes, suggests, and validates as you type. The initial setup takes 5 minutes, but you'll save hours every week through improved efficiency and reduced context-switching. What plugins do you use? Drop your favorites in the comments! Found this helpful? Follow me for more developer productivity tips and DevOps tutorials! Templates let you quickly answer FAQs or store snippets for re-use. Hide child comments as well For further actions, you may consider blocking this person and/or reporting abuse CODE_BLOCK:
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" CODE_BLOCK:
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" CODE_BLOCK:
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" COMMAND_BLOCK:
# Check Zsh version
zsh --version # Check if Oh My Zsh is installed
ls ~/.oh-my-zsh # Check Git
git --version COMMAND_BLOCK:
# Check Zsh version
zsh --version # Check if Oh My Zsh is installed
ls ~/.oh-my-zsh # Check Git
git --version COMMAND_BLOCK:
# Check Zsh version
zsh --version # Check if Oh My Zsh is installed
ls ~/.oh-my-zsh # Check Git
git --version COMMAND_BLOCK:
git clone https://github.com/zsh-users/zsh-autosuggestions ~/.oh-my-zsh/custom/plugins/zsh-autosuggestions COMMAND_BLOCK:
git clone https://github.com/zsh-users/zsh-autosuggestions ~/.oh-my-zsh/custom/plugins/zsh-autosuggestions COMMAND_BLOCK:
git clone https://github.com/zsh-users/zsh-autosuggestions ~/.oh-my-zsh/custom/plugins/zsh-autosuggestions COMMAND_BLOCK:
git clone https://github.com/zsh-users/zsh-syntax-highlighting ~/.oh-my-zsh/custom/plugins/zsh-syntax-highlighting COMMAND_BLOCK:
git clone https://github.com/zsh-users/zsh-syntax-highlighting ~/.oh-my-zsh/custom/plugins/zsh-syntax-highlighting COMMAND_BLOCK:
git clone https://github.com/zsh-users/zsh-syntax-highlighting ~/.oh-my-zsh/custom/plugins/zsh-syntax-highlighting COMMAND_BLOCK:
plugins=( # Version Control git # Cloud & Infrastructure docker docker-compose kubectl helm terraform aws gcloud azure ansible # Programming Languages & Tools python pip node npm yarn golang rust # Productivity Boosters sudo # Press ESC twice to add sudo to previous command extract # Universal archive extractor (works with .tar, .zip, .gz, etc.) z # Jump to frequently used directories history # Enhanced history commands command-not-found # Suggests package to install for missing commands vscode # VS Code aliases and shortcuts # Community Plugins (must be last) zsh-autosuggestions zsh-syntax-highlighting
) COMMAND_BLOCK:
plugins=( # Version Control git # Cloud & Infrastructure docker docker-compose kubectl helm terraform aws gcloud azure ansible # Programming Languages & Tools python pip node npm yarn golang rust # Productivity Boosters sudo # Press ESC twice to add sudo to previous command extract # Universal archive extractor (works with .tar, .zip, .gz, etc.) z # Jump to frequently used directories history # Enhanced history commands command-not-found # Suggests package to install for missing commands vscode # VS Code aliases and shortcuts # Community Plugins (must be last) zsh-autosuggestions zsh-syntax-highlighting
) COMMAND_BLOCK:
plugins=( # Version Control git # Cloud & Infrastructure docker docker-compose kubectl helm terraform aws gcloud azure ansible # Programming Languages & Tools python pip node npm yarn golang rust # Productivity Boosters sudo # Press ESC twice to add sudo to previous command extract # Universal archive extractor (works with .tar, .zip, .gz, etc.) z # Jump to frequently used directories history # Enhanced history commands command-not-found # Suggests package to install for missing commands vscode # VS Code aliases and shortcuts # Community Plugins (must be last) zsh-autosuggestions zsh-syntax-highlighting
) CODE_BLOCK:
source ~/.zshrc CODE_BLOCK:
source ~/.zshrc CODE_BLOCK:
source ~/.zshrc COMMAND_BLOCK:
$ kubctl get pods # Typo turns red immediately
$ # Realize mistake, fix it
$ kubectl get pods COMMAND_BLOCK:
$ kubctl get pods # Typo turns red immediately
$ # Realize mistake, fix it
$ kubectl get pods COMMAND_BLOCK:
$ kubctl get pods # Typo turns red immediately
$ # Realize mistake, fix it
$ kubectl get pods COMMAND_BLOCK:
# Old way
$ cd ~/projects/work/important-service/ # With 'z' plugin (after visiting once)
$ z important
# Instantly jumps to ~/projects/work/important-service/ COMMAND_BLOCK:
# Old way
$ cd ~/projects/work/important-service/ # With 'z' plugin (after visiting once)
$ z important
# Instantly jumps to ~/projects/work/important-service/ COMMAND_BLOCK:
# Old way
$ cd ~/projects/work/important-service/ # With 'z' plugin (after visiting once)
$ z important
# Instantly jumps to ~/projects/work/important-service/ COMMAND_BLOCK:
# Old way
$ tar -xzvf file.tar.gz
$ unzip archive.zip
$ tar -xjf file.tar.bz2 # New way with 'extract' plugin
$ extract file.tar.gz
$ extract archive.zip
$ extract file.tar.bz2
# All work the same way! COMMAND_BLOCK:
# Old way
$ tar -xzvf file.tar.gz
$ unzip archive.zip
$ tar -xjf file.tar.bz2 # New way with 'extract' plugin
$ extract file.tar.gz
$ extract archive.zip
$ extract file.tar.bz2
# All work the same way! COMMAND_BLOCK:
# Old way
$ tar -xzvf file.tar.gz
$ unzip archive.zip
$ tar -xjf file.tar.bz2 # New way with 'extract' plugin
$ extract file.tar.gz
$ extract archive.zip
$ extract file.tar.bz2
# All work the same way! - Zsh installed: Check with zsh --version (version 5.0 or higher recommended)
- Oh My Zsh installed: If not, install it with: - Git installed: Required to clone the custom plugins
- Basic terminal knowledge: You should know how to edit files with nano, vim, or your preferred editor - docker & docker-compose: Auto-completion for containers, images, and compose commands
- kubectl: Kubernetes command completion and helpful aliases (k for kubectl, kgp for kubectl get pods)
- helm: Helm chart management completions
- terraform: Terraform command completion
- aws/gcloud/azure: Cloud provider CLI completions - python/pip: Python environment and package management shortcuts
- node/npm/yarn: JavaScript ecosystem completions
- golang/rust: Language-specific tooling support - sudo: Double-tap ESC to prefix your last command with sudo (no more retyping!)
- extract: Use extract <file> for any archive format - no need to remember tar flags
- z: After using it for a while, just type z project to jump to /home/user/dev/project
- command-not-found: Ubuntu/Debian feature that suggests which package to install - zsh-autosuggestions: As you type, see suggestions based on your history (press → to accept)
- zsh-syntax-highlighting: Commands turn green if valid, red if invalid - catch typos before running - The typo is highlighted in red instantly
- Start typing kub... and autosuggestions show kubectl get pods from history
- Press → to accept
- Or use the k alias: k get pods - Only enable plugins for tools you actually use
- Remove language plugins for languages you don't work with
- Use time zsh -i -c exit to measure startup time - dps = docker ps
- dpa = docker ps -a
- dce = docker-compose exec - k = kubectl
- kgp = kubectl get pods
- kgd = kubectl get deployments
- kaf = kubectl apply -f - gst = git status
- gc = git commit
- gp = git push
- gco = git checkout - Explore themes: Try agnoster or powerlevel10k for a beautiful prompt
- Custom aliases: Add your own in ~/.zshrc or ~/.oh-my-zsh/custom/aliases.zsh
- Discover more plugins: Run ls ~/.oh-my-zsh/plugins/ to see 350+ available plugins