A fully synchronized CLI color theme based on the famous Night Owl palette, redesigned for low-light, high-focus terminal environments.
This project brings Night Owl's signature cool tones and soft contrasts to your favorite command-line tools, including:
- ๐
deltaโ Git diff viewer - ๐ณ
gitโ log/branch colors - ๐ฑ
batโ Syntax-highlighting cat replacement - ๐ฆ
ezaโ Modernlsreplacement - ๐
k9sโ Kubernetes TUI client - ๐งฌ
fzfโ Fuzzy finder with preview integration - ๐ฎ
iterm2โ Terminal emulator color scheme - ๐งช
tmuxโ Status line and pane border theming - ๐
starshipโ Minimal prompt with semantic color cues
Night Owl is more than a theme โ itโs a workspace ritual.
- Optimized for focus and clarity in low-light environments
- Reduces eye strain without sacrificing syntax readability
- Carefully selected saturation and brightness levels per tool
night-owl-cli/
โ
โโโ delta/night-owl-delta.ini
โโโ git/night-owl-colors.gitconfig
โโโ bat/Night-Owl.tmTheme
โโโ eza/night-owl.yml
โโโ k9s/night-owl.yaml
โโโ fzf/fzf-night-owl.zsh
โโโ iterm2/Night-Owl.itermcolors
โโโ tmux/night-owl.tmux
โโโ starship/
โ โโโ starship.toml
โ โโโ random_emoji_cmd.sh
โ
โโโ scripts/
โ โโโ manifest.sh # single source of truth: what installs where
โ โโโ check.sh # one entrypoint for all checks (local + CI)
โ โโโ check-palette.sh # palette drift guard
โ โโโ check-iterm.py # iTerm2 palette cross-check
โโโ tests/
โ โโโ install.bats # install/uninstall round-trip tests
โโโ PALETTE.md # canonical colour reference
โโโ install.sh
โโโ uninstall.sh
A helper script is available for auto-installation of supported components:
./install.shThis script:
- Installs each theme only if the related tool is installed
- Backs up an existing, differing config once (
.bak) before replacing it - Symlinks (or copies, where the tool needs a real file) into the right location
- Is safe to re-run โ it won't pile up backups of its own files
โ ๏ธ If you already have custom config for any tool, review and merge manually. Do not run blindly unless you're fully aware of the changes.
When in doubt: install one tool at a time by following the steps below.
-
Copy
delta/night-owl-delta.inito~/.config/delta/themes/night-owl.ini -
In
~/.gitconfig, include the theme config:[include] path = ~/.config/delta/themes/night-owl.ini [delta] syntax-theme = "Night-Owl" features = "night-owl"
โ Note: Do not manually copy the
[delta "night-owl"]block into~/.gitconfig. Use[include]instead to ensure full compatibility with delta's features mechanism.
-
Copy
git/night-owl-colors.gitconfigto~/.config/git/night-owl-colors.gitconfig -
In
~/.gitconfig, include the config:[include] path = ~/.config/git/night-owl-colors.gitconfig
-
Try:
git log --graph --decorate --oneline --all
- Copy
bat/Night-Owl.tmThemeto~/.config/bat/themes/ - Run:
bat cache --build - Set theme:
export BAT_THEME="Night-Owl"
-
Copy
eza/night-owl.ymlto~/.config/eza/theme.yml -
Set config directory (e.g. in your
.zshrc/.bashrc):export EZA_CONFIG_DIR=~/.config/eza
-
Copy
k9s/night-owl.yamlto~/.config/k9s/skins/night-owl.yaml(the installer uses$XDG_CONFIG_HOME/k9s/skins/; runk9s infoto confirm your skins dir if it differs) -
Point k9s at the skin in its
config.yaml. Recent k9s (v0.30+):k9s: ui: skin: night-owl
Older k9s versions use a top-level
k9s.skin: night-owl.
-
The installer places the file at
~/.config/zsh/tools/fzf-night-owl.zsh. Source it from your shell config (.zshrc):source ~/.config/zsh/tools/fzf-night-owl.zsh
- Go to
Preferences โ Profiles โ Colors โ Color Presets... โ Import... - Select
iterm2/Night-Owl.itermcolors - Apply the theme from the Presets dropdown
The tmux theme is colours only โ it does not touch your prefix key or other
settings, and the installer never overwrites your ~/.tmux.conf.
-
The installer places
tmux/night-owl.tmuxat~/.config/tmux/night-owl.tmux. -
Source it from your own
~/.tmux.conf:source-file ~/.config/tmux/night-owl.tmux -
Reload:
tmux source-file ~/.tmux.conf
Night Owl uses 24-bit hex colours. For exact rendering, enable truecolor:
set -as terminal-features ",*:RGB"
- Replace or merge into
~/.config/starship.toml random_emoji_cmd.shpowers the[custom.emoji]prompt segment.install.shcopies it to~/.config/zsh/tools/random_emoji_cmd.shand marks it executable automatically. Installingstarship.tomlby hand? Place the script there yourself andchmod +xit, or update the path instarship.toml.
This script generates a random emoji for each prompt refresh ๐ฒ
To remove all installed Night Owl configurations, run:
./uninstall.shThis will:
- Remove all Night Owl theme/config files installed by install.sh
- Restore any .bak backups that were created during installation
To preview what would be removed without making changes:
./uninstall.sh --dry-run[include] path = ~/.config/git/night-owl-colors.gitconfig, remove it manually.
This script only affects files created by install.sh. If you've merged configs manually, please review them before running uninstall.
The colour set lives in PALETTE.md and what-installs-where lives
in scripts/manifest.sh โ both single sources of truth.
One script runs every check (shellcheck, shfmt, palette drift, iTerm2 palette
cross-check, install/uninstall round-trip tests, dry-run smoke), locally and in
CI (.github/workflows/ci.yml):
./scripts/check.sh # needs shellcheck, shfmt (+ bats, python3 for the full set)Adding a new tool is one line in scripts/manifest.sh
(key|command|source|destination|mode), shared by install and uninstall. See
CONTRIBUTING.md.
This project is licensed under the MIT License. See LICENSE. Theme color values adapted from Night Owl VSCode theme by Sarah Drasner.
This project is a CLI-oriented adaptation for personal and community use.
Contributions welcome. Pull requests for additional tool integrations or refinements appreciated.








