orchestra / docs
Documentation/Configuration

Custom themes

Create your own palette in a JSON file and use it beside the built-in themes.

On this page Where themes liveFile formatWhat each color controlsLight, Dark, and ANSI colorsSelect and reload a themeWhen a theme is skipped

Where themes live

Each custom theme is a folder in ~/.orchestra/themes with a theme.json file inside, for example ~/.orchestra/themes/harbor/theme.json.

The folder name identifies the theme. Custom themes are listed in a separate Custom section of the theme picker and never replace a built-in theme, even when a folder has the same name as one.

File format

theme.json uses the same shape as Orchestra’s built-in themes. light and dark are required and each list eight #RRGGBB colors, in this order: canvas, sidebar, surface, text, muted, rule, accent, selection.

name is optional; without it, the folder name is used, so harbor-lights becomes “Harbor Lights”. ansi is optional and lists 16 terminal colors.

theme.json
{
  "name": "Harbor",
  "light": ["#F6F8F7", "#ECF1EF", "#FFFFFF", "#1D2B2A", "#5B6B69", "#D3DDDA", "#0F7B6C", "#D6ECE7"],
  "dark": ["#0F1A1C", "#132124", "#1A2C30", "#DCE7E4", "#93A8A4", "#2A3F43", "#3CC7B0", "#1D3D3B"],
  "ansi": [
    "#1A2C30", "#E06C75", "#98C379", "#E5C07B", "#61AFEF", "#C678DD", "#3CC7B0", "#DCE7E4",
    "#5B6B69", "#EF7B84", "#A8D78C", "#F3CF91", "#7BC0F5", "#D28DE7", "#78D8C8", "#FFFFFF"
  ]
}

What each color controls

ColorUsed for
canvasThe window, pages, dialogs, fields, and the terminal background.
sidebarThe sidebar and the Changes pane.
surfaceCards, menus, table headers, chips, and hovered controls.
textPrimary text and the terminal’s text and cursor.
mutedSecondary text, captions, icons, and placeholders.
ruleBorders, dividers, and field outlines.
accentPrimary buttons, links, focus rings, and selected markers. Button text is black or white, whichever reads better on it.
selectionSelected and hovered rows and the terminal’s text selection.

Status colors, such as open and merged pull requests or errors, and agent logos keep their own colors in every theme.

Light, Dark, and ANSI colors

Orchestra uses the light palette in Light mode and the dark palette in Dark mode, so switching modes keeps your theme. Both palettes are required.

ansi sets the terminal’s 16 colors in Dark mode, in the order black, red, green, yellow, blue, magenta, cyan, white, then their bright variants. Without it, Orchestra’s default terminal colors are used. In Light mode, the terminal uses Orchestra’s light ANSI colors, as built-in themes do. Changes added and removed lines use the terminal green and red.

Select and reload a theme

Choose the theme in Settings → Appearance → Theme, or press ⌘K and choose Change Theme…. Custom themes are marked Custom in the command bar.

Orchestra reads the folder again whenever Settings or the command bar opens and when the window becomes active, so you can edit theme.json and switch back to Orchestra to see the change without restarting. If the selected theme’s folder is removed or the theme becomes invalid, Orchestra switches to the System theme.

When a theme is skipped

A theme that cannot be loaded is left out of the picker; the other themes keep working. Settings → Appearance lists each skipped folder with the reason, for example:

  • harbor: missing theme.json.
  • harbor: theme.json is not valid JSON
  • harbor: "dark" is required.
  • harbor: "light" needs 8 colors, found 7.
  • harbor: "light" color 7 ("teal") is not a #RRGGBB hex color.

Colors must be six-digit hex values such as #0F7B6C. Files and folders whose names start with a dot are ignored.

Browse documentation

Welcome to OrchestraA macOS workspace for your projects, terminals, and coding agents.
InstallationDownload Orchestra from GitHub Releases, or build it from source.
Projects & sessionsOrganize your work around folders, with an isolated worktree and terminal for every session.
Supported agentsUse the agent CLIs you already know, with their own configuration and credentials.
TerminalA real interactive terminal, running your agent or shell in its own folder.
Sidebar & navigationArrange the sidebar, switch projects with Arc Mode, and keep track of activity.
Saved workspace & resumeReturn to your projects and continue a captured agent conversation.
Issues & pull requestsRead and triage repository context, then start an agent session without leaving Orchestra.
Session messagingExchange requests and replies between existing sessions in the same project.
AppearanceChoose a palette for the whole workspace, including your terminals.
Custom themesCreate your own palette in a JSON file and use it beside the built-in themes.
UsageSee subscription limits for your agents and OpenRouter spend by model.
Settings & storageGeneral preferences and where Orchestra keeps workspace metadata and message history.
Privacy & usage dataOptional anonymous usage sharing, approximate city and country, and every collected event.
Keyboard shortcutsThe everyday actions you can reach from the keyboard.
ContributingReport issues, propose changes, and build Orchestra locally.
FAQAnswers to the questions that come up before your first session.
↑↓ Navigate↵ Openesc Close