In this post, we'll set up a fast, good-looking, and productive development environment on macOS, using the Ghostty terminal emulator, the Homebrew package manager, the Zsh shell with the Powerlevel10k theme, and the Neovim code editor. Here are the steps we'll follow:
Ghostty is a fast, GPU-accelerated terminal. Download it here: https://ghostty.org/download

Install and open the app. The first time you launch it, you may have to manually approve it by going to System Settings → Privacy & Security to get past the macOS security warning.
Homebrew is the package manager we'll use to install command line tools and fonts. Follow the instructions on the official website or run the following command to install Homebrew:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
After installation, make sure to add brew to your system PATH by running the commands printed at the end of the installer output. You can verify the installation by running:
brew --version

Nerd Fonts include the extra glyphs and icons that used by the Powerlevel10k terminal prompt theme we'll set up later. Run this command to install the Meslo Nerd Font:
brew install font-meslo-lg-nerd-font
Open Ghostty's configuration file (Cmd + ,) and add the following settings:
background-opacity=0.7
background=#000000
font-family = MesloLGS Nerd Font Mono
macos-titlebar-style = tabs
window-padding-x=8
window-padding-y=8
maximize=true
font-size=14
shell-integration-features=sudo,ssh-env
This sets a translucent black background, the Meslo Nerd Font, tabbed titlebars, padding, and a maximized window. Save the file, quit and restart Ghostty to apply the changes.
Run this command to install some essential command line tools with Homebrew:
brew install git fzf ripgrep htop gh zoxide
Here's what each one does:
git - version control system for tracking changes in codefzf - fuzzy finder for searching files and command historyripgrep - extremely fast recursive search tool (rg)htop - interactive process and resource monitorgh - GitHub's official command line interfacezoxide - a z command for directly jumping to your most-used directoriesNext, authenticate the GitHub CLI so you can clone, push, and manage repositories:
gh auth login
Follow the on-screen prompts to complete the authentication in your browser. Then, configure your name and email used by the git CLI while committing changes:
git config --global user.name "Your Name"
git config --global user.email [email protected]
Zsh is an alternative to Bash and has been the default shell on macOS since Catalina (2019). It's largely compatible with Bash, but adds better tab completion, theming, and plugin support. The ~/.zshrc file configures your Zsh shell. Open it for editing as follows:
nano ~/.zshrc
Add the following configuration. It installs the zinit plugin manager, the Powerlevel10k theme, and a few essential plugins for syntax highlighting, completions, and autosuggestions:
function __git_prompt_git() {
GIT_OPTIONAL_LOCKS=0 command git "$@"
}
# Outputs the name of the current branch
function git_current_branch() {
local ref
ref=$(__git_prompt_git symbolic-ref --quiet HEAD 2> /dev/null)
local ret=$?
if [[ $ret != 0 ]]; then
[[ $ret == 128 ]] && return # no git repo.
ref=$(__git_prompt_git rev-parse --short HEAD 2> /dev/null) || return
fi
echo ${ref#refs/heads/}
}
# Enable full color support
export TERM=xterm-256color
# Install (if absent) and initialize zinit plugin manager
ZINIT_HOME="${XDG_DATA_HOME:-${HOME}/.local/share}/zinit/zinit.git"
[ ! -d $ZINIT_HOME ] && mkdir -p "$(dirname $ZINIT_HOME)"
[ ! -d $ZINIT_HOME/.git ] && git clone https://github.com/zdharma-continuum/zinit.git "$ZINIT_HOME"
source "${ZINIT_HOME}/zinit.zsh"
# Use the Powerlevel10k theme
zinit ice depth=1; zinit light romkatv/powerlevel10k
# Essential Zsh plugins
zinit light zsh-users/zsh-syntax-highlighting
zinit light zsh-users/zsh-completions
zinit light zsh-users/zsh-autosuggestions
# git shortcuts: https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/git
zinit snippet OMZP::git
zinit snippet OMZP::gh
# Register completions from plugins
autoload -U compinit && compinit
zinit cdreplay -q
# Load Powerlevel10k configuration; To customize run `p10k configure`
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh
# Save command history
HISTSIZE=5000
HISTFILE=~/.zsh_history
SAVEHIST=$HISTSIZE
HISTDUP=erase
setopt appendhistory
setopt sharehistory
setopt hist_ignore_space
setopt hist_ignore_all_dups
setopt hist_save_no_dups
setopt hist_ignore_dups
setopt hist_find_no_dups
# Enable case insensitive completions
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Za-z}'
# Show colors in ls output
alias ls='ls -G'
# Use fzf for searching command history
source /opt/homebrew/opt/fzf/shell/completion.zsh
source /opt/homebrew/opt/fzf/shell/key-bindings.zsh
# Use zoxide as a smarter cd command
eval "$(zoxide init zsh)"
Save the file with Ctrl+o, then exit with Ctrl+x. Open a new terminal window (or run source ~/.zshrc) to apply the changes. The first launch will install the plugins, and let you configure Powerlevel10k. Respond as follows for a minimal but comprehensive prompt:

Here are a few tips to get the most out of this setup:
→ (right arrow) key to accept it, or Ctrl+→ to accept one word at a time.Ctrl+R to fuzzy-search your command history with fzf. Keep typing to narrow the results, then press Enter to run the selected command.z command to jump to recently visited folders (z ghostty instead of cd ~/work/ghostty). Run zi to pick from matching directories interactively.git plugin adds handy aliases like gst (git status), gco (git checkout), gp (git push), and glog (git log graph). See the full list.Enter.You'll probably do most of your editing in a graphical IDE like Cursor, Codium, or VS Code, but it's also nice to have a modern & capable editor you can reach for right in the terminal.

Neovim is a modern, extensible terminal-based code editor. We'll install Neovim and set up LazyVim, a preconfigured collection of plugins that turn Neovim into a full-fledged integrated development environment (IDE). Run these commands to install Neovim and set up LazyVim:
brew install neovim
git clone https://github.com/LazyVim/starter ~/.config/nvim
rm -rf ~/.config/nvim/.git
Open a new terminal window, then run the nvim command to start Neovim and initialize all the plugins included with the LazyVim config. Watch this short tutorial to learn more.
Run these commands to create & enter a dedicated ~/work directory for your projects:
mkdir -p ~/work
cd ~/work
You can now clone & work with repositories from GitHub inside ~/work using the git CLI:
git clone https://github.com/ghostty-org/ghostty
We set up a complete terminal environment on macOS, with a modern terminal emulator, a package manager, useful command line tools, and a customized Zsh shell. This setup gives you a fast, productive, and pleasant foundation for day-to-day development work.