explaingit

sindresorhus/pure

Analysis updated 2026-06-24

14,236ShellAudience · developerComplexity · 1/5Setup · easy

TLDR

Pure is a minimal, fast Zsh prompt that shows your Git branch, staged and unstaged changes, command timing, and SSH info in a clean display without slowing down your terminal.

Mindmap

mindmap
  root((repo))
    What it does
      Zsh prompt
      Git status display
      Command timing
    Git indicators
      Branch name
      Staged changes
      Ahead behind arrows
    Configuration
      Custom symbols
      Timing threshold
      Dirty indicator toggle
    Installation
      npm install
      Homebrew
      Manual clone
    Audience
      Developers
      Terminal power users
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Replace a slow default Zsh prompt with one that shows Git branch and change status without any typing lag.

USE CASE 2

Get automatic command timing in your shell so slow-running commands always show how long they took.

USE CASE 3

See clear indicators for staged, unstaged, and untracked Git changes at a glance in your terminal prompt.

What is it built with?

ShellZsh

How does it compare?

sindresorhus/puretrimstray/nginx-admins-handbookdaocloud/public-image-mirror
Stars14,23614,14714,079
LanguageShellShellShell
Setup difficultyeasymoderateeasy
Complexity1/53/52/5
Audiencedeveloperops devopsops devops

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · easy Time to first run · 5min

In plain English

Pure is a minimal command-line prompt for Zsh, a popular Unix shell. The prompt is the line of text you see in your terminal before you type each command. Pure replaces the default prompt with a cleaner, faster one. The key features are speed and useful information without visual clutter. It shows your current Git branch and whether you have unsaved changes, using small symbols to indicate staged changes, unstaged changes, and untracked files. If your local branch is ahead of or behind the remote version, arrows appear to tell you. If a command takes a long time to finish, the elapsed time shows up automatically. In SSH sessions the prompt also shows your username and hostname. The prompt symbol turns red when the previous command failed. Git status checks run in the background so they do not slow down the prompt while you wait. You can configure which symbols are used, how long a command must run before the time is displayed, and whether untracked files count toward the dirty indicator. Optional integrations show your current Node.js version or indicate when you are inside a Nix shell. Installation is straightforward: you can use npm, Homebrew, or clone the repository manually, then add a couple of lines to your Zsh configuration file. The README covers each method with exact commands. Pure requires Git 2.15.2 or newer and Zsh 5.2 or newer. The project is maintained by Sindre Sorhus and has a companion testing library called Snappy for verifying prompt behavior. It is one of the most widely used Zsh prompts and serves as a starting point for custom prompt designs.

Copy-paste prompts

Prompt 1
Install Pure prompt in my Zsh setup using npm and show me the exact lines to add to my .zshrc, including how to configure the dirty indicator symbol.
Prompt 2
I use Pure prompt and want to customize the symbols shown for staged and unstaged Git changes. Show me the configuration options and how to set them in .zshrc.
Prompt 3
My terminal prompt is slow when I'm inside large Git repos. How does Pure's async Git status checking work and how does it fix the slowness?

Frequently asked questions

What is pure?

Pure is a minimal, fast Zsh prompt that shows your Git branch, staged and unstaged changes, command timing, and SSH info in a clean display without slowing down your terminal.

What language is pure written in?

Mainly Shell. The stack also includes Shell, Zsh.

How hard is pure to set up?

Setup difficulty is rated easy, with roughly 5min to a first successful run.

Who is pure for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.