Automated scripts to set up a modern, productive terminal environment on macOS using iTerm2, Oh My Zsh, Powerlevel10k, and a curated set of CLI tools.
| Component | Description |
|---|---|
| iTerm2 | Feature-rich terminal emulator for macOS |
| Oh My Zsh | Framework for managing Zsh configuration |
| Powerlevel10k | Fast and customizable Zsh theme |
| MesloLGS NF | Nerd Font with icon support |
| Tool | Replaces | Description |
|---|---|---|
| eza | ls |
File listing with icons and colors |
| bat | cat |
Syntax highlighting and git integration |
| fd | find |
Faster and more intuitive file search |
| ripgrep | grep |
Blazingly fast recursive search |
| dust | du |
Intuitive disk usage viewer |
| duf | df |
Disk free space with visual layout |
| procs | ps |
Modern process viewer |
| zoxide | cd |
Smarter directory navigation |
| fzf | - | Fuzzy finder for everything |
| Tool | Description |
|---|---|
| lazygit | Interactive terminal UI for git |
| delta | Beautiful syntax-highlighted git diffs |
| gh | GitHub CLI for PRs, issues, and more |
| Tool | Description |
|---|---|
| btop | Interactive system monitor |
| jq | JSON processor for the command line |
| tldr | Simplified man pages with practical examples |
| tmux | Terminal multiplexer (sessions, splits, tabs) |
| thefuck | Auto-corrects your previous command |
| direnv | Per-directory environment variables |
| atuin | Searchable shell history with optional sync |
| Plugin | Description |
|---|---|
| zsh-autosuggestions | Fish-like autosuggestions as you type |
| zsh-syntax-highlighting | Syntax highlighting in the shell |
| zsh-completions | Additional completion definitions |
| zsh-history-substring-search | Type and arrow-up to search history |
| fzf-tab | Replace tab completion with fzf |
| you-should-use | Reminds you of existing aliases |
Color Schemes: Dracula, Tokyo Night, Catppuccin Mocha
git clone https://github.com/asanchezyali/iterm2-setup.git
cd iterm2-setup
./setup.shThe script is idempotent - it skips components that are already installed.
You can install individual components instead of running the full setup:
./setup.sh --cli-tools # Install CLI tools only
./setup.sh --fonts # Install Nerd Font only
./setup.sh --plugins # Install Zsh plugins only
./setup.sh --fonts --zshrc # Combine multiple optionsOr run individual scripts directly:
./scripts/cli-tools.sh # Install CLI tools
./scripts/color-schemes.sh # Download color schemes
./scripts/fonts.sh # Install Nerd Font| Flag | Description |
|---|---|
--all |
Run the full setup (default) |
--prerequisites |
Install Homebrew |
--iterm2 |
Install iTerm2 |
--fonts |
Install MesloLGS Nerd Font |
--oh-my-zsh |
Install Oh My Zsh |
--powerlevel10k |
Install Powerlevel10k theme |
--plugins |
Install Zsh plugins |
--cli-tools |
Install CLI tools |
--color-schemes |
Download color schemes |
--zshrc |
Configure .zshrc |
--help |
Show help message |
iterm2-setup/
├── setup.sh # Main entry point
├── scripts/
│ ├── utils.sh # Shared helper functions
│ ├── prerequisites.sh # Homebrew check/install
│ ├── iterm2.sh # iTerm2 installation
│ ├── fonts.sh # Nerd Font installation
│ ├── oh-my-zsh.sh # Oh My Zsh installation
│ ├── powerlevel10k.sh # Powerlevel10k theme
│ ├── plugins.sh # Zsh plugins
│ ├── cli-tools.sh # CLI tools (fzf, eza, bat, etc.)
│ ├── color-schemes.sh # Color scheme downloads
│ └── zshrc.sh # .zshrc configuration
├── LICENSE
└── README.md
After running the setup:
- Close your current terminal and open iTerm2
- The Powerlevel10k configuration wizard will start automatically - follow the prompts
- Set the font to MesloLGS NF in iTerm2:
Preferences > Profiles > Text > Font - Import a color scheme:
Preferences > Profiles > Colors > Color Presets > Importfrom~/.iterm2/colors/
| Command | Description |
|---|---|
p10k configure |
Reconfigure Powerlevel10k prompt |
reload |
Reload .zshrc |
zshconfig |
Open .zshrc in your editor |
z <dir> |
Smart directory jump (zoxide) |
lt |
Tree view with icons (eza) |
lg |
Launch lazygit |
gs |
git status shortcut |
tldr <cmd> |
Simplified man page |
fuck |
Auto-correct previous command |
Ctrl+R |
Search shell history (atuin) |
The configured .zshrc includes aliases for:
- Modern CLI tools -
ls/ll/la(eza),cat(bat),du(dust),df(duf),ps(procs) - Git shortcuts -
gs,ga,gc,gp,gl,gd,glog,lg(lazygit) - Navigation -
..,...,.... - Safety -
rm -i,mv -i,cp -i - macOS -
showfiles,hidefiles,flushdns - Network -
ip,localip
- macOS (Intel or Apple Silicon)
- Internet connection
- Admin privileges (for Homebrew and cask installs)