Starship
A minimal, blazing-fast, and infinitely customizable prompt for any shell.
Starship is a cross-shell prompt written in Rust that works with Bash, Zsh,
Fish, PowerShell, and more. It shows only the information you need — the current
directory, git branch, language versions, exit codes — and stays out of the way
the rest of the time. Configuration is done through a single
~/.config/starship.toml file.
Features
- Cross-shell — works identically on Bash, Zsh, Fish, PowerShell, Ion, and others
- Context-aware — shows Python version only in Python projects, Node version only in Node projects, and so on
- Git integration — displays branch, status, ahead/behind counts, and staged/unstaged changes
- Blazing fast — written in Rust and designed to add no perceptible latency to your prompt
- Nerd Font support — optional icons for a richer visual experience
- Preset themes — ships with a collection of community presets you can apply with a single command
Installation
cargo install starship --locked
Or via your package manager:
# macOS
brew install starship
# Debian / Ubuntu
# No apt package available; use the official install script (works on all Linux distributions):
curl -sS https://starship.rs/install.sh | sh
# Fedora
dnf install starship
# Arch Linux
pacman -S starship
# Windows (winget)
winget install Starship.StarshipSetup
Add the init hook to your shell's config file:
# ~/.bashrc
eval "$(starship init bash)"
# ~/.zshrc
eval "$(starship init zsh)"
# ~/.config/fish/config.fish
starship init fish | sourceConfiguration
Starship is configured via ~/.config/starship.toml. Every module is
individually tunable:
# Show a blank line between shell prompts
add_newline = true
[character]
success_symbol = "[➜](bold green)"
error_symbol = "[➜](bold red)"
[directory]
truncation_length = 3
truncate_to_repo = true
[git_branch]
symbol = " "
style = "bold purple"
[rust]
symbol = " "
Apply a community preset in one command:
starship preset gruvbox-rainbow -o ~/.config/starship.toml