What Starship Does
- Git info — branch, status, stash, upstream
- Language versions — Node, Python, Rust, Go, Java, Ruby, PHP, .NET, etc.
- Cloud — AWS/GCP/Azure profile
- Kubernetes — current context + namespace
- Docker context — show active context
- Package version — auto-detect package.json, Cargo.toml, pyproject.toml
- Command duration — show time for slow commands
- Exit code — red on non-zero
- Custom modules — run any command and display output
Architecture
Starship runs as a subprocess on each prompt. Reads TOML config, collects context from environment + git + language detection + cloud CLIs, renders using a single starship prompt call. Aggressive caching keeps it below ~50ms.
Self-Hosting
CLI tool, self-contained Rust binary.
Key Features
- Universal (any shell)
- Single TOML config
- 100+ built-in modules
- Nerd Font symbol support
- Command duration
- Right prompt support
- Conditional rendering
- Highly customizable colors and formats
- Lightning fast (<50ms)
Comparison
| Prompt | Language | Shells | Speed | Config |
|---|---|---|---|---|
| Starship | Rust | All | Fastest | TOML |
| Powerlevel10k | Zsh | Zsh only | Very fast | Interactive |
| Spaceship | Zsh | Zsh only | Slow | zsh vars |
| pure | Zsh | Zsh only | Fast | zsh vars |
| oh-my-posh | Go | All | Fast | JSON/YAML/TOML |
FAQ
Q: What about Powerlevel10k? A: p10k is slightly faster in zsh (no subprocess), but it's zsh-only. Starship is cross-shell with simpler config. Both are good choices.
Q: Do I need a Nerd Font? A: The default config uses Unicode symbols. A Nerd Font (JetBrainsMono Nerd Font, etc.) gives a nicer icon experience.
Q: What's the performance like?
A: Written in Rust; typical benchmarks are 20-50ms. If it's slow, use starship timings to diagnose which module is the bottleneck.
Sources & Credits
- Docs: https://starship.rs
- GitHub: https://github.com/starship/starship
- License: ISC