Where Does Oh My Posh Keep Themes?
Oh My Posh reads a theme config you place anywhere, commonly under the config home. The file pattern and shell hookup.
Last updated
Oh My Posh has no fixed data directory. Your prompt is a theme file, usually JSON with an .omp.json name, living wherever you saved it. The shell init line names that file.
The convention is a folder under the config home with one theme per file. Upgrades never move the file. Losing the init line looks like a broken install when the theme itself sits untouched.
Where Oh My Posh stores this, by platform
%USERPROFILE%\.config\oh-my-posh\<theme>.omp.json
Conventional home for .omp.json themes, referenced by the shell init eval line. Any folder works when the init line points there. Keep themes under version control.
~/.config/oh-my-posh/<theme>.omp.json
Same pattern under home. Shell rc files source the eval line naming this theme. Reload the shell after edits; no daemon restart needed.
~/.config/oh-my-posh/<theme>.omp.json
Identical layout to macOS. Scripts should export the theme path explicitly rather than relying on home expansion under service users.
Frequently asked questions
How do I point my shell at a theme?
Save the .omp.json theme anywhere, commonly ~/.config/oh-my-posh/, then point the shell init line at it. The eval line differs per shell (bash, zsh, fish, PowerShell), so copy the one matching the active shell. Reload the shell to apply.
Can I keep several themes?
Yes, keep one .omp.json per machine or role and reference each from its shell rc. Segments read environment and git state at prompt time, so the same file adapts across hosts. Version control the folder and every shell matches.
Notice an outdated path? Let us know.