atriumatrium

Configuration reference

Every key in ~/.atrium/config.json.

atrium's user configuration lives in a single JSON file at ~/.atrium/config.json. The file is atomically written (temp file + rename) on every change, with 0600 permissions.

Most keys are editable via the Settings dialog with live previews. Hand-editing is supported; atrium watches the file and reloads on change. Unknown keys are preserved in an internal extra bucket so future schema additions do not break older configs.

Top-level shape

{
  "theme": "atrium",
  "terminal": { ... },
  "markdown_editor": { ... },
  "updates": { ... },
  "diagnostics": { ... },
  "worktree": { ... },
  "telemetry": { ... },
  "keybindings": { ... },
  "lspServers": { ... },
  "adapterEnvVars": { ... }
}

theme

String. Either "auto" (follow system light/dark) or the exact name of a built-in or custom theme (for example "atrium", "dracula", "my-theme-custom").

UI: Settings → Theme.

terminal

Terminal pane appearance. See Appearance for the UI.

{
  "fontFamily": "Menlo, monospace",
  "fontSize": 11,
  "lineHeight": 1.2,
  "letterSpacing": 0,
  "fontLigatures": false,
  "cursorStyle": "block",
  "cursorBlink": true,
  "scrollback": 10000,
  "padding": 8,
  "backgroundOpacity": 1.0
}
  • cursorStyle"block", "underline", or "bar".
  • backgroundOpacity0.0 (transparent) to 1.0 (opaque).
UI: Settings → Terminal.

markdown_editor

Markdown editor pane defaults.

{
  "defaultFont": "system-ui",
  "fontSize": 14,
  "textAlign": "left",
  "bookViewEnabled": false,
  "bookViewWidth": 680,
  "bookViewMargin": 48,
  "defaultViewMode": "rte"
}
  • textAlign"left" / "center" / "right" / "justify".
  • defaultViewMode"rte" or "source".
UI: Settings → General → Markdown editor.

updates

Update check behavior.

{
  "checkOnLaunch": true,
  "autoInstall": false,
  "channel": "early-access",
  "checkIntervalHours": 6
}
  • channel"early-access" today. "stable" and "beta" are planned.
UI: Settings → General → Updates.

diagnostics

Performance instrumentation. Off by default.

{
  "enabled": false,
  "captureLongTasks": true,
  "captureRenderStats": true,
  "captureIpcTimings": true,
  "captureTerminalStats": true,
  "captureMemoryStats": true,
  "flushIntervalMs": 30000
}

Traces are kept in-memory and flushed to ~/.atrium/diagnostics/ on interval. UI: Settings → Diagnostics.

worktree

Defaults for worktree creation.

{
  "defaultLocationPattern": "~/worktrees/{repo}/{branch}",
  "postCreateCommands": ["pnpm install"]
}
  • defaultLocationPattern — path template. {repo} and {branch} are substituted.
  • postCreateCommands — shell commands to run in the newly created worktree. Run sequentially.

telemetry

Three flags control telemetry.

{
  "enabled": true,
  "analyticsOptIn": false,
  "coreTelemetryDisclosed": false
}
  • enabled — master kill-switch. When false, atrium sends nothing.
  • analyticsOptIn — user opted into product analytics.
  • coreTelemetryDisclosed — user has acknowledged the core telemetry disclosure.
See Telemetry for what is collected and when. UI: Settings → General → Telemetry.

keybindings

Map of chord → action override. See Keybindings for the action types.

{
  "cmd+d": { "type": "app-command", "command": "pane.split.horizontal" },
  "shift+enter": { "type": "send-text", "text": "\n" },
  "cmd+alt+1": {
    "type": "uri-command",
    "uri": "atrium://commands/launcher.open?pane=$FOCUS"
  },
  "cmd+b": null
}

null removes a default binding. UI: Settings → Keyboard.

lspServers

Override LSP server commands per language. Server IDs match atrium's bundled lsp-servers.toml manifest.

{
  "typescript": { "command": "/opt/homebrew/bin/typescript-language-server" },
  "rust-analyzer": { "command": "~/.cargo/bin/rust-analyzer" }
}

UI: Settings → Tools → LSP servers.

adapterEnvVars

Environment variables applied to panes running a given adapter. See Adapter environment.

{
  "claude-code": {
    "CLAUDE_CODE_NO_FLICKER": "1"
  },
  "codex": {
    "OPENAI_API_KEY": "sk-..."
  }
}

UI: Settings → Tools → [adapter] → Environment variables.

CLI access

Every scalar key is reachable from the CLI.

atrium config get terminal.fontSize
atrium config set terminal.fontSize 13
atrium config set markdown_editor.bookViewEnabled true
atrium config set telemetry.analyticsOptIn false

set auto-detects the value type (integer, float, boolean, string). Nested object values (for example adapterEnvVars.claude-code) are best edited in the file or the UI directly.

Permissions

  • ~/.atrium/config.json0600 (owner read/write only).
  • ~/.atrium/ itself and most subdirectories — 0700.
The file is atomically written, so a crash mid-save cannot leave a partial config. Older snapshots are not kept automatically; if you hand-edit and break the file, atrium will either log a parse error and start with defaults, or refuse to persist new changes until you fix it.