☄🌌️ The minimal, blazing-fast, and infinitely customizable prompt for any shell

Overview

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   简体中文   繁體中文

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:

sh -c "$(curl -fsSL https://starship.rs/install.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 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
Fedora 31+ Fedora Packages dnf install starship
NixOS nixpkgs nix-env -iA nixos.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:

sh -c "$(curl -fsSL https://starship.rs/install.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 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

Step 2. Setup 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.17+ 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 configuration (find it by running config path):

startup = [
  "mkdir ~/.cache/starship",
  "starship init nu | save ~/.cache/starship/init.nu",
  "source ~/.cache/starship/init.nu",
]
prompt = "starship_prompt"
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. 🙏


Starship rocket icon

📝 License

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

Comments
  • Favor finding Starship on the PATH over its absolute path on disk (#910)

    Favor finding Starship on the PATH over its absolute path on disk (#910)

    The idea here is to search for Starship on the PATH when printing out its command path during shell command generation. This is particularly helpful for people using Homebrew, which deletes the old version of any software it installs upon upgrade. Prior to this change, starship would print out the fully resolved path to the binary on disk, and not the symlink that Homebrew creates and is generally available on the path. Consequently, starship would print out a path that no longer exists after Homebrew's cleanup, and this in turn would break any already open terminal.

    Apologies, but I'm not familiar with conventional commits and don't know whether this is a feature or a fix.

    Description

    This change looks for starship on the PATH by way of the which crate. which is cross-platform and is lightweight both in terms of its dependency list and its overall project size.

    Motivation and Context

    Closes #910

    Screenshots (if appropriate):

    How Has This Been Tested?

    • [ ] I have tested using MacOS
    • [X] I have tested using Linux
    • [ ] I have tested using Windows

    Checklist:

    • [ ] I have updated the documentation accordingly.
    • [ ] I have updated the tests accordingly.
    opened by nirvdrum 42
  • success_symbol option of the status module is being ignored

    success_symbol option of the status module is being ignored

    Bug Report

    Current Behavior

    success_symbol option of the status module is being ignored.

    Expected Behavior

    Show the success_symbol when command succeed as describe in the documentation: "The symbol displayed on program success"

    Additional context/Screenshots

     ❯ sh -c 'echo tst; exit 0;'                               
    tst
    
     ❯ sh -c 'echo tst; exit 7;'                               
    tst
    
     ❯                                                    ✗ [7]
    

    Possible Solution

    ATM IDK. I will update this issue, if I come up with something.

    Environment

    • Starship version: starship 1.4.2 branch: commit_hash: build_time:2022-03-10 18:01:38 +00:00 build_env:rustc 1.59.0
    • Shell type: zsh
    • Shell version: zsh 5.8 (x86_64-apple-darwin21.0)
    • Shell plugin manager: nothing
    • Terminal emulators: iTerm and Alacritty
    • Operating system: MacOS 12.2.1

    Relevant Shell Configuration

    ~
    ❯ cat ~/.zshrc
    eval "$(starship init zsh)"
    

    Starship Configuration

    format = " $character"
    right_format = "$status "
    
    [character]
    success_symbol = "[❯](bold green)"
    error_symbol   = "[❯](bold green)"
    vicmd_symbol   = "[❮](bold green)"
    
    [status]
    style = "fg:blue"
    symbol = "[✗](bold red)"
    success_symbol = "[✔️](bold green)"
    format = '$symbol$success_symbol [\[$int\]]($style) '
    disabled = false
    
    🐛 bug 🌱 good first issue 
    opened by IzhakJakov 33
  • Module configuration with format strings

    Module configuration with format strings

    With more and more configuration being introduced into Starship, we're starting to see a fair bit of configuration bloat that simply modifies the formatting of the output, rather than changing the way the prompt retrieves information or processes context. (e.g. #603, #623)

    What I would like to propose is the following configuration:

    [cmd_duration]
    # ${duration} - The duration of the last running command
    
    format = "took ${duration}!"
    

    This would allow us to remove all the following configuration options in modules where they are static:

    • symbol
    • prefix
    • suffix

    In modules where the values are dynamic, they would remain. For example, the character module:

    [character]
    # ${prompt_symbol} - The prompt symbol
    
    format = "${prompt_symbol} "
    symbol = "❯"
    error_symbol = "✖"
    

    We could also remove the following configuration options from git_status, where enabling them would be implicit by them being in the format string:

    • conflicted_count
    • untracked_count
    • modified_count
    • etc...

    This would, of course, require some changes in the way we educate users, but I think it would make for a less dense and complicated configuration system in the long run.

    ✨ enhancement 💬 discussion 
    opened by matchai 33
  • feat: Add Java Module

    feat: Add Java Module

    Implemented a basic Java module, that shows the Java version, when inside a Java/Maven Project.

    Description

    • New module java that calls javac --version, to get the version of Java
    • Simple tests for the formatting and call to javac
    • Updated the Dockerfile to install Java

    Motivation and Context

    Just another language that can be supported.

    Types of changes

    • [ ] Bug fix (non-breaking change which fixes an issue)
    • [x] New feature (non-breaking change which adds functionality)
    • [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)

    Screenshots (if appropriate):

    MacOS: java_mac

    Linux (WSL): java_wsl

    How Has This Been Tested?

    • [x] I have tested using MacOS
    • [x] I have tested using Linux
    • [ ] I have tested using Windows

    Checklist:

    • [x] I have updated the documentation accordingly.
    • [x] I have updated the tests accordingly.
    ✨ enhancement 
    opened by jakubclark 30
  • Windows Directory Formatting

    Windows Directory Formatting

    Current Behavior

    Hi all,

    I was pleased to see that starship supports Powershell in addition to macOS and Linux. However when using Powershell in Windows 10 (i.e. not WSL), the directory formatting is off. The prompt shows C:\Windows as /c/Windows

    Is this intended? This makes sense for WSL or Powershell under macOS/Linux but not for Powershell under Windows.

    Thanks for all the work you do.

    Expected Behavior

    Prompt should display C:\Windows as C:\Windows

    Additional context/Screenshots

    Annotation 2020-04-14 133141

    Possible Solution

    Environment

    • Starship version: 0.40.1
    • powershell version: 5.1.18362.628
    • Operating system: Windows Windows 10 10.0.18363
    • Terminal emulator: Windows Terminal 0.10.781.0

    Relevant Shell Configuration

    powershell

    Starship Configuration

    default configuration

    🐛 bug 💬 discussion 
    opened by ylor 29
  • feat: add Haskell Stack support

    feat: add Haskell Stack support

    Description

    • Add a Haskell Stack module, when it detects stack.yaml file.

    Motivation and Context

    ~Closes #~ I have a bunch of Haskell projects and I'm really missing support for Haskell in starship.

    Types of changes

    • [ ] Bug fix (non-breaking change which fixes an issue)
    • [x] New feature (non-breaking change which adds functionality)
    • [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)

    Screenshots (if appropriate):

    Screen Shot 2019-10-16 at 12 27 15 PM

    How Has This Been Tested?

    • [x] I have tested using MacOS
    • [x] I have tested using Linux
    • [ ] I have tested using Windows

    Checklist:

    • [x] I have updated the documentation accordingly.
    • [x] I have updated the tests accordingly.
    • [ ] Add support for other Haskell: cabal, .hs files etc.
    opened by m0nhawk 29
  • feat(username): Detect Admin access in Windows

    feat(username): Detect Admin access in Windows

    Description

    This PR adds support for detecting elevated status on Windows, much like root on unix.

    Motivation and Context

    Closes #3628

    The root part of the username module was not working on Windows. Hence, the PR. The elevation detection is done using the deelevate crate.

    How Has This Been Tested?

    • [ ] I have tested using MacOS
    • [ ] I have tested using Linux
    • [x] I have tested using Windows

    Checklist:

    • [x] I have updated the documentation accordingly.
    • [x] I have updated the tests accordingly.
    opened by rashil2000 28
  • Starship prompt takes ~20 seconds when inside rust repo

    Starship prompt takes ~20 seconds when inside rust repo

    Current Behavior

    I'm not sure what has caused this exactly but I opened up a terminal recently and every time I hit enter, I'm now waiting ~20 seconds when inside a rust project. I'm seeing two identical processes jump to 100% cpu in htop: /root/.cargo/bin/starship prompt --status=0 --jobs=0.

    Expected Behavior

    Starship time to be imperceptible.

    Additional context/Screenshots

    n/a

    Possible Solution

    Unclear.

    Environment

    • Starship version: 0.33.1
    • zsh version: zsh 5.4.2 (x86_64-ubuntu-linux-gnu)
    • Operating system: Ubuntu running in Docker.
    • Terminal emulator: vscode 1.42.0-insider
    • Cargo version: cargo 1.42.0-nightly (f6449ba23 2020-01-21)

    Relevant Shell Configuration

    # See https://superuser.com/questions/1243138/why-does-ignoreeof-not-work-in-zsh
    setopt ignore_eof
    
    # Rust/cargo
    export PATH="$HOME/.cargo/bin:$PATH"
    
    # See https://github.com/starship/starship. Installed via cargo.
    eval "$(starship init zsh)"
    
    alias gs='git status'
    alias gc='git commit -m '
    alias ga='git add '
    alias gd='git diff'
    

    Starship Configuration

    <unknown config>
    
    🐛 bug 
    opened by samuela 26
  • perf(async): Introduce async and timeout support

    perf(async): Introduce async and timeout support

    Description

    Currently, this will:

    • replace rayon with async_std
    • adds support for specifying a per-module "timeout" key in config
    • adds support for specifying a global "prompt_timeout" key in config, used for all modules that don't have a "timeout" explicitly given
    • changes all modules to execute subprocesses and file reads asynchronously, and library calls on a different future, so the timeouts work
    • report an exceeded timeout value when running timings

    A quick measurement shows no visible performance impact https://github.com/starship/starship/issues/312#issuecomment-767142122

    Feedback welcome as to exactly how to deal with timeouts, and when they should be silent or not. The current version is geared for debugging, so it's immediately obvious which module is causing the prompt to hang.

    Motivation and Context

    Async allows pervasive and simple handling of timeouts for virtually any code. There are multiple open issues related to responsiveness, and this approach with allow timeout control with arbitrary granularity, while maintaining parallelism.

    Closes #312, #597, #891, #940, #1551 Will possibly close a few others once fully implemented.

    How Has This Been Tested?

    • [ ] I have tested using MacOS
    • [x] I have tested using Linux
    • [ ] I have tested using Windows

    Checklist:

    • [x] I have updated the documentation accordingly.
    • [ ] I have updated the tests accordingly.
    opened by alexmaco 25
  • Freezes and uses 100% of cpu in huge? git directories.

    Freezes and uses 100% of cpu in huge? git directories.

    Current Behavior

    Freeze in some directories.

    /usr/bin/ls -lRa | wc -l     
    65256
    

    It's git directory with rust project with a bunch of small files. Any command evaluates nearly 10 seconds and consumes 100% of CPU. In any other directory it works perfectly,

    Expected Behavior

    Not to freeze/

    Additional context/Screenshots

    asciicast

    Environment

    • Starship version: 0.36.0
    • zsh version: zsh 5.7.1 (x86_64-pc-linux-gnu)
    • Operating system: Linux 19.0
    • Terminal emulator:

    Relevant Shell Configuration

    export RUSTC_WRAPPER=sccache
    export EDITOR=vim
    alias rfm='fd --extension rs --exec=rustfmt'
    # pacmatic needs to be run as root: https://github.com/keenerd/pacmatic/issues/35
    alias pacmatic='sudo --preserve-env=pacman_program /usr/bin/pacmatic'
    # Downgrade permissions as AUR helpers expect to be run as a non-root user. $UID is read-only in {ba,z}sh.
    alias yay='pacman_program="sudo -u #$UID /usr/bin/yay --pacman powerpill" pacmatic'
    # If you come from bash you might have to change your $PATH.
    # export PATH=$HOME/bin:/usr/local/bin:$PATH
    alias open=xdg-open
    # Path to your oh-my-zsh installation.
    export ZSH="/home/username/.oh-my-zsh"
    #alias less=bat
    # Set name of the theme to load --- if set to "random", it will
    # load a random theme each time oh-my-zsh is loaded, in which case,
    # to know which specific one was loaded, run: echo $RANDOM_THEME
    # See https://github.com/robbyrussell/oh-my-zsh/wiki/Themes
    ZSH_THEME="robbyrussell"
    path+=('~/.cargo/bin')
    export PATH
    # Set list of themes to pick from when loading at random
    # Setting this variable when ZSH_THEME=random will cause zsh to load
    # a theme from this variable instead of looking in ~/.oh-my-zsh/themes/
    # If set to an empty array, this variable will have no effect.
    # ZSH_THEME_RANDOM_CANDIDATES=( "robbyrussell" "agnoster" )
    
    # Uncomment the following line to use case-sensitive completion.
    # CASE_SENSITIVE="true"
    
    # Uncomment the following line to use hyphen-insensitive completion.
    # Case-sensitive completion must be off. _ and - will be interchangeable.
    # HYPHEN_INSENSITIVE="true"
    
    # Uncomment the following line to disable bi-weekly auto-update checks.
    # DISABLE_AUTO_UPDATE="true"
    
    # Uncomment the following line to automatically update without prompting.
    # DISABLE_UPDATE_PROMPT="true"
    
    # Uncomment the following line to change how often to auto-update (in days).
     export UPDATE_ZSH_DAYS=13
    
    # Uncomment the following line if pasting URLs and other text is messed up.
    # DISABLE_MAGIC_FUNCTIONS=true
    
    # Uncomment the following line to disable colors in ls.
    # DISABLE_LS_COLORS="true"
    
    # Uncomment the following line to disable auto-setting terminal title.
    # DISABLE_AUTO_TITLE="true"
    
    # Uncomment the following line to enable command auto-correction.
    # ENABLE_CORRECTION="true"
    
    # Uncomment the following line to display red dots whilst waiting for completion.
    # COMPLETION_WAITING_DOTS="true"
    
    # Uncomment the following line if you want to disable marking untracked files
    # under VCS as dirty. This makes repository status check for large repositories
    # much, much faster.
    # DISABLE_UNTRACKED_FILES_DIRTY="true"
    
    # Uncomment the following line if you want to change the command execution time
    # stamp shown in the history command output.
    # You can set one of the optional three formats:
    # "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd"
    # or set a custom format using the strftime function format specifications,
    # see 'man strftime' for details.
    # HIST_STAMPS="mm/dd/yyyy"
    
    # Would you like to use another custom folder than $ZSH/custom?
    # ZSH_CUSTOM=/path/to/new-custom-folder
    
    # Which plugins would you like to load?
    # Standard plugins can be found in ~/.oh-my-zsh/plugins/*
    # Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/
    # Example format: plugins=(rails git textmate ruby lighthouse)
    # Add wisely, as too many plugins slow down shell startup.
    plugins=(
    	git
    	zsh-autosuggestions
    	zsh-syntax-highlighting
    	archlinux
    )
    
    source $ZSH/oh-my-zsh.sh
    
    # User configuration
    
    # export MANPATH="/usr/local/man:$MANPATH"
    
    # You may need to manually set your language environment
    # export LANG=en_US.UTF-8
    
    # Preferred editor for local and remote sessions
    # if [[ -n $SSH_CONNECTION ]]; then
    #   export EDITOR='vim'
    # else
    #   export EDITOR='mvim'
    # fi
    
    # Compilation flags
    # export ARCHFLAGS="-arch x86_64"
    
    # Set personal aliases, overriding those provided by oh-my-zsh libs,
    # plugins, and themes. Aliases can be placed here, though oh-my-zsh
    # users are encouraged to define aliases within the ZSH_CUSTOM folder.
    # For a full list of active aliases, run `alias`.
    #
    # Example aliases
    # alias zshconfig="mate ~/.zshrc"
    # alias ohmyzsh="mate ~/.oh-my-zsh"
    autoload -U compinit && compinit
    unalias ls
    alias ls='exa'
    eval "$(starship init zsh)"
    
    #source /home/username/.config/broot/launcher/bash/br
    fpath=( ~/.zfunc "${fpath[@]}" )
    

    Starship Configuration

    [battery]
    full_symbol = "🔋"
    charging_symbol = "⚡️"
    discharging_symbol = "💀"
    [character]
    symbol = "➜"
    error_symbol = "✗"
    use_symbol_for_status = true
    
    [directory]
    truncation_length = 8
    [git_branch]
    symbol = "🌱 "
    truncation_length = 4
    truncation_symbol = ""
    [git_status]
    conflicted = "🏳"
    ahead = "🏎💨"
    behind = "😰"
    diverged = "😵"
    untracked = "🤷"
    stashed = "📦"
    modified = "📝"
    staged.value = "++"
    staged.style = "green"
    staged_count.enabled = true
    staged_count.style = "green"
    renamed = "👅"
    deleted = "🗑"
    [hostname]
    ssh_only = true
    prefix = "⟪"
    suffix = "⟫"
    disabled = false
    [jobs]
    symbol = "+ "
    threshold = 4
    [line_break]
    disabled = true
    [package]
    symbol = "🎁 "
    [memory_usage]
    show_percentage = true
    show_swap = true
    threshold = -1
    symbol = " "
    separator = "/"
    style = "bold dimmed green"
    dis[memory_usage]
    show_percentage = true
    show_swap = true
    threshold = -1
    symbol = " "
    separator = "/"
    style = "bold dimmed green"
    disabled = false
    
    
    🐛 bug 
    opened by 0xdeafbeef 25
  • feat: Allow disabling git_status for large/slow repos

    feat: Allow disabling git_status for large/slow repos

    Description

    Some repos are very large. This can take a while to run git status on them.

    I am creating this as a draft repo as I had some questions and some remaining work but wanted to get some early feedback.

    1. What is the best way to fail reading the config file. E.g. If a path isn't absolute, we should skip it. Do we fail loading or do we warn and ignore.

    2. I added tests and they run but they seem to be ignored. Is there a reason for that? Should I also add mine to be ignored?

    3. I need to test this on windows.

    Motivation and Context

    As above, the repo I work with at work is rather large and using git status is prohibitively slow. I don't want to not have status on repos where it is still usable. This gives me the ability to turn it off just for the slow repos.

    Types of changes

    • [ ] Bug fix (non-breaking change which fixes an issue)
    • [x] New feature (non-breaking change which adds functionality)
    • [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)

    Screenshots (if appropriate):

    How Has This Been Tested?

    • [x] I have tested using MacOS
    • [ ] I have tested using Linux
    • [ ] I have tested using Windows

    Checklist:

    • [x] I have updated the documentation accordingly.
    • [x] I have updated the tests accordingly.
    opened by jaredwy 25
  • docs: use literal toml strings in `continuation_prompt` docs

    docs: use literal toml strings in `continuation_prompt` docs

    Description

    continuation_prompt should be set to a literal string so it should have ' instead of " in the doc/examples.

    UPDATE: Using " even without any variables doesn't work . -> not true, a shell refresh was needed

    Motivation and Context

    Closes #

    Screenshots (if appropriate):

    How Has This Been Tested?

    • [ ] I have tested using MacOS
    • [ x] I have tested using Linux
    • [ ] I have tested using Windows

    Checklist:

    • [x] I have updated the documentation accordingly.
    • [ ] I have updated the tests accordingly.
    opened by Marzal 1
  • docs:

    docs: "Getting Started" link on https://starship.rs returns 404 in some languages

    Bug Report

    The "Getting Started" link on the top page on https://starship.rs returns 404 in some languages.

    Current Behavior

    1. Visit https://starship.rs/ja-JP/ or https://starship.rs/de-DE/
    2. Click "Get Started" or "Loslegen"
    3. 404 pages are displayed

    Expected Behavior

    Clicking on the links navigates the visitor to https://starship.rs/ja-JP/guide/ or https://starship.rs/de-de/guide/

    Environment

    • Browser: Google Chrome 108
    • Operating system: Windows 10
    🐛 bug 
    opened by arosh 0
  • chore: remove version check for unsupported nushell version

    chore: remove version check for unsupported nushell version

    Description

    Removed the nu shell version check codes for supporting older versions of nu shell.

    Motivation and Context

    Closes https://github.com/starship/starship/issues/4778

    How Has This Been Tested?

    • [x] I have tested using MacOS
    • [ ] I have tested using Linux
    • [ ] I have tested using Windows

    Checklist:

    • [ ] I have updated the documentation accordingly.
    • [ ] I have updated the tests accordingly.
    opened by indigolain 2
  • Memory usage statistics are overly verbose

    Memory usage statistics are overly verbose

    Feature Request

    Is your feature request related to a problem? Please describe.

    My prompt is too long and scrolls around on all but the widest of screens.

    Describe the solution you'd like

    Currently the memory display is something like 6GiB/32GiB. The first and second terms will nearly always be the same units, so this could be more succinctly written as 6/32GiB and save six characters (when swap is also displayed) with no reduction in clarity.

    Describe alternatives you've considered

    Six characters is almost 10% of an 80 character-wide screen. Starship is pretty terse in general & there's not many places to find this kind of savings.

    I have been using the following custom instruction:

    [custom.mem]
    description = 'Shortened memory display'
    when = "true"
    command = """
    export FREE="$(free -h | tail -n2 | tr -d [A-Za-z])"; \
    export MEMFREE=$(echo $FREE | cut -f3 -d' '); \
    export MEMTOTAL=$(echo $FREE | cut -f2 -d' '); \
    export SWAPFREE=$(echo $FREE | cut -f10 -d' '); \
    export SWAPTOTAL=$(echo $FREE | cut -f9 -d' '); \
    echo -n "${MEMFREE}/${MEMTOTAL}GiB|${SWAPFREE}/${SWAPTOTAL}GiB"
    """
    symbol = '🐏'
    style = '#999999 bold'
    format = '[\(](blue)$symbol [${output}[\)](blue)]($style) '
    shell = ["bash", "--noprofile", "--norc"]
    disabled = false
    
    ✨ enhancement 
    opened by dysbulic 0
  • transient rprompt often not working in Fish

    transient rprompt often not working in Fish

    Bug Report

    Current Behavior

    I run the following code to not mix my configuration for both fish and startship:

    $ sh -c 'env HOME=$(mktemp -d) fish'                                                      3.9.13
    Welcome to fish, the friendly interactive shell
    Type help for instructions on how to use fish
    jonathf@kadesh /h/jonathf> mv .config/starship.toml{,_}
    jonathf@kadesh /h/jonathf> function starship_transient_prompt_func
                                   starship module character
                               end
    jonathf@kadesh /h/jonathf> function starship_transient_rprompt_func
                                     starship module time
                               end
                               starship init fish | source
                               enable_transience
    ❯ echo 123
    123
    
    /home/jonathf via 🐍 v3.9.13 (.39)
    ❯
    

    Expected Behavior

    The line with echo 123 should have a timestamp on the right. As seen on the top line, rprompt works, just not in transient.

    Additional context

    There is something weird going on. I can't get either prompt nor rprompt to work, but I seem to be able to get both to work as if I use no-config fish -N oposed to the default config sh -c 'env HOME=$(mktemp -d) fish'. The latter is the recommended approach to test by fish as far as I can tell.

    Possible Solution

    No idea.

    Environment

    • Starship version:
    starship 1.12.0
    branch:
    commit_hash:
    build_time:2022-12-13 20:48:05 +01:00
    build_env:rustc 1.65.0 (897e37553 2022-11-02),stable-x86_64-unknown-linux-gnu
    
    • Shell type: fish
    • Shell version: fish, version 3.5.1
    • Shell plugin manager: None.
    • Terminal emulator: alacritty
    • Operating system: Ubuntu 22.10.

    Relevant Shell Configuration

    Code above is run without configuration

    🐛 bug 
    opened by jonathf 0
Releases(v1.12.0)
Owner
Starship Command
✨🚀✨ ✨ ☄️ ✨ ✨🌌
Starship Command
A super simple prompt for Fish shell, just shows git info and Vi mode.

vifi is a portmandeau of 'Vi' and 'Fish', because it's a prompt for Fish shell, primarily focused around showing proper indicators when using Vi key bindings.

Mat Jones 1 Sep 15, 2022
Shellfirm - Intercept any risky patterns (default or defined by you) and prompt you a small challenge for double verification

shellfirm Opppppsss you did it again? ?? ?? ?? Protect yourself from yourself! rm -rf * git reset --hard before saving? kubectl delete ns which going

elad 652 Dec 29, 2022
A very opinionated, zero-configuration shell prompt

A very opinionated, zero-configuration shell prompt

amy null 8 Nov 4, 2021
Minimal and blazing-fast file server. For real, this time.

Zy Minimal and blazing-fast file server. For real, this time. Features Single Page Application support Partial responses (Range support) Cross-Origin

Miraculous Owonubi 17 Dec 18, 2022
Minimal, blazing fast Node.js script runner

nrr Minimal, blazing fast Node.js script runner. Why? nrr initializes and resolves scripts way faster than package managers. It achieves this by provi

Ryan Cao 3 Nov 17, 2023
Prompt Description Language [POC]

Prompt Description Language (V0.1.1 POC) Description PDL (Prompt Description Language) format provides an extensible way to describe the behavior and

Alex 192 Jun 5, 2023
Solving context limits when working with AI LLM models by implementing a "chunkable" attribute on your prompt structs.

Promptize Promptize attempts to solve the issues with context limits when working with AI systems. It allows a user to add an attribute to their struc

Dan Nelson 5 Jul 18, 2023
Standard Graphics is a command-line tool for printing 2D graphics from any language to any screen.

2D graphics in any programming language with just print statements!

Caleb Winston 123 Nov 20, 2022
A robust, customizable, blazingly-fast, efficient and easy-to-use command line application to uwu'ify your text!

uwuifyy A robust, customizable, blazingly-fast, efficient and easy-to-use command line application to uwu'ify your text! Logo Credits: Jade Nelson Tab

Hamothy 43 Dec 12, 2022
A blazing fast and easy to use TRPC-like server for Rust.

rspc ?? Work in progress ?? A blazing fast and easy to use TRPC-like server for Rust. Website Example You define a trpc router and attach resolvers to

Oscar Beaumont 344 Dec 31, 2022
Blazing-fast and yet Sleuth cameraman to www* 😎⚡✨

Haylxon ?? ?? SHOOT BEFORE THE BLINK || Haylxon, A tool embodying the K1SS philosophy that allows you to take screenshots of webpages/URLs at lightnin

Nabeen Tiwaree 78 Apr 10, 2023
🚀 Blazing fast and Powerful Discord Token Grabber, no popo made with python

Rusty-Grabber ?? a blazing fast Discord Token Grabber, no popo made with python Fastest Token Grabber ever : Rusty-Grabber> time ./target/release/grab

bishop 5 Sep 1, 2023
zoxide is a blazing fast replacement for your cd command

zoxide A smarter cd command for your terminal zoxide is a blazing fast replacement for your cd command, inspired by z and z.lua. It keeps track of the

Ajeet D'Souza 8.7k Dec 31, 2022
⚡️ A blazing fast way of maintaining powerful notes with connections between them.

Zettl ⚡️ A blazing fast way of maintaining powerful notes with connections between them. Installing Zettl To install Zettl, you will need the Rust too

Tirth Jain 26 Dec 2, 2022
A blazing fast command line license generator for your open source projects written in Rust🚀

Overview This is a blazing fast ⚡ , command line license generator for your open source projects written in Rust. I know that GitHub

Shoubhit Dash 43 Dec 30, 2022
⚡ A Blazing fast alternative to the stock windows folder delete function!

Turbo Delete A blazing fast alternative to the default Windows delete. Turbodelete is a blazing fast alternative to the default Windows delete functio

Tejas Ravishankar 165 Dec 4, 2022
Starkli (/ˈstɑːrklaɪ/), a ⚡ blazing ⚡ fast ⚡ CLI tool for StarkNet powered by 🦀 starknet-rs 🦀

starkli Starkli (/ˈstɑːrklaɪ/), a ⚡ blazing ⚡ fast ⚡ CLI tool for StarkNet powered by ?? starknet-rs ?? Installation The package will be published to

Jonathan LEI 26 Dec 5, 2022
⚡ Blazing fast async/await HTTP client for Python written on Rust using reqwests

Reqsnaked Reqsnaked is a blazing fast async/await HTTP client for Python written on Rust using reqwests. Works 15% faster than aiohttp on average RAII

Yan Kurbatov 8 Mar 2, 2023
⚡ Blazing ⚡ fast ⚡ compiler for Cairo, written in 🦀 Rust 🦀

Cairo 1.0 ?? ⚡ Blazing ⚡ fast ⚡ compiler for Cairo, written in ?? Rust ?? Report a Bug - Request a Feature - Ask a Question Getting Started Prerequisi

Darlington Nnam 6 Feb 23, 2023