- Fast: it's fast โ really really fast! ๐
- Customizable: configure every aspect of your prompt.
- Universal: works on any shell, on any operating system.
- Intelligent: shows relevant information at a glance.
- Feature-rich: support for all your favorite tools.
- Easy: quick to install โ start using it in minutes.
- Install a Nerd Font and enabled in your terminal. (for example, try this Caskaydia Cove Nerd Font
Select your operating system from the list below to view installation instructions:
- Ubuntu/Mint:
sudo apt install curl
- Fedora:
sudo dnf install curl
- Manjaro/Arch:
sudo pacman -S curl
Then Install the latest version for your system:
curl -sS https://starship.rs/install.sh | sh
Distribution | Instructions |
---|---|
Any | cargo install starship --locked |
Any | conda install -c conda-forge starship |
Any | brew install starship |
Alpine Linux 3.13+ | apk add starship |
Arch Linux | pacman -S starship |
CentOS 7+ | dnf copr enable atim/starship dnf install starship |
Gentoo | emerge app-shells/starship |
Manjaro | pacman -S starship |
NixOS | nix-env -iA nixpkgs.starship |
openSUSE | zypper in starship |
Void Linux | xbps-install -S starship |
Install the latest version for your system:
curl -sS https://starship.rs/install.sh | sh
Install the latest version for your system with the MSI-installers from the releases section.
Install Starship using any of the following package managers:
Repository | Instructions |
---|---|
crates.io | cargo install starship --locked |
Chocolatey | choco install starship |
conda-forge | conda install -c conda-forge starship |
Scoop | scoop install starship |
winget | winget install --id Starship.Starship |
Configure your shell to initialize starship. Select yours from the list below:
Add the following to the end of ~/.bashrc
:
eval "$(starship init bash)"
You need to use Clink (v1.2.30+) with Cmd. Create a file at this path %LocalAppData%\clink\starship.lua
with the following contents:
load(io.popen('starship init cmd'):read("*a"))()
Add the following to the end of ~/.config/fish/config.fish
:
starship init fish | source
Add the following to the end of your Nushell env file (find it by running $nu.env-path
in Nushell):
mkdir ~/.cache/starship
starship init nu | save -f ~/.cache/starship/init.nu
And add the following to the end of your Nushell configuration (find it by running $nu.config-path
):
use ~/.cache/starship/init.nu
Add the following to the end of your PowerShell configuration (find it by running $PROFILE
):
Invoke-Expression (&starship init powershell)
Add the following to the end of ~/.zshrc
:
eval "$(starship init zsh)"
Start a new shell instance, and you should see your beautiful new shell prompt. If you're happy with the defaults, enjoy!
If you're looking to further customize Starship:
To get started configuring starship, create the following file: ~/.config/starship.toml
.
~/.config && touch ~/.config/starship.toml && sudo nano starship.toml
Then copy all config lines and paste in starship.toml
file then save it.
# ==========================================================
# ๐ Custom Starship Prompt Configuration by A. Z. M. Arif ๐
# ๐ง Crafted with care, full of tweaks, emojis & style!
# ๐ GitHub / Portfolio: azmarif.dev | Google me: azmarifdev
# ==========================================================
# ~/.config/starship.toml
add_newline = true
format = """\
$hostname $directory$git_branch$git_commit$git_state$git_status$git_metrics
$character\
"""
# Uncomment the modules you need in right_format.
# Keep others commented as reference for future use.
# right_format = """\
# $username
# $localip\
# $shlvl\
# $singularity\
# $kubernetes\
# $directory\
# $vcsh\
# $fossil_branch\
# $fossil_metrics\
# $hg_branch\
# $pijul_channel\
# $docker_context\
# $package\
# $c\
# $cmake\
# $cobol\
# $daml\
# $dart\
# $deno\
# $dotnet\
# $elixir\
# $elm\
# $erlang\
# $fennel\
# $gleam\
# $golang\
# $guix_shell\
# $haskell\
# $haxe\
# $helm\
# $java\
# $julia\
# $kotlin\
# $gradle\
# $lua\
# $nim\
# $nodejs\
# $ocaml\
# $opa\
# $perl\
# $php\
# $pulumi\
# $purescript\
# $python\
# $quarto\
# $raku\
# $rlang\
# $red\
# $ruby\
# $rust\
# $scala\
# $solidity\
# $swift\
# $terraform\
# $typst\
# $vlang\
# $vagrant\
# $zig\
# $buf\
# $nix_shell\
# $conda\
# $meson\
# $spack\
# $memory_usage\
# $aws\
# $gcloud\
# $openstack\
# $azure\
# $nats\
# $direnv\
# $env_var\
# $mise\
# $crystal\
# $custom\
# $sudo\
# $cmd_duration\
# $line_break\
# $jobs\
# $battery\
# $status\
# $os\
# $container\
# $netns\
# $shell\
# $time\
# """
continuation_prompt = 'โถโถ '
[character]
success_symbol = "[โ](bold blue) "
error_symbol = "[โ](bold red) "
[username]
disabled = false
[hostname]
ssh_only = false
format = "[$hostname](bold #ee00ff) [โฏ](bold green)"
trim_at = ".companyname.com"
disabled = false
[directory]
truncation_length = 5
truncate_to_repo = true
read_only = " ๐"
read_only_style = "red"
style = "bold italic blue"
format = "[$path]($style)[$read_only]($read_only_style) "
[cmd_duration]
min_time = 0
show_milliseconds = false
disabled = false
format = "[๏ $duration](bold yellow)"
style = "bold italic blue"
[docker_context]
format = "[$context](blue bold)"
symbol = '๏ '
[kubernetes]
format = 'on [โธ $context \($namespace\)](dimmed green) '
style = "bold bright-cyan"
symbol = "๏ "
disabled = false
[kubernetes.context_aliases]
"dev.local.cluster.k8s" = "dev"
".*/openshift-cluster/.*" = "openshift"
"gke_.*_(?P<cluster>[\\w-]+)" = "gke-$cluster"
[git_branch]
symbol = "๏ "
format = " [ ๎ $branch](fg:#9198a1)"
truncation_length = 15
truncation_symbol = ""
[git_commit]
commit_hash_length = 4
tag_symbol = " ๏ฐ "
[git_state]
format = '[\($state( $progress_current of $progress_total)\)]($style) '
cherry_pick = "[โฏโฏ PICKING](bold red)"
[git_status]
conflicted = '$ {count}โ '
ahead = 'โก${count}'
behind = 'โฃ${count}'
diverged = 'โโก${ahead_count}โฃ${behind_count}'
untracked = ' ${count}ใฅ '
stashed = ' ${count}โ '
modified = ' ${count}โ '
staged = ' ${count}โฃ '
renamed = ' ${count}โ '
deleted = ' ${count}โ '
format = '[[(๎ช $all_status$ahead_behind )](fg:#769ff0)]($style)'
style = "bg:#394260"
[time]
disabled = false
format = '[[ ๏บ $time ](fg:#a0a9cb )]($style)'
time_format = "%R"
[memory_usage]
symbol = "๏ก "
style = "bold bright-cyan"
format = " mem [${ram}( ${swap})]($style)"
[aws]
disabled = false
symbol = "๎ฝ "
format = " [aws](italic) [$symbol $profile $region]($style)"
style = "bold blue"
[azure]
symbol = "๎ฏ "
format = " [azure](italic) [$symbol]($style)"
style = "bold bright-yellow"
[gcloud]
symbol = "gcloud "
format = " [gcloud](italic) [$symbol]($style)"
style = "bold bright-cyan"
# โโโโโโโโโโโโโโโโ Language / Runtime Support โโโโโโโโโโโโโโโโ
[nodejs]
format = "[๎ $version](bold green) "
detect_files = ["package.json", ".node-version", "package-lock.json", "yarn.lock"]
detect_folders = ["node_modules"]
[python]
symbol = "[๎ด ](bold bright-blue)"
format = "[๎ด ($virtualenv) $version](bold bright-yellow)"
version_format = "${raw}"
[rust]
symbol = "๎ "
format = " rs(italic) $symbol($style)"
style = "bold bright-red"
[golang]
format = "[๎ง $version](bold cyan)"
[dart]
symbol = "๎ "
format = " dart [$symbol]($style)"
style = "bold bright-cyan"
[lua]
format = "[๎ $version](bold blue)"
[php]
symbol = "๎ "
format = " [php](italic) [$symbol]($style)"
style = "bold bright-red"
[ruby]
symbol = "๎
"
format = " [rb](italic) [$symbol]($style)"
style = "bold red"
[swift]
symbol = "๎ "
format = " [sw](italic) [$symbol]($style)"
style = "bold bright-red"
[cpp]
symbol = "๎ "
format = " [cpp](italic) [$symbol]($style)"
style = "bold bright-cyan"
[conda]
symbol = "โฏ "
format = " conda [$symbol$environment]($style)"
style = "bold bright-red"
[helm]
format = "[โ $version](bold white)"
[elixir]
symbol = "๎ต "
format = " exs [$symbol OTP $otp_version ]($style)"
style = "bold bright-yellow"
[haskell]
symbol = "ฮป "
format = " [ฮป $version](bold bright-magenta)"
[java]
symbol = "๎ "
format = " [โ $version](bold red)"
[julia]
symbol = "เฎ "
format = " [เฎ $version](bold bright-purple)"
[kotlin]
symbol = "๐
บ "
format = " [๐
บ $version](bold blue)"
[perl]
symbol = "๐ช "
format = " [pl $version](bold bright-cyan)"
[scala]
symbol = "๎ท "
format = " [๎ท $version](bold red)"
[terraform]
symbol = "๓ฑข "
format = " [๓ฑข $version](bold magenta)"
[crystal]
symbol = "๐ฎ "
format = " [๐ฎ $version](bold cyan)"
[ocaml]
symbol = "๐ซ "
format = " [๐ซ $version](bold yellow)"
[zig]
symbol = "โก "
format = " [โก Zig $version](bold yellow)"
[vlang]
symbol = "๐น "
format = " [V $version](bold cyan)"
[deno]
symbol = "๐ฆ "
format = " [๐ฆ Deno $version](bold green)"
[cmake]
format = " [๐ CMake $version](bold cyan)"
[gradle]
symbol = "๐งฑ "
format = " [๐งฑ Gradle $version](bold purple)"
[meson]
format = " [๐ Meson $version](bold bright-blue)"
[guix_shell]
symbol = "โป๏ธ "
format = " [guix: $name](bold green)"
# โโโโโโโโโโโโโโโโ Platform/Infra/Utility Modules โโโโโโโโโโโโโโโโ
[nix_shell]
symbol = "โ๏ธ "
format = " [โ๏ธ nix: $name](bold blue)"
impure_msg = "impure"
pure_msg = "pure"
unknown_msg = "unknown"
style = "bold bright-blue"
disabled = false
[container]
symbol = "๐ฆ "
format = " [๐ฆ container: $name](bold red)"
style = "bold red"
disabled = false
[pulumi]
symbol = "๏ฒ "
format = " [๏ฒ Pulumi $username](bold magenta)"
style = "bold bright-magenta"
disabled = false
[vagrant]
symbol = "๐ฆ "
format = " [๐ฆ Vagrant $version](bold bright-yellow)"
disabled = false
# โโโโโโโโโโโโโโโโ System Info Modules โโโโโโโโโโโโโโโโ
[battery]
full_symbol = "๐"
charging_symbol = "โก๏ธ"
discharging_symbol = "๐"
format = " [$symbol $percentage]($style) "
style = "bold green"
disabled = false
[shell]
format = " [๎ $indicator]($style)"
style = "bold purple"
disabled = false
[sudo]
format = " [๏ as root](bold red)"
style = "bold red"
disabled = false
[os]
format = " [๏ $name](bold white)"
style = "bold bright-blue"
disabled = false
[status]
format = ' [โ $status](bold red)'
disabled = false
[jobs]
symbol = "โฆ "
format = " [$symbol$number]($style)"
style = "bold bright-green"
disabled = false
# โโโโโโโโโโโโโโโโ Miscellaneous โโโโโโโโโโโโโโโโ
[env_var]
variable = "CUSTOM_ENV"
format = " [$env_value](bold blue)"
[package]
symbol = 'โ '
# You can continue adding more languages like Haskell, Nim, Kotlin, etc. from the second config if needed
Follow this shortcut if you don't know how to save and exit the nano file.
(Press Ctrl + O then Press Enter to Save And Press Ctrl + X to Exit)
- Starship Docs
- Configuration โ learn how to configure Starship to tweak your prompt to your liking
- Presets โ get inspired by the pre-built configuration of others