README.md

March 23, 2026 · View on GitHub

KALI-LIKE Theme for Oh-My-Zsh

Preview

Kali-Like is a oh-my-zsh theme that looks like Kali Linux default zsh theme. Kali-Like can be installed on any linux distribution and isn't Kali Linux dependent.

Features

  • Two-line or one-line prompt (toggle with Ctrl+P)
  • VCS support (git, svn, hg, bzr) via vcs_info with staged/unstaged indicators
  • Async VCS info to avoid prompt lag in large repositories
  • SSH and tmux session indicators
  • Docker/container detection
  • Nix shell indicator
  • Kubernetes context display
  • Python virtual environment display (venv, virtualenv, conda)
  • Command execution duration (shown when exceeding a configurable threshold)
  • Return code indicator (red cross on failure)
  • Dark/light theme with auto-detection
  • Syntax highlighting with theme-aware colors
  • Auto-download of zsh-syntax-highlighting and zsh-autosuggestions plugins
  • Fully configurable colors (256-color palette)

Installation

  1. wget -O ~/.oh-my-zsh/themes/kali-like.zsh-theme https://raw.githubusercontent.com/clamy54/kali-like-zsh-theme/master/kali-like.zsh-theme
  2. vim ~/.zshrc
  3. Set ZSH_THEME="current_theme" to ZSH_THEME="kali-like"

Options

All options are defined at the top of the theme file.

Plugins

Kali-Like uses zsh-autosuggestions and zsh-syntax-highlighting plugins. If they are not found, they are downloaded automatically into ~/.zsh/.

VariableDefaultDescription
USE_SYNTAX_HIGHLIGHTINGyesEnable zsh-syntax-highlighting
AUTO_DOWNLOAD_SYNTAX_HIGHLIGHTING_PLUGINyesAuto-download if not found
USE_ZSH_AUTOSUGGESTIONSyesEnable zsh-autosuggestions
AUTO_DOWNLOAD_ZSH_AUTOSUGGESTIONS_PLUGINyesAuto-download if not found

Prompt layout

VariableDefaultDescription
PROMPT_ALTERNATIVEtwolinetwoline or oneline. Toggle at runtime with Ctrl+P
NEWLINE_BEFORE_PROMPTyesPrint a blank line before each prompt
PROMPT_DASH_COUNT3Number of characters after the initial ┌─

Theme mode

VariableDefaultDescription
THEME_MODEautoauto (detect terminal background), dark, or light

Auto-detection uses the $COLORFGBG environment variable (supported by most terminals). If detection fails, defaults to dark.

Colors

Colors are specified as 256-color palette indices. Run spectrum_ls in your terminal to browse all available colors. Color names (white, cyan, yellow, etc.) are also accepted where noted.

The values below are the defaults for dark mode. Light mode automatically overrides them with darker variants for readability on light backgrounds.

VariableDefault (dark)Description
FGPROMPT_USER027user@host color (normal user)
FGPROMPT_ROOT196root@host color
FRAMEPROMPT_USER073Frame characters color (, └─, brackets) for normal user
FRAMEPROMPT_ROOT027Frame characters color for root
VCSPROMPT_COLOR067VCS branch info color (git, svn, hg, bzr)
VENVPROMPT_COLORwhiteVirtual environment name color (color name or index)
SSHPROMPT_COLORyellowSSH indicator color
TMUXPROMPT_COLORcyanTmux indicator color
DOCKERPROMPT_COLOR033Docker/container indicator color
NIXPROMPT_COLOR105Nix shell indicator color
K8SPROMPT_COLOR069Kubernetes context indicator color
CMDTIME_COLOR220Command duration color
PATHPROMPT_COLORterminal_defaultPath color — use terminal_default for the terminal's default foreground color, or any color name/index

Command duration

VariableDefaultDescription
SHOW_CMD_DURATIONyesShow command execution time in RPROMPT
CMDTIME_THRESHOLD3Minimum seconds before duration is displayed

Async VCS

VariableDefaultDescription
ASYNC_VCS_INFOyesRun VCS info asynchronously to avoid prompt lag

Environment indicators

The prompt automatically detects and displays the following environments:

IndicatorDetection methodDescription
SSH$SSH_CONNECTIONRemote SSH session
tmux$TMUXInside a tmux session
container/.dockerenv, /run/.containerenv, $containerDocker or Podman container
nix$IN_NIX_SHELL, $NIX_STORENix shell environment
k8s contextkubectl config current-contextActive Kubernetes context (only if kubectl is installed)
venv/conda$VIRTUAL_ENV, $CONDA_DEFAULT_ENVPython virtual environment

VCS support

The theme uses zsh's built-in vcs_info framework, which supports:

  • Git — branch, staged (+), unstaged (!), and current action (rebase, merge, etc.)
  • SVN — current revision
  • Mercurial (hg) — branch
  • Bazaar (bzr) — branch

Font

By default, Kali Linux uses FiraCode as default terminal font. You can install it on your distro for a better Kali Look'n'Feel ...

License

MIT Cyril Lamy