Powerlevel10k ships with 71 built-in prompt segments that cover everything from version managers and cloud provider contexts to battery status and file-manager shells. Each segment is self-contained: it knows how to gather its own data, how to format it, and how to apply the styling parameters defined inDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/romkatv/powerlevel10k/llms.txt
Use this file to discover all available pages before exploring further.
~/.p10k.zsh. Because segments run concurrently and most of their work is deferred, you can enable as many as you like without any measurable impact on prompt latency or Zsh startup time.
Enabling and Disabling Segments
All segments are controlled by two arrays in~/.p10k.zsh:
Segment Table
| Segment | Meaning |
|---|---|
anaconda | virtual environment from conda |
asdf | tool versions from asdf |
aws | aws profile |
aws_eb_env | aws elastic beanstalk environment |
azure | azure account name |
background_jobs | presence of background jobs |
battery | internal battery state and charge level |
command_execution_time | duration (wall time) of the last command |
context | user@hostname |
cpu_arch | CPU architecture |
dir | current working directory |
direnv | direnv status |
disk_usage | disk usage |
dotnet_version | dotnet version |
fvm | flutter environment from fvm |
gcloud | google cloud cli account and project |
goenv | go environment from goenv |
google_app_cred | google application credentials |
go_version | go version |
haskell_stack | haskell version from stack |
ip | IP address and bandwidth usage for a specified network interface |
java_version | java version |
jenv | java environment from jenv |
kubecontext | current kubernetes context |
laravel_version | laravel php framework version |
load | CPU load |
luaenv | lua environment from luaenv |
midnight_commander | midnight commander shell |
nix_shell | nix shell indicator |
nnn | nnn shell |
lf | lf shell |
chezmoi_shell | chezmoi shell |
nodeenv | node.js environment from nodeenv |
nodenv | node.js environment from nodenv |
node_version | node.js version |
nordvpn | nordvpn connection status |
nvm | node.js environment from nvm |
os_icon | your OS logo (apple for macOS, swirl for debian, etc.) |
package | name@version from package.json |
per_directory_history | Oh My Zsh per-directory-history local/global indicator |
perlbrew | perl version from perlbrew |
phpenv | php environment from phpenv |
php_version | php version |
plenv | perl environment from plenv |
prompt_char | multi-functional prompt symbol; changes depending on vi mode: ❯, ❮, V, ▶ for insert, command, visual and replace mode respectively; turns red on error |
proxy | system-wide http/https/ftp proxy |
public_ip | public IP address |
pyenv | python environment from pyenv |
ram | free RAM |
ranger | ranger shell |
yazi | yazi shell |
rbenv | ruby environment from rbenv |
rust_version | rustc version |
rvm | ruby environment from rvm |
scalaenv | scala version from scalaenv |
status | exit code of the last command |
swap | used swap |
taskwarrior | taskwarrior task count |
terraform | terraform workspace |
terraform_version | terraform version |
time | current time |
timewarrior | timewarrior tracking status |
todo | todo items |
toolbox | toolbox name |
vcs | Git repository status |
vim_shell | vim shell (:sh) |
virtualenv | python environment from venv |
vi_mode | vi mode (you don’t need this if you’ve enabled prompt_char) |
vpn_ip | virtual private network indicator |
wifi | WiFi speed |
xplr | xplr shell |
Performance
Enabling many segments does not slow down the prompt. Powerlevel10k computes segment content asynchronously, and segments that are not relevant (e.g.,kubecontext when kubectl is not installed) return immediately. The prompt always appears within milliseconds of pressing Enter, regardless of the number of active segments.
Custom Segments
If none of the built-in segments fits your needs, you can write your own using the publicp10k segment API. Custom segment functions follow the naming convention prompt_<name> and are added to the prompt elements array just like built-in ones.
See Custom Segments for a full guide including examples, state-based styling, and icon customization.