--- sidebar_position: 3 id: "config" title: "Configuration" --- Wave's configuration files are located at `~/.waveterm/config/`. The main configuration file is `settings.json` (`~/.waveterm/config/settings.json`). The file is structured as a mostly flat JSON file. Instead of using sub-objects we prefer to use ":" as level separators. | Key Name | Type | Function | |----------|------|----------| | ai:baseurl | string | Set the AI Base Url (must be OpenAI compatible) | | ai:apitoken | string | your AI api token | | ai:name | string | string to display in the Wave AI block header | | ai:model | string | model name to pass to API | | ai:maxtokens | int | max tokens to pass to API | | ai:timeoutms | int | timeout (in milliseconds) for AI calls | | term:fontsize | float | the fontsize for the terminal block | | term:fontfamily | string | font family to use for terminal block | | term:disablewebgl | bool | set to false to disable WebGL acceleration in terminal | | editor:minimapenabled | bool | set to false to disable editor minimap | | editor:stickscrollenabled | bool | | | web:openlinksinternally | bool | set to false to open web links in external browser | | web:defaulturl | string | default web page to open in the web widget when no url is provided (homepage) | | web:defaultsearch | string | search template for web searches. e.g. `https://www.google.com/search?q={query}`. "\{query}" gets replaced by search term | | blockheader:showblockids | bool | show first 8 chars of blockid in the header | | autoupdate:enabled | bool | enable/disable checking for updates (requires app restart) | | autoupdate:intervalms | float64 | time in milliseconds to wait between update checks (requires app restart) | | autoupdate:installonquit | bool | whether to automatically install updates on quit (requires app restart) | | autoupdate:channel | string | the auto update channel "latest" (stable builds), or "beta" (updated more frequently) (requires app restart) | | widget:showhelp | bool | whether to show help/tips widgets in right sidebar | | window:transparent | bool | set to true to enable window transparency (cannot be combined with `window:blur`) (macOS and Windows only, requires app restart, see [note on Windows compatibility](https://www.electronjs.org/docs/latest/tutorial/window-customization#limitations)) | | window:blur | bool | set to enable window background blurring (cannot be combined with `window:transparent`) (macOS and Windows only, requires app restart, see [note on Windows compatibility](https://www.electronjs.org/docs/latest/tutorial/window-customization#limitations)) | | window:opacity | float64 | 0-1, window opacity when `window:transparent` or `window:blur` are set | | window:bgcolor | string | set the window background color (should be hex: #xxxxxx) | | window:reducedmotion | bool | set to true to disable most animations | | window:tilegapsize | int | set to change override default gap between blocks | | window:nativetitlebar | bool | set to use the OS-native title bar, rather than the overlay (Windows and Linux only, requires app restart) | | window:disablehardwareacceleration | bool | set to disable Chromium hardware acceleration to resolve graphical bugs (requires app restart) | | telemetry:enabled | bool | set to enable/disable telemetry | For reference this is the current default configuration (v0.8.8): ```json { "ai:model": "gpt-4o-mini", "ai:maxtokens": 1000, "ai:timeoutms": 10000, "autoupdate:enabled": true, "autoupdate:installonquit": true, "autoupdate:intervalms": 3600000, "editor:minimapenabled": true, "web:defaulturl": "https://github.com/wavetermdev/waveterm", "web:defaultsearch": "https://www.google.com/search?q={query}", "window:tilegapsize": 3, "telemetry:enabled": true } ```