Skip to content
Cogno v0.4.0

Configuration

Cogno is configured with one plain text file. Each line sets one value:

font.size = 16
color.background = 1a1a2e
cursor.style = block

You only write what you want to change. Everything else keeps its built-in default, so an empty file is valid.

Looking for a specific setting? Go to All settings.

~/.cogno/cogno.config

Open it from Cogno with Ctrl+, (Command+, on macOS) or the open_config action. cogno config path prints the path. Development builds use ~/.cogno-dev/cogno.config.

On first launch Cogno creates the file and adds a shell profile for every shell it finds.

# A comment
key = value
  • One setting per line, written as key = value. Dots group related settings: font.size, font.family.
  • Comments start with # at the beginning of a line. A # after a value is not a comment — it becomes part of the value.
  • Blank lines are ignored.
  • If a key appears twice, the last line wins. The exception is keybind, where every line adds a binding.
KindWritten asExample
Booleantrue or false, lowercasecursor.blink = false
Numberdigits, optionally with a decimal pointpadding.left = 0.5
Textas is; quotes are optionalfont.family = JetBrains Mono
Colorhex, # optionalcolor.background = 1a1a2e
List[a, b, c]shell.order = [zsh, bash]
Limita whole number or unlimitedterminal.history.max_entries = unlimited

Text. Quotes are only needed for an empty value ("") or to keep leading or trailing spaces. Both "double" and 'single' quotes work. There are no escape sequences — a backslash is a backslash.

Colors. 6 hex digits set an opaque color, 8 digits add transparency in the last two (ff opaque, 00 invisible). The short forms with 3 and 4 digits work too. Color names like red are not accepted here.

Limits. Settings that cap something — history entries, kept notifications, how long a toast stays — take a number or the word unlimited. A number is meant literally: 0 means zero, not “no limit”.

Lists. Items are separated by commas, so an item cannot contain a comma. [] is an empty list. A list in your file replaces the default list.

Cogno watches the file and reloads it about a second after you save. A small “Config loaded” notification confirms it. With enable_watch_config = false, reload manually with the load_config action.

Most settings apply immediately, including to terminals that are already open. A few only affect what starts afterwards:

SettingTakes effect
shell.*in new terminals
prompt.*in new terminals
http_server.*after restarting Cogno

A mistake never breaks the whole config. Cogno uses the default for the affected setting and shows a Config errors or Config warnings notification that names the key.

MistakeWhat happens
Invalid value, e.g. font.size = bigError notification, the default is used
Unknown or misspelled setting, e.g. font.sizeeWarning, the line is ignored
Unknown action in a keybind lineWarning, the line is ignored

If a setting seems to have no effect, ask Cogno what it actually uses:

Terminal window
cogno config get font.size
Terminal window
cogno --config ~/other.config # use a different file
cogno --set font.size=18 # override single values, repeatable

--set wins over the file and is never written to disk. See the CLI page.