Skip to content
Baidak.D edited this page Jul 11, 2026 · 7 revisions

English · Русский

A theme recolors both the terminal palette and the syntax highlighting inside the kittens. Two ship with familiar: ghostty (the default — Ghostty's dark palette) and darcula (the official JetBrains scheme).

The same review frame in both (ghostty is the default):

ghostty darcula
review in the ghostty theme review in the darcula theme

Switching

familiar enable --all --theme darcula   # terminal + kittens
familiar enable --kittens --theme darcula   # kittens only

Without --terminal/--all only the kittens are recolored — familiar never touches your terminal look unless you ask for it.

To switch, run enable again with another --theme: the config is rewritten in full, so nothing of the previous theme is left behind. --theme ghostty brings back the default.

Terminal and tab colors are picked up by a config reload (Cmd+Ctrl+,), but the highlighting inside the kittens is driven by the FAMILIAR_THEME environment variable, which kitty hands to the kitten process on startup — that one needs a kitty restart. familiar status shows what is active.

Your own theme

A theme is two data files named after it — no Python. Say you want nord:

  1. config/look/nord.conf — the terminal side: foreground, background, cursor, selection_background, color0color15, and the tab colors if you want them. It is included after ghostty.conf and tabs.conf, so it only needs the keys it actually changes.
  2. config/palette/nord.conf — the kitten side: syntax highlighting and diff backgrounds, one role value per line; a value is either a 256-color number or #rrggbb (rendered as truecolor). Any role you leave out keeps the default (ghostty) color. palette/darcula.conf shows the full list of roles.

There is no list to update: both the --theme flag and the kittens discover themes by scanning config/palette/ (two independent scans — the CLI must not import the kitten package — so a test asserts they agree).

Then familiar enable --all --theme nord. The terminal picks the colors up on a config reload; the kittens read FAMILIAR_THEME at startup, so they need kitty restarted.

Clone this wiki locally