Skip to content

Starship Prompt

Starship is a minimal, blazing-fast, and infinitely customizable prompt for any shell. It shows information you need while you work, staying out of your way when you don't.

Why Starship?

Speed

Starship is written in Rust and optimized for speed. It renders prompts asynchronously, meaning your shell stays responsive even when displaying complex information like git status or cloud contexts.

Cross-Shell

One configuration works across all major shells:

  • Bash
  • Zsh
  • Fish
  • PowerShell
  • Nushell
  • Cmd (via Clink)

Intelligent Defaults

Starship automatically detects your environment and shows relevant information:

  • Git branch and status when in a repository
  • Programming language versions when relevant files are present
  • Cloud provider context when configured
  • Command execution time for long-running commands

Highly Customizable

Every aspect of the prompt can be configured through a single TOML file. Enable, disable, or customize any module to match your workflow.

Quick Start

Installation

Install via package manager or shell script:

brew install starship
curl -sS https://starship.rs/install.sh | sh
cargo install starship --locked

Shell Setup

Add the initialization to your shell configuration:

Add to ~/.bashrc:

eval "$(starship init bash)"

Add to ~/.zshrc:

eval "$(starship init zsh)"

Add to ~/.config/fish/config.fish:

starship init fish | source

Create Configuration

Create the configuration file:

mkdir -p ~/.config
touch ~/.config/starship.toml

Verify Installation

Restart your shell or source your configuration:

source ~/.bashrc  # or ~/.zshrc

You should see a new prompt with the default Starship styling.

Default Prompt

Out of the box, Starship shows:

~/projects/myapp on  main [!?] via  v18.17.0

This indicates:

Element Meaning
~/projects/myapp Current directory (truncated)
main Git branch
[!?] Git status (modified, untracked)
v18.17.0 Node.js version (detected from package.json)

Configuration Overview

Starship is configured through ~/.config/starship.toml. Here's a minimal example:

# Don't print a new line at the start of the prompt
add_newline = false

# Customize the prompt character
[character]
success_symbol = "[>](bold green)"
error_symbol = "[>](bold red)"

# Disable the package module
[package]
disabled = true

Documentation Structure

This guide is organized into the following sections:

Section Description
Installation Detailed installation for all platforms
Configuration Configuration file and format strings
Modules Overview of all available modules
Git Modules Git branch, status, and state
Language Modules Programming language version display
Cloud Modules AWS, GCP, Kubernetes contexts
System Modules Time, battery, memory, and more
Styling Colors, fonts, and visual customization
Presets Built-in and custom presets
Advanced Custom commands and conditional logic
Troubleshooting Common issues and solutions
Reference Quick reference card

Resources