Developer Toolsbeginner

Starship vs Oh My Posh

Starship and Oh My Posh compared as cross-shell prompt engines: supported shells, installation on macOS, Linux and Windows, config formats, themes and presets, modules and segments, transient prompts, tooltips, right prompts, debugging slow prompts, AI-agent statuslines and licences, as of November 2026.

Quick Answer

Both replace your shell prompt with a single fast binary that works across shells and operating systems, and both want a Nerd Font for icons. Starship (Rust, ISC, v1.27.0 from October 2026) is configured in one TOML file. It ships good defaults, 12 presets and about 106 documented modules, and supports Bash, Zsh, Fish, PowerShell, Nushell, Elvish, Xonsh, Ion, Tcsh and Cmd via Clink. Oh My Posh (Go, MIT, v31.9.1, also October 2026) is configured in JSON, YAML or TOML. It bundles 125 themes and around 120 documented segments, adds tooltips and a transient prompt on Zsh, and installs with winget on Windows. Pick Starship if you're on macOS or Linux and want minimal setup and a plain TOML file. Pick Oh My Posh if you're on Windows and PowerShell first, want a finished theme, or need tooltips or a transient prompt in Zsh.

Last updated November 7, 2026. Covers Starship v1.27.0 (17 Oct 2026) and Oh My Posh v31.9.1 (20 Oct 2026), with shell support, transient prompt and tooltip coverage, and install options taken from each project's docs and GitHub repositories, read in November 2026.

Feature comparison of Starship vs Oh My Posh
FeatureStarshipOh My Posh
Written In
Rust
Go
Licence
ISC
MIT
Latest Release
v1.27.0 (17 Oct 2026)
v31.9.1 (20 Oct 2026)
Supported Shells
Bash, Zsh, Fish, PowerShell, Nushell, Elvish, Xonsh, Ion, Tcsh, Cmd (Clink 1.2.30+)
Bash, Zsh, Fish, PowerShell, Nu, Elvish, Xonsh, Yash, Cmd (Clink)
Install Options
install.sh, Homebrew, MacPorts, winget, Scoop, Chocolatey, MSI, cargo, conda-forge, distro packages, Termux
winget, Chocolatey, install.ps1, Homebrew (macOS/Linux), MacPorts, install.sh
Config Format
TOML only
JSON (default), YAML, TOML
Bundled Themes / Presets
12 official presets (starship preset <name>)
125 bundled themes
Modules / Segments
About 106 documented modules plus custom commands
About 120 documented segments (CLI tools, languages, cloud, SCM, system, music, health, AI agents)
Right Prompt
Elvish, Fish, Zsh, Xonsh, Cmd, Nushell, Bash (with ble.sh or Flyline)
Yes: rprompt block or right-aligned blocks
Transient Prompt
PowerShell, Cmd, Fish, Bash (ble.sh)
Nu, Fish, Zsh, PowerShell, Bash (ble.sh), Cmd
Command Tooltips
Fish, Zsh, PowerShell, Cmd (Clink 1.2.46+)
Templating
Format strings with $variables and [text](style) groups
Go text/template with sprig functions
Nerd Font Handling
Nerd Font recommended; No Nerd Fonts and Plain Text presets
Nerd Font recommended; oh-my-posh font install
Debugging Slow Prompts
starship explain, starship timings, STARSHIP_LOG; command_timeout 500 ms
oh-my-posh debug shows slow segments
AI Coding Agent Statusline
Claude Code statusline (claude_model, context, cost modules)
Claude Code, GitHub Copilot CLI and Antigravity CLI statuslines
Visual / Browser Editor
No
Studio (in-browser WebAssembly) and Configurator

Starship

A minimal, fast, customizable cross-shell prompt written in Rust and released under the ISC licence. One binary and one TOML file drive the prompt in every supported shell. Modules detect the current context (git state, language versions, cloud profile, Kubernetes context and more) and show only what's relevant.

Pros

  • Good defaults: add one init line to your shell config and it works with no config file
  • One TOML file (~/.config/starship.toml, or STARSHIP_CONFIG), with a published JSON schema for editor completions
  • Broad shell coverage: Bash, Zsh, Fish, PowerShell, Nushell, Elvish, Xonsh, Ion, Tcsh and Cmd via Clink
  • Packaged nearly everywhere: Homebrew, winget, Scoop, Chocolatey, cargo, conda-forge, Debian 13+, Ubuntu 25.04+, Arch, Fedora (Copr), Alpine, NixOS, FreeBSD, Termux
  • Built-in diagnostics: starship explain describes each visible module, and starship timings shows which one is slow
  • Very large community (about 60,000 GitHub stars) and current modules, including Jujutsu support added in 1.27.0

Cons

  • Only 12 official presets; anything beyond them means writing format strings and style tables yourself
  • No transient prompt section for Zsh in the docs (they cover PowerShell, Cmd, Fish and Bash via ble.sh)
  • No tooltip feature: no prompt segments that appear only when you type a particular command
  • Right prompt in Bash needs ble.sh or Flyline installed

Best For

macOS and Linux developers on Zsh, Fish or Bash who want an informative prompt with almost no setup and a small, readable TOML config they can keep in their dotfiles.

Oh My Posh

A cross-platform, cross-shell prompt renderer written in Go under the MIT licence, maintained by Jan De Dobbeleer. Prompts are built from blocks and segments described in JSON, YAML or TOML, with Go text/template plus sprig templates. It ships 125 themes and installs with one winget command on Windows.

Pros

  • 125 bundled themes, so you can start with a finished design instead of building one
  • Config in JSON (default), YAML or TOML, all validated against a published schema; there's also an MCP server that validates configs
  • Tooltips: segments that appear only while you type a matching command (Fish, Zsh, PowerShell, Cmd via Clink 1.2.46+)
  • Transient prompt on Nu, Fish, Zsh, PowerShell, Bash (ble.sh) and Cmd
  • Windows-first setup: winget or Chocolatey, Clink has built-in support (1.7.0+), and oh-my-posh font install sets up Nerd Fonts
  • Browser-based Studio editor renders your config live through a WebAssembly build, with nothing sent to a server

Cons

  • Configs are long and nested (blocks, segments, templates), so expect more editing than with a short TOML file
  • Releases come very fast (v31.6 to v31.9.1 in under two weeks in October 2026), so expect frequent upgrade prompts
  • No Tcsh or Ion support, which Starship has
  • On Windows the FAQ warns that antivirus real-time protection can slow the prompt down

Best For

Windows and PowerShell users, people who want to pick a ready-made theme, and anyone who wants tooltips or a transient prompt in Zsh.

Installing and wiring each one into your shell

Both are a single binary plus one line in your shell's startup file. Starship's guide installs with curl -sS https://starship.rs/install.sh | sh on Linux and macOS, or through Homebrew, MacPorts, cargo or conda-forge. Distro packages cover Debian 13+, Ubuntu 25.04+, Arch, Fedora and CentOS (Copr), Alpine, Gentoo, openSUSE, Void and NixOS, plus FreeBSD, NetBSD and Termux. Windows gets winget, Scoop, Chocolatey or an MSI. You then add eval "$(starship init zsh)" (or the equivalent) to Bash, Zsh, Fish, PowerShell, Nushell, Elvish, Xonsh, Ion or Tcsh, or a Lua file for Cmd through Clink 1.2.30+. Oh My Posh's Windows page leads with winget install JanDeDobbeleer.OhMyPosh, then a PowerShell install script and Chocolatey. On macOS it's Homebrew or MacPorts. On Linux it's an install script that drops the binary in ~/bin or ~/.local/bin and needs curl, unzip, realpath and dirname. The init line looks like Starship's (eval "$(oh-my-posh init bash)") and covers Bash, Zsh, Fish, PowerShell, Nu, Elvish, Xonsh, Yash, and Cmd through Clink, which has built-in Oh My Posh support since 1.7.0. One upgrade gotcha in Oh My Posh: the init script uses the binary's absolute path by default. Add --strict if your package manager removes old versions on upgrade.

Configuration style: one TOML file vs blocks and segments

Starship's model is flat. The top-level format string lists modules in order, and each module gets a TOML table such as [git_branch], [nodejs] or [kubernetes] with its own format, style, symbol and disabled keys. Defaults are on, so most configs only disable or restyle a few modules. Palettes let you name colours once, and a $schema line gives editor completions. Global knobs include command_timeout (500 ms by default) and scan_timeout (30 ms). The docs list about 106 modules plus custom commands, and 1.27.0 added four Jujutsu modules and OpenTofu .tofu detection. Oh My Posh's model is layout-first. A config holds blocks (left- or right-aligned, prompt or newline), each block holds segments, and each segment has a type, colours, a powerline or diamond style and a Go text/template with sprig functions for its text. JSON is the default, with YAML and TOML supported against the same schema. That makes elaborate powerline themes easy to express, but the files run much longer than a typical Starship config. Its docs group roughly 120 segments into CLI tools, languages, cloud, source control, system, web, music, health and AI agents. Keeping a prompt in dotfiles favours Starship. Designing a showpiece prompt favours Oh My Posh.

Themes and presets

Starship has 12 official presets, each applied with one command such as starship preset tokyo-night -o ~/.config/starship.toml. They include Nerd Font Symbols, No Nerd Fonts, Bracketed Segments, Plain Text Symbols, No Runtime Versions, No Empty Icons, Pure Prompt, Pastel Powerline, Tokyo Night and Gruvbox Rainbow. Several exist to make Starship work in terminals without Nerd Fonts, or to tone it down. The project's stance is that the default should be good, and presets are a starting point you edit. Oh My Posh's themes directory holds 125 theme files plus the schema, and the docs gallery lets you preview them before pointing --config at one. You can start from a theme and copy it locally to edit, or design from scratch in the Studio, an in-browser editor where a WebAssembly build renders the prompt as you type, using sample data rather than your machine's. Both strongly recommend a Nerd Font. Oh My Posh can install one for you with oh-my-posh font install meslo. Starship lists a Nerd Font as a prerequisite but ships presets that avoid glyphs. If you want to browse and pick, Oh My Posh offers far more choice. If you want something calm and readable, Starship's default is already that.

Transient prompts, tooltips and right prompts by shell

This is where the two differ most, and the answer depends on your shell. A transient prompt collapses earlier prompts to something short once a command runs, which keeps scrollback clean. Oh My Posh supports it in Nu, Fish, Zsh, PowerShell (not in ConstrainedLanguage mode), Bash with ble.sh, and Cmd. Starship's advanced-config docs have TransientPrompt sections for PowerShell, Cmd, Fish and Bash with ble.sh, and none for Zsh. A Zsh user who wants a transient prompt without a separate plugin is better served by Oh My Posh. Tooltips are an Oh My Posh feature with no Starship equivalent: a segment is tied to command names and appears to the right only while you type one, for example your AWS profile while typing aws, or your Kubernetes context while typing kubectl. They work in Fish, Zsh, PowerShell and Cmd via Clink 1.2.46+. Starship's right_format works in Elvish, Fish, Zsh, Xonsh, Cmd, Nushell and Bash. Bash needs ble.sh 0.4+ or Flyline 1.7.1+, and Flyline support arrived in 1.27.0. Oh My Posh uses an rprompt block (one per config) or right-aligned blocks. Both support a continuation (secondary) prompt.

Speed, debugging and day-to-day upkeep

Neither project publishes benchmarks we could verify, and both compute the prompt by running a native binary on every command, so slowness usually comes from what a module or segment calls (git status on a huge repo, a slow version manager, a cloud CLI) rather than from the engine. Starship gives you two tools for this. starship timings, run with STARSHIP_LOG=trace, ranks modules by time taken, and starship explain describes every symbol on screen. Its command_timeout stops external commands at 500 ms by default and logs a warning, which you can raise or silence. Oh My Posh's equivalent is oh-my-posh debug. Its FAQ suggests git gc for slow repos and warns that Windows antivirus real-time scanning is a common cause of prompt lag. On upkeep, Starship releases are spaced out: 1.25.0 in April, 1.26.0 in June and 1.27.0 on 17 October 2026, which included two security advisories. Oh My Posh moves much faster, with five releases from v31.6.0 to v31.9.1 between 8 and 20 October 2026, and it shows an upgrade notice you can turn off. Both now render statuslines for AI coding agents. Starship has a Claude Code statusline with model, context and cost modules. Oh My Posh covers Claude Code, GitHub Copilot CLI and Antigravity CLI.

Verdict

Choose Starship if you work mostly on macOS or Linux with Zsh, Fish or Bash and want the prompt sorted in five minutes. The defaults are useful with no config file. When you do customise it, the TOML stays short enough to read in a code review of your dotfiles, and starship timings tells you which module is slowing things down. Choose Oh My Posh if your day starts in Windows Terminal and PowerShell, if you'd rather pick one of 125 finished themes than design one, or if you want features Starship doesn't have: tooltips that show, say, your Kubernetes context only while you type kubectl, and a transient prompt in Zsh. Both are free, open source and cross-platform, so mixed teams can standardise on either. Starship's packaging on Linux distros and BSDs is broader, and Oh My Posh's Windows setup (winget, Clink built-in support, font installer) is smoother. If you only want a clean prompt and never plan to touch the config, Starship is the safer default.

All Comparisons

Starship vs Oh My Posh — FAQ

Common questions answered from the comparison above

Is Starship faster than Oh My Posh?

Neither project publishes benchmarks we could verify. Both are compiled binaries, Rust for Starship and Go for Oh My Posh, and in practice prompt lag comes from slow modules such as git on large repos. Use starship timings or oh-my-posh debug to find the slow part.

Can I use Starship or Oh My Posh with Zsh and Oh My Zsh?

Yes. Both initialise with one eval line in ~/.zshrc and replace only the prompt, so you can keep Oh My Zsh plugins and disable its theme. If you want a transient prompt in Zsh, Oh My Posh supports it natively. Starship's docs don't cover Zsh for that feature.

Which is better on Windows and PowerShell?

Both work well. Oh My Posh has the smoother Windows path: winget or Chocolatey install, built-in Clink support for Cmd, an oh-my-posh font install command, and tooltips and a transient prompt in PowerShell. Starship also installs via winget, Scoop or Chocolatey and supports PowerShell and Cmd through Clink.

Do I need a Nerd Font?

Both recommend one for icons. Starship lists it as a prerequisite but ships No Nerd Fonts and Plain Text Symbols presets for terminals without one. Oh My Posh can install fonts for you with oh-my-posh font install.

Can I convert an Oh My Posh theme to Starship, or the other way round?

Not automatically. Neither tool documents a converter, and the models differ: Starship uses TOML module tables with format strings, while Oh My Posh uses blocks and segments with Go templates. You rebuild the layout by hand, usually starting from the closest Starship preset or Oh My Posh theme.

Are Starship and Oh My Posh free?

Yes. Starship is open source under the ISC licence and Oh My Posh under the MIT licence. Neither has a paid tier.

Get the next comparison by email

One email a week: new and trending developer tools, fresh comparisons, and what shipped. Unsubscribe in one click.