Write your post introduction here. This text appears on the homepage as an excerpt.

Making Your macOS Terminal Beautiful

A step-by-step guide to setting up iTerm2, Oh My Zsh, and Powerlevel10k


What We’re Building

By the end of this guide, you’ll have a terminal that looks great, works smart, and feels just as powerful as Windows Terminal — with tabs, profiles, autosuggestions, and a stunning prompt.

The stack:

  • iTerm2 — a better terminal emulator
  • Oh My Zsh — a shell framework
  • Powerlevel10k — a beautiful, informative prompt theme
  • MesloLGS NF — a font with icons and symbols
  • zsh-autosuggestions + zsh-syntax-highlighting — quality-of-life plugins

Step 1: Install iTerm2

Go to https://iterm2.com and download the latest version. Drag it to your Applications folder and open it.

This is how iTerm2 looks immediately after installation: a clean default terminal window ready for theming. Default iTerm2 window after installation on macOS


Step 2: Install Homebrew (if you don’t have it yet)

Homebrew is the package manager for macOS. If you don’t have it yet, paste this in your terminal:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Follow the prompts. It may ask for your password and install Xcode Command Line Tools — that’s normal.

Verify it works:

brew --version

Step 3: Install Oh My Zsh

Paste this into your terminal:

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

It will ask if you want to change your default shell to zsh — say yes. After it finishes, your terminal will already look a little different.

After installing Oh My Zsh, the shell shows its welcome banner and a refreshed prompt with the new zsh environment.

![iTerm2 with Oh My Zsh welcome banner and updated prompt](/images/2026-04-05/iterm2_zsh.png) ---

Step 4: Install the MesloLGS NF Font

Powerlevel10k needs a special font to render icons and symbols correctly. Install it via Homebrew:

brew install --cask font-meslo-lg-nerd-font

Then set it in iTerm2:

  1. Open iTerm2 → Settings (or Cmd+,)
  2. Go to Profiles → Text
  3. Click the font dropdown and search for MesloLGS NF
  4. Set the size to something comfortable, like 13 or 14

The font settings panel in iTerm2 with MesloLGS NF selected, which enables Powerlevel10k icons and glyphs. iTerm2 font selection showing MesloLGS NF


Step 5: Install Powerlevel10k

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

Now open your zsh config file:

nano ~/.zshrc

Find the line that says:

ZSH_THEME="robbyrussell"

And change it to:

ZSH_THEME="powerlevel10k/powerlevel10k"

Save with Ctrl+O, then Enter, then exit with Ctrl+X.

Apply the changes:

source ~/.zshrc

The Powerlevel10k configuration wizard will launch automatically. Follow the prompts — it will ask about icons, prompt style, colors, etc. Take your time, you can always re-run it later with p10k configure.

The Powerlevel10k configuration wizard in action, letting you choose icons, prompt style, and colors interactively. Powerlevel10k configuration wizard in iTerm2

This is the finished Powerlevel10k prompt, showing a compact, informative command line with git status and icons. Final Powerlevel10k prompt layout in iTerm2


Step 6: Install the Plugins

zsh-autosuggestions

This shows ghost-text suggestions based on your history as you type. Press to accept a suggestion.

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

zsh-syntax-highlighting

This colors your commands green (valid) or red (invalid) as you type them — before you even hit Enter.

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

Now enable both plugins. Open your config again:

nano ~/.zshrc

Find the line that says:

plugins=(git)

And change it to:

plugins=(git zsh-autosuggestions zsh-syntax-highlighting)

Save and apply:

source ~/.zshrc

zsh-autosuggestions and zsh-syntax-highlighting in action: grey suggestion text for history completions and color-coded command validity.

iTerm2 terminal showing zsh-autosuggestions and syntax highlighting


Step 7: Set Up Tabs and Profiles in iTerm2

This is where iTerm2 really shines over the default Terminal app. You can create different profiles for different environments — just like Windows Terminal.

Create a new profile

  1. Open iTerm2 → Settings → Profiles
  2. Click the + button at the bottom left
  3. Name it something like Local or Work
  4. Customize its color scheme under the Colors tab — try one of the presets like Solarized Dark or Tango Dark

Open a new tab with a specific profile

  • Press Cmd+T to open a new tab
  • Or go to Profiles in the menu bar and click the profile you want

A polished iTerm2 window with multiple tabs open so you can switch between shells, SSH sessions, or containers quickly.

iTerm2 window with multiple colored tabs open


Step 8 (Optional): Connect to a Remote Server or Docker Container

Just like Windows Terminal lets you open WSL alongside PowerShell, you can have a local shell in one tab and a remote environment in another.

SSH into a server:

ssh user@your-server-ip

Shell into a running Docker container:

docker exec -it your-container-name /bin/bash

Just open these in a new tab (Cmd+T) and you’ve got multiple environments in one window.


The End Result

You now have a terminal that:

  • ✅ Has tabs for multiple sessions
  • ✅ Shows git branch and status in your prompt
  • Autocompletes commands from your history
  • Color-codes commands before you run them
  • ✅ Supports multiple environments (local, SSH, Docker) in one window
  • ✅ Looks 🔥

Bonus: Making It Look Great in VSCode Too

If you open the integrated terminal in VSCode, you might notice the icons and prompt look broken or garbled. This is because VSCode uses its own font setting for the terminal, separate from iTerm2.

The fix is simple — just point VSCode to the same font.

Set the font in VSCode

  1. Open VSCode → Settings (Cmd+,)
  2. Search for terminal font
  3. Find the setting called Terminal › Integrated: Font Family
  4. Set it to: MesloLGS NF

The VSCode terminal font setting updated to MesloLGS NF, ensuring the integrated terminal displays Powerlevel10k icons correctly. VSCode integrated terminal font setting set to MesloLGS NF

Alternatively, you can add it directly to your settings.json:

{
  "terminal.integrated.fontFamily": "MesloLGS NF"
}

To open settings.json directly, press Cmd+Shift+P, type Open User Settings JSON and hit Enter.

That’s it — your VSCode terminal will now render the same icons, colors, and prompt as iTerm2.


Useful Shortcuts to Remember

ShortcutAction
Cmd+TNew tab
Cmd+DSplit pane vertically
Cmd+Shift+DSplit pane horizontally
Cmd+] / Cmd+[Switch between panes
Cmd+NumberJump to tab by number
arrowAccept autosuggestion
p10k configureRe-run the Powerlevel10k wizard