If you’ve ever opened PowerShell, Command Prompt, or Windows Terminal and felt underwhelmed by how plain and unhelpful your prompt looks, you’re not alone. The default command-line experience on Windows has long been functional but uninspiring, and while you can customize Windows Terminal and make it truly your own, it still pales in comparison to the terminal experiences you can have on Linux and macOS. Fortunately, there’s a software package that doesn’t just make your terminal look good, but also makes it more useful. It’s called Starship, and it’s one of the simplest yet most powerful upgrades you can make to your shell.
Starship describes itself as “a minimal, blazing-fast,…
If you’ve ever opened PowerShell, Command Prompt, or Windows Terminal and felt underwhelmed by how plain and unhelpful your prompt looks, you’re not alone. The default command-line experience on Windows has long been functional but uninspiring, and while you can customize Windows Terminal and make it truly your own, it still pales in comparison to the terminal experiences you can have on Linux and macOS. Fortunately, there’s a software package that doesn’t just make your terminal look good, but also makes it more useful. It’s called Starship, and it’s one of the simplest yet most powerful upgrades you can make to your shell.
Starship describes itself as “a minimal, blazing-fast, and customizable prompt for any shell.” That might sound ambitious, but it lives up to the claim. It’s a lightweight, Rust-based program that works across all major shells across operating systems, from PowerShell to Bash, Zsh, Fish, and even the classic Command Prompt through Clink. It’s consistent, and the beauty of Starship lies in how it takes something as ordinary as a prompt and turns it into an adaptive status dashboard that gives you context about your environment at a glance.
Starship is every bit as good on Linux and macOS as it is on Windows, though there is no shortage of great terminal alternatives on those platforms. That’s why it’s particularly special on Windows, as you can add a lot of functionality on a platform that is often neglected when it comes to customizations such as these.
What Starship is (and isn’t)
It’s a part of your terminal
First, let’s get something out of the way: Starship isn’t a full replacement for your shell, nor is it a separate terminal application. Instead, it’s a layer that sits on top of your normal terminal experience. When you type a command and hit Enter, your shell runs the command as usual, but before and after that, Starship dynamically constructs your prompt using a series of modules.
Modules are the core of Starship, and they’re designed to represent something meaningful. It can be as simple as your current directory, or the Git branch in your current directory, whether your working tree is clean, the runtime version of Python or Node.js, the time, battery percentage, or even how long your last command took to execute. Every time the prompt renders, Starship evaluates what information is relevant and displays what you’ve told it to.
Configuration is entirely handled through a simple starship.toml file, which lives in your configuration directory. You can enable or disable modules, rearrange them, and customize every color, icon, and bit of formatting to your liking. It feels like a fully native application, and it doesn’t slow down your experience at all.
To install it on Windows, I just ran “winget install starship” and it installed automatically, though you can install with other package managers, too. Then, you add “Invoke-Expression (&starship init powershell)” to your PowerShell profile, found by typing “$profile”. You can install it on Linux and macOS, but those platforms have a litany of fantastic terminal alternatives already. Windows, though? Not so much, and Starship is the perfect way to fill that gap.
Using Starship day to day
It’s just incredibly nice to use
Starship’s configuration language is simple and readable, based on TOML. Within this file, you can define global settings, individual module configurations, and formatting rules. Even a minimal configuration can dramatically change how your prompt looks. Because your configuration is a single file, it’s easy to back up, sync between devices, or even store in a Git repository. Many users share their configurations online, and Starship’s official documentation includes examples and presets that can help you get started quickly.
Once it’s configured, Starship quickly becomes something you rely on without realizing it. When you navigate into a Git repository, the prompt immediately shows your branch and whether you have uncommitted changes. When you switch into a directory with a package.json file, it shows your Node.js version to the prompt. Enter a Python virtual environment, and a snake emoji appears, showing the current version and whether you’re using a virtual environment or not. It’s like having a constantly updating status bar right in your terminal, tuned to your current context.
All of these are timesavers, yet it’s not just programmers that can benefit. Your system’s memory usage, your laptop’s battery percentage, or even how long a command took to run can all be shown, and it can make a surprising difference in how you use your terminal. For example, even small quality of life tweaks can be implemented to change how a directory is rendered. This will change “Pictures” in a file path to be an emoji:
[directory.substitutions]"Pictures" = " "
I’m using Starship TOML file found here for my configuration. It’s not going to be change your life or be the best software addition you’ve ever made, but it’s certainly one of the nicest changes I’ve made, given how much I use the terminal on a day to day basis on my PC.
I recommend spending some time looking at what others have done with Starship, and then looking through the configuration documentation to see what you can achieve with it. I’ve got it set up with my PowerShell instance in Windows Terminal, and people have set it up on WSL, their Macs, and Linux machines as well. It’s versatile and very capable, and it’s worth your time trying it out.