⌨️

My Terminal Setup

A good terminal setup is something I consider a core part of my development workflow. Here's everything I use to make my macOS terminal fast, readable, and pleasant to work in every day.


Terminal Emulator

iTerm2

The default macOS Terminal app works fine, but iTerm2 is just on another level. It's free, open-source, and packed with features I use daily. The main reasons I switched:

  • Split panes — run multiple sessions side-by-side in the same window with ⌘D (vertical) or ⌘⇧D (horizontal)
  • Hotkey window — a system-wide shortcut (I use ⌥Space) that drops the terminal down from anywhere, like a Quake console
  • Search⌘F to search the full terminal buffer with regex support
  • Profiles — separate color schemes and font settings for different use cases
  • Shell integration — marks command outputs, lets you navigate between prompts with ⌘↑ / ⌘↓

Install it from iterm2.com or via Homebrew:

brew install --cask iterm2

Shell Framework

Oh My Zsh

Oh My Zsh is a community-driven framework for managing Zsh configuration. On its own Zsh is powerful, but Oh My Zsh makes it genuinely enjoyable — it comes with hundreds of plugins, helpers, and a thriving theme ecosystem. It's the first thing I install on any new Mac.

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

Your configuration lives in ~/.zshrc. After installing Oh My Zsh, that file is automatically populated with sensible defaults.


Prompt Theme

Spaceship Prompt

Spaceship is a minimalist, highly configurable Zsh prompt. What makes it great is how much information it surfaces without feeling cluttered — git branch, dirty status, Node.js version, package version, and more, all only when relevant.

Install it via Oh My Zsh (recommended):

git clone https://github.com/spaceship-prompt/spaceship-prompt.git "$ZSH_CUSTOM/themes/spaceship-prompt" --depth=1
ln -s "$ZSH_CUSTOM/themes/spaceship-prompt/spaceship.zsh-theme" "$ZSH_CUSTOM/themes/spaceship.zsh-theme"

Then set the theme in your ~/.zshrc:

ZSH_THEME="spaceship"

Spaceship is section-based, so you can configure exactly which segments appear and in what order by adding to your ~/.zshrc:

SPACESHIP_PROMPT_ORDER=(
  user dir git node package venv line_sep char
)

Plugin

zsh-autosuggestions

zsh-autosuggestions brings Fish shell's killer feature to Zsh — as you type, it shows a greyed-out suggestion based on your command history. Hit or End to accept the full suggestion, or ⌥→ to accept word-by-word. It makes navigating repetitive commands (long git commands, npm scripts, docker commands) incredibly fast.

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

Then add it to the plugins list in ~/.zshrc:

plugins=(git zsh-autosuggestions)

Plugin

zsh-syntax-highlighting

zsh-syntax-highlighting highlights commands as you type them — valid commands turn green, invalid ones turn red, and strings/arguments are colored distinctly. It's a small thing that catches typos 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

Add it to your plugins — make sure it's last in the list:

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

After editing ~/.zshrc, reload the shell:

source ~/.zshrc