Starship.rs: minimal, fast prompt for any shell

174 points by highmastdon 1 year ago | 155 comments
  • juxtapose 1 year ago
    I've been using Starship for quite some time, and it's awesome! Definitely recommend it to anyone who wants a fast, modern, and rich prompt.

    Besides the product, the community is pleasantly awesome as well. I've contributed a module to it and the maintainer has done a good job reviewing and testing. Heck, they even have a Discord server for contributors.

    • Twirrim 1 year ago
      I've tried a number of different shell prompt tools over the past few decades. I've disliked them all due to their latency. I don't want to "feel" the delay. They were all in scripting languages, be it native bash, or python or whatever.

      I tried out starship about three years ago and it is so fast I don't notice its execution time at all. I switched and haven't looked back.

    • neilv 1 year ago
      The "minimal" part is a little funny. Historical minimal shell prompts:

          $
          #
          %
          >
      • dijit 1 year ago
        here's a tip for people that I stole from PLAN9:

        If your shell is ZSH and you have `setopt autocd` in your .zshrc (though I think this setting is on by default):

        export PS1="%~; "

        this will result in the prompt: `~; ` where the ~ will change to a path relative to home.

        Why do this? Well; it means you can select and paste any line in your history: your prompt becomes part of setting the proper context and is part of the command. Just select the entire line. :D

      • JimDabell 1 year ago
        I think a huge amount of these prompts are just fiddling with things because people think they are clever, not because they are actually useful.

        My prompt for years has been:

            : ▶
        
        I add the hostname if it’s an SSH session and change ▶ to # if I’m root because those are both important contexts that should be omnipresent, but aside from that, I haven’t felt like I’m missing anything at all. The CWD is in the window / tab title bar, but I never need to look at it because the CWD is always so closely tied to what I am doing in the shell that it’s always top of mind.
        • adhesive_wombat 1 year ago
          Git information is extremely useful to me. I notice colleagues who don't have that tend to struggle using git on the command line and use git status nearly every other command (much as I tend to do when I'm remoting into a shell with a plain prompt).

          Python venvs are useful too if you have a shell for running the program and other shells that just happen to be within that directory.

          • Arch-TK 1 year ago
            >struggle using git on the command line and use git status nearly every other command

            I think you are conflating two separate things.

            I don't care for starship or prompts which show git status information. But, when interacting with git, I do often type git status.

            That being said, I don't struggle with git.

            Really, when I don't need status information, I don't want the horizontal space taken up with an unnecessarily noisy prompt.

            • tracker1 1 year ago
              Largely of the same mind. I've found starship very useful and have been using it everywhere I can fit a few years now.
              • JimDabell 1 year ago
                > Git information is extremely useful to me.

                I could see the case for that if it were accurate. But every implementation I’ve seen doesn’t give you accurate Git information. It gives you the status of the repo as it was when you last ran a command. If you are working on the repo in a separate editor window, then the Git information in your prompt is usually incorrect. Incorrect information is worse than no information. Besides which, your editor normally provides this information as you are working on it. Why does outdated Git information belong in a prompt when there are more convenient places to get the correct information?

                • the_gipsy 1 year ago
                  It's probably a bell curve and you're only seeing the left side.
                  • happymellon 1 year ago
                    Yes, having the git project displayed is useful.

                    To a lesser extent, I've done a few Java version migrations so it can be useful for the Java version to be printed so it's obvious if I've got the wrong JDK enabled. Python fell under this, but I don't think I'll have to worry about having one project be Python 2 while the others are 3 anymore.

                  • tetris11 1 year ago
                    I like this approach. I tried using starship.rs but I have to say it does far more than I want it to and makes me feel like I'm not in control of my shell (e.g. it pulls a schema via an URL without any knowledge from me that it does so).

                    As a result, I've written my own small and concise PS1 which covers all my use cases:

                        ## Add this to ~/.bashrc
                        force_color_prompt=yes
                        ## show: user+hostname (if ssh), conda, venv, guix, and git
                        function prompt_command {
                            ## styles and symbols
                            local RESET='\[\033[0m\]'     ; local BLD_GRN='\[\033[1;32m\]'; 
                            local BLD_YLW='\[\033[1;33m\]'; local BLD_PPL='\[\033[1;35m\]';
                            local BLD_CYN='\[\033[1;36m\]'; local BLD_WHT='\[\033[1;37m\]'
                            local ITL_YLW='\[\033[3;33m\]'; local SEP='⋮'
                        
                            PROMPT_DIRTRIM=2
                            export PS1=""
                            if [ -n "$SSH_CONNECTION" ]; then
                                PS1=${PS1}${BLD_CYN}'\u'${BLD_YLW}'@'${BLD_GRN}'\h'${RESET}
                            fi
                            if [ -n "$CONDA_DEFAULT_ENV" ]; then
                                PS1=${PS1}${SEP}${ITL_YLW}${CONDA_DEFAULT_ENV}${RESET}
                            fi
                            if [ -n "$VIRTUAL_ENV" ]; then
                                PS1=${PS1}${SEP}${BLD_WHT}${VIRTUAL_ENV##*/}${RESET}
                            fi
                            if [ -n "$GUIX_ENVIRONMENT" ]; then
                                PS1=${PS1}${SEP}${BLD_GRN}'GUIX'${RESET}
                            fi
                            if [ -e .git ]; then
                                PS1=${PS1}${SEP}${BLD_PPL}$(git branch --show-current)${RESET}
                            fi
                            PS1=${PS1}${SEP}${BLD_GRN}'\w' # short directory
                            PS1=${PS1}${BLD_YLW}'▶ '${RESET}
                        }
                        export PROMPT_COMMAND=prompt_command
                    
                    
                    Fast and easy to grok.
                    • angra_mainyu 1 year ago
                      I have a tiny prompt I wrote that adds two important bits: git branch w/ status (if in a git repo) and venv (if any).

                      So it looks like:

                          me@pop-os  09:19:20  files: 49
                          ~> /path/to/cwd
                          $
                      
                      by default and in a git repo:

                          me@pop-os  09:20:14  files: 18
                          ~> ~/dev/work/projects/someproject
                          [ git ~ feature/some-feature || Add: 0 Mod: 1 Del: 0 Unt: 0 ]
                          $
                      
                      in a venv:

                          me@pop-os  09:20:14  files: 18  (venv: my-venv)
                          ~> ~/dev/work/projects/someproject
                          [ git ~ feature/some-feature || Add: 0 Mod: 1 Del: 0 Unt: 0 ]
                          $
                      
                      
                      Note, these all use different font colors to be distinguishing.
                      • pdimitar 1 year ago
                        The GIT status prompt is immensely useful. Not as useful, but still occasionally useful, are the prompts for language / tool versions. And how much time did the last command take. I make a regular use of that when I don't need sub-second timings.

                        If that makes me "thinking I am clever" then by all means, spend your life believing that. It increases my productivity though.

                        • JimDabell 1 year ago
                          > If that makes me "thinking I am clever" then by all means, spend your life believing that. It increases my productivity though.

                          If it increases your productivity, then it’s the opposite of what I’m talking about.

                        • neilv 1 year ago
                          I do the same thing with SSH sessions (no hostname if local). Also:

                          * username if it's not "me"

                          * indicator if in `screen` or `tmux` session

                          * `cwd`

                          * in reverse-video or bold, on terminals that support that, to stand out

                          All these things have been useful many times.

                          Most often, which is shells on local laptop, the prompt is only a reverse-video cwd. The extras appear for less-usual situations.

                          I should add Git info.

                          • mort96 1 year ago
                            [flagged]
                        • Narushia 1 year ago
                          My interactive shell experience has substantially improved after installing Starship. :) The other thing was changing from Bash to Fish.
                          • Night_Thastus 1 year ago
                            I love Fish, but I cannot for the life of me to get Starship working well.

                            Trying to get it working on WSL (Ubuntu 20.04 and Centos) as well as MSYS just wasn't happening. On the few occasions I did get it working, it was unbearably slow. Simple commands would have sometimes half a second of delay. I could time what was causing the slowdown and disable some of it, but by the time I got it bearable I had disabled basically all of Starship. Then there were font-related issues on top. Ugh.

                            I hope others have a better experience than I.

                            • 3PS 1 year ago
                              Chiming in as another fish+starship user. It's hard to imagine using anything else now; I get just about every feature I would ever want out of my shell with essentially zero configuration, which makes it easy to replicate my setup across a ton of heterogeneous devices and operating systems.
                              • FeloniousHam 1 year ago
                                Me too :). I do wish fish could seamlessly convert and run bash script on the fly..
                                • 3PS 1 year ago
                                  > I do wish fish could seamlessly convert and run bash scripts on the fly..

                                  It can. With a little help. I use this:

                                  https://github.com/edc/bass

                              • blooalien 1 year ago
                                Same. The two work so well together. Been happy with both Fish and Starship for a long(ish) while now.
                              • lazypenguin 1 year ago
                                I discovered starship when I started using kubernetes at work. Previously I relied on standard bash-isms for path, hostname, etc. but knowing what context and namespace I'm in before I execute a command is quite convenient. I'm normally not one to "customize" my CLI experience at all but this was a nice addition to the toolbox. Documentation is good, customizable, reliable and has support for a lot of things. Would recommend.
                                • weebull 1 year ago
                                  Am I the only one who is getting tired of "It's X in rust" type projects? It's making me dislike the community.

                                  Rust is not a user feature, it's an implementation detail.

                                  <cue people telling me I should consider Rust a feature>

                                  • farresito 1 year ago
                                    > Rust is not a user feature, it's an implementation detail

                                    Sure, but keep in mind that in the case of open source software plenty of people will choose software written in their favorite language so that they can potentially contribute to it. Or simply because they feel more connected to something that is written in their favorite language. So I don't think it's completely irrelevant.

                                    • gnur 1 year ago
                                      It might not be a feature, but it is a selling point. It conveys that it was written relatively recently, is more likely to support modern features in the shell, runs reasonably fast and is reasonably portable.

                                      If it was written in JS or python I'd already start worrying about what package manager to install it with in which environment, installing it globally is an anti pattern but symlinking it to .local/bin might complicate it.

                                      So IMHO, the language something is written in is not just an implementation detail, it informs me in how well it will perform.

                                      • weebull 1 year ago
                                        It's a prompt. Writing anything for that purpose is code gardening, but hey it's in rust so I'm supposed to be excited?

                                        That, in essence is the problem "X in rust" normally means "I've written something of low value IN RUST. Gimmee upvotes". Come back when the project is interesting regardless of the language.

                                      • eviks 1 year ago
                                        <cue at least one complaint of this kind under almost any Rust-related project>
                                        • usrbinbash 1 year ago
                                          The fact that this happens should be food for thought for part of the rust community. Because the way I see it, if they keep this up, a few years from now, they could, other than some obscure linux kernel modules almost noone uses and a good grep-alternative, be well along what I lovingly call the "Haskell Route".
                                          • Twirrim 1 year ago
                                            Almost every single project that makes it to the front page of HN tells you as part of the opening sentences what language it's in. For a good while it was "<thing>, (re)written in Go". There's nothing special or unique in the rust community about this, it's just what people in tech do.

                                            The type of complaining you're doing is also nothing new, because exactly the same occurs under those posts when it's the language de jour. A few years ago when it was all about Go, you could look in the HN comments and see people complaining exactly the same way about Go and the Go community.

                                            • sebzim4500 1 year ago
                                              What exactly should the takeaway be? Stop making things in Rust because people on HN will complain?
                                              • pdimitar 1 year ago
                                                Who is "they"? Do you imagine all Rust devs as a hive mind?
                                            • jpambrun 1 year ago
                                              I like that go and rust binaries are statically linked. This means that I can build an environment I like using these and bring them almost everywhere, wsl, Mac, Ubuntu, red hat, etc. For me, this is the feature of rust/go.
                                              • timeon 1 year ago
                                                Stating the technology makes you dislike the community. >.> Why are you on HN?
                                                • rowanG077 1 year ago
                                                  Well memory safety is a user feature. So "X but in Rust" has merit if X is written in C or C++.
                                                  • pdimitar 1 year ago
                                                    It's not only though I don't understand why is this getting you "tired".

                                                    Rust has memory safety built in (unless one goes VERY out of their way to nullify it) which to many, myself included, is a selling point. F.ex. I wouldn't be interested in the userland tools rewrite if they weren't in Rust.

                                                    > Rust is not a user feature, it's an implementation detail.

                                                    It is that, yes, but not only that. Again, memory safety. And as another poster pointed out -- statically linked binaries. That helps a lot with certain deployments.

                                                    Also consider that HN might not be the place for you if mentioning implementation details are ticking you off. That's more or less how this forum started in the first place: people discussing implementation details.

                                                    • theshrike79 1 year ago
                                                      It's a marketing tactic, there is a non-insignificant people who will check out a project just because of Rust.
                                                      • PurpleRamen 1 year ago
                                                        > Rust is not a user feature, it's an implementation detail.

                                                        Rust is the new C. It communicates that something is fast, but also secure, and new or a modern reimplementation of something old. So, in that sense, is it a user feature because it has established itself in a way that tells the user some important details.

                                                        • KolenCh 1 year ago
                                                          Am I the only one who is getting tired of comments complaining about people put “written in Rust” in the title? Lately every post having “written in Rust” has a comment like this.

                                                          If you don’t care, ignore it. Why should it bother you so much?

                                                          • darthrupert 1 year ago
                                                            I started thinking like that, but the general high quality and innovatio. of the various things rewritten in Rust has made me reconsider.

                                                            I think it has become a significant user feature.

                                                            • itishappy 1 year ago
                                                              cntrl-f "rust" -> 2 results

                                                              I think you might just be prejudiced. Do you have the same reaction to, say, SQLite?

                                                              https://www.sqlite.org/index.html

                                                              > SQLite is a C-language library that implements a small, fast, self-contained, high-reliability, full-featured, SQL database engine.

                                                              • a_random_canuck 1 year ago
                                                                Speak for yourself. It makes me love the community.

                                                                Rust’s memory safety definitely makes it a user feature.

                                                                • Zababa 1 year ago
                                                                  "X in Rust" to me mean that I won't have to fiddle with it when installing it and it'll work out of the box. This isn't unique to Rust, Go does this very well too. It'll also be reasonably fast, not just because of the language, but because the community likes performance. For example, a few years ago I tried the tldr command. It was in Node.js and unbearably slow. There was a Rust implementation, tealdeer, that was way faster.
                                                                • rgoulter 1 year ago
                                                                  Starship's an excellent prompt replacement.

                                                                  I think it goes well with the fish shell: it's much nicer than the default, without requiring customisation.

                                                                  • Narushia 1 year ago
                                                                    Switching to Starship was actually what inspired me to also switch from Bash to Fish. Purely because of the transient prompt feature, which is not supported for Bash.

                                                                    With the transient prompt, you can have things like Git or Kubernetes status on your “main prompt”, but without always printing them in the terminal for the commands you ran previously. It keeps the history much cleaner, and therefore more pleasant to scroll back up. I've also configured it to print the time when the commands were executed to the start of the lines.

                                                                  • hiAndrewQuinn 1 year ago
                                                                    Yes! This is why I pair the two up in https://github.com/hiAndrewQuinn/shell-bling-ubuntu.

                                                                    These context clues are especially important for newcomers to the command line. A CLI newbie who sticks with it might eventually progress to the point where they decide to ditch Starship, or to ditch fish, or to ditch both, but until they get to that point, the solid defaults and OOTB features of these two have a lot going for them. Meanwhile sticking someone in a '$ ' with no coloring, no autocompletion, and no real clues in the terminal itself is more likely to lead to them just giving up entirely.

                                                                    • dietr1ch 1 year ago
                                                                      Maybe it can turn into the default prompt as a library dependency after the Rust rewrite, but the rust rewrite needs to rollout before thinking too far ahead.
                                                                    • srid 1 year ago
                                                                      If you use home-manager, installing starship is as simple as adding `programs.starship.enable = true;`.

                                                                      https://github.com/srid/nixos-config/blob/master/home/starsh...

                                                                      Incidentally, starship also gives a visual indication of whether you are in the nix shell or not, which is pretty handy when using direnv:

                                                                      https://nixos.asia/en/direnv

                                                                      • myaccountonhn 1 year ago
                                                                        I’m probably on the wrong side of history, but I just don’t like how much color there is in modern cli tools. It is distracting
                                                                        • mkl 1 year ago
                                                                          • konart 1 year ago
                                                                            Well, in most casees you can configure it and back in all black and white\green if you want to.

                                                                            Having 8 (or more) colors help when dealing with information though, at least when you need to get a quick result and not just dig into the man pages.

                                                                            • myaccountonhn 1 year ago
                                                                              I’ve mostly done that, though some apps use one color for foreground and another for background, where it doesn’t work.
                                                                            • lazypenguin 1 year ago
                                                                              Fair enough but the usefulness of a tool like this is not the colors it's the additional context at the prompt
                                                                              • retrochameleon 1 year ago
                                                                                When everything is one big screen full of white text, I find it very difficult to visually parse out, separate, and focus on information. Colors help guide your eyes and provide context. They can certainly be overused, however.
                                                                              • Hamuko 1 year ago
                                                                                I like some colour but some tools take it way too far. As for emoji, the appropriate amount of them in a CLI tool is zero.
                                                                                • ykonstant 1 year ago
                                                                                  Why? I don't think emoji are necessary, but they are just Unicode characters; the only objection I can think of is that they are "too playful", but if our OSS CLI tools, written as a labor of love in our spare time, have to be "serious", we are utterly fucked. Unix hacking has never worn suits and ties.

                                                                                  Unless we are talking about unicode support. Indeed, the software should make a basic inquiry to see if the shell/terminal emulator supports unicode and fall back to ASCII if not. But there is a difference between "I don't support unicode" and "my unicode support is broken": the latter needs fixing, and emoji are actually a good test case to see if you really support unicode.

                                                                                • chrisan 1 year ago
                                                                                  if the color conveys something meaningful then its good (imo of course)
                                                                                  • eviks 1 year ago
                                                                                    is red on error, no color on success (of the last command) also too much?
                                                                                    • myaccountonhn 1 year ago
                                                                                      A little bit, as I find that it can make me lose my trail of thought. Red errors for LSP or because something is wrong in the executed command is great though.
                                                                                    • illusive4080 1 year ago
                                                                                      [flagged]
                                                                                    • usrbinbash 1 year ago
                                                                                      > "minimal"

                                                                                      Here is what a minimal shell prompt looks like:

                                                                                          $
                                                                                      
                                                                                      Here is another one which only uses the shells own facilities:

                                                                                          current-directory@hostname $
                                                                                      
                                                                                      Running a complex piece of software every time the shell needs to display it's prompt, is not "minimal", regardless of how fast and well written said piece of software is.
                                                                                      • daliusd 1 year ago
                                                                                        I still think minimal is appropriate in this case as it shows only what’s relevant in the context.
                                                                                        • INTPenis 1 year ago
                                                                                          You're missing the point. It runs every time you show the prompt. Anything that does that is not minimal and it increases the risk of failure.

                                                                                          Some things that you use regularly should be kept as minimal and as stable as possible. To me that includes the shell prompt, editor, browser for example.

                                                                                          • daliusd 1 year ago
                                                                                            I am cli/vim guy - that’s my daily tools. Starship is very stable and it is useful for me. The only problem I have experienced is with custom extension I wrote myself (problem was slowness not stability).
                                                                                      • tecoholic 1 year ago
                                                                                        Installed it yesterday and it threw my email and AWS default region on to the prompt. Pretty bad defaults. Promptly removed it.
                                                                                        • gkfasdfasdf 1 year ago
                                                                                          I had a similar reaction to the out of the box config. However after spending a little bit of time with the doc, I turned off all the useless stuff like my docker version and but left stuff like git branch, status, exit code, etc.
                                                                                          • notnmeyer 1 year ago
                                                                                            it’s trivial to configure fwiw. with as much info as it is capable of showing it’s a stretch to think it’ll magically know what you want.
                                                                                            • tecoholic 1 year ago
                                                                                              My problem is not that it didn’t do what I want, just that it seems to work in a “opt in to everything by default” which was overwhelming. I prefer things that without config don’t do anything or do the bare minimum and then lets me slowly add to it.
                                                                                        • joshstrange 1 year ago
                                                                                          I spend so little time relatively on my own machine’s terminal and even when I do I don’t want it to be totally different from the boxes I SSH into every day. That context switch would be frustrating. Nor do I have the desire to push for something like this to be installed on our fleet of servers.

                                                                                          Do the people who use this (along with terminal emulators that require you install things on the host to get the full power) just not use other machines and/or install stuff like this on them? Just seems odd to me personally but I’m interested in how others use it. Do you only use your own computer/terminal so it’s not an issue?

                                                                                          • wodenokoto 1 year ago
                                                                                            I suppose I “just don’t use other machines” and when I do, they suck and mine rocks, which I consider a lot better than “both sucks, but I am used to it”
                                                                                            • joshstrange 1 year ago
                                                                                              Totally understandable. I my computer is highly configured for “me” which means I feel lost if I sit down at someone else’s computer. That said, I spend 90%+ of my time in a terminal SSH’d to other box. If it was closer to 50-50 I’d be more interested but improving <10% and the added context switch isn’t worth it for me personally.

                                                                                              Thank you!

                                                                                            • KolenCh 1 year ago
                                                                                              If you want to, you can invest time in automating this so that you can feel at home at every boxes.

                                                                                              Surely it is some work to ensure your user environment are all the same across different machines. But it is also liberating as you are no longer limited to choose the few common features available everywhere.

                                                                                              • rgoulter 1 year ago
                                                                                                If it's a machine that you're going to be working on a lot, you might as well have good tools installed. (And if it's a machine where stuff like starship would be bloat, then it's probably not something people should be SSHing into frequently).
                                                                                              • the_gipsy 1 year ago
                                                                                                Two lines is wasteful, but it does look nice that the input is always full width.

                                                                                                Another minimal prompt: https://lib.rs/crates/pista

                                                                                                • leo150 1 year ago
                                                                                                  The main reason I use fish shell is for the autocompletion feature it offers out of the box. If it had been an option back in the day, I would have tried something like starship
                                                                                                  • shakow 1 year ago
                                                                                                    Just FYI, Starship will only create your prompt; it won't alter the autocompletion behavior of your shell.
                                                                                                  • rollcat 1 year ago
                                                                                                    Since this is now a share your prompt thread, here's mine:

                                                                                                    https://github.com/rollcat/etc/tree/master/cmd/prompter

                                                                                                    It's quite portable (didn't test on Windows though); ~170 lines of Go; no dependencies outside of stdlib; calls no external commands; supports SSH, git, Docker, nix, and virtualenv; extremely simple to hack on.

                                                                                                  • jwalton 1 year ago
                                                                                                    • jasonjmcghee 1 year ago
                                                                                                      I find this to be a rather pleasant website, well done.
                                                                                                      • daliusd 1 year ago
                                                                                                        I am using starship for some time and it is great. The only advice is to avoid `custom` as it is slow: not too much but might be annoying.
                                                                                                        • matchai 1 year ago
                                                                                                          Starship maintainer here.

                                                                                                          `custom` spawns a child process of your shell, so it's probably being slowed down by a slow shell init script. If the custom script you're running doesn't require your full shell customization to work, you can provide a custom shell command [0], passing an argument to not use your shell config. For instance: `fish --no-config` or `bash --noprofile --norc`

                                                                                                          [0]: https://starship.rs/config/#custom-command-shell

                                                                                                          • daliusd 1 year ago
                                                                                                            Thanks. That might help.
                                                                                                        • HackerThemAll 1 year ago
                                                                                                          So now I need to install nerd font and this software on all clients' machines and VMs and whatnot. Asking IT departments for permission and waiting for compliance check.

                                                                                                          Or should I do it only on toy machines, risking different experience between them and production.

                                                                                                          No, thanks. Plain bash will suffice. Just like it did for so many years.

                                                                                                          • KolenCh 1 year ago
                                                                                                            You can install it very easily without permission (unless I misunderstood the permission part is not technical but political.)
                                                                                                            • microflash 1 year ago
                                                                                                              Starship works pretty well without nerdfonts, BTW.
                                                                                                            • KolenCh 1 year ago
                                                                                                              I tried this couple of times and once a few days ago and wasn’t impressed. Coming from powerlevel10k it seems more limiting and not really faster. Has anyone think starship is better than powerlevel10k and how?

                                                                                                              Thanks.

                                                                                                              • shmerl 1 year ago
                                                                                                                Is there a Unicode symbol for source branch used there? Not really keen on using some specific fonts just for that.

                                                                                                                I usually use simple ^ but having something like there would be nicer.

                                                                                                                • abhinavk 1 year ago
                                                                                                                  There is a new (soon to be default) preset which doesn’t use extra fonts. Also, any symbol can be overridden using the config file.
                                                                                                                  • tracker1 1 year ago
                                                                                                                    There's a pretty broad list of amended nerd fonts. Some of the more complete code fonts have most of the symbols already.
                                                                                                                  • AtlasBarfed 1 year ago
                                                                                                                    Is this like a competitor for power10k type stuff and zsh?

                                                                                                                    What makes this "infinitely customizable" aside from being turing complete?

                                                                                                                    I don't see anything but ... a prompt.

                                                                                                                    • retrochameleon 1 year ago
                                                                                                                      Maybe read through the documentation and try it out. It has very robust configuration options, many pre-built modules that are ready to include in your prompt, for example, one that prints git info for the current location if it's a repository.

                                                                                                                      So yes, it is kind of a competitor to p10k, but not zsh. It's just the prompt, and it just focuses on being a very good prompt tool.

                                                                                                                      • imp0cat 1 year ago
                                                                                                                        Yeah, it's just a prompt replacement that does all the things that your prompt already does, but it's written in Rust.
                                                                                                                        • mort96 1 year ago
                                                                                                                          Have you tried writing a PS1 which shows all the info that's demonstrated on the linked page?

                                                                                                                          I have. It's a decent chunk of work. It's a whole lot more work to do it well. Did you remember to handle the situation where the git repo is so gigantic that running `git status` takes half a minute? Or the case where there is a .git folder somewhere but permissions are wrong or it crosses a mount barrier so `git status` prints a page of text to stderr? Does the way you're finding the current branch handle the case where HEAD doesn't point to a branch?

                                                                                                                          The only way your prompt "already does" this stuff is if you've spent a whole lot of time configuring it and tuning it, or if you're already using something like oh-my-zsh. And if you're already using something like oh-my-zsh, well, starship is just a competitor to (the prompt portion of) that.

                                                                                                                          • emi2k01 1 year ago
                                                                                                                            "it's just..." is kinda demeaning.

                                                                                                                            People want something easy to use with good defaults. If that wasn't the case, shells wouldn't have a hundreds of plugins dedicated to customizing the prompt.

                                                                                                                        • elcombato 1 year ago
                                                                                                                          this is a visual performance comparison between spaceship and p10k: https://asciinema.org/a/253094
                                                                                                                        • drivingmenuts 1 year ago
                                                                                                                          That capability already exists in Zsh, doesn’t it? Why would I need a third-party addon to do this thing?
                                                                                                                          • PurpleRamen 1 year ago
                                                                                                                            It's simpler to configure and extend, and also more likely gets support for more exotic information-sources. It's a dedicated tool for this specific job, so following the "Unix-philosophy". And probably more optimized for edge cases like big git-repos and stuff. And you can easily switch shells.
                                                                                                                          • arun-mani-j 1 year ago
                                                                                                                            Starship users: how do you track updates? I manually update occasionally (mostly months)
                                                                                                                            • theshrike79 1 year ago
                                                                                                                              I installed it via Brew and it just automatically updates.

                                                                                                                              Need to check on how to handle it on shells with no root access.

                                                                                                                              • Narushia 1 year ago
                                                                                                                                I just have release notifications enabled on their GitHub, and then update manually when I feel like it.
                                                                                                                                • PurpleRamen 1 year ago
                                                                                                                                  I have a bookmark-folder of release-sites and changelogs I visit ever some months. Though, they are on github, which has a Newsfeed, so at some point I switch to a feedreader or mail-forwarder to have this more under control. But I'm still searching for something good.
                                                                                                                                  • microflash 1 year ago
                                                                                                                                    I use scoop on PC and homebrew on Mac. I run their update scripts weekly to pull the latest versions.
                                                                                                                                  • cranberryturkey 1 year ago
                                                                                                                                    does this play well with omz?
                                                                                                                                    • ludovicianul 1 year ago
                                                                                                                                      Yes. I use it for years. No problems.
                                                                                                                                    • arrakeen 1 year ago
                                                                                                                                      what kind of psychopath has a two line prompt?
                                                                                                                                      • konart 1 year ago
                                                                                                                                        I do.

                                                                                                                                        I'd like to have some usefull information about my session but also prefer when my input begins from the first column.

                                                                                                                                        • BiteCode_dev 1 year ago
                                                                                                                                          I like my prompt being a separator between the output of the previous cmd and the next cmd I type.
                                                                                                                                          • Narushia 1 year ago
                                                                                                                                            If you find that wasteful, you can use the “transient prompt” feature to only print the full prompt to the current line, but keep the command history on one line per command in the terminal.
                                                                                                                                            • ykonstant 1 year ago
                                                                                                                                              In contrast to the minimalist philosophy, I want to have as much visual information about the active state of my session as possible. So many stories of deleted files and databases, botched git actions and server crashes due to admins/devs forgetting which folder/host they are on, or which user they are logged in as, or whether the previous command failed or not.
                                                                                                                                              • xigoi 1 year ago
                                                                                                                                                I don’t like my commands starting at a different column depending on which directory I’m in.
                                                                                                                                                • sevg 1 year ago
                                                                                                                                                  I can see arguments for both sides.

                                                                                                                                                  Personally, I find the extra blank line to be a useful visual separator between lines of output. Particularly useful when running commands with lots of output or 'cat'-ing files or logs.

                                                                                                                                                  • Hamuko 1 year ago
                                                                                                                                                    I also can't understand the two-line prompt. I want my prompt to take as little space as possible.
                                                                                                                                                    • tracker1 1 year ago
                                                                                                                                                      I appreciate the extra context information. Displaying the user/system over ssh is pretty nice. I've also done similar in windows for network drives.
                                                                                                                                                      • pasc1878 1 year ago
                                                                                                                                                        I agree with the latter point. But I use xonsh as the shell and that has a prompt which can go on the last line of the terminal and does not get repeated each time, so when you scroll back you don't all the information each time.

                                                                                                                                                        I use that for starship information and the prompt is just the return code p[lus a character.

                                                                                                                                                        • eviks 1 year ago
                                                                                                                                                          Oh, that's a great feature, wish it were more widespread
                                                                                                                                                      • petesergeant 1 year ago
                                                                                                                                                        lot of information that'd be nicer to have at a higher level than the prompt, like the tmux or screen status bar. Be even better if a "prompt" like this could set a variable using ANSI escapes that various terminal emulators could display.
                                                                                                                                                      • YuukiRey 1 year ago
                                                                                                                                                        It’s too bad this requires a Nerd font to be installed according to the landing page. I just don’t think that belongs in a terminal emulator and it should be optional
                                                                                                                                                        • dabber 1 year ago
                                                                                                                                                          The homepage is somewhat misleading, you can use it without Nerd Fonts and there's actually a preset config listed for it mentioned on the Presets page [0] with the note:

                                                                                                                                                          > This preset will become the default preset in a future release of starship

                                                                                                                                                          It also links to an open issue on the GH repo about it [1] (although that issue is 2 years old and doesn't seem to be top priority.)

                                                                                                                                                          [0]: https://starship.rs/presets/#nerd-font-symbols

                                                                                                                                                          [2]: https://github.com/starship/starship/pull/3544

                                                                                                                                                          • tracker1 1 year ago
                                                                                                                                                            Many code fonts have the bat majority of the symbols already. The new MS Terminal for Windows uses Cascadia, and IIRC only missing the node logo IIRC.

                                                                                                                                                            Other fonts work to. I use Fira Code myself.

                                                                                                                                                            • fodkodrasz 1 year ago
                                                                                                                                                              It works fine out of the box on mac and windows, have not tried it on linux yet (only over ssh).
                                                                                                                                                              • 1 year ago
                                                                                                                                                              • bbqbbqbbq 1 year ago
                                                                                                                                                                [dead]