12 ms·
Starship: A minimal, fast, and customizable prompt for any shell
- voidUpdate 1y agoDoes 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
- mlenz 1y agoIn 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.
- danpalmer 1y agoSome 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 1y agoIf 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 1y agoMy 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).
- account42 1y ago> 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 1y agoEven 'git status' gets slow on large repositories (or slow hosts). git status takes 643ms for github.com/rust-lang/rust
- partdavid 1y agoA 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).
- goriv 1y agoI 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).
- Twirrim 1y agoEvery 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.
- WhyNotHugo 1y agoI'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.
- JimDabell 1y agoI don’t understand why they market this as “minimal”. It’s got loads of features, and every time I see somebody use it they have a huge prompt with loads of bells and whistles. My shell prompt is: : ▶ You don’t need an entire shell prompt customisation framework to be minimal.
- Cthulhu_ 1y agoYeah this isn't minimal, this is maximalism - more information, more characters. They should just embrace being a maximalist prompt.
- slightwinder 1y agoCompared to other shells and prompts, the configuration is really straightforward and minimal if you want something mildly complex.
- Brajeshwar 1y agoMine is an even thinner arrow. # clean, simple, minimal PROMPT='%{%F{red}%}%~ %{%F{yellow}%}% › %{%F{reset_color}%}%'
- Twirrim 1y agoYou can make it as small as you want. Every single feature can be disabled. At the moment mine is relatively minimal format = """ $username\ $hostname\ $shlvl\ $directory\ $git_branch\ $git_commit\ $git_state\ $git_metrics\ $git_status\ $package\ $python\ $rust\ $env_var\ $custom\ $cmd_duration\ $jobs\ $time\ $status\ $shell\ $character"""
- faizmokh 1y agoTried it. Not a fan. I find it unnecessarily fancy.
- Asraelite 1y agoThen customize it not to be. Are you criticizing it for having too many configuration options?
- deleted 1y ago[deleted]
- Quitschquat 1y agoToo much bloat. If I want minimal, I’ll use a PS1 with 4 characters in it
- maztaim 1y agoI found https://ohmyposh.dev/ 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_ 1y agoI've used Powerlevel10k for ages (https://github.com/romkatv/powerlevel10k 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 1y agoSame here, that's what prompted my search. I felt I could get closest with oh-my-posh.
- iaresee 1y agoThat 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 1y agoI'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 https://starship.rs/advanced-config/#enable-right-prompt [transient prompt docs] https://starship.rs/advanced-config/#transientprompt-and-transientrightprompt-in-bash https://starship.rs/advanced-config/#transientprompt-and-tra...
- iaresee 1y agohttps://starship.rs/advanced-config/#transientprompt-in-powershell 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.
- albybisy 1y agoi prefer powerlevel10K
- b0a04gl 1y agoevery time your shell takes 100ms to render git status that you didn’t even need, you're paying invisible tax on flow. terminals should be reactive memory tools, not passive decoration. we optimize for code runtime but not for our own typing latency
- Twirrim 1y agoStarship is very fast, taking only a couple of milliseconds to gather the data (and you can easily configure it to minimise what it'll spend time gathering). It's night and day compared to other ones I've tried, where the hundred millisecond-ish delays annoyed me.
- Night_Thastus 1y agoDepends a lot on the system. I tried using it on Windows via MSYS2, and it seems like some Windows overhead (maybe process startup?) was causing Starship to slow it all down to a crawl. Disabling a few of the addons helped but didn't fix it. In the end I stopped using it.
- lukeschlather 1y agoI don't know if Windows can be helped. It may be antivirus but I feel like 50th percentile load time is at least a second and there's nothing to be done about it. git just hangs sometimes on git show/git diff. I have to kill the terminal.
- WorldMaker 1y agoMy experience of Starship on Windows has been great. I'm using the Windows native builds of both Starship and git (both installed/updated via winget these days) in PowerShell. I try to avoid emulation layers like MSYS2, as much as I'm able. Also, yes, if git hangs on git show/git diff that sounds like an antivirus problem or a dying hard drive or the first one causing the other one.
- eevahr 1y agoMy personal favourite: PS1="%~ $ "
- hiAndrewQuinn 1y agoI like maximalist prompts, and indeed Starship is what Shell Bling Ubuntu [1] installs on a new dev machine. But they're not everyone's cup of tea. If I wanted to recommend to someone the min-maxed, highest density thing they could add to their prompt, it would simply be the time your current prompt appeared + the amount of time the last command you ran took. These two pieces of information together make it very easy for you (or your local sysadmin (or an LLM looking over your digital shoulder)) to piece together a log of exactly what happened when. This kind of psuedo-non-repudiation can be invaluable for debugging sessions when you least expect it. This was a tip I distilled from Michael W. Lucas's Networking for System Administrators a few years ago, which remains my preferred recommendation for any developers looking to learn just enough about networking to not feel totally lost when talking to an actual network engineer. Bonus nerd points if you measure time in seconds since the UNIX epoch. Very easy and fast to run time delta calculations if you do that: [0 1719242840] $ echo "foo" [0 1719242905] $ echo "fell asleep before hitting enter" && sleep 5 [5 1719242910] $ [1]: https://github.com/hiAndrewQuinn/shell-bling-ubuntu https://github.com/hiAndrewQuinn/shell-bling-ubuntu
- nine_k 1y agoCurrent time in a more human-readable format is very helpful sometimes. Also, the exit status of the previous command, if nonzero, is also very helpful when anything fails.
- skydhash 1y agoFor personal workstation, the current directory is enough. Maybe I change the color based the status of the last command. That’s pretty much the only information I need before entering any command. Everything else can be accessed when I really need it.
- hiAndrewQuinn 1y agoI like stuffing everything which might be important to the context window in there, personally. Saving 50ms on the prompt load sure beats a false negative when something goes wrong because I don't even think to ask whether I have the wrong Node version installed or something.
- perplex 1y agoHappy user of spaceship prompt for zsh: https://spaceship-prompt.sh https://spaceship-prompt.sh, and, among other things, it runs repo status asynchronously.
- Aeolun 1y agoI really like this one for just being a single install and then no more fiddling. I don’t have time for any of that shit, but I do want to know whether my current shell is on node 20 or 22, rust stable or nightly. Getting all of that without extra effort is great.
- hu3 1y agoI'm a long time user of https://github.com/ohmybash/oh-my-bash https://github.com/ohmybash/oh-my-bash It would be nice to have a comparison and reasons to change from popular tools.
- nodesocket 1y agoCame here to ask the same. Long time ohmyzsh user, and wondering what new features / benefits Starship has.
- pasc1878 1y agoBasically it is quicker. I also expect it has everything that you have in your prompt so is a direct replacement without losing anything.
- hu3 1y agoI don't doubt that it can be quicker but: 1) I don't recall having a problem with prompt speed. 2) Are there any benchmarks?
- lknuth 1y agoI found the config a lot nicer. It was very easy to custimze to my (very minimal) liking. The config is easily readable. And its portable to any supported shell. Most shells can probably do everything this can as well and if you're already familiar with the archaic syntax there is probably limited use for you. For an idea, here is my current config https://github.com/LukasKnuth/dotfiles/blob/main/zsh/.config/starship.toml https://github.com/LukasKnuth/dotfiles/blob/main/zsh/.config...
- drcongo 1y agoI love Starship. Having built a decent enough powerline prompt for zsh in the past, and really hating PS1, I've found Starship to be incredibly useful for building the exact prompt I want, with full colour, and never ever wigging out at anything. One simple toml file on every machine I ever ssh into and everything I need to know about the session is there at a glance.
- kuon 1y agoIt looks nice. I usually like simple prompt, but there is one feature I really like, it's the timestamp. It helps me remember when I did something and how long it tooks.
- BSDobelix 1y agoAtuin and Starship the same Day on place 1? Next zellij :)
- ellieh 1y agoAtuin was until it was bumped to page 2/3 and beyond :(
- anuramat 1y agoI can't imagine interacting with computers without fzf, zoxide and nix anymore; everything else feels relatively inconsequential Wondering if there are any other life-changing tools I'm missing out on...
- hiAndrewQuinn 1y agoI've got a whole list of tools you might want to consider checking out over at [1]. The scripts themselves are Ubuntu specific, but the binaries are ones I've all found very helpful over the years. In particular I'd call out `gron` (make JSON greppable) and `lnav` (Datadog-level log filtering but for local machines and files) as very helpful for dev work. [1]: https://github.com/hiAndrewQuinn/shell-bling-ubuntu?tab=readme-ov-file#faq https://github.com/hiAndrewQuinn/shell-bling-ubuntu?tab=read...
- deleted 1y ago[deleted]
- jamesponddotco 1y agoI live in the terminal, so I wrote my own prompt ages ago when I started learning Go[1][2], and before that I had a simple prompt in bash. I like to keep things very simple and fast, so the directory and the git branch is all I need. I wonder if people really use all that information or if they set it up thinking they need it, but then never do. [1]: https://git.sr.ht/~jamesponddotco/gosh https://git.sr.ht/~jamesponddotco/gosh [2]: I should probably update that now that I know a “bit” more Go.
- williamdclt 1y agoThe only thing I add is the time (hh:mm:ss), it's often-ish useful to roughly know how long a command has been running for (or how long it took after it completed)
- jayknight 1y agoThe `cmd_duration` starship module can additionally tell you how long the previous command took: https://starship.rs/config/#command-duration https://starship.rs/config/#command-duration
- touristtam 1y agoI like the host you have that code on. That's refreshing to see a website that doesn't _require_ you to run some javascript.
- sockboy 1y agoI 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 1y agoThe 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.
- bbkane 1y agoI ended up writing my own zsh prompt a few years ago and it's worked like a charm for my simple needs: https://github.com/bbkane/dotfiles/blob/master/zsh/dot-zshrc_prompt.zsh https://github.com/bbkane/dotfiles/blob/master/zsh/dot-zshrc... ends up looking like this: https://github.com/bbkane/dotfiles/blob/master/zsh/README_img/fast-syntax-highlighting.png https://github.com/bbkane/dotfiles/blob/master/zsh/README_im...
- oweiler 1y agoI use Starship without any customizations and its good enough for my every day use.
- babo 1y agoProduced a 151 characters long prompt in my current development directory. This is really a starship, but I'm a pedestrian.
- smurfsmurf 1y agoLooks 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 1y agoAgreed, you can replace them easily: https://github.com/LukasKnuth/dotfiles/blob/main/zsh/.config/starship.toml https://github.com/LukasKnuth/dotfiles/blob/main/zsh/.config...
- bodge5000 1y agoI know Starship isn't zsh specific but I guess its tangentially related, does anyone know what the default zsh config is on MacOS? I got quite used to it, and now I'm on linux I'd like to replicate it. The closest I've got is using the eastwood theme on oh-my-zsh but it's not quite the same (I dont even think MacOS using oh-my-zsh out the box, but its got all the nice git stuff)
- yankcrime 1y agoIgnore the haters - I too am a fan of minimalism in my terminal since I don't appreciate unnecessary clutter or decoration, but context is king and Starship can be configured as such. By default my prompt is a shows me the current directory, the time, and a single character '%'. If I set something in my environment for which I need to be contextually aware - i.e if I have KUBECONFIG or OS_CLOUD - then the prompt is updated with the detail. Similar for languages - it'll automatically show me the version of Go or Python or whatever based on a few factors, all of which I can control. The reason I love Starship is that it's made all this very, very easy to configure - instead of having to wade through arcane Zsh configuration or additional plugins, Starship makes it easy. It also adds negligible overhead to initialisation, especially when done so via evalcache [0] [0] https://github.com/mroth/evalcache https://github.com/mroth/evalcache
- wocram 1y agoI also have very few always on segments, and many conditional segments that only show up when useful. Host shows when I'm not on the usual, user when I'm not me, and stuff like that.
- Henchman21 1y agoGenuine question for all the people putting timestamps in your prompts: do you never look at your command history and see that they’re all timestamped?
- jethro_tell 1y agoI do know that though that assumes some things about os and shell. Run a full screen term on my machine for a good chunk of my workflow and I just like to have time and battery in my term. I render it as ‘(15:35) [80} <hostname> $ ‘ and for boxes without batteries it’s just ‘(15:35) <hostname> $ ‘ Some times I’ll go back through my scroll back and look at the time when I’m trying to figure things out. Or when I run a command that generates a ton of output, I’ll note the time and run the command then later search back to the time in scroll back to start at the top of the log. None of these are features I truly miss on a vanilla box, I can look at a clock or watch and will put a comment into the scroll back to find later.
- Henchman21 1y agoI think we’re quite similar I just put my time display in the tmux status bar :) Just so I am clear, use your prompts as you see fit — I’m just trying to understand how others work. Thanks!
- hiAndrewQuinn 1y agoPer the Bash `history` manpage: int history_write_timestamps If non-zero, timestamps are written to the history file, so they can be preserved between sessions. The default value is 0, [...] So this isn't true by default on many machines unless it is explicitly turned on. I could find no command line history for Bash when I poked around. I use the fish shell, however, which does embed timestamp data by default - but I rarely think to look there when the detail might be pertinent. C'est la vie.
- Henchman21 1y agoAha now that makes some sense. I am a bash user— and I’ll admit my settings are OLD. So old I’ve forgotten the defaults entirely. Thanks for the reminder :)
- Tmpod 1y agoI tried starship a few years ago and found it too "extra" and sluggish. I'm sure it may have improved in this time, but I ended up sticking with the excellent Hydro[0], only for fish though. It's very minimal while having useful features: - exit codes, even for pipelines - git branch, status (displayed as a dot if your tree is dirty) and ahead/behind counts - command execution time (if above some configurable threshold) - truncated/minified $CWD, always maintaining the git root's name (I sometimes like it, sometimes don't; fortunately, it's very easy to change) - current vi-like mode (I don't use that) It's very fast and async (prompt repaints don't block your input or running commands), and totals 132 lines of fish (according to cloc[1]). It's also very customisable through variables, which can be declared as universal to instantly change on all sessions you have open. If you're on fish and like this feature set, definitely give it a shot, or at least look at the code as a base for a bespoke prompt :P [0]: https://github.com/jorgebucaran/hydro https://github.com/jorgebucaran/hydro [1]: https://github.com/AlDanial/cloc https://github.com/AlDanial/cloc
- bullman 1y agoFan of starship here. wanted to drop a few comments based on what I seen so far Love the performance. Written in Rust and compiled to binary, it's _much_ faster than either python-based powerline, the bash-shell-based ohmybash and zshell-based ohmyzsh and spaceship. You can use it for zsh, bash, sh, fish. but you can also use it for both MS Windows CMD and Powershell. I don't believe any other prompt tools can do all at the same time. And a single config file can control all of them on your system. The default config is just that - a default. Too much information? you can change it. dont like icons? you can remove them. At almost 100 modules to choose from, it's customization options are nearly limitless
- tristor 1y agoI have been using ZSH + various add-ons for ages, originally oh-my-zsh, and lately Prezto. I also somewhat maintain a fork of Prezto with improvements for Mac, mostly for my own personal use (although apparently quite a few others are using it as its gotten several stars). Historically I used powerline9k, powerlevel, powerline10k, and finally pure for the longest time. I switched to starship the last time it got posted on HN that I saw, which was around 2 or 3 years ago, and I've stuck with it since. For one thing, it had a mode to configure it exactly like pure very simply out of the box, and the second reason was because it was significantly faster. By moving more of the logic into starship and out of ZSH, it greatly reduced the performance hit I took by adding additional information into my prompt. I know not everyone likes blinged out shells, but if you're a ZSH user, it fits very well into the Prezto/oh-my-zsh model.
- askl 1y agoLooks pretty nice, but the name seems unfortunate. (unless it crashes on every launch)
- pseudospock 1y agoIt has support for fish shell... I'll pass.
- bigfishrunning 1y agosupport for a shell you don't use is a negative? why? I don't personally use it, but I don't mind if other people do -- what's the problem here? just curious.
- pseudospock 1y agoFish shell detracts from people learning (and maintaining) to use POSIX compliant shell scripting. Professionals should be ready at a moments notice to use bash, zsh, and ksh. Also good to be familiar with a csh, (I would accept tcsh). Learn to use the tools of the trade, not toys.
- lend000 1y agoI'm trying to understand what they are demonstrating with the "false; true" commands in the little video loop. Can someone chime in?
- zygentoma 1y ago`true` returns exit code 0 `false` returns an exit code != 0 The prompt indicates whether the last command returned exit code 0.
- grep_name 1y agoInteresting. I've been using the pie theme fish for years, and have various problems with it, but have not found something in OMF which is better for me. I also don't like the OMF dependency in my configs. Maybe it's finally time for me to sit down and write my own shell prompt once and for all. I wonder if I can make it context-aware of fish's editing vs normal mode when vi mode is enabled
- taude 1y agoI 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 1y agoPowerlevel10k 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
- m000 1y agoI would be very curious to see an age demographic chart of people using e.g. Starship. Personally, over time, I have stopped caring too much about prompt customization. I concluded that, no matter how carefully you curate your prompt, 90% of the information shown will be irrelevant 90% of the time*. After a while, your brain will start perceiving this as visual clutter and filter it out, to the point you may even forget the information is there, right in front of your eyes. And for the things that matter, you probably need more details than any prompt can show you. E.g. are there changes in your git branch? Ok there are, good to know, but which files have changed? Just knowing that there are changes is not really actionable information. You need to run additional commands to get actionable details. * the numbers are completely arbitrary, but you get the picture
- bityard 1y agoI think we can generalize this into the overall computing environment. When I was younger, I was that kid building my whole OS from source via Gentoo, with all the CPU-specific flags and optimizations. I had a very detailed window manager configuration (fwvm2 maybe?), a .bashrc full of aliases and functions for every occasion. And yes, a custom prompt. I think these kinds of over-optimization rabbit holes are a good learning experience, but I compare it to woodworking. A woodworker just starting out will spend most of his/her time building or refining the tools they need, learning techniques, coming up with ideas/designs and testing them, etc. But eventually the point comes where you have to get Real Work done and the tools and jigs have to wait until the weekend. Linux is still my favorite desktop OS, but these days I just run Debian and KDE because "free time" is not a thing I have anymore and I care more about getting things done than having the most optimal computing experience.
- skydhash 1y agoI still have free time, my shift to default config and stable software was caused by how many workfkow changes for no reason I could stomach. I rarely need the latest features. Getting things to work and expecting to stay working for a while is the basic premise of computing.
- deathanatos 1y ago
- spiantino 1y agoStarship + Ghostty has been an awesome (and fast) experience.
- iloveitaly 1y agoI've been using it for awhile and love it: https://github.com/iloveitaly/dotfiles/blob/master/.config/starship.toml https://github.com/iloveitaly/dotfiles/blob/master/.config/s...
- t1234s 1y agoIs piping curl output to sh ever a good idea?
- spapas82 1y agoWell done for supporting windows cmd (through clink) ; most shell tools don't take care about us windows cmd users !
- baruchel 1y agoCan't find the URL again for a funny (and probably universal) custom prompt: you had to do some curl <url> | sh then you could see on your terminal thousands of various tests related to your installation, then several megabytes being downloaded with progress bars, etc. At the very end of the whole process, the whole stuff would vanish into writing PS1="$ " at the end of your ~/.bashrc Of course, the very same prompt was used whatever your install could be. I think it was some joke making fun of all these crazy and heavy custom prompts all around.
- skrebbel 1y agoI'm impressed at how seriously they take "for any shell". It even works with cmd.exe!
- woile 1y agostarship has been excellent, and gives me the right context all the time. Like I'm running inside a nix shell, the python venv is enabled or the git branch. Configuring it with home-manager was as simple as: programs.starship.enable = true;
- PeterWhittaker 1y agoWhat am I missing? I went to the site, but I can find nothing to suggest why I might want to use this. Are there examples that I've missed, likely owing to having been heads down chasing a pernicious heisenbug all day? Given that I do like my shiny prompt, which shows me: The result of the last command (in green, red, or purple) user@host:currentDirectory current branch, if in a repo with the last line showing summary git status, if in a repo, and background jobs, I suspect I might be their market, but I cannot see a why anywhere. (Green: Last command good, e.g., exit 0) (Red: Last command non-zero exit, with a special indicator if it was interrupted) (Purple: Last command suspended, and few other things)
- deleted 1y ago[deleted]
- microflash 1y agoI'm surprised by people conflating customizability with maximalism. Yes, the default configuration is a bit too much but you can turn the knobs to reign it in. I work on multiple AWS environments, different application runtimes, and so on. Having some context in the prompt has been very helpful for me. I maybe biased though since I've used Starship for years paired with Nushell.
- pixl97 1y agoWarning: Improper use of Starship may cause it to explode in your test harness.
- usmanity 1y agoI started using Pure prompt since I'm only ever using zsh and it seemed to cut down a lot on the setup required, I do have to spend like 15-20 mins on a new computer to get everything working as expected but once it gets going, it feels like the best mix of customization and speed.
- exiguus 1y agoI have several use-cases / problems I solve with my prompt: - See current git branch (to not mistakenly work or commit into the wrong branch) - See git has changes (to stash them before switching branches) - See the current language/engine version (like go v1.24.2, because i use tools like gvm, sdk, nvm or rustup to switch version in projects and i want feedback that i have the correct/expected language version enabled) - See that i am on my local or a remote machine and k8s context That's mostly it. Of course, I can do this by writing my own prompt, but I found out that Starship does this for me, basically out of the box, on any machine and terminal, in a very nice-looking way. Also, I am not a fan of fancy-looking prompts, so visually, Starship fits best for me.
- thibran 1y agoToo bad that we still use text based shells in the year 2025. We should have come up with a graphical shell that is as powerful and flexible two decades ago.
- ulbu 1y agotext is discrete, graphical is continuous. very different psychologically. i disagree with you wholeheartedly.
- touristtam 1y agoWhat's a graphical shell in your mind if you don't mind me asking?
- dirkg 1y agoI'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.
- nh2 1y agoWith or without starship, one problem I have with zsh prompts is that when I press Enter, there is still a visible delay where for a fraction of a second, the cursor moves to the beginning of the next line. This makes a nasty "flashing" effect. If I keep Enter pressed, the cursor is permanently visible at offset 0 in the lowest line. If the prompt is ultra-fast (e.g. plain root shell prompt on zsh), it happens less (e.g. only 50% of cases), but as soon as the prompt does anything, it's very visible. I observe this with many terminals (gnome-terminal, wezterm, kitty, alacritty, xterm). The only terminal I tried that doesn't have this problem is urxvt, where it looks perfect. Video repro: https://nh2.me/flashing-cursors-on-newline.mp4 https://nh2.me/flashing-cursors-on-newline.mp4 Why, and is there a way around it for those other terminals?
- nh2 1y agoFor Kitty I posted it on https://github.com/kovidgoyal/kitty/issues/8752 https://github.com/kovidgoyal/kitty/issues/8752, maybe we'll learn more!
- big_alfredo 1y agoTry tweaking kitty's input_delay setting. For example: kitty --override=input_delay=10
- nh2 1y agoinput_delay doesn't seem to address this in general: Even when set to 50 (which is very noticeable), the cursor on the next line just appears with some delay. None of the settings from https://sw.kovidgoyal.net/kitty/performance/ https://sw.kovidgoyal.net/kitty/performance/ seem to affect its appearance.
- big_alfredo 1y agoInteresting, In zsh I experienced the exact behavior you described and setting input_delay to 10 completely resolved it. To be fair, when testing my PS1 was simply '%m$ '. I just benchmarked 'starship prompt' and when in a directory managed by git, it can take well over 10ms. I imagine with a more advanced configuration it would take even longer. urxvt must be doing something special.
- shmerl 1y agoMaking a specific font a requirement is a bit too restrictive.
- dannyfritz07 1y agoIf you want to use Starship, but disable nerdfont and the language features leaving things like git, duration, error, etc., use this config: https://github.com/dannyfritz/dotfiles/blob/e53d410364bf6e2f4e1de4b9c6abbbc832db67b1/starship.toml https://github.com/dannyfritz/dotfiles/blob/e53d410364bf6e2f...
- joeyagreco 1y agoI've used Starship for a few years with a pretty minimal config. https://github.com/joeyagreco/dotfiles/blob/main/.config/starship/starship.toml https://github.com/joeyagreco/dotfiles/blob/main/.config/sta...
- sahil_sharma0 1y ago[dead]
- xavdid 1y agoI've been a happy starship user for a few years at this point (after a long time with oh-my-zsh). For me, it's killer feature is the `starship.toml` file. Gone are the days of arcane bash escape sequences to style the prompt. It's a well-documented shape and easy to reason about. So no matter if you got maximalist or minimalist for your, it's easy to tweak. That rocks.
- deafpolygon 1y agoI 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: ~