Starship: Cross-Shell Prompt

2 min read Original article ↗

The minimal, blazing-fast, and infinitely customizable prompt for any shell!

Compatibility First

Works on the most common shells on the most common operating systems. Use it everywhere!

Rust-Powered

Brings the best-in-class speed and safety of Rust, to make your prompt as quick and reliable as possible.

Customizable

Every little detail is customizable to your liking, to make this prompt as minimal or feature-rich as you'd like it to be.

Prerequisites

  • A Nerd Font installed and enabled in your terminal.

Quick Install

  1. Install the starship binary:

    Install Latest Version

    With Shell:

    sh

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

    To update the Starship itself, rerun the above script. It will replace the current version without touching Starship's configuration.

    Install via Package Manager

    With Homebrew:

    With Winget:

    powershell

    winget install starship
  2. Add the init script to your shell's config file:

    Bash

    Add the following to the end of ~/.bashrc:

    sh

    # ~/.bashrc
    
    eval "$(starship init bash)"

    Fish

    Add the following to the end of ~/.config/fish/config.fish:

    sh

    # ~/.config/fish/config.fish
    
    starship init fish | source

    Zsh

    Add the following to the end of ~/.zshrc:

    sh

    # ~/.zshrc
    
    eval "$(starship init zsh)"

    Powershell

    Add the following to the end of Microsoft.PowerShell_profile.ps1. You can check the location of this file by querying the $PROFILE variable in PowerShell. Typically the path is ~\Documents\PowerShell\Microsoft.PowerShell_profile.ps1 or ~/.config/powershell/Microsoft.PowerShell_profile.ps1 on -Nix.

    sh

    Invoke-Expression (&starship init powershell)

    Ion

    Add the following to the end of ~/.config/ion/initrc:

    sh

    # ~/.config/ion/initrc
    
    eval $(starship init ion)

    Elvish

    WARNING

    Only elvish v0.18 or higher is supported.

    Add the following to the end of ~/.config/elvish/rc.elv (%AppData%\elvish\rc.elv on Windows):

    sh

    # ~/.elvish/rc.elv
    
    eval (starship init elvish)

    For elvish versions prior to v0.21.0 the config file might instead be ~/.elvish/rc.elv

    Tcsh

    Add the following to the end of ~/.tcshrc:

    sh

    # ~/.tcshrc
    
    eval `starship init tcsh`

    Nushell

    WARNING

    This will change in the future. Only Nushell v0.96+ is supported.

    Add the following to the end of your Nushell configuration (find it by running $nu.config-path in Nushell):

    sh

    mkdir ($nu.data-dir | path join "vendor/autoload")
    starship init nu | save -f ($nu.data-dir | path join "vendor/autoload/starship.nu")

    Xonsh

    Add the following to the end of ~/.xonshrc:

    sh

    # ~/.xonshrc
    
    execx($(starship init xonsh))

    Cmd

    You need to use Clink (v1.2.30+) with Cmd. Add the following to a file starship.lua and place this file in Clink scripts directory:

    lua

    -- starship.lua
    
    load(io.popen('starship init cmd'):read("*a"))()