Skip to content

Guide · Open source

How to use Prezto: install, load modules and pick a theme

Updated · written with AI from the project's own documentation and checked against our catalogue data

Prezto is a configuration framework for Zsh, the command-line shell. It adds sensible defaults, aliases, functions, auto completion and prompt themes to your terminal. This guide shows how to install it, turn on modules, choose a theme and keep it updated.

Preztosorin-ionescu/prezto · ★ 14.6k · MIT

Quick start

  1. 1Check your Zsh version. Confirm you have Zsh 4.3.11 or newer and that Git is installed.
  2. 2Clone the repository. Run git clone --recursive into ${ZDOTDIR:-$HOME}/.zprezto.
  3. 3Link the runcoms. Run the loop from the README to link the Zsh configuration files into your config directory, or source init.zsh from your .zshrc.
  4. 4Set Zsh as default shell. Run chsh -s /bin/zsh and open a new Zsh window.
  5. 5Enable modules. Load the modules you want in ${ZDOTDIR:-$HOME}/.zpreztorc and open a new window.
  6. 6Pick a theme. Run prompt -l to list themes, prompt -p name to preview one, then load it in .zpreztorc.
  7. 7Update. Run zprezto-update to check for and apply updates.

Check the requirements before you install

Prezto works with any recent release of Zsh, but the minimum required version is 4.3.11. You also need Git, because the install step clones the repository from GitHub.

Prezto is configured from the command line and by editing files, so this setup suits people who are comfortable with that.

  • Zsh 4.3.11 or newer
  • Git
zsh

Install Prezto by cloning the repository

Launch Zsh, then clone the repository into your Zsh config directory. The README uses ${ZDOTDIR:-$HOME} as the location, which means it uses $ZDOTDIR if you have set it and your home directory otherwise.

The README also describes an optional install under $XDG_CONFIG_HOME, which needs extra lines in $HOME/.zshenv.

git clone --recursive https://github.com/sorin-ionescu/prezto.git "${ZDOTDIR:-$HOME}/.zprezto"

Prezto ships its Zsh configuration files in the runcoms directory. The README links them into your config directory with this loop, which skips the README itself.

If you already have some of these files, ln will report an error. In simple cases, the README says you can instead add a source line for init.zsh to the bottom of your .zshrc and keep the rest of your configuration. For more complicated setups, back up your original configs and replace them with the provided runcoms.

setopt EXTENDED_GLOB for rcfile in "${ZDOTDIR:-$HOME}"/.zprezto/runcoms/^README.md(.N); do ln -s "$rcfile" "${ZDOTDIR:-$HOME}/.${rcfile:t}" done

Set Zsh as your default shell and open a new window

Run the chsh command to make Zsh your default shell, then open a new Zsh terminal window or tab. The README lists these as the final two steps of the manual install.

  • If you cannot find some commands after switching, edit the PATH variable in ${ZDOTDIR:-$HOME}/.zprofile, then open a new Zsh window.
chsh -s /bin/zsh

Enable modules and choose a theme in .zpreztorc

Prezto has many features disabled by default. Browse the modules directory to see what is available, then load the modules you need in ${ZDOTDIR:-$HOME}/.zpreztorc. Open a new Zsh window afterwards.

For themes, run prompt -l to list them and prompt -p name to preview one. Load the theme you like in .zpreztorc. The git module may be needed for some special symbols in the prompt, and you add it to the pmodule list under zstyle ':prezto:load' pmodule.

  • List themes: prompt -l
  • Preview a theme: prompt -p name
  • Add the git module to the pmodule list in .zpreztorc for special prompt symbols

Update Prezto and add your own modules

Run zprezto-update to check for updates. If there are no file conflicts, Prezto and its submodules update automatically. If there are conflicts, go into the $ZPREZTODIR directory and resolve them yourself.

To load external modules, add directories to the :prezto:load:pmodule-dirs setting in .zpreztorc. Module names must be unique, or loading will fail with an error. The README recommends forking the project if you want to keep your changes.

zstyle ':prezto:load' pmodule-dirs $HOME/.zprezto-contrib

What people use it for

  • Start with a ready-made Zsh setup instead of building your own aliases and completion from scratch.
  • Turn on auto completion and a prompt theme by enabling modules in .zpreztorc.
  • Keep a personal set of Zsh modules in an extra directory added through pmodule-dirs.

Frequently asked questions

Is Prezto free to use?

Yes. The README says the project is licensed under the MIT License. Check the license file in the repository for the full terms.

What do I need to install Prezto?

You need Zsh 4.3.11 or newer and Git. The install is done by cloning the repository and linking the configuration files from the command line.

Why don't I see the features Prezto advertises?

The README says many Prezto features are disabled by default. Enable the modules you want by loading them in ${ZDOTDIR:-$HOME}/.zpreztorc, then open a new Zsh window.

How do I change my Prezto prompt theme?

Run prompt -l to see the available themes and prompt -p name to preview one. Then load the theme you like in .zpreztorc and open a new Zsh window.

What if some commands stop working after I switch to Prezto?

The README's troubleshooting section says to modify the PATH variable in ${ZDOTDIR:-$HOME}/.zprofile, then open a new Zsh terminal window or tab.

What are the alternatives to Prezto?

Projects that the analysis lists as comparable are Oh My Zsh, Zinit, Zplug and Antigen. Prezto is a configuration framework that loads modules from a config file, so compare them on how you want to manage plugins and modules.

New agent skills, repos and AI tools — every week

The best new skills and open-source projects, the fastest-growing repos, and one free prompt. Five minutes to read. Unsubscribe anytime.

Our verdict

Prezto suits people who already use Zsh, are comfortable editing config files and using Git, and want a ready-made starting point they can extend with modules. It is a poor fit if you want a point-and-click setup, do not use Zsh, or expect many features to work out of the box, since the README says many are disabled until you enable them.

Install options & downloads