Skip to content

Guide · Open source

How to use Oh My Zsh: install, plugins and themes

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

Oh My Zsh is an open source, community-driven framework for managing your zsh configuration, which is the set of settings for the zsh command-line shell. This guide covers what you need before installing, how to run the installer, and how to turn on plugins and change the prompt theme by editing your .zshrc file. By the end you will know where the main settings live and how to keep the framework updated.

Oh My Zshohmyzsh/ohmyzsh · ★ 190k · MIT

Quick start

  1. 1Check zsh. Run zsh --version to confirm zsh is installed at a supported version.
  2. 2Run the installer. Paste the curl or wget install command into your terminal and press Enter.
  3. 3Open your .zshrc. Edit ~/.zshrc in a text editor. Your old file is saved as .zshrc.pre-oh-my-zsh.
  4. 4Enable plugins. List plugin names inside the plugins=( ) block, separated by spaces or new lines.
  5. 5Pick a theme. Set ZSH_THEME to a theme name, then open a new terminal to see it.
  6. 6Keep it updated. Use the built-in auto-update tool or the manual update steps in the README.

What you need before you install Oh My Zsh

Oh My Zsh only works with zsh. Check your zsh version by running the command below. The README says zsh v4.3.9 or newer is fine, but v5.0.8 or newer is preferred.

You also need curl or wget, and git (v2.4.11 or higher is recommended). The project lists Android, FreeBSD, Linux, macOS and Windows (WSL2) as supported systems.

  • zsh: v4.3.9 or newer; 5.0.8 or newer preferred
  • curl or wget installed
  • git installed (v2.4.11 or higher recommended)
  • If zsh is missing, see the Installing ZSH wiki page linked in the README
zsh --version

Install Oh My Zsh with curl or wget

Run one of the following commands in your terminal. Use curl if you have it, or wget if you prefer that tool. The README also lists a fetch variant for systems that use it.

If raw.githubusercontent.com is blocked where you live, the README says you can use the mirror at install.ohmyz.sh instead.

Any previous .zshrc file will be renamed to .zshrc.pre-oh-my-zsh. After installation, you can move the settings you want to keep into the new .zshrc.

sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

Enable plugins in your .zshrc file

Oh My Zsh includes hundreds of optional plugins. The plugins folder in the project repository and the project wiki list what is available. To turn one on, open your ~/.zshrc file and add its name to the plugins list.

Separate plugin names with whitespace such as spaces, tabs or new lines. Do not use commas, because the README says that will break the configuration. Each built-in plugin has a README that shows its aliases and extras.

  • Open ~/.zshrc in any text editor
  • Add plugin names inside the plugins=( ) list
  • Use spaces or new lines between names, never commas
plugins=( git bundler dotenv macos rake rbenv ruby )

Change the theme in your .zshrc file

Oh My Zsh bundles more than one hundred and fifty themes. The default is robbyrussell. To switch, edit the ZSH_THEME value in ~/.zshrc and set it to the name of the theme you want.

Many themes need a Powerline Font or a Nerd Font to display their prompt symbols correctly. Without one, you may see odd characters. Themes only change how your prompt looks, not how the shell works.

  • Theme screenshots are on the project wiki
  • Some themes need a Powerline or Nerd Font
ZSH_THEME="agnoster"

Update Oh My Zsh and manage it

The framework includes an auto-update tool that helps you keep up with changes from the community. The README also describes manual updates and an option to control how verbose updates are.

To remove the framework, the README has a dedicated Uninstalling Oh My Zsh section. Read it before deleting anything.

  • Auto-update is built in; see Getting Updates in the README
  • Updates Verbosity and Manual Updates are documented there too
  • Uninstall steps are in the Uninstalling Oh My Zsh section

What people use it for

  • Adding git shortcuts to a shell used for daily coding
  • Loading Docker, Homebrew or Node-related plugins for a development machine
  • Changing the prompt to a different theme with one line in .zshrc
  • Starting a new zsh setup without writing every alias from scratch

Frequently asked questions

Is Oh My Zsh free to use?

Oh My Zsh is open source and released under the MIT licence, as listed on its GitHub page. The project is free to install and use.

What do I need to install Oh My Zsh?

You need zsh (v4.3.9 or newer, with 5.0.8 or newer preferred), curl or wget, and git (v2.4.11 or higher recommended). Run zsh --version to check your zsh version.

Does Oh My Zsh work with bash?

No. The framework only works with zsh, so bash-only users will not benefit from it. The README is clear that zsh is required.

Where do I turn plugins on?

Open ~/.zshrc and list plugin names inside the plugins=( ) block, separated by spaces or new lines. Do not use commas.

Why does my prompt show strange symbols after changing the theme?

Many themes require a Powerline Font or a Nerd Font to render correctly. Install one of those fonts, or choose a theme that does not need it. The README links to the project FAQ for more detail.

How does Oh My Zsh compare with Prezto, Zinit, Antigen or Zim?

The README lists Prezto, Zinit, Antigen and Zim as comparable projects but does not compare them in detail. Oh My Zsh is a large framework with many plugins and themes, so if you want a minimal setup, check those alternatives.

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

Oh My Zsh suits people who already use zsh and want ready-made plugins, themes and an update tool without writing their own configuration. It is a poor fit for bash users, for anyone who wants a minimal shell, or for people who prefer to write every line of their own configuration, since the README notes that the framework can add startup weight.

Install options & downloads