Prompt

Warp allows you to configure its default prompt or a custom prompt. A terminal prompt is a text that appears in the command line interface, indicating that the terminal is ready to accept commands.

Warp prompt

Warp has a native prompt that is customizable and can show a variety of information including cwd, git, svn, kubernetes, pyenv, date, time, an so on. You can visit Settings > Appearance > Prompt to drag and drop context chips into your Warp prompt until it displays the pieces of information you'd like to include.

Git and Subversion

Git and Subversion context chips show which branch you are on locally, as well as the number of uncommitted changed files. This includes any new files, modified files, and deleted files that are staged or unstaged.

Kubernetes

Kubernetes context chip shows relevant information when you're using one of the following commands:

kubectl|helm|kubens|kubectx|oc|istioctl|kogito|k9s|helmfile|flux|fluxctl|stern|kubeseal|skaffold|kubent|kubecolor|cmctl|sparkctl|etcd|fubectl

Warp respects the KUBECONFIG environmental variable, make sure you set it to your preferred configuration file location, if it's not the default path of ~/.kube/config

Same line prompt

By default, Warp's prompt displays on two lines where the command line input is one line below the prompt.

If you'd like to set your prompt such that the command line input and the prompt display together inline, you can configure this under Settings > Appearance > Prompt and check the box for "Same line prompt."

If you're using a custom prompt (PS1), Warp will use the same line prompt settings to respect any styles or theme configurations. You may optionally configure a new line prompt with PS1 but you will need to write your configuration, according to your theme of choice.

If you want to add back the new line on your custom prompt, please run the following based on your shell or prompt:

# Bash
echo -e '\nPS1="${PS1}"$'\''\\n'\''' >> ~/.bashrc

# Zsh
echo -e '\nPROMPT="${PROMPT}"$'\''\\n'\''' >> ~/.zshrc

# Fish
echo -e '\nfunctions --copy fish_prompt fish_prompt_orig; function fish_prompt; fish_prompt_orig; echo; end' >> ~/.config/fish/config.fish

# Powershell
$rawString = @'
$originalPrompt = Get-Item Function:\prompt
Set-Item -Path Function:\prompt_original -Value $originalPrompt
function prompt {
    "$(& prompt_original)`n"
}
'@
Add-Content -Path $PROFILE -Value "`n$rawString`n"

# Powerlevel10k
p10k configure

# Starship Prompt
echo '[line_break]\ndisabled = false' >> ~/.config/starship.toml

Custom prompt

You can also set up a custom prompt by configuring the PS1 variable or installing a supported shell prompt plugin, see Custom Prompt Compatibility Table.

The PS1 is a variable used by the shell to generate the prompt, it represents the primary prompt string (hence the “PS”) - which the terminal typically displays before typing new commands.

Multi-Line and Right-Sided Prompts

Warps custom prompt supports multi-line or right-sided prompts in zsh and fish, not bash. However, you can't have a multiline right-side prompt, only a multiline left prompt.

How to access it

  • Toggle the custom prompt by right-clicking on the prompt area above the input and selecting "Edit prompt" or select "Prompt" from the Settings > Appearance page. There you will be able to select and customize the default prompt or select the Custom prompt (PS1).

  • When using Warp prompt, you can right-click the prompt to copy the entire prompt, working directory, current git branch, git uncommitted file count, etc.

  • When using a custom prompt, you can right-click the prompt to copy the entire prompt or select any part of the custom prompt in previously run blocks in your session.

How it works

Custom Prompt Compatibility Table

Known incompatibilities

If you’re having issues with prompts, please see below or our Known Issues for more troubleshooting steps. Also, although some prompts are not officially supported, they may still work in Warp.

Starship

Starship Settings

Some ~/.config/starship.toml settings are known to cause errors in Warp. # or DEL the following lines to resolve known errors:

# Get editor completions based on the config schema
'' = 'https://starship.rs/config-schema.json'

# Disables the custom module
[custom]
disabled = false

For fish shell, optional for bash|zsh, disable the multi-line prompt in Starship by putting the following in your ~/.config/starship.toml:

[line_break]
disabled = true

You may also see an error relating to timeout. You can set the command_timeout variable in your ~/.config/starship.toml to fix this. See more in the starship docs.

Starship + bash

Starship prompt may not render properly if your default shell is /bin/bash. To workaround the issue, we recommend you upgrade bash, find the path with echo $(which bash), then put the path in your Settings > Features > Session > "Startup shell for new sessions" > Custom.

Starship + zsh

If you want to restore the additional line after the Starship prompt on zsh, add the following to the bottom of your ~/.zshrc file: PROMPT="${PROMPT}"$'\n'

Powerlevel10k

When installing the Powerlevel10k (P10k) prompt, we recommend you use the Meslo Nerd Font. P10K may display the arrow dividers as grey instead of color. The color for those chars is rendered grey due to Warp's minimum contrast setting. To workaround this issue, go to Settings > Appearance > Text > Enforce minimum contrast and set it to "Never".

Warp does support p10k version 1.19.0 and above. Ensure you have the latest version installed and restart Warp after the installation/update of p10k. Then enable the custom prompt as stated above and it should work.

Warp still doesn't fully support some p10k features like transient prompt and visual features like gradients.

Please note the installing powerlevel10k video mentions enabling a custom prompt in Settings > Features > Honor users custom prompt (PS1), but it's now in Settings > Appearance > Prompt > Shell prompt.

Spaceship

This prompt can cause an issue with typeahead in Warp's input editor. To workaround the issue, run echo "SPACESHIP_PROMPT_ASYNC=FALSE" >>! ~/.zshrc.

Prezto

Although Warp does have support for prezto's prompt, enabling the prezto utility module in the .zpreztorc is not supported as with many other autocompletion plugins that are incompatible.

Disabling unsupported prompts for Warp

We advise using Warp's default prompt or installing one of the supported tools, see Compatibility Table. You can disable unsupported prompts for Warp as such:

if [[ $TERM_PROGRAM != "WarpTerminal" ]]; then
##### WHAT YOU WANT TO DISABLE FOR WARP - BELOW

    # Unsupported Custom Prompt Code

##### WHAT YOU WANT TO DISABLE FOR WARP - ABOVE
fi

iTerm2

The iTerm2 shell integration breaks Warp and your custom prompt will not be able to be visible with this on. If you're coming from iTerm2 please check your dotfiles for it. We advise disabling the integration for Warp like so:

if [[ $TERM_PROGRAM != "WarpTerminal" ]]; then
##### WHAT YOU WANT TO DISABLE FOR WARP - BELOW

test -e "${HOME}/.iterm2_shell_integration.zsh" && source "${HOME}/.iterm2_shell_integration.zsh"

##### WHAT YOU WANT TO DISABLE FOR WARP - ABOVE
fi

Last updated