How to Install Starship on Ubuntu: The Minimal, Blazing-Fast Shell Prompt
Starship is a minimal, blazing-fast and endlessly customisable prompt that works with just about any shell. Written in Rust, it packs a wealth of context into your prompt — the current Git branch and status, the language runtime in play, a Python virtualenv, a Kubernetes context, how long the last command took — without ever feeling sluggish. Because a single binary powers Bash, Zsh, Fish and more, your prompt looks and behaves the same wherever you work.
Ubuntu’s official repositories do not carry Starship, and its steady stream of releases means an archived version would soon fall behind. The upstream install script pulls a binary straight onto disk, outside of APT, leaving you to handle upgrades and removal by hand.
The unofficial deb.griffo.io repository offers a cleaner route: a current, prebuilt Starship package installed with apt and kept up to date through your normal system upgrades.
What Makes Starship Special?
- ⚡ Blazing-fast rendering - Rust under the hood means no noticeable prompt lag
- 🐚 Works with any shell - one binary serves Bash, Zsh, Fish, PowerShell, Nushell and others
- 🌿 Rich Git integration - branch, dirty state and ahead/behind counts shown at a glance
- 🈚 Language-aware modules - displays versions for Node, Python, Rust, Go and many more
- ☸️ Context modules - Kubernetes context, AWS profile, Docker context and command duration
- 🎨 Fully customisable - a single TOML file governs every module, symbol and colour
- 📦 Presets included - ready-made looks such as Nerd Font Symbols and Pastel Powerline
- 🧩 Zero configuration to start - sensible defaults make it look great immediately
Why Use the deb.griffo.io Repository?
- Easy installation and updates through the standard APT workflow
- Automatic dependency management courtesy of Debian-style packaging
- Always tracks upstream releases so new Starship versions land without delay
- No install script dropping an unmanaged binary onto your system
- Works across supported Ubuntu releases including the current LTS versions
Prerequisites
Before starting, make sure you have:
- An Ubuntu system (Jammy 22.04 LTS, Noble 24.04 LTS, or newer)
sudoprivilegescurlinstalled (install it withsudo apt install curlif needed)- A Nerd Font installed and active in your terminal, for Starship’s icons
Step 1: Add the deb.griffo.io Repository
Add the GPG key and source entry with the commands below:
# Create the keyrings directory
sudo install -d -m 0755 /etc/apt/keyrings
# Download and install the repository GPG key
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | sudo gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
# Add the repository (auto-detects your distro codename)
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | sudo tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
# Update the package list
sudo apt update
Step by step:
- Create the keyrings directory with permissions suited to the signing key.
- Install the GPG key, dearmoring it into a keyring APT uses for verification.
- Add the repository, letting
lsb_release -scfill in your Ubuntu codename automatically. - Update the index so APT can see the packages the repository provides.
Step 2: Update the Package List
If you have not already refreshed the index, do it now:
sudo apt update
Step 3: Install Starship
Install the package directly:
sudo apt install starship
APT fetches the latest packaged Starship and resolves any dependencies.
Step 4: Verify the Installation
Confirm Starship is present and reporting a version:
starship --version
You should see something like:
starship 1.23.0
Getting Started with Starship
The binary alone does nothing until you wire it into your shell as the prompt.
Configuring the Prompt
Starship reads its configuration from ~/.config/starship.toml. Create the file if it is not there:
mkdir -p ~/.config
touch ~/.config/starship.toml
Here is a compact example that adds spacing between prompts, tweaks the prompt character and the Git symbol, and hides the package module:
# ~/.config/starship.toml
# Insert a blank line between prompts
add_newline = true
[character]
success_symbol = "[➜](bold green)"
error_symbol = "[➜](bold red)"
[git_branch]
symbol = " "
[package]
disabled = true
Edits apply the next time you press Enter — the config file needs no reload.
Enabling Starship in Your Shell
Add the matching init line to the end of your shell’s config.
For Bash, edit ~/.bashrc:
# ~/.bashrc
eval "$(starship init bash)"
For Zsh, edit ~/.zshrc:
# ~/.zshrc
eval "$(starship init zsh)"
For Fish, edit ~/.config/fish/config.fish:
# ~/.config/fish/config.fish
starship init fish | source
Open a new terminal, or run source ~/.bashrc for Bash, and Starship takes over your prompt.
Applying a Preset
Starship bundles several polished presets that write a complete config in one step:
# Apply the Nerd Font Symbols preset
starship preset nerd-font-symbols -o ~/.config/starship.toml
# See all available presets
starship preset --list
Handy Utilities
A few built-in commands help when you are fine-tuning your prompt:
# Print the resolved configuration in use
starship config
# Measure how long each module takes to render
starship timings
# Explain what each module in the prompt is doing
starship explain
Keeping Starship Updated
Since Starship comes from an APT repository, keeping it current is part of your usual maintenance:
sudo apt update && sudo apt upgrade
Newly packaged releases are pulled in automatically.
Other Tools from deb.griffo.io
The deb.griffo.io repository serves many other terminal tools for Ubuntu:
- zoxide - a smarter
cdthat remembers where you go - eza - a modern, maintained replacement for
ls - fzf - a blazing-fast command-line fuzzy finder
- lazygit - a friendly terminal UI for Git
Troubleshooting
The Prompt Shows Broken Symbols
If your prompt is dotted with empty boxes or question marks, your terminal is not using a Nerd Font. Install one, select it in your terminal preferences and restart the terminal. If you would rather avoid special glyphs entirely, apply a plain preset:
starship preset plain-text-symbols -o ~/.config/starship.toml
Package Not Found
If APT cannot find the starship package after you add the repository:
- Confirm you ran
sudo apt updateonce the source was in place. - Check that your Ubuntu release is supported (Jammy, Noble or newer).
- Inspect the source entry:
cat /etc/apt/sources.list.d/deb.griffo.io.list
GPG or Key Issues
A NO_PUBKEY or signature error means the signing key needs re-adding:
# Re-download and install the repository GPG key
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | sudo gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
# Refresh the package list
sudo apt update
Uninstalling
Remove Starship with:
sudo apt remove starship
Remember to delete the eval "$(starship init ...)" line from your shell config so your previous prompt returns. To remove the repository too:
sudo rm /etc/apt/sources.list.d/deb.griffo.io.list
sudo rm /etc/apt/keyrings/deb.griffo.io.gpg
sudo apt update
Conclusion
Starship turns the humble shell prompt into a fast, informative dashboard for whatever you are doing. It shows the context that matters — Git state, runtime versions, command timing — with sensible defaults out of the box, and a single TOML file lets you tailor every last detail. One binary drives every shell, so your prompt stays consistent across Bash, Zsh and Fish.
Installed through the deb.griffo.io repository, Starship on Ubuntu stays under APT’s management: one command to install, one init line to enable it, and future releases arriving with your normal upgrades. It is tidier than a standalone install script, and it keeps your prompt current with no effort on your part.
Resources
- Starship Official Website
- Starship Configuration Docs
- Starship GitHub Repository
- deb.griffo.io Repository
Disclaimer: The deb.griffo.io repository is an unofficial community project and is not affiliated with the official Debian or Ubuntu projects, or with the upstream Starship project.