gitwtfhub

wtf is pure?

sindresorhus/pure — explained in plain English

Analysis updated 2026-06-24

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

TL;DR

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

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

Why would anyone build with this?

REASON 1

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

REASON 2

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

REASON 3

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

What's in the stack?

ShellZsh

How it stacks up

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 spin it up?

Difficulty · easy Time to first run · 5min

Wtf does this do

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.

Yoink these 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

wtf 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.

View the repo → Decode another repo

This repo across BitVibe Labs

Don't trust strangers blindly. Verify against the repo.