Cogno reads a plain text config file. Every line is a key = value pair.
Dot notation groups related settings. Arrays use bracket syntax.
color.background = 1a1a2e
keybind = Command+T=new_tab
Only the values you want to override need to appear in your file. Cogno merges your
overrides with the built-in defaults, so an empty file is perfectly valid.
Build Path Release ~/.cogno/cogno.configDevelopment ~/.cogno-dev/cogno.config
Setting Type Default Description enable_watch_configboolean trueReload the config file automatically when it changes on disk
Setting Type Default Description font.familystring monospaceTerminal font family name font.sizeint (≥ 1) 14Terminal font size in pixels font.weightstring or number normalNormal-weight font variant. Accepts normal, bold, 100–900, or a numeric weight font.weight_boldstring or number boldBold-weight font variant font.enable_ligaturesboolean falseEnable font ligatures font.custom_glyphsboolean trueRender Nerd Font / custom glyphs font.draw_bold_text_in_bright_colorsboolean falseRender bold text using the bright color palette font.rescale_overlapping_glyphsboolean falseShrink glyphs that would overflow their cell font.app.familystring sans-serifFont family for the application UI (tabs, menus) font.app.sizeint (≥ 1) 14Font size for the application UI
font.family = "JetBrains Mono"
font.enable_ligatures = true
font.custom_glyphs = true
All color values are hex strings without a leading #. 6-digit hex sets an opaque color;
8-digit hex adds an alpha channel in the last two digits (ff = fully opaque, 00 = fully transparent).
Setting Default Description color.foregroundffffffDefault text color color.background0e1925Terminal background color color.highlight34bbfeAccent / highlight color color.black32465cANSI black color.redfd1155ANSI red color.green11d894ANSI green color.yellowfede55ANSI yellow color.blue34bbfeANSI blue color.magentae465d9ANSI magenta color.cyan32d8c1ANSI cyan color.whiteeeeeeeANSI white color.bright_black32465cBright ANSI black color.bright_redfd1155Bright ANSI red color.bright_green11d894Bright ANSI green color.bright_yellowfede55Bright ANSI yellow color.bright_blue34bbfeBright ANSI blue color.bright_magentae465d9Bright ANSI magenta color.bright_cyan32d8c1Bright ANSI cyan color.bright_whiteeeeeeeBright ANSI white
color.background = 1e1e2e
color.foreground = cdd6f4
Setting Type Default Description cursor.style"bar" "underline" "block"barCursor shape when the terminal is focused cursor.inactive_style"outline" "block" "bar" "underline" "none"— Cursor shape when the terminal is not focused cursor.widthint (0–10) 4Cursor width in pixels (applies to bar and underline styles) cursor.blinkboolean trueEnable cursor blinking cursor.colorhex 34bbfeccCursor fill color cursor.accent_colorhex 34bbfe66Secondary cursor color used during selection cursor.alt_click_moves_cursorboolean trueMove the cursor to the click position when Alt-clicking
Values are in em units (floating point).
Setting Type Default Description padding.leftnumber (≥ 0) 0.5Left padding padding.rightnumber (≥ 0) 0.5Right padding padding.topnumber (≥ 0) 0Top padding padding.bottomnumber (≥ 0) 0.5Bottom padding padding.remove_on_full_screen_appboolean falseRemove padding when a full-screen application (e.g. vim) is detected
Setting Type Default Description background_image.pathstring ""Absolute path to an image file. Leave empty to disable background_image.opacityint (0–100) 80Image opacity (0 = transparent, 100 = opaque) background_image.blurint (0–10) 0Blur radius applied to the image
background_image.path = /Users/me/wallpaper.png
background_image.opacity = 40
background_image.blur = 3
Setting Type Default Description menu.opacityint (0–100) 80Opacity of pop-up menus
Setting Type Default Description scrollbar.widthint (≥ 0) 6Scrollbar width in pixels. 0 hides the scrollbar scrollbar.sensitivityint (≥ 0) 1Scroll speed multiplier scrollbar.scroll_on_user_inputboolean trueJump to the bottom when keyboard input is detected while scrolled up scrollbar.smooth_scroll_durationint (≥ 0) 0Smooth scroll animation duration in milliseconds. 0 disables smooth scrolling scrollbar.fast_scroll_sensitivityint (≥ 0) 2Scroll speed multiplier when Alt/Option is held scrollbar.scrollback_linesint (≥ 100) 100000Number of lines kept in the scrollback buffer scrollbar.overview_ruler_border_colorhex 0e192500Color of the overview ruler border (fully transparent by default) scrollbar.slider_colorhex 32465c66Scrollbar slider color scrollbar.slider_hover_colorhex 32465cScrollbar slider color on hover scrollbar.slider_active_colorhex 32465cScrollbar slider color while dragging
Setting Type Default Description selection.clear_on_copyboolean falseDeselect text after copying selection.background_colorhex 34bbfeccSelection highlight color when terminal is focused selection.inactive_background_colorhex 34bbfe66Selection highlight color when terminal is not focused selection.right_click_selects_wordboolean falseRight-click selects the word under the cursor
Setting Type Default Description clipboard.read"allow" "deny"allowWhether applications can read from the clipboard via OSC 52 clipboard.write"allow" "deny"allowWhether applications can write to the clipboard via OSC 52 clipboard.trim_trailing_spacesboolean trueRemove trailing whitespace when copying text clipboard.image_paste_ttl_secondsint (> 0) 60How long a pasted image URL remains valid
Cogno supports multiple named shell profiles. Set shell.default to the name of the profile
to open when no profile is specified. At most 9 profiles may be defined.
Setting Type Default Description shell.defaultstring — Name of the default shell profile (required) shell.orderarray of strings — Order in which profiles appear in the UI
Each profile lives under shell.profiles.<name>:
Setting Type Default Description shell_type"Bash" "ZSH" "PowerShell"— Shell type (required) pathstring — Path to the shell executable. Uses the system default when omitted argsarray of strings — Extra arguments passed to the shell on launch envkey-value map — Environment variables added to the shell’s environment working_dirstring — Starting directory. Uses $HOME when omitted inject_cogno_cliboolean trueMake the cogno CLI available inside this shell enable_shell_integrationboolean trueEnable shell integration (prompt hooks, command tracking) load_user_rcboolean trueSource the user’s shell config (.bashrc, .zshrc, etc.) use_conptyboolean — Use ConPTY on Windows. Has no effect on other platforms
shell.order = [zsh, bash]
shell.profiles.zsh.shell_type = ZSH
shell.profiles.zsh.inject_cogno_cli = true
shell.profiles.zsh.enable_shell_integration = true
shell.profiles.bash.shell_type = Bash
shell.profiles.bash.path = /usr/local/bin/bash
shell.profiles.bash.working_dir = /Users/me/projects
Cogno can render a custom prompt built from named segments . Each segment is a colored
block that shows a dynamic value (field) or static text. Segments are assembled into
profiles that control display order.
Setting Type Description prompt.activestring Name of the active prompt profile prompt.profile.<name>.orderarray of strings Segment names to display, in order prompt.profile.<name>.default_separatorstring Default separator inserted between segments
Every segment is defined under prompt.segment.<name>. A segment must have either field
or text, not both.
Setting Type Description fieldstring Dynamic data field: directory, user, machine, duration textstring Static text content foregroundhex or named color Text color backgroundhex or named color Background color boldboolean Bold text italicboolean Italic text underlineboolean Underline text sizeint (≥ 1) Font size override for this segment padding_leftint Inner left padding in pixels padding_rightint Inner right padding in pixels margin_leftint Outer left margin in pixels margin_rightint Outer right margin in pixels radius_leftint (≥ 0) Left corner radius radius_rightint (≥ 0) Right corner radius whenstring Condition expression: returnCode==0 or returnCode!=0 format"string" "number" "json" "upper" "lower" "timespan"How to format the field value fallbackstring Value to show when the field has no data
Named colors for foreground and background: black, red, green, yellow, blue,
magenta, cyan, white, brightBlack, brightRed, brightGreen, brightYellow,
brightBlue, brightMagenta, brightCyan, brightWhite.
prompt.profile.default.order = [dir, error, ok]
prompt.segment.dir.field = directory
prompt.segment.dir.foreground = black
prompt.segment.dir.background = blue
prompt.segment.dir.padding_left = 5
prompt.segment.dir.padding_right = 5
prompt.segment.dir.radius_right = 5
prompt.segment.error.text = !
prompt.segment.error.margin_left = 5
prompt.segment.error.radius_left = 5
prompt.segment.error.radius_right = 5
prompt.segment.error.when = returnCode!=0
prompt.segment.ok.text = ✓
prompt.segment.ok.margin_left = 5
prompt.segment.ok.radius_left = 5
prompt.segment.ok.radius_right = 5
prompt.segment.ok.when = returnCode==0
Each keybinding is one line:
keybind = [scope:][performable:]combo[>combo...]=action[:arg...]
Multiple keybind = lines are additive — later lines do not remove earlier ones.
Scopes:
always — fires even when a UI element (e.g. search box) has keyboard focus
Modifiers:
performable — only fires if the action is currently available
Combo format: modifier keys joined with +, then the key name.
Command+T, Control+Shift+W, Option+Right.
Chord sequences: two combos separated by >.
Example: Control+X>Control+S=save.
Category Action Clipboard copy, cut, pasteBuffer clear_buffer, clear_line, clear_line_to_end, clear_line_to_startCursor movement go_to_start_of_line, go_to_end_of_line, go_to_next_word, go_to_previous_wordWord editing delete_previous_word, delete_next_wordText selection select_all, select_text_left, select_text_right, select_word_left, select_word_right, select_text_to_start_of_line, select_text_to_end_of_lineTabs new_tab, close_tab, close_terminal, close_other_tabs, close_all_tabs, select_next_tab, select_previous_tab, select_tab_1 … select_tab_9Panes split_right, split_left, split_down, split_up, maximize_pane, minimize_pane, select_next_pane, select_previous_paneShell profiles open_shell_1 … open_shell_9Window new_window, close_window, quitWorkspaces open_workspace, select_workspace_default, select_workspace_1 … select_workspace_9Autocomplete trigger_autocomplete, cycle_completion_modeFeatures open_ai_chat, open_command_palette, open_terminal_search, open_notification, open_config
# Override the default split shortcut
keybind = Command+Shift+D=split_down
# Fire copy even inside the search box
keybind = always:performable:Command+C=copy
# Chord: Ctrl+X then Ctrl+C
keybind = Control+X>Control+C=copy
Setting Type Default Description terminal.webglboolean trueUse the WebGL renderer for better GPU-accelerated performance terminal.inactive_overlay_opacityint (0–100) 30Dimming percentage applied to inactive terminal panes terminal.allow_transparencyboolean trueAllow transparent terminal backgrounds terminal.tab_stop_widthnumber 8Width of a tab character in columns terminal.minimum_contrast_rationumber 4Minimum contrast ratio between text and background colors terminal.screen_reader_modeboolean falseEnable accessibility / screen reader mode terminal.word_separatorstring "()[]{}'\"\\,;:/&<>*+=$^!~\ “`Characters treated as word boundaries for double-click selection and word movement terminal.progress_bar.enabledboolean trueShow a progress bar in the terminal tab header (uses OSC 9;4 escape sequences)
Setting Type Default Description autocomplete.provider.timeout_msint (≥ 1) 160Maximum time in milliseconds allowed for a single dynamic autocomplete provider to respond
Setting Type Default Description search.mode"off" "hidden" "visible"visibleInitial visibility of the search panel search.match.background_colorhex 2f8fda55Background color of non-active search matches search.match.border_colorhex 2f8fdaBorder color of non-active search matches search.match.overview_ruler_colorhex 2f8fdaMatch indicator color in the overview ruler search.active_match.background_colorhex f5e66399Background color of the currently selected match search.active_match.border_colorhex f5e663Border color of the currently selected match search.active_match.overview_ruler_colorhex f5e663Active match indicator color in the overview ruler
Setting Type Default Description workspace.mode"off" "hidden" "visible"visibleInitial visibility of the workspace panel
Cogno has two separate setting groups for notifications: notification.* controls behavior,
notifications.* controls delivery channels.
Setting Type Default Description notification.mode"off" "hidden" "visible"visibleInitial visibility of the notification panel notification.highlight_terminal_on_activityboolean trueHighlight the terminal tab when a notification fires notification.long_running_commands.enabledboolean falseShow a notification when a long-running command finishes notification.long_running_commands.minimum_duration_secondsint (≥ 0) 10Only notify for commands that ran at least this many seconds notification.exceptions.handled.enabledboolean falseShow a notification for handled application exceptions notification.exceptions.unhandled.enabledboolean falseShow a notification for unhandled renderer exceptions notification.overview.max_itemsint (≥ 0) 30Maximum number of notifications shown in the overview
Setting Type Default Description notifications.app.availableboolean trueWhether in-app notifications are available on this system notifications.app.enabledboolean trueShow in-app notifications notifications.app.duration_secondsint (≥ 0) 5Seconds before an in-app notification auto-dismisses notifications.os.availableboolean trueWhether OS-level notifications are available on this system notifications.os.enabledboolean falseSend OS notifications (requires system permission)
Setting Type Default Description command_palette.mode"off" "hidden" "visible"visibleInitial visibility of the command palette
Cogno can connect to local or remote AI models for in-terminal assistance.
Setting Type Default Description ai.mode"off" "hidden" "visible" "auto"autoauto enables AI automatically when at least one usable provider is configuredai.active_providerstring — ID of the provider to use. Defaults to the first usable provider found
A provider is usable when: enabled is not false, type is set, base_url is non-empty,
and model is non-empty.
Define one or more providers under ai.providers.<name> where <name> is any identifier you choose.
Setting Type Required Description type"openai_compatible" "ollama_native"Yes Protocol used to talk to the provider base_urlstring Yes Base URL of the API endpoint modelstring Yes Model name or ID to use api_keystring No API key (for OpenAI-compatible endpoints that require authentication) headerskey-value map No Additional HTTP headers sent with every request enabledboolean No Set to false to disable the provider without removing it auto_detectedboolean — Set automatically by Cogno. Do not set this manually
On startup, Cogno probes two local endpoints:
Provider Default URL Type Ollama http://localhost:11434ollama_nativeLM Studio http://localhost:1234openai_compatible
When a provider is detected, Cogno adds it with auto_detected = true and sets it as the
active provider if none is configured. To prevent a provider from being auto-detected, add
it manually with enabled = false.
Setting Type Default Description ai.request.include_process_treeboolean falseInclude the current process tree in the context sent to the AI ai.request.max_commandsint (≥ 0) 8Maximum number of recent commands sent as context ai.request.max_output_charsint (≥ 0) 4000Maximum terminal output characters sent as context
ai.providers.ollama.type = ollama_native
ai.providers.ollama.base_url = http://localhost:11434
ai.providers.ollama.model = llama3.2
ai.active_provider = ollama
ai.providers.lmstudio.type = openai_compatible
ai.providers.lmstudio.base_url = http://localhost:1234
ai.providers.lmstudio.model = meta-llama-3-8b-instruct
ai.active_provider = lmstudio
ai.providers.openai.type = openai_compatible
ai.providers.openai.base_url = https://api.openai.com
ai.providers.openai.model = gpt-4o
ai.providers.openai.api_key = sk-...
ai.active_provider = openai
# Disable auto-detection of LM Studio
ai.providers.lmstudio.enabled = false