Where Does oh-my-posh Keep Themes and Config?
Where oh-my-posh keeps bundled themes on Windows and Mac, and where your own custom config actually lives.
Last updated
oh-my-posh splits storage in two. Bundled themes ship with the installer in a fixed directory, while your active configuration lives wherever you saved it. The init line in your shell profile ties the two together through its --config flag.
That split is why theme questions get confusing answers. Someone's active theme is often a .omp.json in their home folder or a remote URL, nowhere near the bundled themes directory. Copy a bundled theme to your own location before editing, since installer updates can replace the shipped files.
Where oh-my-posh stores this, by platform
%LOCALAPPDATA%\Programs\oh-my-posh\themes
Set by the installer and exposed as $POSH_THEMES_PATH. The winget and setup installs both land here. Your custom config is separate, usually a .omp.json in your home folder referenced from $PROFILE.
/opt/homebrew/share/oh-my-posh/themes
Apple Silicon path shown. Intel Macs use /usr/local/share/oh-my-posh/themes instead. Run echo $POSH_THEMES_PATH to confirm on your machine before bookmarking anything.
Frequently asked questions
how do i find the themes folder on any system
Run echo $POSH_THEMES_PATH in your shell. That variable always points at the bundled themes directory for your install method, which beats memorizing per platform paths.
which theme file am i currently using
Look at the oh-my-posh init line in your shell config: $PROFILE on PowerShell, .zshrc or .bashrc elsewhere. The value after --config is your active theme, whether a local path, a theme name or a URL.
Notice an outdated path? Let us know.