34| `GROK_MEMORY` | `0` | Enable cross-session memory (`1`/`0`). |34| `GROK_MEMORY` | `0` | Enable cross-session memory (`1`/`0`). |
35| `GROK_SUBAGENTS` | `0` | Enable subagents / the task tool (`1`/`0`). |35| `GROK_SUBAGENTS` | `0` | Enable subagents / the task tool (`1`/`0`). |
36| `GROK_AGENT` | `grok-build` | Built-in agent name, profile, or absolute path to an agent definition. |36| `GROK_AGENT` | `grok-build` | Built-in agent name, profile, or absolute path to an agent definition. |
37| `GROK_SHOW_THINKING_BLOCKS` | `0` | Show reasoning/thinking blocks in the TUI (`1`/`0`). |
38| `GROK_WRITE_FILE` | `1` | Disable the `write` tool with `0` (read-only sessions). |37| `GROK_WRITE_FILE` | `1` | Disable the `write` tool with `0` (read-only sessions). |
39| `GROK_TOOL_SEARCH` | `1` | On-demand MCP tool discovery for large toolsets (`1`/`0`). |38| `GROK_TOOL_SEARCH` | `1` | On-demand MCP tool discovery for large toolsets (`1`/`0`). |
40| `GROK_LSP_TOOLS` | `0` | Enable the LSP code-intel tool (`1`/`0`). |39| `GROK_LSP_TOOLS` | `0` | Enable the LSP code-intel tool (`1`/`0`). |
41 40
41### UI and appearance
42
43| Variable | Default | Description |
44| --- | --- | --- |
45| `GROK_THEME` | built-in | Color theme. |
46| `GROK_SHOW_THINKING_BLOCKS` | `1` | Show thinking/reasoning blocks in the TUI (`1`/`0`). |
47| `GROK_GROUP_TOOL_VERBS` | `1` | Fold consecutive read/search/list tool rows (`1`/`0`). |
48| `GROK_COLLAPSED_EDIT_BLOCKS` | `0` | Collapse edits to one-line `+N/-M` summaries (`1`/`0`). |
49| `GROK_PROMPT_SUGGESTIONS` | `1` | Next-prompt ghost text after each turn (`1`/`0`). |
50| `GROK_SCROLL_SPEED` | `50` | Mouse/trackpad scroll speed (`1`–`100`). |
51| `GROK_SCROLL_MODE` | `auto` | Scroll input: `auto`, `wheel`, or `trackpad`. |
52| `GROK_SCROLL_LINES` | use config if unset | Lines per scroll tick (`1`–`10`). |
53| `GROK_INVERT_SCROLL` | `0` | Reverse vertical scroll direction (`1`/`0`). |
54| `GROK_DEFAULT_SELECTED_PERMISSION` | `always_allow_all_sessions` | Preselected row on the first permission prompt. |
55| `GROK_REMEMBER_TOOL_APPROVALS` | `0` | Show per-tool "Always allow …" options (`1`/`0`). |
56| `GROK_MOUSE_REPORTING_TOGGLE` | `0` | `Ctrl+R` in scrollback toggles terminal mouse capture (`1`/`0`). |
57| `GROK_DISPLAY_REFRESH_AUTO_CADENCE` | `0` | Match stream/scroll cadence to display refresh rate (`1`/`0`). |
58
42### MCP, logging, and proxy59### MCP, logging, and proxy
43 60
44| Variable | Default | Description |61| Variable | Default | Description |
195| `new_session_worktree_mode` | `[hints]` | `ask` | `always` | `never` (default `never`) | Whether `/new` offers a [worktree](/build/features/worktrees). |212| `new_session_worktree_mode` | `[hints]` | `ask` | `always` | `never` (default `never`) | Whether `/new` offers a [worktree](/build/features/worktrees). |
196| `fork_worktree_mode` | `[hints]` | `ask` | `always` | `never` (default `ask`) | Whether `/fork` offers a worktree. |213| `fork_worktree_mode` | `[hints]` | `ask` | `always` | `never` (default `ask`) | Whether `/fork` offers a worktree. |
197 214
215### `[ui]`, `[ui.display_refresh]`, and `[ui.contextual_hints]`
216
217| Setting | Section | Values / default | Description |
218| --- | --- | --- | --- |
219| `compact_mode` | `[ui]` | `true` / `false` (default `false`) | Denser message padding. Also `/compact-mode`. |
220| `screen_mode` | `[ui]` | `fullscreen` (default when unset) | `minimal` | Default render mode for plain `grok`. Restart required. |
221| `show_timestamps` | `[ui]` | `true` / `false` (default `true`) | Clock time next to messages. Also `/timestamps`. |
222| `show_timeline` | `[ui]` | `true` / `false` (default `false`) | Per-turn tick rail instead of the scrollbar. |
223| `page_flip_on_send` | `[ui]` | `true` / `false` (default `true`) | Snap the sent prompt to the top of the viewport. |
224| `max_thoughts_width` | `[ui]` | `40`–`500` (default `120`) | Column width for the thoughts panel. |
225| `combine_queued_prompts` | `[ui]` | `true` / `false` (default `false`) | Merge consecutive plain follow-ups into one turn. |
226| `theme` | `[ui]` | theme name or `auto` / `system` (default Grok Night) | Color theme. `auto` follows OS light/dark. Also `/theme`. |
227| `auto_dark_theme` | `[ui]` | theme name (default `groknight`) | Theme when `theme = "auto"` and the OS is dark. |
228| `auto_light_theme` | `[ui]` | theme name (default `grokday`) | Theme when `theme = "auto"` and the OS is light. |
229| `simple_mode` | `[ui]` | `true` / `false` (default `true`) | Readline prompt editing when `true`; experimental vim prompt keys when `false`. |
230| `vim_mode` | `[ui]` | `true` / `false` (default `false`) | Vim keys in the scrollback (not the prompt). Also `/vim-mode`. |
231| `prompt_suggestions` | `[ui]` | `true` / `false` (default `true`) | Next-prompt ghost text after each turn (Tab to accept). |
232| `mouse_reporting_toggle` | `[ui]` | `true` / `false` (default `false`) | `Ctrl+R` in scrollback toggles terminal mouse capture. |
233| `keep_text_selection` | `[ui]` | `flash` (default) | `hold` | `word_select` | In-app selection: brief flash, hold, or double-click word select. |
234| `cursor_blink` | `[ui]` | `true` / `false` (unset inherits terminal) | Force blinking (`true`) or steady (`false`) block cursor. |
235| `show_thinking_blocks` | `[ui]` | `true` / `false` (default `true`) | Show thinking/reasoning blocks while streaming. |
236| `group_tool_verbs` | `[ui]` | `true` / `false` (default `true`) | Fold consecutive read/search/list tool rows into one summary. |
237| `collapsed_edit_blocks` | `[ui]` | `true` / `false` (default `false`) | Show edits as one-line `+N/-M` summaries. |
238| `render_mermaid` | `[ui]` | `auto` (default) | `on` | `off` | Mermaid diagrams: clickable open row (`auto`/`on`) or raw source (`off`). |
239| `scroll_speed` | `[ui]` | `1`–`100` (default `50`) | Mouse/trackpad scroll speed multiplier. |
240| `scroll_mode` | `[ui]` | `auto` (default) | `wheel` | `trackpad` | Force wheel vs trackpad when auto-detection is wrong. |
241| `scroll_lines` | `[ui]` | `1`–`10` (unset uses terminal profile) | Lines per scroll tick for wheel and trackpad. |
242| `invert_scroll` | `[ui]` | `true` / `false` (default `false`) | Reverse vertical scroll direction. |
243| `permission_mode` | `[ui]` | `default` | `ask` | `auto` | `always-approve` | Default tool-permission behavior. Enterprise locks use `requirements.toml`. |
244| `default_selected_permission` | `[ui]` | `always_allow_all_sessions` (default) | `allow_command_always` | `allow_once` | `reject` | Preselected approval row on the first prompt of a session. |
245| `remember_tool_approvals` | `[ui]` | `true` / `false` (default `false`) | Show per-tool "Always allow …" options. Restart required. |
246| `cancel_subagents_on_turn_cancel` | `[ui]` | `ask` (default when unset) | `always_stop` | `always_continue` | When cancelling a turn with running subagents. |
247| `hunk_tracker_mode` | `[ui]` | `agent_only` (default) | `all_dirty` | `off` | File-change hunk tracking. Restart required. |
248| `fork_secondary_model` | `[ui]` | model id (default: main default) | Model for the secondary agent when forking. |
249| `voice_keybind_enabled` | `[ui]` | `true` / `false` (default `true`) | Enable Ctrl+Space / F8 for voice dictation (`/voice` still works when off). |
250| `voice_capture_mode` | `[ui]` | `hold` (default) | `toggle` | Hold-to-talk or press-to-toggle voice capture. |
251| `voice_stt_language` | `[ui]` | language code or `auto` (default `en` / `[voice].language`) | Speech-to-text language for dictation. |
252| `auto_cadence_enabled` | `[ui.display_refresh]` | `true` / `false` (default `false`) | Match stream/scroll cadence to display refresh rate. Restart required. |
253| `undo` | `[ui.contextual_hints]` | `true` / `false` (default `true`) | Ctrl+Z restores a wiped prompt draft. |
254| `plan_mode` | `[ui.contextual_hints]` | `true` / `false` (default `true`) | Suggest plan mode (Shift+Tab) for planning-style prompts. |
255| `image_input` | `[ui.contextual_hints]` | `true` / `false` (default `true`) | Clipboard image paste tip when the model accepts images. |
256| `send_now` | `[ui.contextual_hints]` | `true` / `false` (default `true`) | After queuing a mid-turn follow-up, Enter on empty prompt sends now. |
257| `small_screen` | `[ui.contextual_hints]` | `true` / `false` (default `true`) | Suggest `/compact-mode` on short terminals. |
258| `word_select` | `[ui.contextual_hints]` | `true` / `false` (default `true`) | After double-click with fold/nav selection, point at Word select in settings. |
259| `ssh_wrap` | `[ui.contextual_hints]` | `true` / `false` (default `true`) | Recommend `grok wrap` when SSH lacks a clipboard sink. |
260
198### `[permission]`261### `[permission]`
199 262
200Project-scoped and user-scoped. Evaluation order: **deny > ask > allow**.263Project-scoped and user-scoped. Evaluation order: **deny > ask > allow**.