Sweet Shell 2025: With Agents, Oh-My-Zsh, Neovim, Starship, and Demo Mode. For macOS, Linux, and Windows
Nov 22, 2025
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
- I discovered Neovim Kickstart (and this great video by the author) as the best way to get started with everything Neovim (the only way to Vim 😊.)
- Zellij to replace Tmux with better defaults and less config struggles. Here's a good video walkthrough of Zellij by typecraft.
- GitHub Monaspce is my new shell/IDE fonts. I love the detail and care they've taken. Currently using Ar but they are all great.
- Eternal Terminal to replace Mosh for remote shells (auto-reconnect, session saving). I like
mosh, butethas scrolling support! - GitHub's VSCode theme, for iTerm. I've settled on GitHub's light/dark them in VSCode for now, and wanted my iTerm to match.
exa, a modern replacement forls- Starship is my daily shell theme. I love it!
Terminal Emulator
The GUI that emulates a text terminal and runs a shell
- macOS: iTerm2 / Warp / Ghostty
- Linux: Tilix / Ghostty
- Windows 11/10: Windows Terminal
- Windows 7/8: cmder
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/zshor manually install a newer version withbrew install zshto/usr/local/bin/zsh. Default is fine in 99% of cases. - Linux: If
which zshshows nothing, then install with apt/yum/apk. Next, change your login shell withchsh -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
.zshrcenvZSH_THEMEwith 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 foralias n=nvimandalias vim=nvimto 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 NFeverywhere (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 (
agfrom 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.