Skip to main content



Display the current path.

Sample Configuration#

"type": "path",
"style": "powerline",
"powerline_symbol": "\uE0B0",
"foreground": "#ffffff",
"background": "#61AFEF",
"properties": {
"style": "folder",
"mapped_locations": {
"C:\\temp": "\ue799"


  • folder_separator_icon: string - the symbol to use as a separator between folders - defaults to platform path separator

  • home_icon: string - the icon to display when at $HOME - defaults to ~

  • folder_icon: string - the icon to use as a folder indication - defaults to ..

  • windows_registry_icon: string - the icon to display when in the Windows registry - defaults to \uE0B1

  • style: enum - how to display the current path

  • enable_hyperlink: boolean - displays an hyperlink for the path - defaults to false

  • mixed_threshold: number - the maximum length of a path segment that will be displayed when using Mixed - defaults to 4

  • max_depth: number - maximum path depth to display before shortening when using Agnoster Short - defaults to 1

  • template: string - A go text/template template extended with sprig utilizing the properties below. Defaults to {{ .Path }}

Mapped Locations#

Allows you to override a location with an icon. It validates if the current path starts with the value and replaces it with the icon if there's a match. To avoid issues with nested overrides, Oh My Posh will sort the list of mapped locations before doing a replacement.

  • mapped_locations_enabled: boolean - replace known locations in the path with the replacements before applying the style - defaults to true
  • mapped_locations: object - custom glyph/text for specific paths. Works regardless of the mapped_locations_enabled setting.

For example, to swap out C:\Users\Leet\GitHub with a GitHub icon, you can do the following:

"mapped_locations": {
"C:\\Users\\Leet\\GitHub": "\uF09B"


  • Oh My Posh will accept both / and \ as path separators for a mapped location and will match regardless of which is used by the current operating system.
  • The character ~ at the start of a mapped location will match the user's home directory.
  • The match is case-insensitive on Windows and macOS, but case-sensitive on other operating systems.

This means that for user Bill, who has a user account Bill on Windows and bill on Linux, ~/Foo might match C:\Users\Bill\Foo or C:\Users\Bill\foo on Windows but only /home/bill/Foo on Linux.


Style sets the way the path is displayed. Based on previous experience and popular themes, there are 5 flavors.

  • agnoster
  • agnoster_full
  • agnoster_short
  • agnoster_left
  • full
  • folder
  • mixed
  • letter


Renders each folder as the folder_icon separated by the folder_separator_icon. Only the current folder name is displayed at the end.

Agnoster Full#

Renders each folder name separated by the folder_separator_icon.

Agnoster Short#

When more than max_depth levels deep, it renders one folder_icon followed by the names of the last max_depth folders, separated by the folder_separator_icon.

Agnoster Left#

Renders each folder as the folder_icon separated by the folder_separator_icon. Only the root folder name and it's child are displayed in full.


Display $PWD as a string.


Display the name of the current folder.


Works like Agnoster Full, but for any middle folder short enough it will display its name instead. The maximum length for the folders to display is governed by the mixed_threshold property.


Works like Full, but will write every subfolder name using the first letter only, except when the folder name starts with a symbol or icon.

  • folder will be shortened to f
  • .config will be shortened to .c
  • __pycache__ will be shortened to __p
  • โžผ folder will be shortened to โžผ f

Template Properties#

  • .Path: string - the current directory (styled)
  • .StackCount: int - the stack count