The minimal, blazing-fast, and infinitely customizable prompt for any shell!
Go to file
Antoine Stevan 470aeb09a7
feat: update the nushell init file and make it valid module and overlay (#5188)
* break long commands into multiple lines for readability

* fix the format of closures

We generally write `{|| ...}` instead of `{ || ...}`.

* remove the `$"--opt=(val)"` structure when possible

`starship` does not require to use `--opt=val` and so we do not
need to do that with Nushell :)

the only place where this is required is with `--status` because
`$env.LAST_EXIT_CODE` can be negative and `starship` does not
appear to *like* values of the form `-2`...
so i left this line as it was.

on the other hand, `$env.CMD_DURATION_MS` and `(term size).columns`
should be fine 😌

* simplify the `config` mutation with new `?` syntax

This is a new very handy feature of Nushell which gives a much
simpler command combined with `default` and `merge`.

* put all `let-env`s inside an `export-env` with `load-env`

This commit has two reasons of existing:
- i think it makes it a bit easier to read with less `let-env`s
- it transforms the *script* into both a valid module and a valid
overlay

* bump the version to `0.78` in to docs

* add a note about the init file being also a module to all docs

* tweak the documentation

* update the Nushell part of the install script

* format the vuepress config file

as previous commit 117580136d3da5e00a4ccb7ada508c8510a2e50e was
not successful, let's try to make the CI happy manually 😌

* remove code quotes in the `config_cmd` of Nushell

* format the style in the Nushell `warning` section
2023-06-12 11:02:46 +02:00
.github build(deps): update crate-ci/typos action to v1.15.0 2023-06-08 15:50:30 +00:00
docs feat: update the nushell init file and make it valid module and overlay (#5188) 2023-06-12 11:02:46 +02:00
install feat: update the nushell init file and make it valid module and overlay (#5188) 2023-06-12 11:02:46 +02:00
media docs: add Ukranian to the project README (#5147) 2023-04-28 23:07:35 +09:00
src feat: update the nushell init file and make it valid module and overlay (#5188) 2023-06-12 11:02:46 +02:00
.codecov.yml ci: add test coverage reporting with codecov (#3848) 2022-04-08 20:20:24 -04:00
.dprint.json build(deps): update dprint plugins 2023-05-15 01:00:34 +00:00
.gitattributes revert(schema): move config-schema back into .github folder (#3886) 2022-04-18 17:42:47 +02:00
.gitignore ci: Notarize MacOS Binaries and Add Flat Package Installers (#3571) 2022-02-27 15:58:28 -06:00
.rustfmt.toml style: make rustfmt use the default configuration (#1661) 2020-09-19 08:45:17 +02:00
CHANGELOG.md chore(master): release 1.15.0 (#5108) 2023-06-06 10:33:46 -04:00
CODE_OF_CONDUCT.md ci: Use `dprint` to format documentation + TOML files (#3426) 2022-01-20 11:32:09 +03:00
CONTRIBUTING.md docs: update CONTRIBUTING.md and README.md (#5153) 2023-05-09 07:58:34 +02:00
Cargo.lock build(deps): update rust crate tempfile to 3.6.0 2023-06-06 23:24:49 +00:00
Cargo.toml build(deps): update rust crate tempfile to 3.6.0 2023-06-06 23:24:49 +00:00
LICENSE chore: Update LICENSE file for 2022 (#3514) 2022-01-25 21:09:06 -06:00
README.md feat: update the nushell init file and make it valid module and overlay (#5188) 2023-06-12 11:02:46 +02:00
build.rs refactor: simplify `shadow-rs` setup in `build.rs` (#5209) 2023-06-01 21:18:12 +02:00
clippy.toml fix(windows): avoid verbatim paths (#3638) 2022-02-23 18:32:35 -05:00
crowdin.yml chore: update Crowdin PR title 2021-01-29 16:53:32 -05:00
deny.toml build(deps): update rust crate rust-ini to 0.19.0 (#5172) 2023-05-08 10:47:19 +02:00
snapcraft.yaml Revert "Specify personal-file interface for snap" 2023-06-06 10:23:58 -04:00
starship.exe.manifest feat: Add a Windows application manifest (#3590) 2022-02-20 18:12:40 +01:00
typos.toml chore: add spell checker to workflows (#4975) 2023-03-22 13:42:46 -05:00

README.md

Starship – Cross-shell prompt

GitHub Actions workflow status Crates.io version Packaging status
Chat on Discord Follow @StarshipPrompt on Twitter

Website · Installation · Configuration

English   Deutsch   Español   Français   Bahasa Indonesia   Italiano   日本語   Português do Brasil   Русский   Українська   Tiếng Việt   简体中文   繁體中文

SWUbanner

Starship with iTerm2 and the Snazzy theme

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

  • 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.

Explore the Starship docs  ▶

🚀 Installation

Prerequisites

Step 1. Install Starship

Select your operating system from the list below to view installation instructions:

Android

Install Starship using any of the following package managers:

Repository Instructions
Termux pkg install starship
BSD

Install Starship using any of the following package managers:

Distribution Repository Instructions
Any crates.io cargo install starship --locked
FreeBSD FreshPorts pkg install starship
NetBSD pkgsrc pkgin install starship
Linux

Install the latest version for your system:

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

Alternatively, install Starship using any of the following package managers:

Distribution Repository Instructions
Any crates.io cargo install starship --locked
Any conda-forge conda install -c conda-forge starship
Any Linuxbrew brew install starship
Any Snapcraft snap install --edge starship
Alpine Linux 3.13+ Alpine Linux Packages apk add starship
Arch Linux Arch Linux Community pacman -S starship
CentOS 7+ Copr dnf copr enable atim/starship
dnf install starship
Gentoo Gentoo Packages emerge app-shells/starship
Manjaro pacman -S starship
NixOS nixpkgs nix-env -iA nixpkgs.starship
Void Linux Void Linux Packages xbps-install -S starship
macOS

Install the latest version for your system:

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

Alternatively, install Starship using any of the following package managers:

Repository Instructions
crates.io cargo install starship --locked
conda-forge conda install -c conda-forge starship
Homebrew brew install starship
MacPorts port install starship
Windows

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

Step 2. Set up your shell to use Starship

Configure your shell to initialize starship. Select yours from the list below:

Bash

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

eval "$(starship init bash)"
Cmd

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"))()
Elvish

Add the following to the end of ~/.elvish/rc.elv:

eval (starship init elvish)

Note: Only Elvish v0.18+ is supported

Fish

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

starship init fish | source
Ion

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

eval $(starship init ion)
Nushell

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

Note: Only Nushell v0.78+ is supported

PowerShell

Add the following to the end of your PowerShell configuration (find it by running $PROFILE):

Invoke-Expression (&starship init powershell)
Tcsh

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

eval `starship init tcsh`
Xonsh

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

execx($(starship init xonsh))
Zsh

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

eval "$(starship init zsh)"

Step 3. Configure Starship

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:

  • Configuration learn how to configure Starship to tweak your prompt to your liking

  • Presets get inspired by the pre-built configuration of others

🤝 Contributing

We are always looking for contributors of all skill levels! If you're looking to ease your way into the project, try out a good first issue.

If you are fluent in a non-English language, we greatly appreciate any help keeping our docs translated and up-to-date in other languages. If you would like to help, translations can be contributed on the Starship Crowdin.

If you are interested in helping contribute to starship, please take a look at our Contributing Guide. Also, feel free to drop into our Discord server and say hi. 👋

💭 Inspired By

Please check out these previous works that helped inspire the creation of starship. 🙏

❤️ Sponsors

Support this project by becoming a sponsor. Your name or logo will show up here with a link to your website.

Supporter Tier


Starship rocket icon

📝 License

Copyright © 2019-present, Starship Contributors.
This project is ISC licensed.