Nerd Fonts in the terminal: what they are and how to install one
Nerd Fonts add icons and rounded separators to programming fonts. What they include, how to install one on macOS or Linux, and how to set it in your terminal.
If a prompt or status line shows boxes where there should be icons or rounded ends, you are missing a Nerd Font. The Nerd Fonts project takes popular programming fonts and adds thousands of glyphs to them, from file icons to the half circles that make pill-shaped segments.
Install one
# macOS, with Homebrew
brew install --cask font-jetbrains-mono-nerd-font
# Linux: download from nerdfonts.com, then
mkdir -p ~/.local/share/fonts && unzip JetBrainsMono.zip -d ~/.local/share/fonts
fc-cache -fJetBrains Mono, Fira Code, Hack and Meslo are common choices. Pick the one you would use anyway; the letters are unchanged.
Set it in your terminal
- iTerm2: Settings, Profiles, Text, Font.
- Ghostty, WezTerm, Kitty, Alacritty: the
font-familyline in their config file. - VS Code terminal: set
terminal.integrated.fontFamilyto the font's name, such as "JetBrainsMono Nerd Font".
Check it
printf '\ue0b6 capsule \ue0b4\n'Those two code points are the left and right half circles. If you see a pill shape around the word, the font works. If you see boxes, the terminal is still using another font.
Without one
Good tools degrade: square ends instead of round, text labels instead of icons. That is a fine setup, and one fewer dependency on a new machine. Colour depth is a separate check, covered in 24-bit colour, and themes in status line themes.
Capsule Status Line uses a Nerd Font only for its rounded capsule ends, and works without one; the Nerd Font is optional in its requirements.
Questions
What is a Nerd Font?
A programming font patched by the Nerd Fonts project to include thousands of extra glyphs: file type icons, git symbols, Powerline separators and rounded caps. The letters are the original font's.
Why do I see boxes or question marks in my prompt?
A tool is printing glyphs your current font does not have, usually Nerd Font icons or Powerline separators. Set your terminal to a Nerd Font, or turn those glyphs off in the tool.
Do I need a Nerd Font?
Only for tools that use its glyphs. Many status lines and prompts work without one, using plain characters instead.