TL;DR — Quick Summary

Starship is a fast, customizable cross-shell prompt showing git status, language versions, cloud context, and more. Works with bash, zsh, fish, and PowerShell.

Starship is a cross-shell prompt that shows you what you need, when you need it. Git branch with ahead/behind count? Only when you’re in a Git repo. Node.js version? Only when there’s a package.json. Kubernetes context? Only when there’s a kubeconfig. All rendered in under 10ms.

Installation

# Official installer
curl -sS https://starship.rs/install.sh | sh

# macOS
brew install starship

# Arch Linux
sudo pacman -S starship

# Cargo
cargo install starship --locked

# Windows (winget)
winget install starship

Shell Integration

# Bash — add to ~/.bashrc
eval "$(starship init bash)"

# Zsh — add to ~/.zshrc
eval "$(starship init zsh)"

# Fish — add to config.fish
starship init fish | source

# PowerShell — add to $PROFILE
Invoke-Expression (&starship init powershell)

Configuration

Create ~/.config/starship.toml:

# Timeout for commands that display how long they took
[time]
disabled = false
format = "[$time]($style) "

# Git status with custom symbols
[git_status]
ahead = "⇡${count}"
behind = "⇣${count}"
diverged = "⇕⇡${ahead_count}⇣${behind_count}"
modified = "!${count}"
untracked = "?${count}"

# Node.js version
[nodejs]
format = "via [$symbol($version)]($style) "

# Python version with virtualenv
[python]
format = "via [$symbol$pyenv_prefix($version)(\\($virtualenv\\))]($style) "

# Kubernetes context
[kubernetes]
disabled = false
format = "on [$symbol$context(\\($namespace\\))]($style) "

# Custom prompt format
format = """
$username$hostname$directory$git_branch$git_status
$nodejs$python$rust$golang$docker_context
$character"""

Common Modules

ModuleShowsWhen
git_branchBranch nameIn git repo
git_statusModified/staged/untrackedIn git repo
nodejsNode.js versionpackage.json exists
pythonPython + virtualenv.py files or venv
rustRust versionCargo.toml exists
docker_contextDocker contextDockerfile exists
kubernetesK8s contextkubeconfig exists
awsAWS profile/regionAWS config exists
cmd_durationCommand timeCommands > 2s
batteryBattery levelBelow threshold

Presets

# Nerd Font symbols (recommended)
starship preset nerd-font-symbols -o ~/.config/starship.toml

# Bracketed segments
starship preset bracketed-segments -o ~/.config/starship.toml

# Plain text (no icons)
starship preset plain-text-symbols -o ~/.config/starship.toml

# Pastel powerline
starship preset pastel-powerline -o ~/.config/starship.toml

Summary

  • Starship is a fast (<10ms), cross-shell prompt written in Rust
  • Shows contextual information only when relevant (git, language versions, cloud context)
  • Works with bash, zsh, fish, PowerShell, and more
  • Configure via a single TOML file with per-module settings
  • Presets provide instant themes; modules can be mixed and matched
  • Nerd Font recommended for icons but works with any font