Settings
Every key in settings.toml, and what it does.
~/.config/cydonia/settings.toml is written with defaults on first run and read
on launch. Everything in it has a control in Settings (⌘,); editing the file
by hand is supported, and never required.
state.toml beside it is bookkeeping — which projects were open, where the
panels were left. Preferences worth carrying to another machine are in
settings.toml; the rest is not.
Document keys
These come first in the file: a bare key written after a table would belong to that table.
| Key | Default | What it is |
|---|---|---|
watch_bounce |
— | How long a project's .cydonia/ must go quiet before the watch re-reads it, in milliseconds |
auto_update |
true |
Whether Cydonia looks for a new release on its own |
notify_turns |
true |
Whether a turn finishing in the background is posted to the system |
auto_update switches the looking and the fetching, not the swap: a staged
release waits until a restart is asked for. Off is an app that reaches the
network for a version only when the menu item is picked.
watch_bounce is clamped on the way in — the ends of the range are what a hand
cannot reach past.
[appearance]
| Key | Default | What it is |
|---|---|---|
mode |
system | Light, dark, or whatever the OS is doing |
opaque |
unset | Hold the window opaque; unset leaves the frost to the appearance |
cursor_blink |
true |
Off holds the caret lit |
text_size |
13 | The body size the type ladder is scaled against, in points, clamped to 11–17 |
article_font_size |
unset | Unset keeps articles following the interface size |
mono_font_size |
13 | Terminals, file source and previews, in points, clamped to 8–40; reads a pre-merge terminal_font_size |
ui_font |
unset | The family the interface is set in; unset is the system UI font |
article_font |
unset | The family articles and transcripts are set in; unset follows ui_font |
mono_font |
unset | The family terminals, code and file source are set in; unset is the system monospace face |
hue |
0.0 |
The greys' oklch hue, in degrees |
chroma |
0.0 |
How much of that hue they carry; zero is the shipped neutral |
wide_pages |
false |
How wide a page with nothing of its own to say is set |
board_view |
lanes |
How a new board is laid out; every board then carries its own answer |
indent_project_rows |
true |
Indent sidebar items under project headings |
scrollbars |
scrolling |
scrolling, always or never |
sidebar_scrollbars |
never |
The same three |
wrap_code |
false |
Whether a long line wraps inside a code block rather than scrolling |
highlight |
yellow |
The colour behind ==text== |
selection |
unset | The colour behind selected text; unset is the palette's |
search |
unset | The colour behind the current find match, the others at half strength; unset is the accent |
caret |
unset | The caret's colour; unset is the palette's |
caret_shape |
bar |
bar, block or underline |
caret_height |
line |
How tall a block caret stands: line for the line, text for the text |
A colour is a preset name — red, orange, yellow, green, mint, teal, cyan, blue, indigo, purple, pink or brown, each following light and dark — or #rrggbb. A value that is neither reads as that key's default.
A size out of range paints an interface nobody can read the settings window to fix, so hand-edited sizes are clamped before layout sees them.
[features]
[features]
sessions = false
boards = true
tables = false
[features.panel]
review = true
files = true
browser = true # no effect on Linux
See Features.
[mcp]
[mcp]
serve = true
write = false
delete = false
See MCP.
[browser]
| Key | Default | What it is |
|---|---|---|
home |
https://duckduckgo.com |
What a new tab opens on |
search |
DuckDuckGo | Where a search from the address field goes; %s is the query |
links |
system |
Where a web link in an article or a transcript opens: system or panel |
agents_read |
true |
Offer agents the browser tools that read pages |
agents_act |
true |
Offer agents the browser tools that click and type; needs agents_read |
agents_blocked |
[] |
Hosts agents may not read or act on, subdomains included |
keep_signed_in |
true |
Keep cookies and storage across restarts; off builds each page in memory |
The browser tools are offered only while [features.panel] browser is on, and never on Linux. agents_blocked is checked against the tab's address when a call arrives.
[shortcuts]
[shortcuts]
emacs = false
new_article = "cmd-shift-n"
activate = "alt-space"
emacs = true adds ⌥B/⌥F word movement and ⌥D word deletion. Every other key is
a command name and the chord it answers to. An unknown command name is kept, so
a file edited by hand is not rewritten under you. See Keyboard.
[[agents]]
[[agents]]
name = "my-agent"
command = "path/to/agent"
args = ["--acp"]
# env = { KEY = "VALUE" }
See Installing agents.