Oh My Posh

Xavier Jimenez | May 21, 2025 min read

What is Oh My Posh

Oh My Posh is a customizable prompt theme engine for your terminal. It enhances your PowerShell, Bash, Zsh, or other shell environments with beautiful, informative, and fast prompts.


🧠 What Does It Actually Do?

It replaces your plain terminal prompt with one that includes useful information, like:

🧠 Git branch/status

💼 Current directory

⏱️ Execution time

🔐 Admin status

🔗 Network info

🌍 Kubernetes context

🕶️ Stylish icons and fonts (via Nerd Fonts)

All of this is styled using JSON theme files — so you can fully customize the look


Installing Oh My Posh

Open PowerShell as Administrator and run:

winget install JanDeDobbeleer.OhMyPosh -s winget

This installs the oh-my-posh binary system-wide.


2. Verify the installation

After installation, run:

oh-my-posh --version

You should see the version number printed (e.g., 18.4.1 or similar).


Setting Up the Prompt

1. Install a Nerd Font

Oh My Posh themes use special symbols. Install a Nerd Font:

Go to: nerdfonts.com

Download a font like JetBrainsMono Nerd Font

Extract folder, select all the files, and install (right-click → Install for all users)


2. Choose a Theme

Go to ohmyposh themes and choose a theme you like.

From there download your theme and add it to your .config folder in your home folder, or if you would like to store your file somewhere else you can also do that just remember your path.

If you do not have a .config folder you can make one by running

mkdir $Home\.config

Your {theme}.omp.json file should now live in your .config folder and look something like this.

$Home\.config\{theme}.omp.json

You can now run the following command to test it out just make sure to replace {theme} with your actual theme name.

oh-my-posh init pwsh --config "$HOME\.config\{theme}.omp.json" | Invoke-Expression


3. Setting your theme

Edit your PowerShell 7 profile:

notepad $PROFILE

Add this line (update the path if your theme is somewhere else):

oh-my-posh init pwsh --config "$HOME\.config\{theme}.omp.json" | Invoke-Expression

This tells PowerShell to load Oh My Posh and use your custom theme every time it starts.