Configuration
Location
Nova stores settings at settings.toml under your OS config directory:
- Windows:
%APPDATA%\nova\settings.toml - macOS:
~/Library/Application Support/nova/settings.toml - Linux:
~/.config/nova/settings.toml
Internally, this is dirs::config_dir().join("nova").join("settings.toml").
File Lifecycle
- If
settings.tomldoes not exist, Nova writes an embedded default config. - If
settings.tomlexists but TOML parsing fails, Nova overwrites it with defaults.
This means a malformed edit can be “repaired” by reset-to-default (but you may lose changes).
Defaults
Nova ships embedded defaults (slightly different on macOS).
Non-macOS default excerpt:
[general]
editor = "nano"
bell = "none"
[status-bar]
visible = true
date-format = "%b %d"
time-format = "%H:%M:%S"
[theme.font]
size = 16
family = "FiraCode Nerd Font"
[theme.colors]
background = "#0D0D0D"
foreground = "#E5E5E5"
accent = "#3ECF8E"
foreground-muted = "#666666"
border = "#FFFFFF12"
cursor = "#3ECF8E"
[keybindings]
new-tab = "ctrl+t"
close-tab = "ctrl+w"
next-tab = "ctrl+tab"
prev-tab = "ctrl+shift+tab"
paste = "ctrl+v"
copy = "ctrl+shift+c"
open-palette = "ctrl+k"
[ai]
provider = "anthropic"
model = "claude-haiku-4-5-20251001"
api_key = ""
Reference
[general]
editor(string): External editor command.bell(string): One ofnone,audio,blink.shells(array of strings, optional): If set and non-empty, Nova uses this list instead of auto-detect.window-controls(string): One oftraffic-lightsorsystem.
Example:
[general]
editor = "code -w"
bell = "none"
shells = ["zsh", "bash"]
window-controls = "system"
[status-bar]
visible(bool)date-format(string)time-format(string)
Example:
[status-bar]
visible = true
date-format = "%Y-%m-%d"
time-format = "%H:%M"
[theme.font]
size(number)family(string)
Example:
[theme.font]
size = 15
family = "FiraCode Nerd Font"
[theme.colors]
All values are hex strings.
#RRGGBBis supported.#RRGGBBAAis supported (alpha channel).
Keys:
backgroundforegroundaccentforeground-mutedbordercursor
Example:
[theme.colors]
background = "#0D0D0D"
foreground = "#E5E5E5"
accent = "#3ECF8E"
foreground-muted = "#666666"
border = "#FFFFFF12"
cursor = "#3ECF8E"
[keybindings]
See Keybindings for syntax and examples.
Keys:
new-tabclose-tabnext-tabprev-tabpastecopyopen-palette
[ai]
See AI for behavior and troubleshooting.
provider(string):anthropicoropenaimodel(string)api_key(string)base_url(string, optional): Override API base URL (useful for proxies).
Example:
[ai]
provider = "openai"
model = "gpt-4.1-mini"
api_key = "..."
base_url = "https://api.openai.com/v1/"