Zenith - A Sleek and Minimalist Zsh Theme

January 13, 2026 · View on GitHub

Zenith is a clean, modern Zsh theme designed for efficiency and aesthetics. Featuring a cool-toned color palette with intuitive Git status indicators, it keeps your terminal workflow smooth and distraction-free. Stay at the peak of productivity with a prompt that's both elegant and functional.

Features

  • Minimalist design – Keeps the focus on your workflow with subtle borders framing the prompt area.
  • Color-coded Git status – Instantly see changes in your repository.
  • Compact directory display – Shows only the last two directories for clarity. When in home directory, displays expanded path for better context.
  • Intuitive prompt symbols – Quick visual feedback on success or failure.
  • Clean multiline continuation – Subtle vertical line for multiline commands instead of distracting "quote>" prompt.
  • Session context indicators – Shows hostname, virtualization environment, terminal multiplexer, and session info at a glance.

Installation

Using Oh My Zsh

  1. Clone the repository into your custom themes folder:
    git clone https://github.com/husniadil/zenith-oh-my-zsh-theme.git ~/.oh-my-zsh/custom/themes/zenith
    
  2. Set the theme in your ~/.zshrc file:
    ZSH_THEME="zenith/zenith"
    
  3. Apply the changes:
    omz reload
    

Prompt Overview

Zenith provides an elegant and informative prompt with a clean bordered design:

╭─ @hostname [LXC:105] [tmux:dev] ~/project ✱? main
╰─ ❯

Components (left to right)

ComponentDescription
╭─ / ╰─Subtle box-drawing border characters
@hostnameMachine hostname (always visible)
[PVE] / [LXC:ID] / [VM]Virtualization environment indicator
[tmux:session] / [screen:session] / etc.Terminal multiplexer indicator
[zmx:session]ZMX session indicator
~/projectCurrent directory (last 2 folders)
✱?+~Git status indicators
mainGit branch name
Prompt symbol (cyan=success, red=failure)

Session Context Indicators

Hostname

Always displayed as @hostname in green. Useful when working across multiple machines via SSH.

Virtualization Environment

Automatically detects or manually configured via environment variables:

IndicatorDetectionEnvironment Variable
[PVE]Manualexport PVE_HOST=1
[LXC:105]Manualexport LXC_ID=105
[LXC]AutoDetected via /proc/1/environ
[VM:100]Manualexport PVE_VMID=100
[VM]AutoDetected via systemd-detect-virt (kvm/qemu)

Terminal Multiplexer

Automatically detected when running inside a terminal multiplexer:

MultiplexerIndicator Example
tmux[tmux:session-name]
GNU Screen[screen:session-name]
Zellij[zellij:session-name]
dvtm[dvtm]
abduco[abduco:session-name]

ZMX Session

Detected via $ZMX_SESSION environment variable set by ZMX:

[zmx:session-name]

Git Status Indicators

SymbolColorMeaning
GreenClean repository
YellowDirty repository
?CyanUntracked files
+GreenStaged files
~YellowModified files
-RedDeleted files
»Light blueRenamed files
RedUnmerged conflicts
CyanAhead of remote
CyanBehind remote

Prompt Examples

# Simple local prompt
╭─ @macbook ~/project main
╰─

# SSH to Proxmox host
╭─ @pve [PVE] ~/scripts
╰─

# Inside LXC container with tmux
╭─ @webserver [LXC:105] [tmux:dev] ~/app ✱?+ main
╰─

# Inside VM with dirty git repo
╭─ @database [VM] ~/backup ✱~ main
╰─

# Full combo: LXC + tmux + ZMX
╭─ @container [LXC:200] [tmux:work] [zmx:session] ~/project ✓ feature-branch
╰─

Customization

You can tweak colors and symbols by modifying zenith.zsh-theme to match your style.

Color Reference

VariableColor CodeUsage
grayFG[245]Borders
lightblueFG[075]Directory path
cyanFG[081]Virtualization indicators, untracked files
greenFG[114]Hostname, clean status, staged files
yellowFG[221]Multiplexer indicators, dirty status
redFG[203]Deleted files, conflicts
magentaFG[213]Git branch name
orangeFG[208]ZMX indicator

Screenshots

Example screenshot of the prompt in action

Zenith Prompt Preview

License

Zenith is released under the MIT License.