starship/starship
☄🌌️ The minimal, blazing-fast, and infinitely customizable prompt for any shell!
How starship is put together
Starship is a cross-shell terminal prompt written in Rust (edition 2024), distributed as a single static binary via crates.io and many OS package managers. It works as a CLI invoked by shell init scripts (src/init/*.{bash,zsh,fish,...}): the shell calls `starship prompt` (and related subcommands) on each prompt render, and the binary builds a Context from environment variables and the current directory, runs ~100 independent 'modules' (git status, language versions, cloud profiles) largely in parallel via rayon, formats output through a pest-based format-string parser, and prints ANSI-styled text. Configuration is read from a user TOML file (~/.config/starship.toml by default); each module has a paired config struct under src/configs/. There are no servers, databases, or network services; all I/O is local filesystem, environment, and subprocesses.
Languages
Frameworks
Infrastructure
Major components
CLI entrypoint (src/main.rs)
Defines all clap subcommands (prompt, module, init, config, preset, explain, timings, completions, session, bug-report, config-schema) and dispatches them.
Context (src/context/)
Builds the runtime environment snapshot (env vars, cwd, repo detection incl. git_repo.rs and jj_repo.rs) shared by all modules.
Module system (src/modules/, src/module.rs)
~100 pluggable prompt segments (aws, git_status, nodejs, claude_*, etc.), each producing a Module value from its config and context.
Configuration layer (src/config.rs, src/configs/)
Parses the user's TOML config into per-module typed structs with defaults, unknown-key warnings, and optional JSON-schema generation.
Formatter (src/formatter/)
Parses starship's `$var`/style format-string DSL (spec.pest grammar) and renders styled prompt text including variable substitution.
Shell init scripts (src/init/)
Per-shell bootstrap functions (starship.bash, .zsh, .fish, .ps1, .nu, etc.) that invoke the binary and wire up prompt hooks.
Config management commands (src/configure.rs)
Implements `starship config` get/set/toggle/edit, writing TOML atomically and launching $VISUAL/$EDITOR.
Printing & presets (src/print.rs, src/segment.rs)
Orchestrates parallel module execution, prompt/right-prompt/profile rendering, explain/timings output, and preset emission.
A quiet week with a single update to the code-signing automation.
5 weeksWeek of 2026-08-24
Week of 2026-08-24latest
A quiet week with a single update to the code-signing automation.
Week of 2026-08-17
A new module for tracking Jujutsu bookmarks landed alongside routine dependency updates.
Week of 2026-08-10
A busy maintenance week with ten changes, including a fix for OpenStack config file discovery.
Week of 2026-08-03
Bug fixes for sudo noise and Gradle projects arrived amid a wave of dependency updates.
Week of 2026-07-27
Preparation for Jujutsu support began with an internal refactor, plus many tooling updates.
Over the past five weeks, the Starship project has been mostly in maintenance mode, with a steady stream of dependency updates and tooling refreshes keeping the codebase healthy. The most user-visible work was the addition of a new Jujutsu (jj) bookmark module, supported by internal refactoring to prepare the codebase for Jujutsu integration, plus a handful of bug fixes like quieter sudo error handling and better Gradle version detection.
Week by week
2026-08-24A quiet week with a single update to the code-signing automation.latest1 change
Chore
Updated signing request action
The automated tool that submits files for signing was bumped to version 2.3.
2026-08-17A new module for tracking Jujutsu bookmarks landed alongside routine dependency updates.5 changes
Feature
New jj_bookmark module
Starship can now show information about bookmarks from the Jujutsu version control system directly in your prompt.
Chore
Rust cache action updated
The build caching tool used during development was refreshed to speed up builds.
Chore
yaml-rust2 updated to 0.12.0
An underlying library used for reading YAML configuration files was upgraded.
Chore
pest crates updated to 2.9.0
Libraries used for parsing text patterns were upgraded to their latest version.
Chore
Install action updated
The helper that installs development tools during testing was bumped to a newer release.
2026-08-10A busy maintenance week with ten changes, including a fix for OpenStack config file discovery.6 changes
Fix
OpenStack clouds.yaml lookup fixed
The OpenStack module now correctly finds its settings file when you run commands from your current folder instead of only looking elsewhere.
Chore
CI tooling simplified
The project stopped pinning exact versions of an installer tool, letting it use newer releases automatically.
Chore
clap libraries updated
The libraries behind Starship's command-line interface were refreshed.
Chore
Windows installer tooling updated
The tool used to build Windows installers was upgraded to version 0.3.9.
Chore
Typo checker updated
The automated spell-checking tool used on the codebase was bumped to v1.49.0.
Chore
Miscellaneous dependency updates
Several supporting libraries (whoami, open, clap_complete_nushell) were refreshed to their latest versions.
2026-08-03Bug fixes for sudo noise and Gradle projects arrived amid a wave of dependency updates.5 changes
Fix
Quieter sudo failures
When Starship checks whether you have admin rights, it no longer writes system error logs every time the check doesn't succeed.
Fix
Gradle version detection improved
The package version display now understands Kotlin-based Gradle build files (build.gradle.kts), not just older Groovy ones.
Docs
Sponsors list refreshed
The documentation's list of project sponsors was brought up to date.
Chore
Node.js updated to 24.19.0
The JavaScript runtime used by development tooling was upgraded.
Chore
Core libraries refreshed
Key dependencies including clap, schemars, and toml were all updated to newer versions.
2026-07-27Preparation for Jujutsu support began with an internal refactor, plus many tooling updates.6 changes
Refactor
Git repo access extracted
Code that talks to Git repositories was pulled into its own shared piece, clearing the way for adding support for the Jujutsu version control system.
Chore
gix library updated to 0.86.0
The main library Starship uses to read Git information was upgraded.
Chore
GitHub Actions refreshed
Several automation tools (checkout, setup-node, cargo-deny, homebrew formula bumping) were updated to their latest versions.
Chore
JSON parser library updated
The jsonc-parser library, which reads JSON-style config with comments, was bumped to 0.33.1.
Chore
Date/time library updated
The jiff library used for handling dates and times was upgraded to 0.2.35.
Chore
JSON formatter plugin updated
The dprint JSON formatting plugin used to keep code tidy was refreshed to v0.23.0.
Dependencies and code review
Dependency advisories
Security Watch
No known advisories across 0 scanned dependencies.
No known advisories in the scanned dependencies.
Code review
No concrete code-level issues confirmed.
Get this report every week for your repos.
GitZoid learns each repo, reports what changed, and flags what needs attention. One flat price for the whole team.
$19 a month, flat · First 10 outputs free · No card required