Ultimate Terminal Beautification Guide: Starship + Ghostty + zsh to Create a High-Visual-Appeal…
As a developer, the terminal is one of the tools you face for the longest time every day. Last time, I replaced Ghostty with Kaku, but…
Ultimate Terminal Beautification Guide: Starship + Ghostty + zsh to Create a High-Visual-Appeal Vibe Coding Environment
As a developer, the terminal is one of the tools you face for the longest time every day. Last time, I replaced Ghostty with Kaku, but after using it for a while, I really couldn't accept its tabs, so I switched back to Ghostty and paired it with Starship to decorate the terminal into something both practical and aesthetically pleasing.
Take a Look at the Demo Effect
Why This Combination?

The Perfect Combination of the Three can bring you:
- Silky smooth input experience
- Unified and coordinated visual style
- Out-of-the-box usability with flexibility
- Consistent local and remote SSH environments

I. Ghostty
Ghostty is a terminal emulator developed by HashiCorp founder Mitchell Hashimoto using the Zig language. After being officially open-sourced at the end of 2024, it quickly became a popular choice in the developer community.
▸ Core Highlights
- GPU Acceleration: Enabled by default with Metal (macOS) or OpenGL (Linux), silky smooth rendering
- Native Experience: Perfectly integrates into macOS and Linux desktop environments
- Zero Configuration: Ready to use out of the box, no tinkering needed
- Full Features: Split screens, tabs, Quick Terminal, custom shaders
▸ Installation (macOS)
brew install --cask ghostty
▸ Basic Configuration
The config file location can be opened directly by clicking on the settings in the Ghostty menu. The configuration is in plain text format. Refer to the following example; there are many ready-to-copy configs online that you can modify according to your needs.
# Appearance
macos-icon = retro
theme = "TokyoNight"
title = " "
macos-titlebar-proxy-icon = "hidden"
# Fonts (Use Nerd Font to display icons)
font-family = "MesloLGS NF"
font-size = 15
font-thicken = true
# Cursor
adjust-cursor-thickness = 10
# Copy-paste behavior optimization
copy-on-select = "clipboard"
clipboard-trim-trailing-spaces = true
▸ Theme Selection
Ghostty has a rich built-in theme library. Use the following command for interactive preview:
ghostty +list-themes
Popular theme recommendations:
- TokyoNight - Deep blue-purple tones, full of modern feel
- Gruvbox Dark - Retro color scheme, eye-friendly and durable
- Catppuccin - Soft colors, extremely attractive visuals
▸ Quick Key Shortcuts

💡 Tip: Ghostty's splits are "application-level"; they disappear when the window closes. For persistent sessions, pair with tmux.
II. Starship: Minimalist yet Powerful Cross-Platform Prompt
Starship is a command-line prompt tool written in Rust that seamlessly integrates with any Shell. Compared to traditional powerlevel10k, it's lighter, faster, and simpler to configure.
▸ Installation
macOS / Linux:
curl -sS https://starship.rs/install.sh | sh
Or via Homebrew:
brew install starship
▸ Shell Configuration
zsh (Add to the end of ~/.zshrc):
eval "$(starship init zsh)"
Important Note: If you're using oh-my-zsh, you don't need to remove it! oh-my-zsh handles plugins, aliases, and completion systems, while Starship only manages prompt rendering—the two coexist perfectly.
▸ Preset Configurations: Beauty Out of the Box
Starship officially provides multiple carefully designed presets; simply apply your favorite one:
# Backup existing configuration first
cp ~/.config/starship.toml ~/.config/starship.toml.bak 2>/dev/null || true
# Apply Gruvbox Rainbow preset
starship preset gruvbox-rainbow -o ~/.config/starship.toml
# Or Tokyo Night preset
starship preset tokyo-night -o ~/.config/starship.toml
▸ Popular Preset Recommendations

▸ Custom Fine-Tuning
Add personalized settings in ~/.config/starship.toml:
# Add a blank line between commands
add_newline = true
# Disable OS module (if you don't want to show system icons)
[os]
disabled = true
# Customize Git status symbols
[git_status]
ahead = "⇡${count}"
behind = "⇣${count}"
diverged = "⇕"
▸ Full Configuration Example (Tokyo Night Style)
# Basic settings
add_newline = true
format = """
[](color_orange)$os$username[](bg:color_yellow fg:color_orange)[](bg:color_aqua fg:color_yellow)$directory[](fg:color_aqua bg:color_blue)$git_branch$git_status[](fg:color_blue bg:color_bg3)$nodejs$rust$golang[](fg:color_bg3 bg:color_bg1)
$character"""
# Palette
palette = 'tokyo_night'
[palettes.tokyo_night]
color_bg1 = "#1a1b26"
color_bg3 = "#24283b"
color_blue = "#7aa2f7"
color_aqua = "#73daca"
color_yellow = "#e0af68"
color_orange = "#ff9e64"
color_red = "#f7768e"
# OS module
[os]
disabled = false
style = "bg:color_orange fg:color_bg1"
[os.symbols]
Macos = ""
Linux = ""
# Username
[username]
show_always = true
style_user = "bg:color_orange fg:color_bg1"
style_root = "bg:color_orange fg:color_red"
format = '[ $user]($style)'
# Directory
[directory]
style = "bg:color_aqua fg:color_bg1"
format = "[ $path ]($style)"
truncation_length = 3
home_symbol = "~"
# Git
[git_branch]
symbol = ""
style = "bg:color_blue"
format = "[ $symbol $branch]($style)"
[git_status]
style = "bg:color_blue"
format = "[ $all_status$ahead_behind]($style)"
# Programming language modules
[nodejs]
symbol = ""
style = "bg:color_bg3"
format = "[ $symbol $version]($style)"
[rust]
symbol = ""
style = "bg:color_bg3"
format = "[ $symbol $version]($style)"
[character]
success_symbol = "[➜](bold green)"
error_symbol = "[✗](bold red)"
III. zsh Plugins: The Cherry on Top
Starship handles prompt beautification, while zsh plugins enhance the interactive experience. Here are three essential plugins to recommend:
▸ 1. zsh-autosuggestions (Auto-Suggestions)
Automatically suggests completions based on command history; press the right arrow key to accept the suggestion.
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
Add to the plugins array in ~/.zshrc:
plugins=(
git
zsh-autosuggestions
zsh-syntax-highlighting
fzf
)
▸ 2. zsh-syntax-highlighting (Syntax Highlighting)
Real-time syntax highlighting in Fish shell style, so you can spot if a command exists while typing.
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
▸ 3. fzf (Fuzzy Search)
brew install fzf
$(brew --prefix)/opt/fzf/install
Use Ctrl+R to search command history, Ctrl+T to search files.
IV. Font Configuration: The Secret to Displaying Icons
To achieve the rich icon displays in Starship, you must install a Nerd Font.
▸ Recommended Fonts
- MesloLGS NF - Best compatibility, recommended for beginners
- JetBrainsMono Nerd Font - Programmer-friendly with clear glyphs
- FiraCode Nerd Font - Ligature support for beautiful code display
▸ Installation
brew tap homebrew/cask-fonts
brew install --cask font-meslo-lg-nerd-font
Specify in Ghostty configuration:
font-family = "MesloLGS NF"
V. SSH Remote Environment Configuration
This setup looks great locally, but it's also perfect for SSH to remote servers:
▸ Install Starship on the Remote Server
# User-level installation (no sudo needed)
curl -sS https://starship.rs/install.sh | sh -s -- -b ~/.local/bin
# Add to PATH
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc # Or ~/.zshrc
▸ Ghostty Terminfo Configuration
Ghostty sets TERM=xterm-ghostty, and when SSHing to systems like Ubuntu, you may encounter an "unknown terminal type" error.
Solution: Push terminfo to the remote host
# User-level installation (recommended)
TI_PATH="/Applications/Ghostty.app/Contents/Resources/terminfo"
infocmp -x -A "$TI_PATH" xterm-ghostty | ssh user@host 'tic -x -'
# Verification
ssh user@host 'infocmp xterm-ghostty'
6. Summary
The combination of Ghostty + Starship + zsh represents the best practices for terminal beautification:
- Ghostty provides a fast, native terminal experience
- Starship brings a beautiful, information-rich command prompt
- zsh plugins enhance interaction efficiency and convenience
This setup not only looks great but is also stable, efficient, and easy to maintain. Especially for developers who frequently switch between local and remote servers, a consistent prompt experience can significantly improve workflow smoothness.
If you're still using the default terminal or outdated configurations, why not spend half an hour trying this combination? You'll fall in love with every minute of working in the terminal.
메타데이터
- post_id
- 6b8f21063cb5
- slug
- ultimate-terminal-beautification-guide-starship-ghostty-zsh-to-create-a-high-visual-appeal-6b8f21063cb5
- url
- https://medium.com/@piedpay/ultimate-terminal-beautification-guide-starship-ghostty-zsh-to-create-a-high-visual-appeal-6b8f21063cb5
- canonical_url
- https://medium.com/@piedpay/ultimate-terminal-beautification-guide-starship-ghostty-zsh-to-create-a-high-visual-appeal-6b8f21063cb5
- author_url
- https://medium.com/@piedpay
- status
- ok
- fetched_at
- 2026-06-09 15:37:30