Skip to content
← Back to all tools

Starship

Free

One config file, the same prompt in every shell

Open Source No Ads No Tracking Offline No Sign-up Cross-platform

A cross-shell prompt that displays the current Git branch and dirty state, language runtime versions, cloud context, and the previous command's duration and exit code. Bash, Zsh, Fish, PowerShell and Nushell all read the same TOML configuration.

Why we picked it

ISC-licensed, 60,000 stars.

Everyone has fought this once: a string of \[\e[32m\] escapes in Bash, oh-my-zsh plus a theme in Zsh, something else again in PowerShell. Change machines or change shells and it all starts over.

Starship lifts that layer out: one binary, one starship.toml, identical in every shell. Modules appear only when relevant — the Rust version shows up inside a Rust project, the branch inside a Git repository — instead of parking information you do not need on every line.

Showing the previous command's duration past a threshold is a small thing that earns its place for anyone running builds.

To be clear about:

  • Icons need a Nerd Font, so the terminal font has to change. There are plain-text presets for those who would rather not.
  • It runs detection on every prompt, which can lag on a very slow network filesystem; modules can be disabled individually.