Skip to main content

Transient prompt

info

This feature only works in zsh, powershell and cmd for the time being.

Transient prompt, when enabled, replaces the prompt with a simpler one to allow more screen real estate. You can use go text/template templates extended with sprig to enrich the text. Environment variables are available, just like the console_title_template functionality.

Typically, your prompt will simply leave the prompt on the screen when you execute a command (or press enter) like so:

Before Transient

By enabling Transient Prompt, you can replace the prompt with some other content for a cleaner console as shown here:

After Transient

Configuration#

You need to extend or create a custom theme with your transient prompt. For example:

{
"$schema": "https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/schema.json",
"blocks": {
...
}
"transient_prompt": {
"background": "transparent",
"foreground": "#ffffff",
"template": "{{ .Shell }}> "
}
}

The configuration has the following properties:

  • background: string color
  • foreground: string color
  • template: string - A go text/template template extended with sprig utilizing the properties below - defaults to {{ .Shell }}>

Template Properties#

  • .Root: boolean - is the current user root/admin or not
  • .Path: string - the current working directory
  • .Folder: string - the current working folder
  • .Shell: string - the current shell name
  • .User: string - the current user name
  • .Host: string - the host name
  • .Env.VarName: string - Any environment variable where VarName is the environment variable name

Enable the feature#

Import/invoke Oh My Posh in your $PROFILE and add the following line below:

Enable-PoshTransientPrompt

Restart your shell or reload your $PROFILE using . $PROFILE for the changes to take effect.