Skip to content

Make the window yours

Raven wears two palettes — the one programs paint with, and the one the app’s own surfaces derive from — and gives you a full-window place to make either. Underneath is a native GPU renderer that takes text seriously.

Two themes, not one

The terminal theme is the palette programs paint with; it starts on Base16 Default Dark, matching the iTerm palette. The interface theme is the palette the app’s own surfaces, borders, accent and status colors derive from; it starts on Default — neutral charcoal surfaces, white text, gray highlights. Choose terminal to make the interface follow the terminal palette.

Both live in Settings → Appearance (⌘,), and both are the app’s own state rather than a file you edit: change one and every open window follows at once, including the menu-bar companion if you run it.

The Theme Studio

Settings → Appearance → Theme Studio is the full-window place a theme of your own is made: the draft renders on the live window while you work, and a readability report says what a program will actually do with each of your colors, one finding at a time. Themes you make are one JSON file each under ~/.raven/themes/, and settings set theme <id> accepts those ids too.

  • ⌘⌥TThe live theme chooser
  • ⌘⌥SPer-space themes on / off
  • ⌘⌥NRe-deal this space’s theme
  • ⌘⌥EThe design editor — sliders over the running window
  • ⌘⌥GThe design system gallery, live against the current theme

Every chrome surface — sidebar, usage review, worktree status, settings, the git graph, the palette and its siblings — is built from one design system whose tokens resolve from the live terminal palette. Change the theme and the whole window re-themes with it.

Type

The app’s chrome is set in a different typeface from the terminal — Inter by default, bundled so it looks the same on any machine. Terminal output stays monospace, and so does anything that has to line up in columns: the worktree table, the git graph, a diff, a pane preview. ui_font changes the family and ui_font = "terminal" puts the whole window back in one face. ⌘+ and ⌘− zoom the app, and the chrome follows the terminal face.

What the window can draw

Raven draws its own text, so the things that usually break in a terminal do not: ligatures across cell boundaries, curly and dotted underlines, and box-drawing and Powerline glyphs rendered as shapes rather than font characters, so borders meet exactly. JetBrains Mono Nerd Font, Fira Code, IBM Plex Mono, Inter and Noto Sans Symbols 2 ship with the app.

  • Images work inline, in all three protocols a program might reach for — sixel, iTerm and kitty — so a plot or a preview appears where it was printed.
  • Links are live: ⌘click opens one, and where it opens is yours to choose in Settings → Integrations.
  • Mermaid diagrams in a note or a pull-request description are laid out natively and measured with the document’s own fonts, so a figure scales as one piece instead of overflowing its column.

Watching the cost

  • ⌘⌥FLive redraw rate, frame interval and app memory
  • ⌘⌥RThe resource monitor: every pane’s process tree, grouped by space, with an Agents band attributing memory and CPU per agent

The resource monitor is the one to reach for when the fans spin up: it shows every pane’s process tree grouped by space, with per-space and whole-window totals, and an Agents band that says how much memory and CPU each agent is costing you and how many of its panes are running or parked.

Something missing? Help improve these docs