Pretty, minimal and fast ZSH prompt
Most prompts are cluttered, ugly and slow. I wanted something visually pleasing that stayed out of my way.
- Comes with the perfect prompt character. Author went through the whole Unicode range to find it.
- Shows
git
branch and whether it's dirty (with a*
). - Indicates when you have unpushed/unpulled
git
commits with up/down arrows. (Check is done asynchronously!) - Prompt character turns red if the last command didn't exit with
0
. - Command execution time will be displayed if it exceeds the set threshold.
- Username and host only displayed when in an SSH session.
- Shows the current path in the title and the current folder & command when a process is running.
- Support VI-mode indication by reverse prompt symbol (Zsh 5.3+).
- Makes an excellent starting point for your own custom prompt.
Can be installed with npm
or manually. Requires Git 2.0.0+ and ZSH 5.2+. Older versions of ZSH are known to work, but they are not recommended.
$ npm install --global pure-prompt
That's it. Skip to Getting started.
- Either…
-
Symlink
pure.zsh
to somewhere in$fpath
with the nameprompt_pure_setup
. -
Symlink
async.zsh
in$fpath
with the nameasync
.
$ ln -s "$PWD/pure.zsh" /usr/local/share/zsh/site-functions/prompt_pure_setup
$ ln -s "$PWD/async.zsh" /usr/local/share/zsh/site-functions/async
Run echo $fpath
to see possible locations.
For a user-specific installation (which would not require escalated privileges), simply add a directory to $fpath
for that user:
# .zshenv or .zshrc
fpath=( "$HOME/.zfunctions" $fpath )
Then install the theme there:
$ ln -s "$PWD/pure.zsh" "$HOME/.zfunctions/prompt_pure_setup"
$ ln -s "$PWD/async.zsh" "$HOME/.zfunctions/async"
Initialize the prompt system (if not so already) and choose pure
:
# .zshrc
autoload -U promptinit; promptinit
prompt pure
Option | Description | Default value |
---|---|---|
PURE_CMD_MAX_EXEC_TIME |
The max execution time of a process before its run time is shown when it exits. | 5 seconds |
PURE_GIT_PULL=0 |
Prevents Pure from checking whether the current Git remote has been updated. | |
PURE_GIT_UNTRACKED_DIRTY=0 |
Do not include untracked files in dirtiness check. Mostly useful on large repos (like WebKit). | |
PURE_GIT_DELAY_DIRTY_CHECK |
Time in seconds to delay git dirty checking when git status takes > 5 seconds. |
1800 seconds |
PURE_PROMPT_SYMBOL |
Defines the prompt symbol. | ❯ |
PURE_PROMPT_VICMD_SYMBOL |
Defines the prompt symbol used when the vicmd keymap is active (VI-mode). |
❮ |
PURE_GIT_DOWN_ARROW |
Defines the git down arrow symbol. | ⇣ |
PURE_GIT_UP_ARROW |
Defines the git up arrow symbol. | ⇡ |
# .zshrc
autoload -U promptinit; promptinit
# optionally define some options
PURE_CMD_MAX_EXEC_TIME=10
prompt pure
In the screenshot you see Pure running in Hyper with the hyper-snazzy theme and Menlo font.
The Tomorrow Night Eighties theme with the Droid Sans Mono font (15pt) is also a nice combination.
Just make sure you have anti-aliasing enabled in your terminal.
To have commands colorized as seen in the screenshot, install zsh-syntax-highlighting.
- Set
ZSH_THEME=""
in your.zshrc
to disable oh-my-zsh themes. - Follow the Pure Install instructions.
- Do not enable the following (incompatible) plugins:
vi-mode
,virtualenv
.
NOTE: oh-my-zsh
overrides the prompt so Pure must be activated after source $ZSH/oh-my-zsh.sh
.
Pure is bundled with Prezto. No need to install it.
Add prompt pure
to your ~/.zpreztorc
.
Pure is bundled with Zim. No need to install it.
Set zprompt_theme='pure'
in ~/.zimrc
.
Update your .zshrc
file with the following two lines (order matters). Do not use the antigen theme
function.
antigen bundle mafredri/zsh-async
antigen bundle sindresorhus/pure
Update your .zshrc
file with the following two lines (order matters):
antibody bundle mafredri/zsh-async
antibody bundle sindresorhus/pure
Update your .zshrc
file with the following two lines:
zplug mafredri/zsh-async, from:github
zplug sindresorhus/pure, use:pure.zsh, from:github, as:theme
Update your .zshrc
file with the following two lines (order matters):
zplugin ice pick"async.zsh" src"pure.zsh"
zplugin light sindresorhus/pure
There are currently no FAQs.
See FAQ Archive for previous FAQs.
- ZSH
- therealklanni/purity - More compact current working directory, important details on the main prompt line, and extra Git indicators.
- intelfx/pure - Solarized-friendly colors, highly verbose, and fully async Git integration.
- dfurnes/purer - Compact single-line prompt with built-in Vim-mode indicator.
- chabou/pure-now - Fork with Now support.
- pure10k - Configuration file for Powerlevel10k that makes it look like Pure.
- Bash
- sapegin/dotfiles - Prompt and color theme for Terminal.app.
- Fish
- brandonweiss/pure.fish - Pure-inspired prompt for Fish. Not intended to have feature parity.
- rafaelrinaldi/pure - Support for bare Fish and various framework (Oh-My-Fish, Fisherman, and Wahoo).
- Rust
- xcambar/purs - Pure-inspired prompt in Rust.
- Go
- talal/mimir - Pure-inspired prompt in Go with Kubernetes and OpenStack cloud support. Not intended to have feature parity.
- PowerShell
- nickcox/pure-pwsh - PowerShell/PS Core implementation of the Pure prompt.
Sindre Sorhus | Mathias Fredriksson |
MIT © Sindre Sorhus