Top
Best
New

Posted by benoitg 6/24/2025

Starship: A minimal, fast, and customizable prompt for any shell(starship.rs)
465 points | 211 commentspage 4
dirkg 6/24/2025|
I've always liked powerlevel10k, or its equivalent tide for fish shell, which I much prefer over bash/zsh. Its fast, async, has everything you need, and is much easier to configure.

I've always wondered why someone doesn't just bundle a nice looking shell prompt with common nerd fonts and make it the default in a single package you can install.

maztaim 6/24/2025||
I found https://ohmyposh.dev/ works for me. There’s something about transient prompts that (at the time?) was a problem for starship. There are several other alternatives I’ve tried with meh results.
Cthulhu_ 6/24/2025|
I've used Powerlevel10k for ages (https://github.com/romkatv/powerlevel10k), but it seems it's no longer actively developed / maintained. I think it's a lot cleaner, how I have it set up right now it shows some information like timestamp, Ruby versions, command runtime etc on the right side, whereas Starship shows it right at the prompt.
maztaim 6/24/2025|||
Same here, that's what prompted my search. I felt I could get closest with oh-my-posh.
iaresee 6/24/2025||
That was the same thing that drove me to find an alternative and I also landed on ohmyposh specifically because starship lacked the transient prompt.
fwip 6/24/2025||
I'm not 100% sure what a transient prompt is, but it looks like Starship now might have support for them.

[right prompt docs] https://starship.rs/advanced-config/#enable-right-prompt [transient prompt docs] https://starship.rs/advanced-config/#transientprompt-and-tra...

iaresee 6/25/2025||
https://starship.rs/advanced-config/#transientprompt-in-powe...

Starship only supports this in PowerShell for whatever reason.

Edit: Doh. I see what you linked to now. Yea, maybe it does work in more than just PowerShell now?

Transient prompt basically removes your prompt decorations and replaces it with just `>` in your scroll back history in your shell sessions. In my case it's a slightly more complex transient prompt (datetime and exit code of the command), but still greatly simplified.

Makes cut-and-paste of history in to docs and stuff super nice.

taude 6/24/2025|||
oh, wow, didn't realize powerlevel10k was no longer maintained. that's a bummer. I liked it better than Starship last time I yak-shaved my local cli workflow.
voidUpdate 6/24/2025||
Does the speed of your shell matter? Surely the speed of the programs that you're running through your shell matter more. I've never been let down by how fast bash can tell a program to start running

EDIT: oh, i misunderstood, its just the prompt at the start of your shell... I dont think ive ever been annoyed at how fast that renders either

danpalmer 6/24/2025||
Some people like to put, for example, their current git branch in the prompt. To get that means at least naively, running a git command on every single line the prompt renders on. Git is fast, but it's easy to add a bunch of these and suddenly your prompt takes 100ms to render. Hit enter a few times and you'll immediately notice lag. For that reason, doing this fast does make a real difference.

Of course the fastest thing is to just not stuff your prompt full of detail.

blueflow 6/24/2025|||
If you do not have any subshells or command substitutions in your PS1, then you also save alot of time on platforms like WSL, where forks are expensive.
partdavid 6/25/2025||
My earliest background as a shell user was as as system administrator (back in "the day", let's say), and forks are always potentially expensive, and often the reason you're opening a shell session in the first place (to diagnose resource contention or exhaustion, for example). There have been lots of times when one more fork is too much to take. (Which also, yes, makes it "interesting" to figure out what you can run in your shell session, too).
partdavid 6/25/2025||||
A non-forking prompt command is an absolute requirement for me and always has been, so I did this in pure shell. It's not a lot of code but it's a little tricksy.

If I still used bash, starship would be a non-starter for me, in part, since it's fork/execed in the prompt command. Further up this thread someone says that the zsh installation is different and it's a native shared library that gets loaded into zsh. That seems neat.

(The other reason it's a non-starter is that maybe I can stomach sending over a dotfile to various systems, but selecting a platform-specific native binary is too much configuration management to be done to prepare for an SSH session/kubectl exec. Eventually I made my peace with doing this for emacsclient so I could have local editing of remote files, but that's a lot less critical of a piece to miss than something that appears in your prompt. Conceptually, if you want to ship over/config-manage a native binary, you might as well install a better shell, which became a compelling argument to me when I switched to Powershell).

account42 6/24/2025||||
> Git is fast, but it's easy to add a bunch of these and suddenly your prompt takes 100ms to render.

Or maybe many seconds if you have network drives over a slow VPN connection - not working on network drives, just having them connected. Fun to diagnose when you need to get urgent work done while traveling.

WhyNotHugo 6/24/2025|||
Even 'git status' gets slow on large repositories (or slow hosts).

git status takes 643ms for github.com/rust-lang/rust

Twirrim 6/24/2025|||
Every single time your prompt appears, your shell is doing something. I've tried using various prompt customising things in the past, but they've almost all been written in shell, and always been palpably slow. To the degree that I've found it irritating and stopped using them.

Starship is the first one that hasn't irritated me, in no small part because it's lightning fast, typically only couple of milliseconds to gather and render the prompt.

This is the first time I've been able to stick with one.

mlenz 6/24/2025|||
In this case it‘s about the actual startup time of your shell. When launching a new terminal, starship always need to perform its initialization. If it were slow, I wouldn’t use it because waiting seconds before being able to input anything is kind of annoying. That‘s what they’re referring to.
goriv 6/24/2025|||
I used to use spaceship prompt before this, and it would often take 5s to open up a new terminal and wait for the prompt to load, starship is always instant (like a prompt should be).
WhyNotHugo 6/24/2025||
I've tried tools in this space which add hundreds of milliseconds to a shell's start-up time. That's easily noticeable, especially when the system is under heavy load.
joeyagreco 6/25/2025||
I've used Starship for a few years with a pretty minimal config.

https://github.com/joeyagreco/dotfiles/blob/main/.config/sta...

taude 6/24/2025||
I used to use Starship awhile ago, switched to powerlevel10k. Trying to figure out if there's any thing there for me to want to try starship again? I remember powerlevel10K was really easy to get going.....
ralgozino 6/25/2025|
Powerlevel10k is perfect for me: fast, configurable, looks really good. It is not maintained anymore though :( I guess I'll keep using it while it lasts
deafpolygon 6/26/2025||
I use oh-my-zsh which covers my needs well. Is starship 'faster' than that? If not, then I probably don't need much more than my default prompt:

      ~
smurfsmurf 6/24/2025||
Looks good, though unfortunately I really can't stand icons in my terminal. It looks pretty, but it smudges meaning and, if you suffer from chronic migraine like me, it makes it incredibly hard to scan.
lknuth 6/24/2025|
Agreed, you can replace them easily: https://github.com/LukasKnuth/dotfiles/blob/main/zsh/.config...
Quitschquat 6/24/2025||
Too much bloat. If I want minimal, I’ll use a PS1 with 4 characters in it
sockboy 6/24/2025||
I like how minimal prompts keep focus, but adding just the right context like AWS profile or last command status really saves time and mistakes. Starship hits a good balance here.
beej71 6/24/2025|
The one thing I'd miss from my prompt if I went full $ is the hostname. And even with it in there, I still f it up sometimes.
lend000 6/24/2025|
I'm trying to understand what they are demonstrating with the "false; true" commands in the little video loop. Can someone chime in?
zygentoma 6/24/2025|
`true` returns exit code 0

`false` returns an exit code != 0

The prompt indicates whether the last command returned exit code 0.

More comments...