Prompt

What is it

Warp has a native Prompt that shows your current working directory (cwd) and also git branch information when in a git directory. It can also be set to a custom prompt using one of the supported tools.
Warp Native Prompt
Warp Native Prompt

Git Status Indicator

The native Prompt shows the name of the git branch that 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.

Custom Prompt

You can also enable a custom prompt by configuring the PS1 variable or installing a supported shell prompt plugin, see Custom Prompt Compatibility Table. Note: The PS1 is a variable used by the shell to generate the prompt, it represents the primary prompt string (hence the “PS”) - which is what the terminal typically displays before typing new commands.

How to access it

  • Toggle the default prompt git branch change indicator by right-clicking on the default prompt and selecting "Hide/Show changed file count"
  • When right-clicking the default prompt, you can also copy the entire prompt, working directory or the current git branch.
  • Toggle custom prompt by right-clicking on the prompt area above the input and select "Use my own prompt" or toggle "Honor user's custom prompt (PS1) from the Settings > Features page. ".

How it works

Git Status Indicator Demo
Custom Prompt Demo

Custom Prompt Compatibility Table

Shell
Tool
Does it work?
Bash/zsh
PS1
Working
Bash
SBP
Coming soon
Bash/zsh
Starship
Working*
Bash/zsh
Working*
zsh
oh-my-zsh
Working
zsh
prezto
Working
zsh
Spaceship
Working*
zsh
zsh
zplug
Not supported
Bash/zsh
Coming soon
SSH
Working

Known incompatibilities

If you’re having issues with prompts, please see below or our Known Issues for more troubleshooting steps.

Multi-Line and Right-Sided Prompts

We don’t currently support multi-line or right-sided prompts. The Input Editor is a separate UI element from the Prompt; this is actually what enables a modern text editor experience. Improving the native Prompt is on the roadmap. Note: The only exception to this is the oh-my-posh prompt.

Starship

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
There is also a known issue with starship prompt not rendering if your default shell is /bin/bash. To workaround the issue, we recommend installing a newer version of bash with brew install bash then include the following in the top of your ~/.bash_profile:
export SHELL="/opt/homebrew/bin/bash"

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

Disabling unsupported prompts for Warp e.g. Powerlevel10K (P10K)

We don't currently support P10K. Because of how we use the prompt_command in Warp and because P10K can be installed standalone or as an Oh-My-Zsh plugin, each of which results in different problems and requires special handling.
We advise using Warp's default prompt or installing one of the supported tools, see Compatibility Table. You can disable P10K just for Warp as such:
if [[ $TERM_PROGRAM != "WarpTerminal" ]]; then
##### WHAT YOU WANT TO DISABLE FOR WARP - BELOW
# POWERLEVEL10K
##### 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 iTerm please check your dotfiles for it. We advise disabling the integration just 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

Context Chips

Context Chips is an idea we have for what the future of terminal prompts could be like, i.e. prompts that support dynamic refreshing, mouse interactions, and can be customized via an open spec that developers can build on. Learn more via our Twitter thread, where we also shared some Figma mocks.