All settings
Every Cogno setting with its type, default and meaning. Settings are written as
key = value lines in ~/.cogno/cogno.config; only the values you override need to be
present. Where a default differs per operating system, the platform is named in
brackets. See the configuration overview for the file format.
General
Section titled “General”enable_watch_config
Section titled “enable_watch_config”Reload the config automatically when the file changes on disk.
Type: boolean · Default: true
font.family
Section titled “font.family”Terminal font family; falls back per OS when unset.
Type: string · Default: monospace
font.size
Section titled “font.size”Terminal font size in pixels.
Type: integer ≥ 1 · Default: 14
font.enable_ligatures
Section titled “font.enable_ligatures”Render programming ligatures (needs a font that has them).
Type: boolean · Default: false
font.weight
Section titled “font.weight”Weight of normal terminal text.
Type: 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 | normal | bold | number · Default: normal
font.weight_bold
Section titled “font.weight_bold”Weight of bold terminal text.
Type: 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 | normal | bold | number · Default: bold
font.custom_glyphs
Section titled “font.custom_glyphs”Draw box-drawing and block characters instead of taking them from the font.
Type: boolean · Default: true
font.draw_bold_text_in_bright_colors
Section titled “font.draw_bold_text_in_bright_colors”Render bold text in the bright ANSI color variant.
Type: boolean · Default: false
font.rescale_overlapping_glyphs
Section titled “font.rescale_overlapping_glyphs”Shrink glyphs that are wider than their cell so they stop overlapping.
Type: boolean · Default: false
font.app.family
Section titled “font.app.family”Font family of the app UI (tabs, menus, panels) - not the terminal.
Type: string · Default: sans-serif
font.app.size
Section titled “font.app.size”Font size of the app UI in pixels.
Type: integer ≥ 1 · Default: 14
Colors
Section titled “Colors”Colors are hex without #; 8 digits add alpha.
color.foreground
Section titled “color.foreground”Default text color of the terminal.
Type: hex color · Default: ffffff
color.background
Section titled “color.background”Terminal background color.
Type: hex color · Default: 0e1925
color.highlight
Section titled “color.highlight”Accent color for highlighted UI elements, e.g. the active tab.
Type: hex color · Default: 34bbfe
color.black
Section titled “color.black”ANSI color 0 (black).
Type: hex color · Default: 32465c
color.red
Section titled “color.red”ANSI color 1 (red).
Type: hex color · Default: fd1155
color.green
Section titled “color.green”ANSI color 2 (green).
Type: hex color · Default: 11d894
color.yellow
Section titled “color.yellow”ANSI color 3 (yellow).
Type: hex color · Default: fede55
color.blue
Section titled “color.blue”ANSI color 4 (blue).
Type: hex color · Default: 34bbfe
color.magenta
Section titled “color.magenta”ANSI color 5 (magenta).
Type: hex color · Default: e465d9
color.cyan
Section titled “color.cyan”ANSI color 6 (cyan).
Type: hex color · Default: 32d8c1
color.white
Section titled “color.white”ANSI color 7 (white).
Type: hex color · Default: eeeeee
color.bright_black
Section titled “color.bright_black”ANSI color 8 (bright black / grey).
Type: hex color · Default: 32465c
color.bright_red
Section titled “color.bright_red”ANSI color 9 (bright red).
Type: hex color · Default: fd1155
color.bright_green
Section titled “color.bright_green”ANSI color 10 (bright green).
Type: hex color · Default: 11d894
color.bright_yellow
Section titled “color.bright_yellow”ANSI color 11 (bright yellow).
Type: hex color · Default: fede55
color.bright_blue
Section titled “color.bright_blue”ANSI color 12 (bright blue).
Type: hex color · Default: 34bbfe
color.bright_magenta
Section titled “color.bright_magenta”ANSI color 13 (bright magenta).
Type: hex color · Default: e465d9
color.bright_cyan
Section titled “color.bright_cyan”ANSI color 14 (bright cyan).
Type: hex color · Default: 32d8c1
color.bright_white
Section titled “color.bright_white”ANSI color 15 (bright white).
Type: hex color · Default: eeeeee
Cursor
Section titled “Cursor”cursor.width
Section titled “cursor.width”Cursor width in pixels; applies to the bar style.
Type: integer 0-10 · Default: 4
cursor.blink
Section titled “cursor.blink”Let the cursor blink.
Type: boolean · Default: true
cursor.style
Section titled “cursor.style”Cursor shape while the terminal has focus.
Type: bar | underline | block · Default: bar
cursor.inactive_style
Section titled “cursor.inactive_style”Cursor shape while the terminal does not have focus.
Type: outline | block | bar | underline | none · Default: outline
cursor.color
Section titled “cursor.color”Cursor color.
Type: hex color · Default: 34bbfecc
cursor.accent_color
Section titled “cursor.accent_color”Color of the character underneath a block cursor.
Type: hex color · Default: 34bbfe66
cursor.alt_click_moves_cursor
Section titled “cursor.alt_click_moves_cursor”Alt+click moves the shell cursor to the clicked position.
Type: boolean · Default: true
Padding
Section titled “Padding”padding.left
Section titled “padding.left”Padding between terminal content and left edge.
Type: number ≥ 0 · Default: 0.5
padding.right
Section titled “padding.right”Padding between terminal content and right edge.
Type: number ≥ 0 · Default: 0.5
padding.top
Section titled “padding.top”Padding between terminal content and top edge.
Type: number ≥ 0 · Default: 0
padding.bottom
Section titled “padding.bottom”Padding between terminal content and bottom edge.
Type: number ≥ 0 · Default: 0.5
padding.remove_on_full_screen_app
Section titled “padding.remove_on_full_screen_app”Drop the padding while a full-screen app (vim, less) owns the screen.
Type: boolean · Default: false
Background image
Section titled “Background image”background_image.path
Section titled “background_image.path”Path to a background image; empty means no background image.
Type: string · Default: (empty)
background_image.opacity
Section titled “background_image.opacity”Opacity of the background image, 0-100.
Type: integer 0-100 · Default: 80
background_image.blur
Section titled “background_image.blur”Blur radius applied to the background image, 0-10.
Type: integer 0-10 · Default: 0
menu.opacity
Section titled “menu.opacity”Opacity of menus and panels, 0-100.
Type: integer 0-100 · Default: 80
Scrollbar
Section titled “Scrollbar”scrollbar.width
Section titled “scrollbar.width”Scrollbar width in pixels; 0 hides it.
Type: integer ≥ 0 · Default: 6
scrollbar.overview_ruler_border_color
Section titled “scrollbar.overview_ruler_border_color”Border color of the overview ruler next to the scrollbar.
Type: hex color · Default: 0e192500
scrollbar.slider_color
Section titled “scrollbar.slider_color”Scrollbar slider color.
Type: hex color · Default: 32465c66
scrollbar.slider_hover_color
Section titled “scrollbar.slider_hover_color”Scrollbar slider color while hovered.
Type: hex color · Default: 32465c
scrollbar.slider_active_color
Section titled “scrollbar.slider_active_color”Scrollbar slider color while being dragged.
Type: hex color · Default: 32465c
scrollbar.sensitivity
Section titled “scrollbar.sensitivity”Lines scrolled per mouse-wheel notch.
Type: integer ≥ 0 · Default: 1
scrollbar.scroll_on_user_input
Section titled “scrollbar.scroll_on_user_input”Jump to the bottom when you start typing.
Type: boolean · Default: true
scrollbar.smooth_scroll_duration
Section titled “scrollbar.smooth_scroll_duration”Duration of smooth scrolling in milliseconds; 0 disables it.
Type: integer ≥ 0 · Default: 0
scrollbar.fast_scroll_sensitivity
Section titled “scrollbar.fast_scroll_sensitivity”Scroll multiplier while the fast-scroll modifier is held.
Type: integer ≥ 0 · Default: 2
scrollbar.scrollback_lines
Section titled “scrollbar.scrollback_lines”How many lines of scrollback the terminal keeps.
Type: integer ≥ 100 · Default: 100000
Selection
Section titled “Selection”selection.clear_on_copy
Section titled “selection.clear_on_copy”Clear the selection right after copying.
Type: boolean · Default: false
selection.background_color
Section titled “selection.background_color”Background color of selected text in the focused terminal.
Type: hex color · Default: 34bbfecc
selection.inactive_background_color
Section titled “selection.inactive_background_color”Background color of selected text in an unfocused terminal.
Type: hex color · Default: 34bbfe66
selection.right_click_selects_word
Section titled “selection.right_click_selects_word”Right-click selects the word under the pointer.
Type: boolean · Default: false
Clipboard
Section titled “Clipboard”clipboard.read
Section titled “clipboard.read”Whether programs in the terminal may read the clipboard (OSC 52).
Type: allow | deny · Default: allow
clipboard.write
Section titled “clipboard.write”Whether programs in the terminal may write the clipboard (OSC 52).
Type: allow | deny · Default: allow
clipboard.trim_trailing_spaces
Section titled “clipboard.trim_trailing_spaces”Strip trailing spaces from copied lines.
Type: boolean · Default: true
<name> is a profile name you choose. At most 9 profiles; shell.default must name one of them.
shell.default
Section titled “shell.default”Name of the profile new terminals start with; must exist in shell.profiles.
Type: string
shell.order
Section titled “shell.order”Order the profiles appear in menus and on the shell-profile shortcuts.
Type: string[]
shell.profiles.<name>.shell_type
Section titled “shell.profiles.<name>.shell_type”Which shell this profile launches.
Type: PowerShell | ZSH | Bash
shell.profiles.<name>.path
Section titled “shell.profiles.<name>.path”Path of the shell executable, e.g. /bin/zsh. Required.
Type: string
shell.profiles.<name>.args
Section titled “shell.profiles.<name>.args”Extra launch arguments for the shell.
Type: string[]
shell.profiles.<name>.env.<var>
Section titled “shell.profiles.<name>.env.<var>”Environment variables added to the shell process.
Type: string
shell.profiles.<name>.working_dir
Section titled “shell.profiles.<name>.working_dir”Directory the shell starts in.
Type: string
shell.profiles.<name>.inject_cogno_cli
Section titled “shell.profiles.<name>.inject_cogno_cli”Put the cogno CLI on the shell’s PATH.
Type: boolean
shell.profiles.<name>.enable_shell_integration
Section titled “shell.profiles.<name>.enable_shell_integration”Load Cogno’s shell integration (prompt markers, command status, cwd tracking).
Type: boolean
shell.profiles.<name>.load_user_rc
Section titled “shell.profiles.<name>.load_user_rc”Also load your own shell rc/profile files.
Type: boolean
Prompt
Section titled “Prompt”<name> is a profile or segment name you choose. A segment sets exactly one of field or text.
prompt.active
Section titled “prompt.active”Name of the prompt profile in use.
Type: string · Default: default
prompt.profile.<name>.order
Section titled “prompt.profile.<name>.order”Segment names to render, in order; each must exist under prompt.segment.
Type: string[]
prompt.profile.<name>.default_separator
Section titled “prompt.profile.<name>.default_separator”Text inserted between segments.
Type: string
prompt.segment.<name>.foreground
Section titled “prompt.segment.<name>.foreground”Text color: a terminal color name or hex.
Type: black | red | green | yellow | blue | magenta | cyan | white | brightBlack | brightRed | brightGreen | brightYellow | brightBlue | brightMagenta | brightCyan | brightWhite | hex color
prompt.segment.<name>.background
Section titled “prompt.segment.<name>.background”Background color: a terminal color name or hex.
Type: black | red | green | yellow | blue | magenta | cyan | white | brightBlack | brightRed | brightGreen | brightYellow | brightBlue | brightMagenta | brightCyan | brightWhite | hex color
prompt.segment.<name>.bold
Section titled “prompt.segment.<name>.bold”Render the segment bold.
Type: boolean
prompt.segment.<name>.italic
Section titled “prompt.segment.<name>.italic”Render the segment italic.
Type: boolean
prompt.segment.<name>.underline
Section titled “prompt.segment.<name>.underline”Underline the segment.
Type: boolean
prompt.segment.<name>.size
Section titled “prompt.segment.<name>.size”Font size override for this segment.
Type: integer ≥ 1
prompt.segment.<name>.when
Section titled “prompt.segment.<name>.when”Only show the segment when the condition holds, e.g. returnCode!=0.
Type: string
prompt.segment.<name>.padding_left
Section titled “prompt.segment.<name>.padding_left”Inner padding left of the content.
Type: integer
prompt.segment.<name>.padding_right
Section titled “prompt.segment.<name>.padding_right”Inner padding right of the content.
Type: integer
prompt.segment.<name>.margin_left
Section titled “prompt.segment.<name>.margin_left”Outer margin left of the segment.
Type: integer
prompt.segment.<name>.margin_right
Section titled “prompt.segment.<name>.margin_right”Outer margin right of the segment.
Type: integer
prompt.segment.<name>.radius_left
Section titled “prompt.segment.<name>.radius_left”Corner radius on the left side.
Type: integer ≥ 0
prompt.segment.<name>.radius_right
Section titled “prompt.segment.<name>.radius_right”Corner radius on the right side.
Type: integer ≥ 0
prompt.segment.<name>.title
Section titled “prompt.segment.<name>.title”Tooltip shown when hovering the segment.
Type: string
prompt.segment.<name>.className
Section titled “prompt.segment.<name>.className”Extra CSS class for custom styling.
Type: string
prompt.segment.<name>.format
Section titled “prompt.segment.<name>.format”How the value is rendered, e.g. timespan for a duration.
Type: string | number | json | upper | lower | timespan
prompt.segment.<name>.fallback
Section titled “prompt.segment.<name>.fallback”Shown when the field has no value.
Type: string
prompt.segment.<name>.field
Section titled “prompt.segment.<name>.field”Data field to display, e.g. directory, user, machine, duration.
Type: string
prompt.segment.<name>.text
Section titled “prompt.segment.<name>.text”Static text to display, instead of a field.
Type: string
Keybindings
Section titled “Keybindings”keybind
Section titled “keybind”One keybinding per line: keybind = [trigger:]combo[>combo...]=action[:arg...]. Lines add to the defaults; the last line that names an action sets its key.
Type: string[]
Terminal
Section titled “Terminal”terminal.webgl
Section titled “terminal.webgl”Render the terminal with the WebGL renderer instead of the canvas one.
Type: boolean · Default: true (linux: false)
terminal.decoration.color.background
Section titled “terminal.decoration.color.background”Fill color of the decoration.
Type: hex color · Default: 2f8fda55
terminal.decoration.color.border
Section titled “terminal.decoration.color.border”Border color of the decoration.
Type: hex color · Default: 2f8fda
terminal.decoration.color.overview_ruler
Section titled “terminal.decoration.color.overview_ruler”Marker color in the overview ruler beside the scrollbar.
Type: hex color · Default: 2f8fda
terminal.decoration.active_color.background
Section titled “terminal.decoration.active_color.background”Fill color of the decoration.
Type: hex color · Default: f5e66399
terminal.decoration.active_color.border
Section titled “terminal.decoration.active_color.border”Border color of the decoration.
Type: hex color · Default: f5e663
terminal.decoration.active_color.overview_ruler
Section titled “terminal.decoration.active_color.overview_ruler”Marker color in the overview ruler beside the scrollbar.
Type: hex color · Default: f5e663
terminal.inactive_overlay_opacity
Section titled “terminal.inactive_overlay_opacity”How strongly panes that are not focused are dimmed, 0-100.
Type: integer 0-100 · Default: 30
terminal.ignore_bracketed_paste_mode
Section titled “terminal.ignore_bracketed_paste_mode”Paste as plain keystrokes even when the shell asked for bracketed paste.
Type: boolean · Default: false
terminal.minimum_contrast_ratio
Section titled “terminal.minimum_contrast_ratio”Raise text contrast until at least this ratio is met; 1 disables the correction.
Type: number · Default: 4
terminal.screen_reader_mode
Section titled “terminal.screen_reader_mode”Expose terminal output to screen readers.
Type: boolean · Default: false
terminal.allow_transparency
Section titled “terminal.allow_transparency”Allow transparent background colors; costs some rendering performance.
Type: boolean · Default: true
terminal.tab_stop_width
Section titled “terminal.tab_stop_width”Width of a tab character in columns.
Type: number · Default: 8
terminal.word_separator
Section titled “terminal.word_separator”Characters that end a word for double-click selection and word-wise motion.
Type: string · Default: "()[]{}'\"\\,;:/&<>*+=$^!~` "
terminal.progress_bar.enabled
Section titled “terminal.progress_bar.enabled”Show the progress bar in the terminal header.
Type: boolean · Default: true
terminal.notifications.unread_badge
Section titled “terminal.notifications.unread_badge”Show an unread badge on a terminal’s tab when a notification-worthy event occurs while it isn’t focused.
Type: boolean · Default: true
terminal.notifications.osc9.enabled
Section titled “terminal.notifications.osc9.enabled”Allow OSC9 terminal notifications to trigger a notification.
Type: boolean · Default: true
terminal.notifications.long_running_command.enabled
Section titled “terminal.notifications.long_running_command.enabled”Show a notification after a long-running command has finished.
Type: boolean · Default: false
terminal.notifications.long_running_command.minimum_duration_seconds
Section titled “terminal.notifications.long_running_command.minimum_duration_seconds”Notify only when a command ran for at least this many seconds.
Type: integer ≥ 0 · Default: 10
terminal.history.max_entries
Section titled “terminal.history.max_entries”Maximum number of commands to keep per shell context in the command history log, or unlimited. Older entries beyond this count are pruned; 0 keeps none.
Type: unlimited | integer ≥ 0 · Default: unlimited
terminal.history.ignore_commands_with_leading_space
Section titled “terminal.history.ignore_commands_with_leading_space”Don’t add a command to history if it was typed with a leading space, matching the HISTCONTROL=ignorespace convention used by bash/zsh.
Type: boolean · Default: false
terminal.history.import_shell_history
Section titled “terminal.history.import_shell_history”On first launch with an empty history, import commands from the native shell history file (bash/gitbash: ~/.bash_history, zsh: ~/.zsh_history, powershell: PSReadLine ConsoleHost_history.txt).
Type: boolean · Default: false
terminal.history.auto_execute
Section titled “terminal.history.auto_execute”When enabled, selecting a history entry immediately executes the command. When disabled (default), the entry is written to the input line and must be confirmed with Enter.
Type: boolean · Default: false
terminal.history.allowed_return_codes
Section titled “terminal.history.allowed_return_codes”Return codes a command may exit with to be added to the history, e.g. [0] to keep only successful commands. Empty (default) keeps every command that exists. A command’s own list under allowed_return_codes_by_command wins.
Type: integer[] · Default: []
terminal.history.allowed_return_codes_by_command.<name>
Section titled “terminal.history.allowed_return_codes_by_command.<name>”Return codes allowed for one command, matched by its first word, e.g. allowed_return_codes_by_command.grep = [0,1] because exit 1 means “no match”. Overrides allowed_return_codes for that command.
Type: integer[]
terminal.restore.enabled
Section titled “terminal.restore.enabled”Restore workspaces, tabs, panes and terminal scrollback on the next launch, auto-saved on idle, workspace switch and exit. When off, nothing is persisted and each launch starts fresh; the explicit workspace save controls apply instead.
Type: boolean · Default: true
terminal.restore.scrollback
Section titled “terminal.restore.scrollback”Include the terminal scrollback in the restored session, above a separator line. When off, the layout is restored but terminals start empty.
Type: boolean · Default: true
terminal.restore.max_lines
Section titled “terminal.restore.max_lines”Maximum scrollback lines captured per terminal for restore. Caps the stored size; 0 means no scrollback.
Type: integer ≥ 0 · Default: 1000
Autocomplete
Section titled “Autocomplete”autocomplete.provider.timeout_ms
Section titled “autocomplete.provider.timeout_ms”Maximum time in milliseconds for one dynamic autocomplete provider.
Type: integer ≥ 1 · Default: 160
Notifications
Section titled “Notifications”notification.channel.app.available
Section titled “notification.channel.app.available”Whether in-app notifications may be used at all.
Type: boolean · Default: true
notification.channel.app.enabled
Section titled “notification.channel.app.enabled”Show notifications inside Cogno.
Type: boolean · Default: true
notification.channel.app.duration_seconds
Section titled “notification.channel.app.duration_seconds”Seconds an in-app notification stays before it fades. unlimited keeps it until you dismiss it; 0 shows none.
Type: unlimited | integer ≥ 0 · Default: 5
notification.channel.os.available
Section titled “notification.channel.os.available”Whether OS notifications may be used at all.
Type: boolean · Default: true
notification.channel.os.enabled
Section titled “notification.channel.os.enabled”Send notifications to the operating system.
Type: boolean · Default: false
notification.exception.handled.enabled
Section titled “notification.exception.handled.enabled”Show a notification for handled exceptions reported through the central error reporter.
Type: boolean · Default: false
notification.exception.unhandled.enabled
Section titled “notification.exception.unhandled.enabled”Show a notification for unhandled renderer exceptions caught by the global error reporter.
Type: boolean · Default: false
HTTP server
Section titled “HTTP server”http_server.enabled
Section titled “http_server.enabled”Run the local HTTP server that the cogno CLI talks to.
Type: boolean · Default: true
http_server.port
Section titled “http_server.port”Port of the local HTTP server.
Type: integer 1-65535 · Default: 9000
http_server.auto_next_port
Section titled “http_server.auto_next_port”If the port is taken, try the next free one instead of failing.
Type: boolean · Default: true
Features
Section titled “Features”Each feature can be switched off entirely and ordered in the side menu.
feature.workspace.mode
Section titled “feature.workspace.mode”Turn the feature on or off. Off removes it entirely, including its side-menu entry and actions.
Type: off | on · Default: on
feature.workspace.order
Section titled “feature.workspace.order”Override the side-menu display position for this feature. Lower numbers appear first.
Type: integer · Default: 10
feature.notification_overview.mode
Section titled “feature.notification_overview.mode”Turn the feature on or off. Off removes it entirely, including its side-menu entry and actions.
Type: off | on · Default: on
feature.notification_overview.order
Section titled “feature.notification_overview.order”Override the side-menu display position for this feature. Lower numbers appear first.
Type: integer · Default: 20
feature.notification_overview.overview.max_items
Section titled “feature.notification_overview.overview.max_items”How many notifications the overview keeps, or unlimited.
Type: unlimited | integer ≥ 0 · Default: 30
feature.command_palette.mode
Section titled “feature.command_palette.mode”Turn the feature on or off. Off removes it entirely, including its side-menu entry and actions.
Type: off | on · Default: on
feature.command_palette.order
Section titled “feature.command_palette.order”Override the side-menu display position for this feature. Lower numbers appear first.
Type: integer · Default: 30
feature.search.mode
Section titled “feature.search.mode”Turn the feature on or off. Off removes it entirely, including its side-menu entry and actions.
Type: off | on · Default: on
feature.search.order
Section titled “feature.search.order”Override the side-menu display position for this feature. Lower numbers appear first.
Type: integer · Default: 40
feature.git.mode
Section titled “feature.git.mode”Turn the feature on or off. Off removes it entirely, including its side-menu entry and actions.
Type: off | on · Default: off
feature.git.order
Section titled “feature.git.order”Override the side-menu display position for this feature. Lower numbers appear first.
Type: integer · Default: 50
feature.process_info.mode
Section titled “feature.process_info.mode”Turn the feature on or off. Off removes it entirely, including its side-menu entry and actions.
Type: off | on · Default: on
feature.process_info.order
Section titled “feature.process_info.order”Override the side-menu display position for this feature. Lower numbers appear first.
Type: integer · Default: 80
feature.coding_agents.mode
Section titled “feature.coding_agents.mode”Turn the feature on or off. Off removes it entirely, including its side-menu entry and actions.
Type: off | on · Default: on
feature.coding_agents.order
Section titled “feature.coding_agents.order”Override the side-menu display position for this feature. Lower numbers appear first.
Type: integer · Default: 65
feature.coding_agents.notifications.working.enabled
Section titled “feature.coding_agents.notifications.working.enabled”Notify when an agent starts working.
Type: boolean · Default: false
feature.coding_agents.notifications.question.enabled
Section titled “feature.coding_agents.notifications.question.enabled”Notify when an agent has a question and needs input.
Type: boolean · Default: false
feature.coding_agents.notifications.ready.enabled
Section titled “feature.coding_agents.notifications.ready.enabled”Notify when an agent becomes ready/idle.
Type: boolean · Default: false
feature.coding_agents.notifications.error.enabled
Section titled “feature.coding_agents.notifications.error.enabled”Notify when an agent reports an error.
Type: boolean · Default: false