* 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 e392d14f4eb65d8761ea8bafb498d2a0d966dcef. * 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 2641a378659d13c17120a58f5187714a8691d430. 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>
Website · Installation · Configuration
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.
🚀 Installation
Prerequisites
- A Nerd Font installed and enabled in your terminal (for example, try the FiraCode Nerd Font).
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. 🙏
-
denysdovhan/spaceship-prompt – A ZSH prompt for astronauts.
-
denysdovhan/robbyrussell-node – Cross-shell robbyrussell theme written in JavaScript.
-
reujab/silver – A cross-shell customizable powerline-like prompt with icons.
❤️ Sponsors
Support this project by becoming a sponsor. Your name or logo will show up here with a link to your website.
Supporter Tier
📝 License
Copyright © 2019-present, Starship Contributors.
This project is ISC licensed.