Sweet Shell 2025: With Agents, Oh-My-Zsh, Neovim, Starship, and Demo Mode. For macOS, Linux, and Windows

reference shell Nov 22, 2025
Warp, Ghostty, and iTerm2 terminals showing Neovim, exa, and Copilot CLI

My terminal emulator and shell setup for macOS, Linux, and Windows. AKA "Ultimate Terminal Setup" for me. I've kept this updated since 2017, and everything has improved in the shell game! Keyboard fans are better off today than ever before.


New terminals and AI Agents in 2024-2026

  • Ghostty 👻 is great, made by the co-founder of HashiCorp, Mitchell Hashimoto. It's pretty popular for being a young project. I haven't replaced iTerm yet on macOS (it's missing a few iTerm features like ⌘ + F to search text.) but, Ghostty is a close 2nd and also cross-platform.
  • Warp 2.0 terminal 🌌 is a game changer, but I still struggle to make it my daily default terminal as its unconventional shell is both awesome (dynamically switches between shell and built-in AI agent) and limiting (doesn't support command completion for many cli tools). I still like it a lot and usually have it sitting next to iTerm and VSCode.
  • Shell coding agents have exploded. I've tried most of them and use Copilot CLI and Claude Code the most. If using Warp terminal, Warp CLI is built-in.

New stuff I'm checking out in 2022-2024

Terminal Emulator

The GUI that emulates a text terminal and runs a shell

Shell and Prompt

Z shell (zsh) is my favorite. Here's how to make it awesome.

  • macOS: Now the default in 10.15+ at /bin/zsh or manually install a newer version with brew install zsh to /usr/local/bin/zsh. Default is fine in 99% of cases.
  • Linux: If which zsh shows nothing, then install with apt/yum/apk. Next, change your login shell with chsh -s $(which zsh)
  • Windows 11/10: I recommend WSL/WSL2 with Ubuntu and zsh installed there, rather than a zsh.exe alternative.
  • Zsh "Configuration Manager": Oh-My-Zsh adds a bunch of bonus features and plugins to your shell. Check their GitHub wiki for more info and how to customize.
  • Oh-My-Zsh has themes, which mostly affect the prompt features like git branch, current directory, etc. but also has colors you can tweak (see below.)
  • Here's my custom Zsh prompt theme with 🐳 emoji and a "presentation mode" option. I use this to keep the shell minimal without distractions for presenting.
  • Daily prompt config: Starship!

Colors

I like having matching true-color themes in all my shell apps.

  • Gruvbox or GitHub colors are my default for everything. They support light and dark modes, as well as various contrast options. The Gruvbox contrib repo has the theme for different app formats, including iTerm2, SpaceVim, Tilix, and tmux.
  • True Color in iTerm2, Zsh, and Vim. Also, check the Gruvbox notes on true color. In 2024+, I think this works by default with things in this list, but it's good to know ways to test it.
  • Assuming you're using Oh-My-Zsh above, you can replace the default theme in .zshrc env ZSH_THEME with this Gruvbox colored one, or just tweak the colors of the full theme list. This really only affects the prompt, not the terminal colors, which are controlled by your terminal emulator.
  • INSANE Wild Cherry theme. I love this, but is it a daily theme? Not sure.

Shell Editor

  • Neovim (install info), which you run as nvim (I added shell aliases for alias n=nvim and alias vim=nvim to my ~/.zshrcadded )
  • In 2024. I discovered Neovim Kickstart (and this great video by the author) as the best way to get started with everything.
  • My Old Plugin Manager "vim distro": SpaceVim makes good feature-rich defaults (works with both vim/nvim). I stopped using it because of Neovim Kickstart above was easier to learn and maintain.

Fonts

Some fonts are designed for shells and programming. I only use those.

  • Nerd Fonts takes those popular programming fonts and adds extra glyphs and icons for better support in shell tools. I currently use Monaspace Argon NF everywhere (on macOS, brew install font-monaspace-nf).
  • GitHub Monaspce is my base shell/IDE font since they released it in 2024ish. I use the Nerd Font variant of them.
  • I prefer using Homebrew to install those fonts on macOS and Linux. You can always just download one or all of them from Nerd Fonts and usually just dbl-clicking a font file in macOS or Windows will install it.
  • One of my (older, pre Monaspace) favorite fonts: Sauce Code Pro Font from Nerd Fonts which gives me Vim + Powerline + icons. That's all you need, but if you're curious: It's based off another mod to support this font with Powerline in VIM, which itself is based off the original Adobe Source Code Pro open source font. Whew, what a rabbit hole. 😵
  • Italics enabled in iTerm/Vim. It makes comments easier to visualize I think.

Other Essentials

  • Zellij as a Tmux replacement for shell session management.
  • Oh-My-Tmux for a better default Tmux setup. It's great out of the box.
  • Eternal Terminal for better SSH that auto-reconnects and uses UDP for slow/laggy/lossy.
  • SilverSearcher (ag from cli) for better shell code search.
  • bat for color cat output of code and markdown (syntax highlighting.)

Bret's container and DevOps learnings, in your inbox!

Join my newsletter for weekly-ish updates on content I'm creating: videos, articles, events, courses and more.