Starship on Windows Terminal: The Ultimate Setup & Customization Handbook
Starship is a minimal, blazing-fast, and infinitely customizable prompt for any shell, written in Rust. When integrated with Windows Terminal, it transforms the default, sluggish PowerShell experience into a high-performance development environment that displays relevant context—such as Git status, package versions, and execution time—precisely when you need it. By decoupling the prompt logic from the shell itself, Starship offers a unified, cross-platform experience that remains consistent whether you are working in PowerShell, WSL (Ubuntu), or Command Prompt.
Unleashing the Power of Windows Terminal with Starship
The default command line interface on Windows has historically lagged behind Unix-based systems in terms of aesthetics and utility. While Microsoft has made massive strides with the introduction of Windows Terminal, the stock prompt remains purely functional, lacking the contextual awareness modern developers require.

The Modern CLI: Why Default PowerShell Isn’t Enough
The standard PowerShell prompt (PS C:\Users\User>) tells you where you are, but nothing about the state of your project. In modern DevOps and software engineering workflows, context is king. You need to know which Git branch you are on, whether your working directory is dirty, which Node.js version is active, and how long the last command took to execute. The default shell forces you to run git status or node -v repeatedly, wasting valuable time and breaking your flow.
Thesis: Speed Meets Style in the Ultimate Prompt
The goal of this handbook is to guide you through creating a terminal environment where speed meets style. By leveraging Starship’s Rust-based architecture, we eliminate the input lag common in older PowerShell theme engines. The result is a prompt that renders instantly, looks professional, and provides critical data at a glance, allowing you to focus on coding rather than querying your environment.
What is Starship for Windows Terminal? (The Quick Definition)
Starship acts as a layer that sits on top of your shell. Unlike traditional themes that are scripts specific to a shell (like .oh-my-zsh for Zsh or oh-my-posh for PowerShell), Starship is a compiled binary.
Defining the Cross-Shell Prompt
A cross-shell prompt means that Starship works everywhere. If you dual-boot or use the Windows Subsystem for Linux (WSL), you can use the exact same configuration file for PowerShell, Bash, Zsh, and Fish. This unification reduces cognitive load; you don’t need to learn different configuration syntaxes for every environment you work in.
Why It Is the Best Starship Configuration for Windows Terminal
Starship is widely considered the best configuration for Windows Terminal because of its asynchronous rendering. Heavy prompts can slow down the terminal as it waits for Git status checks to complete. Starship performs these checks in the background, ensuring your prompt appears immediately. It is “install-and-forget” software that respects your system resources.
Step 0: The Essential Nerd Fonts Setup for Windows
Before installing the prompt itself, you must prepare the canvas. Starship relies heavily on “Powerline” symbols and icons to display Git branches, package logos, and status indicators. Without a proper font, you will see empty rectangles (tofu) instead of icons.
Why Starship Prompt Icons Not Showing is Usually a Font Issue
If your terminal looks broken immediately after installation, 99% of the time it is because the terminal is trying to render a glyph that doesn’t exist in the standard Consolas or Lucida Console fonts. You need a Nerd Font, which is a standard font patched with thousands of developer icons.
How to Download and Install a Nerd Font
To fix this, download a popular patched font like CaskaydiaCove Nerd Font (based on Microsoft’s Cascadia Code) or MesloLGS NF.
- Visit the official Nerd Fonts repository.
- Download the
.zipfile for your chosen font. - Extract the files, select all
.ttffiles, right-click, and choose “Install” (or “Install for all users”).
Configuring Windows Terminal JSON Settings for Fonts
Once installed, you must tell Windows Terminal to use it.
- Open Windows Terminal.
- Press
Ctrl + ,to open Settings. - Navigate to Profiles > Defaults > Appearance.
- Set the Font face to the Nerd Font you just installed (e.g., “CaskaydiaCove Nerd Font”).
- Click Save.
Installing Starship on Windows Terminal Guide
With the fonts ready, installing the Starship binary is a straightforward process thanks to modern package managers.
Installation via Winget (Recommended)
The cleanest method for Windows 10 and 11 users is via the Windows Package Manager (Winget). Open your terminal and run:
winget install starship
This command downloads the latest binary and adds it to your system PATH automatically.
Installation via Scoop or Chocolatey
If you prefer other package managers, Starship is available on both Scoop and Chocolatey:
- Scoop:
scoop install starship - Chocolatey:
choco install starship
Modifying the PowerShell Profile ($PROFILE) to Initialize Starship
Installing the binary doesn’t automatically turn it on. You must initialize it in your PowerShell profile.
1. Open your profile in a text editor (like Notepad or VS Code) by running:
notepad $PROFILE
2. Add the following line to the end of the file:
Invoke-Expression (&starship init powershell)
3. Save the file and restart your terminal. You should now see the default Starship prompt.
Expert Analysis: Starship vs. Oh My Posh Performance Breakdown
For years, Oh My Posh was the gold standard for PowerShell theming. However, users often switch to Starship for performance reasons. While Oh My Posh is feature-rich and beautiful, Starship’s architecture offers distinct advantages for users who prioritize raw speed.
Startup Time and Resource Usage Comparison
| Feature | Starship | Oh My Posh |
|---|---|---|
| Language | Rust (Compiled Binary) | Go (Compiled Binary)* |
| Startup Speed | Instant (<30ms) | Fast, but config heavy |
| Config Format | TOML (Simple) | JSON/YAML (Complex) |
| Dependencies | None | None (in modern versions) |
| Render Strategy | Asynchronous | Synchronous/Async |
| Use Case | Minimalists & Speed Demons | Theming Enthusiasts |
*Note: Oh My Posh recently migrated to Go, improving its speed significantly, but Starship generally maintains a lighter footprint out of the box.
Why Starship Wins on Speed and Minimalism
Starship wins on efficiency because it is opinionated about minimalism. It only shows information when it is relevant. For example, it won’t show the Python version unless a .py file is detected in the directory. This “smart display” logic reduces visual clutter and processing overhead.
Mastering starship.toml: Customization & Themes
The true power of this setup lies in the starship.toml file. This is where you define exactly how your prompt looks and behaves.

Creating and Locating the Configuration File
Starship looks for a configuration file in ~/.config/starship.toml. To create this file in Windows:
- Navigate to your user folder:
cd ~ - Create the directory:
mkdir .config - Create the file:
New-Item .config\starship.toml
Starship Themes Windows Terminal: Applying Presets
You don’t have to build a theme from scratch. Starship offers “presets.” To apply a preset (for example, the popular “Nerd Font Symbols” preset), you can run:
starship preset nerd-font-symbols > ~/.config/starship.toml
This overwrites your config with the preset settings.
Customizing Modules: Git, Node.js, and Docker Status
To manually configure specific modules, edit your starship.toml. Here is how you might customize the Git and Node.js indicators:
[git_branch]
symbol = "🌱 "
style = "bg:green fg:black"
[nodejs]
symbol = "⬢ "
style = "bold yellow"
This changes the git icon to a seedling and makes the Node.js hexagon yellow and bold.
Conditional Formatting Logic for Power Users
You can configure modules to only appear under specific conditions using the disabled flag or custom detection logic. For complex workflows, you can even use the [custom] module to run arbitrary PowerShell commands and display the output in your prompt, though be wary of adding commands that take a long time to execute.
Elevating the CLI: Integrations & Workflow
A pretty prompt is nice, but a functional one is better. Integrating Starship with other modern CLI tools creates a workflow that feels like magic. For more insights on building a robust tech stack, you can check out the guides on Home.
Integrating zoxide for Smarter Navigation
zoxide is a smarter cd command. It remembers the directories you use most frequently. When paired with Starship, your terminal becomes a navigation powerhouse.
- Install zoxide:
winget install zoxide - Add it to your
$PROFILE:Invoke-Expression (& { (zoxide init powershell | Out-String) })
Adding fzf for Fuzzy Finding
fzf allows you to fuzzy search through your command history and file system.
- Install fzf:
winget install fzf - Use it to search your history (Ctrl+R) alongside your clean Starship prompt.
Troubleshooting Starship Prompt Windows Terminal Issues
Even the best software has hiccups. Here are the most common issues Windows users face.
Fixing PowerShell ExecutionPolicy Errors
If you see an error about scripts being disabled when you launch your terminal, you need to change your execution policy. Run this command as Administrator:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
Resolving Path Separator Conflicts in Config Files
Remember that TOML is case-sensitive and platform-agnostic, but Windows paths use backslashes (\). However, inside the starship.toml, it is safer to use forward slashes (/) for paths to ensure compatibility if you share the config with WSL.
What to Do When Glyphs Are Broken or Missing
If you see a “square with a question mark” or an empty box:
- Verify the Nerd Font is actually selected in Windows Terminal settings.
- Ensure you aren’t using the “Mono” version of a Nerd Font, as these sometimes have smaller icons.
- Restart the Windows Terminal app completely.
Cross-Environment Consistency: Windows vs. WSL
One of the strongest arguments for Starship is the ability to unify your visual experience across Windows and Linux subsystems.
Sharing Config Files Across Filesystems
Instead of maintaining two config files, point your WSL instance to your Windows config file. In your WSL (Ubuntu) shell, run:
mkdir -p ~/.config
ln -s /mnt/c/Users/YOUR_USERNAME/.config/starship.toml ~/.config/starship.toml
Replace YOUR_USERNAME with your actual Windows username. Now, a change in Windows is instantly reflected in Ubuntu.
Ensuring Uniform Behavior in Ubuntu/Debian Subsystems
Ensure that the Starship binary is also installed in your WSL instance (curl -sS https://starship.rs/install.sh | sh) and added to your .bashrc. This guarantees that your muscle memory for reading the prompt remains valid regardless of the OS kernel you are interacting with.
curl -sS https://starship.rs/install.sh | sh
nano ~/.bashrc
Add the following
# Starship prompt
eval "$(starship init bash)"
# Arrow Up / Down searches matching history
bind '"\e[A": history-search-backward'
bind '"\e[B": history-search-forward'
# Append to history, don't overwrite
shopt -s histappend
# Unlimited history
export HISTSIZE=
export HISTFILESIZE=
# Avoid duplicates
export HISTCONTROL=ignoredups:erasedups
Save and Exit
Press CTRL + O → Enter → CTRL + X
source ~/.bashrc
Key Takeaways: Optimizing Your Terminal Experience
Switching to Starship is more than an aesthetic choice; it is a productivity upgrade.
Top 5 Reasons to Switch to Starship
- Performance: Rust-based binary ensures zero lag.
- Context: Shows git status, package versions, and AWS profiles automatically.
- Portability: One configuration file for PowerShell, CMD, and WSL.
- Simplicity: Easy TOML configuration compared to complex JSON or shell scripts.
- Aesthetics: Modern, clean look with full Nerd Font support.
Conclusion: Future-Proofing Your Development Workflow
The command line is the developer’s home. By setting up Starship on Windows Terminal, you are renovating that home to be faster, smarter, and more enjoyable to live in. You no longer have to envy the setups of macOS or Linux users; Windows Terminal has caught up, and Starship is the engine that drives it.
Explore More Tech Guides at tskamath.com
For deeper dives into developer tools, cloud engineering, and system optimizations, visit Home to keep your skills sharp and your workflow optimized.








