Configuration
Cogno is configured with one plain text file. Each line sets one value:
font.size = 16color.background = 1a1a2ecursor.style = blockYou 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.
Where the file lives
Section titled “Where the file lives”~/.cogno/cogno.configOpen 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.
Syntax
Section titled “Syntax”# A commentkey = 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.
Values
Section titled “Values”| Kind | Written as | Example |
|---|---|---|
| Boolean | true or false, lowercase | cursor.blink = false |
| Number | digits, optionally with a decimal point | padding.left = 0.5 |
| Text | as is; quotes are optional | font.family = JetBrains Mono |
| Color | hex, # optional | color.background = 1a1a2e |
| List | [a, b, c] | shell.order = [zsh, bash] |
| Limit | a whole number or unlimited | terminal.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.
Applying changes
Section titled “Applying changes”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:
| Setting | Takes effect |
|---|---|
shell.* | in new terminals |
prompt.* | in new terminals |
http_server.* | after restarting Cogno |
When something is wrong
Section titled “When something is wrong”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.
| Mistake | What happens |
|---|---|
Invalid value, e.g. font.size = big | Error notification, the default is used |
Unknown or misspelled setting, e.g. font.sizee | Warning, the line is ignored |
Unknown action in a keybind line | Warning, the line is ignored |
If a setting seems to have no effect, ask Cogno what it actually uses:
cogno config get font.sizeOverriding the file for one launch
Section titled “Overriding the file for one launch”cogno --config ~/other.config # use a different filecogno --set font.size=18 # override single values, repeatable--set wins over the file and is never written to disk. See the CLI page.
- Shell profiles — which shells Cogno starts and how
- Prompt — build your own prompt from segments
- Keybindings — bind keys to actions
- All settings — the complete reference