The minimal, blazing-fast, and infinitely customizable prompt for any shell!
Go to file
A 276865e4da
docs(preset): Add Jetpack Preset (#5261)
* build(deps): update clap crates

* build(deps): update rust crate notify-rust to 4.7.1

* build(deps): update rust crate shadow-rs to 0.20.1

* build(deps): update rust crate git-features to 0.26.5

* build(deps): update rust crate notify-rust to 4.8.0

* docs(kubernetes): Remove extra backspace from regex in example (#4905)

Remove extra backspace from regex in example

In the example, `[\\w-]` would match a literal backspace `\`, the
character `w` or a dash `-`. By removing the backspace, instead it
matches any "word character" `\w` or a dash `-`.

* docs(i18n): new Crowdin updates (#4877)

* chore: use updated gitoxide crate names (#4913)

* build(deps): update rust crate gix to 0.37.1

* build(deps): update rust crate toml_edit to 0.19.4

* docs(install): update nushell instructions in installation script (#4921)

Improve Nushell installation instruction

Consistently use `save -f` rather than `save`; the latter fails if the
file already exists

Signed-off-by: Michel Alexandre Salim <michel@michel-slm.name>

* build(deps): update rust crate clap_complete to 4.1.3

* build(deps): update rust crate gix to 0.37.2

* docs(i18n): new Crowdin updates (#4925)

* chore(master): release 1.13.0 (#4730)

* build(deps): update rust crate tempfile to 3.4.0

* fix: trigger release

* chore(master): release 1.13.1 (#4937)

* ci: set Node version for docs build

* ci: allow docs to be manually published via workflow_dispatch

* ci: remove unneeded dependency in publish job

* ci: add caching for docs publishing step

* build(deps): update rust crate schemars to 0.8.12

* build(deps): update dprint plugins

* build(deps): update rust crate shadow-rs to 0.21.0

* build(deps): update clap crates

* feat(release): handle chocolatey starship.portable and starship.install pkg publishing (#4723)

Handles starship.install (MSI installer) and starship.portable and makes starship an 
empty meta-package that only depends on starship.install. MSI/installer packages 
seem to be preferred over zip-based installers on chocolatey. Proper virtual packages 
that allow choosing either a portable or install variant aren't implemented in chocolatey yet.

* ci: replace `audit` with `deny` action (#4856)

* build(deps): update rust crate clap to 4.1.8

* build(deps): update gitoxide crates

* ci: use `reviewdog/action-suggester` for config-schema check (#4857)

* ci: use `reviewdog/action-suggester` for config-schema check

* increase workflow permissions

* fix(preset): add output-flag to avoid encoding issues (#4926)

* build(deps): update rust crate rayon to 1.7.0

* build(deps): update gitoxide crates

* build(deps): update pest crates to 2.5.6

* build(deps): update rust crate serde_json to 1.0.94

* build(deps): update npm to ^1.9.9

* build(deps): update rust crate open to 3.4.0

* docs(character): use updated `vimcmd_symbol` instead of older `vicmd_symbol` variant (#4960)

Fix typo in character example

* build(deps): update rust crate serde to 1.0.153

* docs(install): fix typo and update indentation and whitespaces (#4941)

* build(deps): update rust crate serde to 1.0.154

* build(deps): update rust crate gix to 0.40.0

* chore: fix clippy warnings for rust 1.68 (#4983)

* fix(init): avoid cygpath for starship binary path (#4970)

Update mod.rs

* build(deps): update rust crate open to v4 (#4982)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* build(deps): update rust crate toml_edit to 0.19.5

* build(deps): update rust crate gix to 0.41.0 (#4984)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* build(deps): update rust crate serde to 1.0.155

* build(deps): update rust crate chrono to 0.4.24

* build(deps): update rust crate semver to 1.0.17

* build(deps): update rust crate quick-xml to 0.28.0

* Update sponsors

* build(deps): update toml crates

* build(deps): update rust crate nu-ansi-term to 0.47.0

* build(deps): update rust crate windows to 0.46.0

* build(deps): update rust crate serde to 1.0.156

* docs(preset): Add `hostname.ssh_symbol` to nerd font preset (#4991)

docs(preset): Add missing ssh_symbol in nerd font

* fix(fossil_branch): fossil checkout database file name on windows (#4978)

fix(fossil_branch): use proper fossil checkout database file name on windows

* build(deps): update gitoxide crates

* build(deps): update rust crate toml_edit to 0.19.7

* build(deps): update clap crates

* build(deps): update rust crate serde to 1.0.157

* build(deps): update rust crate quick-xml to 0.28.1

* build(deps): update rust crate clap to 4.1.11

* docs(preset): add missing config for Java to no-runtime-version (#5011)

docs(preset): add missing Java to no-runtime-version

* build(deps): update rust crate serde to 1.0.158

* feat(aws): Adds support for AWS_CREDENTIAL_EXPIRATION environment variable (#5002)

feat(aws): supports AWS_CREDENTIAL_EXPIRATION environment variable

Adds support for the AWS_CREDENTIAL_EXPIRATION environment variable
which was adopted as the standard way to set the expiration for
temporary credentials. The existing AWS_SESSION_EXPIRATION environment
variable is not dropped for backwards compatibility.

See https://github.com/aws/aws-cli/pull/7398

* build(deps): update rust crate open to 4.0.1

* build(deps): update rust crate regex to 1.7.2

* chore: add spell checker to workflows (#4975)

* chore: add spell checker to workflows

* fix: update config schema

* fix: revert for fennel.rs

* build(deps): update rust crate toml_edit to 0.19.8

* build(deps): update crate-ci/typos action to v1.14.3

* build(deps): update rust crate clap to 4.1.13

* build(deps): update embarkstudios/cargo-deny-action action to v1.5.0

* build(deps): update rust crate gix to 0.43.0

* fix(gradle): add support for unstable Gradle versions (#5021)

* build(deps): update rust crate serde_json to 1.0.95

* docs: Update nerd-font-symbols.toml pop_os! symbol (#5017)

Update nerd-font-symbols.toml

Use the specific pop_os! nerd symbol instead of the generic lollipop

* build(deps): update clap crates

* build(deps): update rust crate regex to 1.7.3

* build(deps): update rust crate serde to 1.0.159

* build(deps): update rust crate indexmap to 1.9.3

* build(deps): update clap crates to 4.2.0

* build(deps): update rust crate tempfile to 3.5.0

* build(deps): update rust crate windows to 0.47.0

* build(deps): update rust crate clap to 4.2.1

* build(deps): update rust crate gix to 0.43.1

* build(deps): update rust crate windows to 0.48.0

* fix(pulumi): Fix formatting on pulumi module when using version (#5038)

Fix formatting on pulumi module when using version

Sanitize `pulumi version` output to remove leading 'v' character and trailing
newlines.

* feat(fossil): detection of Fossil check-outs in subdirectories (#4910)

* Move PathExt::device_id() outside modules module

* Add upwards_sibling_scan-function

* Fix Fossil check-out detection in subdirectories

* Use shared upwards scanning function in hg_branch

* Let the caller specify if they're looking for a file or a folder

* fix merge

---------

Co-authored-by: David Knaack <davidkna@users.noreply.github.com>

* feat(aws): add support for source_profile (#4859)

feat(aws): add support for source_profile (#3834)

Co-authored-by:	@luiscamaral

* feat(custom): add option to check if pwd is in a repo (#4822)

* feat(custom): add option to check if pwd is in a repo

* Apply suggestions from code review

Co-authored-by: David Knaack <davidkna@users.noreply.github.com>

* change whenrepo to require_repo

* chore: fix doc formatting

---------

Co-authored-by: David Knaack <davidkna@users.noreply.github.com>

* build(deps): update rust crate terminal_size to 0.2.6

* build(deps): update rust crate process_control to 4.0.3 (#5046)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* build(deps): update pest crates to 2.5.7 (#5043)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* build(deps): update crate-ci/typos action to v1.14.4

* docs(presets): add azure and gcloud default symbols to plaintext preset (#5040)

* chore(nu): use updated closure syntax (#5054)

Update starship.nu to conform to Nushell changes

Nushell recently made a change to require that all closures have an explicit parameter list, even if it's empty, in https://github.com/nushell/nushell/pull/8290.

This updates starship.nu to conform to this requirement.

I have casually tested this against both the latest released version of Nushell, and the latest version on HEAD; the changed code works well (for me) on both.

* build(deps): update crate-ci/typos action to v1.14.5

* build(deps): update embarkstudios/cargo-deny-action action to v1.5.1

* fix(java): wrong version number when using Android Studio JDK (#4966)

The regular expression would get the revision number found in:

    with gcc Android (7284624, based on r416183b)

so it would print "7284624".

* build(deps): update dprint plugins

* build(deps): update rust crate os_info to 3.7.0 (#5057)

* build(deps): update rust crate os_info to 3.7.0

* add new os symbols

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* docs(i18n): new Crowdin updates (#4956)

* chore(master): release 1.14.0 (#4948)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* fix: trigger release

* fix: bootstrap manifest for release-please (#5087)

* fix: update the release-please manifest

* chore: fix release-please-manifest version

* ci: Revert "fix: bootstrap manifest for release-please (#5087)"

This reverts commit e392d14f4e.

* chore(master): release 1.14.1 (#5090)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* ci: add missing GH token to doc publishing flow

* build(deps): update rust crate serde to 1.0.160

* docs: update snap instructions (#5007)

As part of #4954, non-edge packages of Starship were removed from Snapcraft. This means the only way to install Starship is through the `edge` channel using `snap install --edge starship`.

* fix(git_commit): resolve panic on 32-bit targets (#5095)

* chore(choco): remove chocolatey dependency (#5078)

* docs(i18n): new Crowdin updates (#5093)

* New translations README.md (Ukrainian)

* New translations README.md (Ukrainian)

* New translations README.md (Ukrainian)

* New translations README.md (Ukrainian)

* New translations README.md (Ukrainian)

* New translations README.md (Ukrainian)

* New translations tokyo-night.md (Ukrainian)

* New translations README.md (Ukrainian)

* New translations README.md (Ukrainian)

* New translations README.md (Ukrainian)

* New translations README.md (Ukrainian)

* New translations README.md (Ukrainian)

* New translations README.md (Ukrainian)

* New translations README.md (Ukrainian)

* New translations README.md (Ukrainian)

* New translations bracketed-segments.md (Ukrainian)

* New translations nerd-font.md (Ukrainian)

* New translations no-runtimes.md (Ukrainian)

* New translations plain-text.md (Ukrainian)

* New translations pure-preset.md (Ukrainian)

* New translations pastel-powerline.md (Ukrainian)

* New translations no-nerd-font.md (Ukrainian)

* New translations no-empty-icons.md (Ukrainian)

* New translations README.md (French)

* New translations README.md (Russian)

* New translations README.md (Spanish)

* New translations README.md (Arabic)

* New translations README.md (German)

* New translations README.md (Italian)

* New translations README.md (Japanese)

* New translations README.md (Korean)

* New translations README.md (Dutch)

* New translations README.md (Polish)

* New translations README.md (Portuguese)

* New translations README.md (Turkish)

* New translations README.md (Chinese Simplified)

* New translations README.md (Chinese Traditional)

* New translations README.md (Vietnamese)

* New translations README.md (Portuguese, Brazilian)

* New translations README.md (Indonesian)

* New translations README.md (Sorani (Kurdish))

* New translations README.md (Ukrainian)

* New translations README.md (Norwegian)

* New translations README.md (Ukrainian)

* New translations README.md (Ukrainian)

* New translations README.md (Ukrainian)

* New translations README.md (Ukrainian)

* New translations README.md (Ukrainian)

* New translations README.md (Ukrainian)

* New translations README.md (Ukrainian)

* New translations README.md (Ukrainian)

* New translations README.md (Ukrainian)

* New translations README.md (Ukrainian)

* New translations README.md (Ukrainian)

* New translations bracketed-segments.md (Ukrainian)

* New translations nerd-font.md (Ukrainian)

* New translations no-runtimes.md (Ukrainian)

* New translations plain-text.md (Ukrainian)

* New translations pure-preset.md (Ukrainian)

* New translations pastel-powerline.md (Ukrainian)

* New translations no-nerd-font.md (Ukrainian)

* New translations no-empty-icons.md (Ukrainian)

* New translations tokyo-night.md (Ukrainian)

* New translations README.md (Ukrainian)

* chore(master): release 1.14.2 (#5098)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* build(deps): update embarkstudios/cargo-deny-action action to v1.5.2

* build(deps): update rust crate quick-xml to 0.28.2

* build(deps): update rust crate serde_json to 1.0.96

* build(deps): update rust crate starship-battery to 0.8.0 (#5106)

* build(deps): update rust crate gethostname to 0.4.2

* feat: add typechange to git_status module (#4829)

Co-authored-by: David Knaack <davidkna@users.noreply.github.com>

* feat(azure): subscription name aliases (#4949)

* From issue #4448, added `subscription_aliases`
as a field for the Azure module

Can be set in starship.toml with
[azure.subscription_aliases]

* Updated config file schema

* Added entry into documentation

* Update README.md

* Formatted with dprint

* feat(git_metrics): add option to ignore submodules (#5052)

* add docs

* update schema

* ok, actually update schema

* add test

* fix lint

* accidentally included my .devenv directory

* feat: Add Solidity Module (#5047)

* Adding documentation

* Documentation and schema addition

* Creating solidity config

* Module for solidity lang

* Updating all the files

* Changing according to clippy

* Fixing misspellings

* Changes suggested by clippy

* Updating schema , maybe fixing docs workflow error

* Updating schema

* Removing solcjs from default compiler list

* Fallback test added and test string fixed

* Fixing docs

* Updating schema

* Updating schema

* Fixing docs

* Updating schema

* Updating schema

* Typo fix

* Update docs/config/README.md

Co-authored-by: David Knaack <davidkna@users.noreply.github.com>

* Update src/utils.rs

Co-authored-by: David Knaack <davidkna@users.noreply.github.com>

* Fix build commit

---------

Co-authored-by: Anirban Halder <shaeo967@gmail.com>
Co-authored-by: David Knaack <davidkna@users.noreply.github.com>

* build(deps): update crate-ci/typos action to v1.14.6

* build(deps): update rust crate clap to 4.2.2

* fix(config): Make print-config not panic without a config (#5001)

* build(deps): update rust crate open to 4.0.2

* build(deps): update rust crate clap to 4.2.3

* build(deps): update rust crate gix-features to 0.29.0

* build(deps): update crate-ci/typos action to v1.14.8

* build(deps): update rust crate clap to 4.2.4

* build(deps): update rust crate dunce to 1.0.4

* build(deps): update rust crate regex to 1.8.0

* build(deps): update rust crate clap_complete to 4.2.1

* build(deps): update rust crate regex to 1.8.1

* docs(pwsh): use a more convenient method to update the window title (#5125)

docs: fix PowerShell example to update the window title

* fix(style): ensure nested style variables are processed during formatting (#5120)

fix: ensure nested style variables are processed during formatting

* refactor(Context): `set_config` method for `Context` (#5079)

* add `set_config` method to `Context`

* Made inline comment a doc comment

* use `default_context()` for `set_config()` test

* use `set_config()` in tests for `print.rs`

* set root config w `set_config()` (`print.rs` test)

* build(deps): update rust crate home to 0.5.5

* build(deps): update pest crates to 2.6.0

* build(deps): update rust crate open to 4.1.0

* build(deps): upgrade gitoxide to v0.44 for performance improvements during discovery (#5141)

upgrade gitoxide to v0.44 for performance improvements during discovery

Please note that there is a new `dot_git_only` option which would further
speedup discovery. On even moderatly fast disks that probably not going
to make a difference, but it will on incredibly slow (networked) disks.

See https://github.com/helix-editor/helix/issues/6867 for reference.

* fix(snap): Update snapcraft.yaml to add personal-files interface (#5131)

* build(deps): update rust crate clap to 4.2.5

* docs: add Ukranian to the project README (#5147)

* Specify personal-file interface for snap

* fix(presets): Added ($style) to format in module 'sudo' in Bracketed Segments Preset (#5146)

* Fixed error in module 'sudo'

There was no ($style) in format. When module enabled this lead to the error [WARN] - (starship::modules::sudo): Error in module `sudo`

* Update docs/.vuepress/public/presets/toml/bracketed-segments.toml

typo fix

Co-authored-by: David Knaack <davidkna@users.noreply.github.com>

---------

Co-authored-by: David Knaack <davidkna@users.noreply.github.com>

* ci: remove actions-rs actions (#5115)

* build(deps): update rust crate clap to 4.2.7

* build(deps): update crate-ci/typos action to v1.14.9

* build(deps): update rust crate serde to 1.0.162

* build(deps): update rust crate rust-ini to 0.19.0 (#5172)

* build(deps): update rust crate rust-ini to 0.19.0

* add CC0-1.0 to allowed license list

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* build(deps): update rust crate versions to v5 (#5176)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* feat(aws): support aws sso with automatic authentication refresh (#5170)

* feat(aws): support aws sso with automatic authentication refresh

* docs(aws): add sso_session for profile detection

* feat(gcloud): add `detect_env_vars` option (#5166)

* feat(gcloud): add `detect_env_vars` option

* regenerate config schema

* docs: update CONTRIBUTING.md and README.md (#5153)

* build(deps): update rust crate clap_complete to 4.2.2

* fix: update of presets and default configuration to reflect changes in Nerd Fonts 3.0 (#5162)

* Updated nf-mdi-* to nf-md-* symbols

The following symbols where changed
- directory.read_only
- memory_usage
- meson
- nim
- os.symbols.Garuda
- os.symbols.HardenedBSD
- os.symbols.Illumos
- os.symbols.OpenBSD
- os.symbols.OracleLinux
- os.symbols.Redox
- os.symbols.Solus
- os.symbols.Windows
- package
- rlang

* Updated nf-mdi-* to nf-md-* symbols (for all other presets)

The following symbols where changed
for pastel-powerline:
- directory.substitutions.Documents
- nim
for tokyo-night
- directory.substitutions.Documents
- golang

* Updated nf-mdi-* to nf-md-* symbols for the default configuration in modules in src/configs/*.rs

The following symbols where changed
- azure
- battery.full_symbol
- battery.charging_symbol
- battery.discharging_symbol
- battery.unknown_symbol
- battery.empty_symbol

* Updated config-schema.json

* Updated src/modules/*.rs docs/config/README.md

and used `nerdfix` to check if I overlook anything

* Fixed the battery discharging symbol in the tests

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: jtrv <travershasemail@gmail.com>

* build(deps): disable unnecessary/unused regex features (#5175)

This will reduce the binary size by ~400 kB.

* build(deps): update rust crate serde to 1.0.163

* build(deps): update xalvarez/prevent-file-change-action action to v1.3.2

* build(deps): update rust crate clap_complete to 4.2.3

* build(deps): update rust crate gethostname to 0.4.3

* build(deps): update dprint plugins

* build(deps): update toml crates

* build(deps): update crate-ci/typos action to v1.14.10

* build(deps): update clap crates to 4.3.0

* build(deps): update crate-ci/typos action to v1.14.11

* build(deps): update rust crate regex to 1.8.2

* build(deps): update rust crate toml_edit to 0.19.10

* build(deps): update rust crate regex to 1.8.3

* build(deps): update rust crate shadow-rs to 0.22.0

* build(deps): update rust crate log to 0.4.18

* build(deps): update rust crate chrono to 0.4.25

* build(deps): update rust crate once_cell to 1.17.2

* build(deps): update rust crate chrono to 0.4.26

* refactor: simplify `shadow-rs` setup in `build.rs` (#5209)

Update build.rs

* feat(golang): adding `mod_version` variable (#5177)

* feat(nodejs): Add `expected_version` variable (#5081)

* add `expected_version` variable to `nodejs`

* show comparison symbols with `expected_version`

* documentation, formatting, more tests

* Remapped `engines_version` to $version

* Added better descriptions to docs

* Update docs/config/README.md

Co-authored-by: David Knaack <davidkna@users.noreply.github.com>

* Removed clone from `nodejs`, formatting

* refactored function calls

* rewrote `engines_version` formatter

* Moved Lazy variables into maps

---------

Co-authored-by: David Knaack <davidkna@users.noreply.github.com>

* build(deps): update crate-ci/typos action to v1.14.12

* build(deps): update clap crates to 4.3.1

* fix: bump libz-ng-sys (#5218)

* build(deps): update rust crate clap to 4.3.2

* build(deps): update rust crate shadow-rs to 0.23.0

* build(deps): update rust crate regex to 1.8.4

* build(deps): update rust crate once_cell to 1.18.0

* Update GA measurement ID

* build(deps): update rust crate nu-ansi-term to 0.48.0

* docs(i18n): new Crowdin updates (#5109)

* Revert "Specify personal-file interface for snap"

This reverts commit 2641a37865.

This was reverted due to errors in the snap publishing pipeline:
interface 'starship-config' not found in base declaration declaration-snap-v2_plug_known (starship-config, starship-config)
invalid plugs interface definition 'starship-config' lint-snap-v2_app_plugs_plug_reference (starship, starship-config)
unknown interface 'starship-config' lint-snap-v2_plugs (starship-config, starship-config)

* chore(master): release 1.15.0 (#5108)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Checkout before running gh commands in CI

* Inline script for GA4

* build(deps): update gitoxide crates

* build(deps): update rust crate tempfile to 3.6.0

* Update GA4 tag attribute

* build(deps): update crate-ci/typos action to v1.15.0

* 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

* build(deps): update rust crate serde to 1.0.164 (#5231)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* build(deps): update rust crate starship-battery to 0.8.1 (#5232)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* feat(pwsh): Support vi command mode indicator (#5049)

Support vi command mode in powershell

* build(deps): update rust crate clap to 4.3.3 (#5235)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* build(deps): update rust crate gix to 0.46.0

* build(deps): update rust crate log to 0.4.19 (#5240)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore: fix typos (#5239)

* chore: fix new clippy lints (#5241)

* docs: Correct Arch Linux Repo Name (#5243)

* Correct Arch Linux repo name

* Revert changes to translated files.

* build(deps): update rust crate quick-xml to 0.29.0

* build(deps): update reviewdog/action-suggester action to v1.6.1

* build(deps): update rust crate clap to 4.3.4

* build(deps): update rust crate serde_json to 1.0.97

* build(deps): update rust crate shadow-rs to 0.23.0 (#5250)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(bash): Clear out completed jobs before counting NUM_JOBS (#5253)

Clear out completed jobs before counting NUM_JOBS

* build(deps): update pest crates to 2.6.1

* redesign

* jet link

* screenshot

* readme, config

* clean trails whitespace

* fmt

* comment vicmd

* mv pos, right prompt warn

* right prompt prereq

* reco and typo

* resolve build check error

* tidy

* resolve build check error

* resolve build check error

* request changes

* rm src contents

* rm git_status.rs

* tryint fix checks

* PR review request: rm comments

* PR review request: rm redundant default

* PR review request: enable aws

---------

Signed-off-by: Michel Alexandre Salim <michel@michel-slm.name>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Tom Fenech <tomjwfenech@gmail.com>
Co-authored-by: Matan Kushner <hello@matchai.dev>
Co-authored-by: David Knaack <davidkna@users.noreply.github.com>
Co-authored-by: Michel Alexandre Salim <michel@michel-slm.name>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Jan Dittrich <mail@jand.one>
Co-authored-by: Zhizhen He <hezhizhen.yi@gmail.com>
Co-authored-by: Swarnim Maheshwari <rexzeo0@gmail.com>
Co-authored-by: Guilhem Saurel <guilhem.saurel@laas.fr>
Co-authored-by: Stefan Cosma <66746+stefanc@users.noreply.github.com>
Co-authored-by: Christian Meusel <christian.meusel@posteo.de>
Co-authored-by: Harry Hodge <harry@harryhodge.co.uk>
Co-authored-by: Harsh Shandilya <me@msfjarvis.dev>
Co-authored-by: Dave Parr <8363743+DaveParr@users.noreply.github.com>
Co-authored-by: Ryan Sabatini <11415980+rjsab@users.noreply.github.com>
Co-authored-by: Vegard Skui <me@vegardskui.com>
Co-authored-by: Cosimo Matteini <dev.matteini@gmail.com>
Co-authored-by: jliaoh <48660001+hunterliao29@users.noreply.github.com>
Co-authored-by: Matthew T <tet68mt+github@gmail.com>
Co-authored-by: Samir Talwar <samir@functional.computer>
Co-authored-by: Aurélien Gâteau <mail@agateau.com>
Co-authored-by: Aki Kanellis <hello@akikanellis.com>
Co-authored-by: Chad Denyar <6653063+cdenyar@users.noreply.github.com>
Co-authored-by: marcybell <marcy@marcelinesystems.dev>
Co-authored-by: Colton Donnelly <colton@donn.io>
Co-authored-by: AnirbanHalder654322 <92542059+AnirbanHalder654322@users.noreply.github.com>
Co-authored-by: Anirban Halder <shaeo967@gmail.com>
Co-authored-by: Dom Slee <domslee1@gmail.com>
Co-authored-by: Micky Brunetti <micky2be@users.noreply.github.com>
Co-authored-by: Andrew Pantuso <ajpantuso@gmail.com>
Co-authored-by: Sebastian Thiel <sebastian.thiel@icloud.com>
Co-authored-by: Scott Parkhill <scott.parkhill@gmail.com>
Co-authored-by: Eldar Khurmamatov <74624554+e-khurmamatov@users.noreply.github.com>
Co-authored-by: kensasongko <ken.sasongko@gmail.com>
Co-authored-by: Denis Cornehl <denis@cornehl.org>
Co-authored-by: Mick Hohmann <gh@m69.im.net>
Co-authored-by: jtrv <travershasemail@gmail.com>
Co-authored-by: Jakub Jirutka <jakub@jirutka.cz>
Co-authored-by: baoyachi. Aka Rust Hairy crabs <liaoymxsdl@sina.com>
Co-authored-by: Antoine Stevan <44101798+amtoine@users.noreply.github.com>
Co-authored-by: Nemo157 <git@nemo157.com>
Co-authored-by: Dosenpfand <Dosenpfand@users.noreply.github.com>
Co-authored-by: Ajeet D'Souza <98ajeet@gmail.com>
2023-09-01 16:10:04 -05:00
.github build(deps): update crate-ci/typos action to v1.16.9 2023-08-30 16:26:37 +00:00
docs docs(preset): Add Jetpack Preset (#5261) 2023-09-01 16:10:04 -05:00
install ci: fix choco package push (#5349) 2023-08-04 09:06:37 +02:00
media docs: add Ukranian to the project README (#5147) 2023-04-28 23:07:35 +09:00
src perf: Skip unnecessary indirection in starship init zsh (#5322) 2023-08-31 19:08:13 +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 dependency dprint/dprint-plugin-markdown to v0.16.0 2023-08-28 00:38:03 +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.16.0 (#5236) 2023-07-30 15:30:05 +02: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 chrono to 0.4.28 2023-09-01 03:46:50 +00:00
Cargo.toml build(deps): update rust crate chrono to 0.4.28 2023-09-01 03:46:50 +00:00
LICENSE chore: Update LICENSE file for 2022 (#3514) 2022-01-25 21:09:06 -06:00
README.md chore: remove Snapcraft starship distribution (#5296) 2023-07-07 21:20:43 -04:00
build.rs chore: handle rust 1.72 clippy & fmt changes (#5399) 2023-08-25 22:53:35 +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
starship.exe.manifest feat: Add a Windows application manifest (#3590) 2022-02-20 18:12:40 +01:00
typos.toml chore: fix typos (#5239) 2023-06-13 15:40:17 -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
Alpine Linux 3.13+ Alpine Linux Packages apk add starship
Arch Linux Arch Linux Extra 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.