β οΈ Starship is still a work in progress but is now far enough along to be used as a prompt (I personally use it as my daily driver)
Starship is a Rust port of the minimalistic, powerful, and extremely customizable prompt Spaceship ZSH.
The project is beginning as a port of Spaceship ZSH, but will be improved in areas where Spaceship ZSH was previously limited:
- Speed
- Concurrency of segment logic execution
- Memoization of expensive operations
- Safety and error handling
- Testability of code
- Configuration
- Cross-shell support with JSON or TOML config files
We will not be aiming to achieve full parity with Spaceship ZSH as a result, so I am very open to discussing and reevaluating new solutions and ideas for the prompt.
I'm very new to Rust, so any help is appreciated when it comes to improving development patterns, writing idiomatic Rust, performance, safety, etc. π
- Prompt character turns red if the last command exits with non-zero code.
- Current Node.js version(
β¬’
). - Current Rust version (
π¦
). - Current Python version (
π
). - Current Go version (
πΉ
). - Package version of package in current directory (
π¦
). - Current battery level and status
- Current Git branch and rich repo status:
=
β conflicting changesβ‘
β ahead of remote branchβ£
β behind of remote branchβ
β diverged changes?
β untracked changes$
β stashed changes!
β modified files+
β added filesΒ»
β renamed filesβ
β deleted files
- Indicator for jobs in the background (
β¦
). - Execution time of the last command if it exceeds the set threshold.
-
starship.toml
configuration - Custom sections given commands or binaries
- Fish shell
- Z Shell
- Bash
- Per-segment benchmarking
- Per-segment unit + integration tests
- Shell + OS matrix acceptance tests
- Rust v1.33 or higher
- A Powerline font (like Fira Code) installed and enabled in your terminal emulator
-
Install the starship binary:
cargo install starship
-
Add the init script to your shell's config file:
Add the following to the end of
~/.bashrc
or~/.zshrc
:# ~/.bashrc or ~/.zshrc eval "$(starship init $0)"
Add the following to the end of
~/.config/fish/config.fish
:# ~/.config/fish/config.fish eval (starship init fish)
π§ Configuration features and documentation are in the process of being developed
Thanks goes to these wonderful people (emoji key):
This project follows the all-contributors specification. Contributions of any kind welcome!