Skip to content
A disgustingly clean ZSH prompt
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
screenshots Update title screenshot Sep 20, 2016
.gitignore Remove npm-debug.log from the repository Nov 17, 2015
LICENSE First Commit Oct 19, 2015 Add FILTHY_ALWAYS_SHOW_FULL_PATH option Feb 5, 2018
filthy.zsh Show push/pull counts in RPROMPT Oct 25, 2018
package.json 1.8.3 Feb 5, 2018


A disgustingly clean ZSH prompt


Based on the great pure theme by @sindresorhus and @mafredri, but with a few notable changes.

  • Prompt character is green when previous command was successful, red when not.
  • Git repo info shown in RPROMPT.
  • Path is shown relative to git-root when in a repository.
  • Current commit/tag shown if HEAD is detached.
  • 'Initial' status is shown in a new repo
  • User and host always shown in RPROMPT, green for standard users, red if privileged.
  • Command execution time shows in ms if less than one second has elapsed.
  • Temporary messages can be displayed in the pre-prompt, e.g. to show feedback after an asynchronous command has completed. Just echo the text you want to display to ${ZDOTDIR:-$HOME}/.promptmsg. The message is automagically cleared once shown.


Can be installed with npm or manually. Requires git 1.7.10+ and ZSH 4.3.17+.

(To show current tag/commit when head is detached, git 2.0.0+ is required. Otherwise it just shows 'no branch')


npm install --global filthy-prompt

That's it. Skip to Getting started.


zulu install filthy
zulu theme filthy


  1. Either…
  • Clone this repo
  • add it as a submodule, or
  • just download filthy.zsh
  1. Symlink filthy.zsh to somewhere in $fpath with the name prompt_filthy_setup.


$ ln -s "$PWD/filthy.zsh" /usr/local/share/zsh/site-functions/prompt_filthy_setup

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/filthy.zsh" "$HOME/.zfunctions/prompt_filthy_setup"

Getting started

Initialize the prompt system (if not so already) and choose filthy:

# .zshrc
autoload -U promptinit && promptinit
prompt filthy



The max execution time of a process before its run time is shown when it exits. Defaults to 5 seconds.


Prints a nice exit code in front of the prompt character when the previous command exited with a status not equal to 0


Prints the current value of $ZSH_VERSION in $RPROMPT


Do not show relative paths when $PWD is within a git repository


# .zshrc

autoload -U promptinit && promptinit

# optionally define some options

prompt filthy


Base16 Ocean theme with the Nitti Light font (18pt) is a beautiful combination, as seen in the screenshot above. Just make sure you have anti-aliasing enabled in your Terminal.

To have commands colorized as seen in the screenshot install zsh-syntax-highlighting.



  1. Symlink (or copy) filthy.zsh to ~/.oh-my-zsh/custom/filthy.zsh-theme
  2. Add ZSH_THEME="filthy" to your .zshrc file.


Set zstyle ':prezto:module:prompt' theme 'filthy' in ~/.zpreztorc.


MIT © James Dinsdale

You can’t perform that action at this time.