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.
- Two-line or one-line prompt (toggle with
Ctrl+P) - VCS support (git, svn, hg, bzr) via
vcs_infowith 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-highlightingandzsh-autosuggestionsplugins - Fully configurable colors (256-color palette)
wget -O ~/.oh-my-zsh/themes/kali-like.zsh-theme https://raw.githubusercontent.com/clamy54/kali-like-zsh-theme/master/kali-like.zsh-themevim ~/.zshrc- Set
ZSH_THEME="current_theme"toZSH_THEME="kali-like"
All options are defined at the top of the theme file.
Kali-Like uses zsh-autosuggestions and zsh-syntax-highlighting plugins.
If they are not found, they are downloaded automatically into ~/.zsh/.
| Variable | Default | Description |
|---|---|---|
USE_SYNTAX_HIGHLIGHTING |
yes |
Enable zsh-syntax-highlighting |
AUTO_DOWNLOAD_SYNTAX_HIGHLIGHTING_PLUGIN |
yes |
Auto-download if not found |
USE_ZSH_AUTOSUGGESTIONS |
yes |
Enable zsh-autosuggestions |
AUTO_DOWNLOAD_ZSH_AUTOSUGGESTIONS_PLUGIN |
yes |
Auto-download if not found |
| Variable | Default | Description |
|---|---|---|
PROMPT_ALTERNATIVE |
twoline |
twoline or oneline. Toggle at runtime with Ctrl+P |
NEWLINE_BEFORE_PROMPT |
yes |
Print a blank line before each prompt |
PROMPT_DASH_COUNT |
3 |
Number of ─ characters after the initial ┌─ |
| Variable | Default | Description |
|---|---|---|
THEME_MODE |
auto |
auto (detect terminal background), dark, or light |
Auto-detection uses the $COLORFGBG environment variable (supported by most terminals). If detection fails, defaults to dark.
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.
| Variable | Default (dark) | Description |
|---|---|---|
FGPROMPT_USER |
027 |
user@host color (normal user) |
FGPROMPT_ROOT |
196 |
root@host color |
FRAMEPROMPT_USER |
073 |
Frame characters color (┌, └─, brackets) for normal user |
FRAMEPROMPT_ROOT |
027 |
Frame characters color for root |
VCSPROMPT_COLOR |
067 |
VCS branch info color (git, svn, hg, bzr) |
VENVPROMPT_COLOR |
white |
Virtual environment name color (color name or index) |
SSHPROMPT_COLOR |
yellow |
SSH indicator color |
TMUXPROMPT_COLOR |
cyan |
Tmux indicator color |
DOCKERPROMPT_COLOR |
033 |
Docker/container indicator color |
NIXPROMPT_COLOR |
105 |
Nix shell indicator color |
K8SPROMPT_COLOR |
069 |
Kubernetes context indicator color |
CMDTIME_COLOR |
220 |
Command duration color |
PATHPROMPT_COLOR |
terminal_default |
Path color — use terminal_default for the terminal's default foreground color, or any color name/index |
| Variable | Default | Description |
|---|---|---|
SHOW_CMD_DURATION |
yes |
Show command execution time in RPROMPT |
CMDTIME_THRESHOLD |
3 |
Minimum seconds before duration is displayed |
| Variable | Default | Description |
|---|---|---|
ASYNC_VCS_INFO |
yes |
Run VCS info asynchronously to avoid prompt lag |
The prompt automatically detects and displays the following environments:
| Indicator | Detection method | Description |
|---|---|---|
SSH |
$SSH_CONNECTION |
Remote SSH session |
tmux |
$TMUX |
Inside a tmux session |
container |
/.dockerenv, /run/.containerenv, $container |
Docker or Podman container |
nix |
$IN_NIX_SHELL, $NIX_STORE |
Nix shell environment |
k8s context |
kubectl config current-context |
Active Kubernetes context (only if kubectl is installed) |
venv/conda |
$VIRTUAL_ENV, $CONDA_DEFAULT_ENV |
Python virtual environment |
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
By default, Kali Linux uses FiraCode as default terminal font. You can install it on your distro for a better Kali Look'n'Feel ...
MIT Cyril Lamy
