Skip to content
Pure.fish logo

Pure โฏโฎโฏ

Pretty, minimal and fast Fish ๐ŸŸ prompt, ported from zsh.

Pure with dark colorscheme Pure with light colorscheme

๐Ÿš€ Install

Success

Pure requires Fish โ‰ฅ3.x

fisher install pure-fish/pure
  1. Download the installer to /tmp

    curl git.io/pure-fish --output /tmp/pure_installer.fish --location --silent
    

  2. Source and trigger the installer

    source /tmp/pure_installer.fish; and install_pure
    

๐Ÿ–Œ Configuration

You can tweak pure behavior and color by changing universal variables either directly in the terminal or in your config.fish, e.g.:

set --universal pure_show_system_time true
set --universal pure_color_system_time pure_color_mute

Features

Overview

Fully customizable (colors, symbols and features):

๐Ÿด means it's controlled by a feature flag, ๐Ÿ›  mean it's configurable.

Check For New Release

Option Default Description
pure_check_for_new_release false true: check repo for new release (on every shell start)

๐ŸŒ Faster Prompt

Checking new release send a HTTP request that slow down your prompt rendering as it wait for remote server response. Set it to false speed up rendering:

set --universal pure_check_for_new_release false

Container Detection (Docker)

Option Default Description
pure_enable_container_detection true false: Do not check pure runs inside a container (e.g. docker, podman, LXC/LXD, etc.).
โš  Detection is a bit tricky across OSes.
pure_symbol_container_prefix Prefix when being inside a container (to customize)

Current Working Directory

Option Default Description
pure_begin_prompt_with_current_directory true true: pwd git, SSH, duration.
false: SSH pwd git, duration.
pure_shorten_prompt_current_directory_length 0 Shorten every prompt path component but the last to X characters (0 do not shorten)
pure_truncate_prompt_current_directory_keeps 0 Truncate working directory path in prompt, but keeps the last to n components (0 full path in current directory)

Git

Option Default Description
pure_enable_git true Show info about Git repository.
pure_symbol_git_dirty * Repository is Dirty (uncommitted/untracked changes).
pure_symbol_git_stash โ‰ก Repository git stash status.
pure_symbol_git_unpulled_commits โ‡ฃ Branch is behind upstream (commits to pull).
pure_symbol_git_unpushed_commits โ‡ก Branch is ahead upstream (commits to push).

โ„น Need safer git symbols?

Jobs

Option Default Description
pure_show_jobs false Show Number of running jobs

Kubernetes

Option Default Description
pure_symbol_k8s_prefix โ˜ธ Prefix when being connected to Kubernetes/K8s
pure_enable_k8s false true: shows kubernetes context and namespace.

NixOS

Indicate if nix develop shell is activated in their prompt.

Option Default Description
pure_enable_nixdevshell false Indicate if a nix develop shell is activated (based on IN_NIX_SHELL).
pure_symbol_nixdevshell_prefix โ„๏ธ otherwise nerdfonts: '๓ฑ„…' or '๏Œ“'
pure_color_nixdevshell_prefix pure_color_info prefix color
pure_color_nixdevshell_symbol pure_color_mute symbol color

Prompt Symbol

Option Default Description
pure_symbol_prompt โฏ Prompt symbol.

Python Virtualenv

Option Default Description
pure_enable_virtualenv true Show virtual env name (based on VIRTUAL_ENV or CONDA_DEFAULT_ENV).
pure_symbol_virtualenv_prefix Prefix when a Python virtual env is activated (default: undefined)

AWS Profile

Option Default Description
pure_enable_aws_profile true Show AWS profile name (based on AWS_VAULT or AWS_PROFILE).
pure_symbol_aws_profile_prefix Prefix when a AWS profile is activated (default: undefined)

Separate Error Symbol

Option Default Description
pure_separate_prompt_on_error false Show last command exit code as a second prompt symbol.

Single Line Prompt

Option Default Description
pure_enable_single_line_prompt false true: Compact prompt as a single line

SSH Session

Option Default Description
pure_symbol_ssh_prefix Prefix when being connected to SSH session (default: undefined)

Time & Duration

Option Default Description
pure_show_system_time false true: shows system time before the prompt symbol (as %H:%M:%S).
pure_show_subsecond_command_duration false Show subsecond (ex. 1.5s) in command duration.
pure_threshold_command_duration 5 Show command duration when above this value (seconds).

Title

Option Default Description
pure_symbol_title_bar_separator - Separator in terminal's windows title.
pure_shorten_window_title_current_directory_length 0 Shorten every window title path component but the last to X characters (0 do not shorten)
pure_truncate_window_title_current_directory_keeps 0 Truncate working directory path in window title, but keeps the last to n components (0 full path in window title)

VI Mode

Option Default Description
pure_reverse_prompt_symbol_in_vimode true true: โฎ indicate a non-insert mode.
false: indicate vi mode with [I], [N], [V].
pure_symbol_reverse_prompt โฎ VI non-insert mode symbol.

Working as Root

Option Default Description
pure_show_prefix_root_prompt false true: shows prompt prefix when logged in as root.
pure_symbol_prefix_root_prompt # Prefix prompt when logged in as root.

Colours

Tip

See set_color documentation for full possibilities.

Info

The absence of $ sign is expected in pure_ named colours.

Base Color Inherited by Default
pure_color_danger pure_color_prompt_on_error red
pure_color_dark black
pure_color_info pure_color_git_unpulled_commits
pure_color_git_unpushed_commits
cyan
pure_color_light pure_color_username_root white
pure_color_mute pure_color_git_branch
pure_color_git_dirty
pure_color_git_stash
pure_color_hostname
pure_color_at_sign
pure_color_username_normal
pure_color_virtualenv
brblack
pure_color_normal pure_color_jobs normal
pure_color_primary pure_color_current_directory blue
pure_color_success pure_color_prompt_on_success magenta
pure_color_warning pure_color_command_duration yellow