Skip to repository content

tenant.openagents/omega

No repository description is available.

OpenAgents Git authority 2026-07-28T01:38:52.512Z Public web read
NIP-34 coordinate30617:7649603503856e5148d571eac2766b288a8ff1e9e35d380337a1d2b0015b4f92:omega
MaintainersHidden in public view
References2 branches · 1 tag
Read-only clonegit clone https://openagents.com/git/tenant.openagents/omega.git
Browse files

default.json

2871 lines · 116.7 KB · json
1{
2  "$schema": "zed://schemas/settings",
3  // The name of the Omega theme to use for the UI.
4  //
5  // `mode` is one of:
6  // - "system": Use the theme that corresponds to the system's appearance
7  // - "light": Use the theme indicated by the "light" field
8  // - "dark": Use the theme indicated by the "dark" field
9  //
10  // Aiur is Omega's own theme and is dark-only. Upstream Zed ships One Dark and
11  // One Light here. These two values are what actually select the theme; the
12  // DEFAULT_DARK_THEME / DEFAULT_LIGHT_THEME constants only apply when no
13  // settings layer names one. See OMEGA-DELTA-0016.
14  "theme": {
15    "mode": "system",
16    "light": "Ayu Light",
17    "dark": "Aiur",
18  },
19  // Upstream Zed names this "Zed (Default)". It has to match
20  // DEFAULT_ICON_THEME_NAME in crates/theme/src/icon_theme.rs, which registers
21  // the only built-in icon theme. See OMEGA-DELTA-0028.
22  "icon_theme": "Omega (Default)",
23  // The name of a base set of key bindings to use.
24  // This setting can take the following values:
25  //
26  // 1. "Zed"
27  // 2. "VSCode"
28  // 3. "Atom"
29  // 4. "JetBrains"
30  // 5. "SublimeText"
31  // 6. "TextMate"
32  // 7. "Emacs"
33  // 8. "Cursor"
34  // 9. "None"
35  "base_keymap": "Zed",
36  // The name of a font to use for rendering text in the editor
37  // ".ZedMono" currently aliases to Lilex
38  // but this may change in the future.
39  "buffer_font_family": ".ZedMono",
40  // Set the buffer text's font fallbacks, this will be merged with
41  // the platform's default fallbacks.
42  "buffer_font_fallbacks": null,
43  // The OpenType features to enable for text in the editor.
44  "buffer_font_features": {
45    // Disable ligatures:
46    // "calt": false
47  },
48  // The default font size for text in the editor
49  "buffer_font_size": 15,
50  // The weight of the editor font in standard CSS units from 100 to 900.
51  "buffer_font_weight": 400,
52  // Set the buffer's line height.
53  // May take 3 values:
54  //  1. Use a line height that's comfortable for reading (1.618)
55  //         "buffer_line_height": "comfortable"
56  //  2. Use a standard line height, (1.3)
57  //         "buffer_line_height": "standard",
58  //  3. Use a custom line height
59  //         "buffer_line_height": {
60  //           "custom": 2
61  //         },
62  "buffer_line_height": "comfortable",
63  // The name of a font to use for rendering text in the UI
64  // You can set this to ".SystemUIFont" to use the system font
65  // ".ZedSans" currently aliases to "IBM Plex Sans", but this may
66  // change in the future
67  "ui_font_family": ".ZedSans",
68  // Set the UI's font fallbacks, this will be merged with the platform's
69  // default font fallbacks.
70  "ui_font_fallbacks": null,
71  // The OpenType features to enable for text in the UI
72  "ui_font_features": {
73    // Disable ligatures:
74    "calt": false,
75  },
76  // The weight of the UI font in standard CSS units from 100 to 900.
77  "ui_font_weight": 400,
78  // The default font size for text in the UI
79  "ui_font_size": 16,
80  // The default font size for agent responses in the agent panel. Falls back to the UI font size if unset.
81  "agent_ui_font_size": null,
82  // The default font size for user messages in the agent panel.
83  "agent_buffer_font_size": 12,
84  // The default font size for the commit editor in the git panel and commit modal.
85  "git_commit_buffer_font_size": 12,
86  // The default font size for the markdown preview. Falls back to the UI font size if unset.
87  "markdown_preview_font_size": null,
88  // The font family for the markdown preview. Falls back to the UI font family if unset.
89  "markdown_preview_font_family": null,
90  // The font family for code blocks in the markdown preview. Falls back to the editor font family if unset.
91  "markdown_preview_code_font_family": null,
92  // How much to fade out unused code.
93  "unnecessary_code_fade": 0.3,
94  // Active pane styling settings.
95  "active_pane_modifiers": {
96    // Inset border size of the active pane, in pixels.
97    "border_size": 0.0,
98    // Opacity of the inactive panes. 0 means transparent, 1 means opaque.
99    // Values are clamped to the [0.0, 1.0] range.
100    "inactive_opacity": 1.0,
101  },
102  // Layout mode of the bottom dock. Defaults to "contained"
103  //   choices: contained, full, left_aligned, right_aligned
104  "bottom_dock_layout": "contained",
105  // The direction that you want to split panes horizontally. Defaults to "down"
106  "pane_split_direction_horizontal": "down",
107  // The direction that you want to split panes vertically. Defaults to "right"
108  "pane_split_direction_vertical": "right",
109  // Centered layout related settings.
110  "centered_layout": {
111    // The relative width of the left padding of the central pane from the
112    // workspace when the centered layout is used.
113    "left_padding": 0.2,
114    // The relative width of the right padding of the central pane from the
115    // workspace when the centered layout is used.
116    "right_padding": 0.2,
117  },
118  // Image viewer settings
119  "image_viewer": {
120    // The unit for image file sizes: "binary" (KiB, MiB) or decimal (KB, MB)
121    "unit": "binary",
122  },
123  // Markdown preview settings
124  "markdown_preview": {
125    // Whether to limit the width of the rendered markdown content. When
126    // enabled, content is constrained to `max_width` and centered
127    // horizontally within the preview pane.
128    "limit_content_width": true,
129    // The maximum width, in pixels, of the rendered markdown content when
130    // limit_content_width is enabled.
131    "max_width": 800,
132  },
133  // Determines the modifier to be used to add multiple cursors with the mouse. The open hover link mouse gestures will adapt such that it do not conflict with the multicursor modifier.
134  //
135  // 1. Maps to `Alt` on Linux and Windows and to `Option` on MacOS:
136  //    "alt"
137  // 2. Maps `Control` on Linux and Windows and to `Command` on MacOS:
138  //    "cmd_or_ctrl" (alias: "cmd", "ctrl")
139  "multi_cursor_modifier": "alt",
140  // Whether to enable vim modes and key bindings.
141  "vim_mode": false,
142  // Whether to enable helix mode and key bindings.
143  // Enabling this mode will automatically enable vim mode.
144  "helix_mode": false,
145  // Whether to show the informational hover box when moving the mouse
146  // over symbols in the editor.
147  "hover_popover_enabled": true,
148  // Time to wait in milliseconds before showing the informational hover box.
149  // This delay also applies to auto signature help when `auto_signature_help` is enabled.
150  "hover_popover_delay": 300,
151  // Whether the hover popover sticks when the mouse moves toward it,
152  // allowing interaction with its contents before it disappears.
153  "hover_popover_sticky": true,
154  // Time to wait in milliseconds before hiding the hover popover
155  // after the mouse moves away from the hover target.
156  // Only applies when `hover_popover_sticky` is enabled.
157  "hover_popover_hiding_delay": 300,
158  // Whether to confirm before quitting Omega.
159  "confirm_quit": false,
160  // Whether to restore last closed project when fresh Omega instance is opened
161  // May take 3 values:
162  //  1. All workspaces open during last session
163  //         "restore_on_startup": "last_session"
164  //  2. The workspace opened
165  //         "restore_on_startup": "last_workspace",
166  //  3. Do not restore previous workspaces
167  //         "restore_on_startup": "none",
168  "restore_on_startup": "last_session",
169  // The default behavior when opening paths from the CLI without
170  // an explicit `-e` (existing window) or `-n` (new window) flag.
171  //
172  // May take 2 values:
173  //  1. Open directories as a new workspace in the current Omega window's sidebar
174  //         "cli_default_open_behavior": "existing_window"
175  //  2. Open paths in a new window, unless they are subpaths of an existing project
176  //         "cli_default_open_behavior": "new_window"
177  "cli_default_open_behavior": "existing_window",
178  // The default behavior when opening projects from the UI.
179  //
180  // May take 2 values:
181  //  1. Open projects as a new workspace in the current Omega window's sidebar
182  //         "default_open_behavior": "existing_window"
183  //  2. Open projects in a new window
184  //         "default_open_behavior": "new_window"
185  "default_open_behavior": "existing_window",
186  // Whether to attempt to restore previous file's state when opening it again.
187  // The state is stored per pane.
188  // When disabled, defaults are applied instead of the state restoration.
189  //
190  // E.g. for editors, selections, folds and scroll positions are restored, if the same file is closed and, later, opened again in the same pane.
191  // When disabled, a single selection in the very beginning of the file, zero scroll position and no folds state is used as a default.
192  //
193  // Default: true
194  "restore_on_file_reopen": true,
195  // Whether to automatically close files that have been deleted on disk.
196  "close_on_file_delete": false,
197  // Whether toggling a panel (e.g. with its keyboard shortcut) also closes
198  // the panel when it is already focused, instead of just moving focus back
199  // to the editor.
200  "close_panel_on_toggle": false,
201  // Relative size of the drop target in the editor that will open dropped file as a split pane (0-0.5)
202  // E.g. 0.25 == If you drop onto the top/bottom quarter of the pane a new vertical split will be used
203  //              If you drop onto the left/right quarter of the pane a new horizontal split will be used
204  "drop_target_size": 0.2,
205  // Whether the window should be closed when using 'close active item' on a window with no tabs.
206  // May take 3 values:
207  //  1. Use the current platform's convention
208  //         "when_closing_with_no_tabs": "platform_default"
209  //  2. Always close the window:
210  //         "when_closing_with_no_tabs": "close_window",
211  //  3. Never close the window
212  //         "when_closing_with_no_tabs": "keep_window_open",
213  "when_closing_with_no_tabs": "platform_default",
214  // What to do when the last window is closed.
215  // May take 2 values:
216  //  1. Use the current platform's convention
217  //         "on_last_window_closed": "platform_default"
218  //  2. Always quit the application
219  //         "on_last_window_closed": "quit_app",
220  "on_last_window_closed": "platform_default",
221  // The text rendering mode to use.
222  // May take 3 values:
223  //  1. Use platform default behavior:
224  //         "text_rendering_mode": "platform_default"
225  //  2. Use subpixel (ClearType-style) text rendering:
226  //         "text_rendering_mode": "subpixel"
227  //  3. Use grayscale text rendering:
228  //         "text_rendering_mode": "grayscale"
229  "text_rendering_mode": "platform_default",
230  // Whether to show padding for zoomed panels.
231  // When enabled, zoomed center panels (e.g. code editor) will have padding all around,
232  // while zoomed bottom/left/right panels will have padding to the top/right/left (respectively).
233  //
234  // Default: true
235  "zoomed_padding": true,
236  // What draws Omega's window decorations (titlebar):
237  // 1. Client application (Omega) draws its own window decorations
238  //    "client"
239  // 2. Display server draws the window decorations. Not supported by GNOME Wayland.
240  //    "server"
241  //
242  // This requires restarting Omega for changes to take effect.
243  //
244  // Default: "client"
245  "window_decorations": "client",
246  // Whether to optimize Omega's interface for assistive technology such as screen
247  // readers.
248  "accessible_mode": false,
249  // Whether to use the system provided dialogs for Open and Save As.
250  // When set to false, Omega will use the built-in keyboard-first pickers.
251  "use_system_path_prompts": true,
252  // Whether to use the system provided dialogs for prompts, such as confirmation
253  // prompts.
254  // When set to false, Omega will use its built-in prompts. Note that on Linux,
255  // this option is ignored and Omega will always use the built-in prompts.
256  "use_system_prompts": true,
257  // Whether the cursor blinks in the editor.
258  "cursor_blink": true,
259  // Cursor shape for the default editor.
260  //  1. A vertical bar
261  //     "bar"
262  //  2. A block that surrounds the following character
263  //     "block"
264  //  3. An underline / underscore that runs along the following character
265  //     "underline"
266  //  4. A box drawn around the following character
267  //     "hollow"
268  //
269  // Default: "bar"
270  "cursor_shape": "bar",
271  // Determines when the mouse cursor should be hidden in response to keyboard
272  // input.
273  //
274  // 1. Never hide the mouse cursor:
275  //    "never"
276  // 2. Hide only when typing:
277  //    "on_typing"
278  // 3. Hide on typing and on key bindings that resolve to an action:
279  //    "on_typing_and_action"
280  "hide_mouse": "on_typing_and_action",
281  // Whether to reduce non-essential motion in the UI, such as loading
282  // spinners and pulsating labels, by rendering them in a static state.
283  //
284  // May take 2 values:
285  // 1. Always reduce motion:
286  //    "on"
287  // 2. Never reduce motion:
288  //    "off"
289  "reduce_motion": "off",
290  // Determines whether the focused panel follows the mouse location.
291  "focus_follows_mouse": {
292    "enabled": false,
293    "debounce_ms": 250,
294  },
295  // Determines how snippets are sorted relative to other completion items.
296  //
297  // 1. Place snippets at the top of the completion list:
298  //    "top"
299  // 2. Place snippets normally without any preference:
300  //    "inline"
301  // 3. Place snippets at the bottom of the completion list:
302  //    "bottom"
303  // 4. Do not show snippets in the completion list:
304  //    "none"
305  "snippet_sort_order": "inline",
306  // How to highlight the current line in the editor.
307  //
308  // 1. Don't highlight the current line:
309  //    "none"
310  // 2. Highlight the gutter area:
311  //    "gutter"
312  // 3. Highlight the editor area:
313  //    "line"
314  // 4. Highlight the full line (default):
315  //    "all"
316  "current_line_highlight": "all",
317  // Whether to highlight all occurrences of the selected text in an editor.
318  "selection_highlight": true,
319  // Whether the text selection should have rounded corners.
320  "rounded_selection": true,
321  // The debounce delay before querying highlights from the language
322  // server based on the current cursor location.
323  "lsp_highlight_debounce": 75,
324  // The minimum APCA perceptual contrast between foreground and background colors.
325  // APCA (Accessible Perceptual Contrast Algorithm) is more accurate than WCAG 2.x,
326  // especially for dark mode. Values range from 0 to 106.
327  //
328  // Based on APCA Readability Criterion (ARC) Bronze Simple Mode:
329  // https://readtech.org/ARC/tests/bronze-simple-mode/
330  // - 0: No contrast adjustment
331  // - 45: Minimum for large fluent text (36px+)
332  // - 60: Minimum for other content text
333  // - 75: Minimum for body text
334  // - 90: Preferred for body text
335  //
336  // This only affects text drawn over highlight backgrounds in the editor.
337  "minimum_contrast_for_highlights": 45,
338  // Whether to pop the completions menu while typing in an editor without
339  // explicitly requesting it.
340  "show_completions_on_input": true,
341  // Whether to display inline and alongside documentation for items in the
342  // completions menu
343  "show_completion_documentation": true,
344  // Whether to colorize brackets in the editor.
345  // (also known as "rainbow brackets")
346  //
347  // The colors that are used for different indentation levels are defined in the theme (theme key: `accents`).
348  // They can be customized by using theme overrides.
349  "colorize_brackets": false,
350  // When to show the scrollbar in the completion menu.
351  // This setting can take four values:
352  //
353  // 1. Show the scrollbar if there's important information or
354  //    follow the system's configured behavior
355  //   "auto"
356  // 2. Match the system's configured behavior:
357  //    "system"
358  // 3. Always show the scrollbar:
359  //    "always"
360  // 4. Never show the scrollbar:
361  //    "never" (default)
362  "completion_menu_scrollbar": "never",
363  // Whether to align detail text in code completions context menus left or right.
364  "completion_detail_alignment": "left",
365  // How to display the LSP item kind (function, method, variable, etc.)
366  // of each entry in the completions menu.
367  //
368  // 1. Do not display item kinds:
369  //   "off" (default)
370  // 2. Display a single-letter badge, colorized based on the active syntax theme:
371  //   "symbol"
372  "completion_menu_item_kind": "off",
373  // How to display diffs in the editor.
374  //
375  // Default: split
376  "diff_view_style": "split",
377  // The minimum width (in em-widths) at which the split diff view is used.
378  // When the editor is narrower than this, the diff view automatically
379  // switches to unified mode and switches back when the editor is wide
380  // enough. Set to 0 to disable automatic switching.
381  //
382  // Default: 100
383  "minimum_split_diff_width": 100,
384  // Show method signatures in the editor, when inside parentheses.
385  "auto_signature_help": false,
386  // Whether to show the signature help after completion or a bracket pair inserted.
387  // If `auto_signature_help` is enabled, this setting will be treated as enabled also.
388  "show_signature_help_after_edits": false,
389  // Whether to show code action button at start of buffer line.
390  "inline_code_actions": true,
391  // Whether to allow drag and drop text selection in buffer.
392  "drag_and_drop_selection": {
393    // When true, enables drag and drop text selection in buffer.
394    "enabled": true,
395    // The delay in milliseconds that must elapse before drag and drop is allowed. Otherwise, a new text selection is created.
396    "delay": 300,
397  },
398  // Whether and how to display code lenses from language servers.
399  //
400  // Possible values:
401  //
402  // 1. Do not display code lenses.
403  //      "code_lens": "off",
404  // 2. Display code lenses from language servers above code elements.
405  //      "code_lens": "on",
406  // 3. Display code lenses in the code action menu.
407  //      "code_lens": "menu",
408  "code_lens": "off",
409  // What to do when go to definition yields no results.
410  //
411  // 1. Do nothing: `none`
412  // 2. Find references for the same symbol: `find_all_references` (default)
413  "go_to_definition_fallback": "find_all_references",
414  // How to scroll the target into view when navigating to a definition or reference
415  // (e.g. Go to Definition, Go to Type Definition, Find All References).
416  //
417  // 1. Vertically center the target in the viewport: `center` (default)
418  // 2. Scroll the minimum amount needed to make the target visible: `minimum`
419  // 3. Scroll so the target appears near the top of the viewport: `top`
420  // 4. Preserve the cursor's vertical position within the viewport, falling back to `center` when the cursor is
421  //    offscreen: `preserve`
422  "go_to_definition_scroll_strategy": "center",
423  // Where to show LSP results that can contain multiple locations
424  // (Go to Definition, Go to Implementation, Find All References). A single
425  // result always opens directly. Individual actions can override this with
426  // their `open_results_in` argument.
427  //
428  // 1. Open the results in a multibuffer: `multi_buffer` (default)
429  // 2. Open the results in a filterable picker: `picker`
430  "lsp_results_location": "multi_buffer",
431  // Which level to use to filter out diagnostics displayed in the editor.
432  //
433  // Affects the editor rendering only, and does not interrupt
434  // the functionality of diagnostics fetching and project diagnostics editor.
435  // Which files containing diagnostic errors/warnings to mark in the tabs.
436  // Diagnostics are only shown when file icons are also active.
437  // This setting only works when can take the following three values:
438  //
439  // Which diagnostic indicators to show in the scrollbar, their level should be more or equal to the specified severity level.
440  // Possible values:
441  //  - "off" — no diagnostics are allowed
442  //  - "error"
443  //  - "warning"
444  //  - "info"
445  //  - "hint"
446  //  - "all" — allow all diagnostics (default)
447  "diagnostics_max_severity": "all",
448  // Whether to show wrap guides (vertical rulers) in the editor.
449  // Setting this to true will show a guide at the 'preferred_line_length' value
450  // if 'soft_wrap' is set to 'preferred_line_length', and will show any
451  // additional guides as specified by the 'wrap_guides' setting.
452  "show_wrap_guides": true,
453  // Character counts at which to show wrap guides in the editor.
454  "wrap_guides": [],
455  // Hide the values of in variables from visual display in private files
456  "redact_private_values": false,
457  // The default number of lines to expand excerpts in the multibuffer by.
458  "expand_excerpt_lines": 5,
459  // The default number of context lines shown in multibuffer excerpts.
460  "excerpt_context_lines": 2,
461  // Globs to match against file paths to determine if a file is private.
462  "private_files": ["**/.env*", "**/*.pem", "**/*.key", "**/*.cert", "**/*.crt", "**/secrets.yml"],
463  // Whether to use additional LSP queries to format (and amend) the code after
464  // every "trigger" symbol input, defined by LSP server capabilities.
465  "use_on_type_format": true,
466  // Whether to automatically add matching closing characters when typing
467  // opening parenthesis, bracket, brace, single or double quote characters.
468  // For example, when you type '(', Omega will add a closing ) at the correct position.
469  "use_autoclose": true,
470  // Whether to automatically surround selected text when typing opening parenthesis,
471  // bracket, brace, single or double quote characters.
472  // For example, when you select text and type '(', Omega will surround the text with ().
473  "use_auto_surround": true,
474  // Controls automatic indentation behavior when typing.
475  // - "syntax_aware": Adjusts indentation based on syntax context (default)
476  // - "preserve_indent": Preserves current line's indentation on new lines
477  // - "none": No automatic indentation
478  "auto_indent": "syntax_aware",
479  // Whether indentation of pasted content should be adjusted based on the context.
480  "auto_indent_on_paste": true,
481  // Controls how the editor handles the autoclosed characters.
482  // When set to `false`(default), skipping over and auto-removing of the closing characters
483  // happen only for auto-inserted characters.
484  // Otherwise(when `true`), the closing characters are always skipped over and auto-removed
485  // no matter how they were inserted.
486  "always_treat_brackets_as_autoclosed": false,
487  // Controls where the `editor::Rewrap` action is allowed in the current language scope.
488  //
489  // This setting can take three values:
490  //
491  // 1. Only allow rewrapping in comments:
492  //    "in_comments"
493  // 2. Only allow rewrapping in the current selection(s):
494  //    "in_selections"
495  // 3. Allow rewrapping anywhere:
496  //    "anywhere"
497  //
498  // When using values other than `in_comments`, it is possible for the rewrapping to produce code
499  // that is syntactically invalid. Keep this in mind when selecting which behavior you would like
500  // to use.
501  //
502  // Note: This setting has no effect in Vim mode, as rewrap is already allowed everywhere.
503  "allow_rewrap": "in_comments",
504  // Controls whether edit predictions are shown immediately (true)
505  // or manually by triggering `editor::ShowEditPrediction` (false).
506  "show_edit_predictions": true,
507  // Controls whether edit predictions are shown in a given language scope.
508  // Example: ["string", "comment"]
509  "edit_predictions_disabled_in": [],
510  // Whether to show tabs and spaces in the editor.
511  // This setting can take four values:
512  //
513  // 1. Draw tabs and spaces only for the selected text (default):
514  //    "selection"
515  // 2. Do not draw any tabs or spaces:
516  //    "none"
517  // 3. Draw all invisible symbols:
518  //    "all"
519  // 4. Draw whitespaces at boundaries only:
520  //    "boundary"
521  // 5. Draw whitespaces only after non-whitespace characters:
522  //    "trailing"
523  // For a whitespace to be on a boundary, any of the following conditions need to be met:
524  // - It is a tab
525  // - It is adjacent to an edge (start or end)
526  // - It is adjacent to a whitespace (left or right)
527  "show_whitespaces": "selection",
528  // Visible characters used to render whitespace when show_whitespaces is enabled.
529  "whitespace_map": {
530    "space": "•",
531    "tab": "→",
532  },
533  // Settings related to calls in Omega
534  "calls": {
535    // Join calls with the microphone live by default
536    "mute_on_join": false,
537    // Share your project when you are the first to join a channel
538    "share_on_join": false,
539  },
540  // Toolbar related settings
541  "toolbar": {
542    // Whether to show breadcrumbs.
543    "breadcrumbs": true,
544    // Whether to show quick action buttons.
545    "quick_actions": true,
546    // Whether to show the Selections menu in the editor toolbar.
547    "selections_menu": true,
548    // Whether to show agent review buttons in the editor toolbar.
549    "agent_review": true,
550    // Whether to show code action buttons in the editor toolbar.
551    "code_actions": false,
552  },
553  // Whether to allow windows to tab together based on the user’s tabbing preference (macOS only).
554  "use_system_window_tabs": false,
555  // Titlebar related settings
556  "title_bar": {
557    // Whether to show git status indicators on the branch icon in the titlebar.
558    "show_branch_status_icon": false,
559    // Whether to show the branch name button in the titlebar.
560    "show_branch_name": true,
561    // Whether to show the worktree name button in the titlebar.
562    "show_worktree_name": true,
563    // Whether to show the project host and name in the titlebar.
564    "show_project_items": true,
565    // Whether to show onboarding banners in the titlebar.
566    "show_onboarding_banner": true,
567    // Whether to show user picture in the titlebar.
568    "show_user_picture": true,
569    // Whether to show the user menu in the titlebar.
570    "show_user_menu": true,
571    // Whether to show the sign in button in the titlebar.
572    "show_sign_in": true,
573    // Whether to show the menus in the titlebar.
574    "show_menus": false,
575    // The layout of window control buttons in the title bar (Linux only).
576    "button_layout": "platform_default",
577  },
578  "audio": {
579    // Select specific output audio device.
580    // `null` means use system default.
581    // Any unrecognized output device will fall back to system default.
582    "experimental.output_audio_device": null,
583    // Select specific input audio device.
584    // `null` means use system default.
585    // Any unrecognized input device will fall back to system default.
586    "experimental.input_audio_device": null,
587  },
588  // Scrollbar related settings
589  "scrollbar": {
590    // When to show the scrollbar in the editor.
591    // This setting can take four values:
592    //
593    // 1. Show the scrollbar if there's important information or
594    //    follow the system's configured behavior (default):
595    //   "auto"
596    // 2. Match the system's configured behavior:
597    //    "system"
598    // 3. Always show the scrollbar:
599    //    "always"
600    // 4. Never show the scrollbar:
601    //    "never"
602    "show": "auto",
603    // Whether to show cursor positions in the scrollbar.
604    "cursors": true,
605    // Whether to show git diff indicators in the scrollbar.
606    "git_diff": true,
607    // Whether to show buffer search results in the scrollbar.
608    "search_results": true,
609    // Whether to show selected text occurrences in the scrollbar.
610    "selected_text": true,
611    // Whether to show selected symbol occurrences in the scrollbar.
612    "selected_symbol": true,
613    // Which diagnostic indicators to show in the scrollbar:
614    //  - "none" or false: do not show diagnostics
615    //  - "error": show only errors
616    //  - "warning": show only errors and warnings
617    //  - "information": show only errors, warnings, and information
618    //  - "all" or true: show all diagnostics
619    "diagnostics": "all",
620    // Forcefully enable or disable the scrollbar for each axis
621    "axes": {
622      // When false, forcefully disables the horizontal scrollbar. Otherwise, obey other settings.
623      "horizontal": true,
624      // When false, forcefully disables the vertical scrollbar. Otherwise, obey other settings.
625      "vertical": true,
626    },
627  },
628  // Minimap related settings
629  "minimap": {
630    // When to show the minimap in the editor.
631    // This setting can take three values:
632    // 1. Show the minimap if the editor's scrollbar is visible:
633    //    "auto"
634    // 2. Always show the minimap:
635    //    "always"
636    // 3. Never show the minimap:
637    //    "never" (default)
638    "show": "never",
639    // Where to show the minimap in the editor.
640    // This setting can take two values:
641    // 1. Show the minimap on the focused editor only:
642    //    "active_editor" (default)
643    // 2. Show the minimap on all open editors:
644    //    "all_editors"
645    "display_in": "active_editor",
646    // When to show the minimap thumb.
647    // This setting can take two values:
648    // 1. Show the minimap thumb if the mouse is over the minimap:
649    //    "hover"
650    // 2. Always show the minimap thumb:
651    //    "always" (default)
652    "thumb": "always",
653    // How the minimap thumb border should look.
654    // This setting can take five values:
655    // 1. Display a border on all sides of the thumb:
656    //    "thumb_border": "full"
657    // 2. Display a border on all sides except the left side of the thumb:
658    //    "thumb_border": "left_open" (default)
659    // 3. Display a border on all sides except the right side of the thumb:
660    //    "thumb_border": "right_open"
661    // 4. Display a border only on the left side of the thumb:
662    //    "thumb_border": "left_only"
663    // 5. Display the thumb without any border:
664    //    "thumb_border": "none"
665    "thumb_border": "left_open",
666    // How to highlight the current line in the minimap.
667    // This setting can take the following values:
668    //
669    // 1. `null` to inherit the editor `current_line_highlight` setting (default)
670    // 2. "line" or "all" to highlight the current line in the minimap.
671    // 3. "gutter" or "none" to not highlight the current line in the minimap.
672    "current_line_highlight": null,
673    // Maximum number of columns to display in the minimap.
674    "max_width_columns": 80,
675  },
676  // Enable middle-click paste on Linux.
677  "middle_click_paste": true,
678  // What to do when multibuffer is double clicked in some of its excerpts
679  // (parts of singleton buffers).
680  // May take 2 values:
681  //  1. Behave as a regular buffer and select the whole word (default).
682  //         "double_click_in_multibuffer": "select"
683  //  2. Open the excerpt clicked as a new buffer in the new tab.
684  //         "double_click_in_multibuffer": "open",
685  // For the case of "open", regular selection behavior can be achieved by holding `alt` when double clicking.
686  "double_click_in_multibuffer": "select",
687  "gutter": {
688    // Whether to show line numbers in the gutter.
689    "line_numbers": true,
690    // Whether to show runnables buttons in the gutter.
691    "runnables": true,
692    // Whether to show bookmarks in the gutter.
693    "bookmarks": true,
694    // Whether to show breakpoints in the gutter.
695    "breakpoints": true,
696    // Whether to show fold buttons in the gutter.
697    "folds": true,
698    // Minimum number of characters to reserve space for in the gutter.
699    "min_line_number_digits": 4,
700  },
701  "indent_guides": {
702    // Whether to show indent guides in the editor.
703    "enabled": true,
704    // The width of the indent guides in pixels, between 1 and 10.
705    "line_width": 1,
706    // The width of the active indent guide in pixels, between 1 and 10.
707    "active_line_width": 1,
708    // Determines how indent guides are colored.
709    // This setting can take the following three values:
710    //
711    // 1. "disabled"
712    // 2. "fixed"
713    // 3. "indent_aware"
714    "coloring": "fixed",
715    // Determines how indent guide backgrounds are colored.
716    // This setting can take the following two values:
717    //
718    // 1. "disabled"
719    // 2. "indent_aware"
720    "background_coloring": "disabled",
721  },
722  // Whether the editor will scroll beyond the last line.
723  "scroll_beyond_last_line": "one_page",
724  // The number of lines to keep above/below the cursor when scrolling with the keyboard
725  "vertical_scroll_margin": 3,
726  // Whether to scroll when clicking near the edge of the visible text area.
727  "autoscroll_on_clicks": false,
728  // The number of characters to keep on either side when scrolling with the mouse
729  "horizontal_scroll_margin": 5,
730  // Scroll sensitivity multiplier. This multiplier is applied
731  // to both the horizontal and vertical delta values while scrolling.
732  "scroll_sensitivity": 1.0,
733  // Whether to zoom the editor font size with the mouse wheel
734  // while holding the primary modifier key (Cmd on macOS, Ctrl on other platforms).
735  "mouse_wheel_zoom": false,
736  // Scroll sensitivity multiplier for fast scrolling. This multiplier is applied
737  // to both the horizontal and vertical delta values while scrolling. Fast scrolling
738  // happens when a user holds the alt or option key while scrolling.
739  "fast_scroll_sensitivity": 4.0,
740  "sticky_scroll": {
741    // Whether to stick scopes to the top of the editor.
742    "enabled": false,
743  },
744  "relative_line_numbers": "disabled",
745  // If 'search_wrap' is disabled, search result do not wrap around the end of the file.
746  "search_wrap": true,
747  // Search options to enable by default when opening new project and buffer searches.
748  "search": {
749    // Whether to show the project search button in the status bar.
750    "button": true,
751    // Whether to only match on whole words.
752    "whole_word": false,
753    // Whether to match case sensitively.
754    "case_sensitive": false,
755    // Whether to include gitignored files in search results.
756    "include_ignored": false,
757    // Whether to interpret the search query as a regular expression.
758    "regex": false,
759    // Whether to center the cursor on each search match when navigating.
760    "center_on_match": false,
761  },
762  // When to populate a new search's query based on the text under the cursor.
763  // This setting can take the following three values:
764  //
765  // 1. Always populate the search query with the word under the cursor (default).
766  //    "always"
767  // 2. Only populate the search query when there is text selected
768  //    "selection"
769  // 3. Never populate the search query
770  //    "never"
771  "seed_search_query_from_cursor": "always",
772  // When enabled, automatically adjusts search case sensitivity based on your query.
773  // If your search query contains any uppercase letters, the search becomes case-sensitive;
774  // if it contains only lowercase letters, the search becomes case-insensitive.
775  "use_smartcase_search": false,
776  // Inlay hint related settings
777  "inlay_hints": {
778    // Global switch to toggle hints on and off, switched off by default.
779    "enabled": false,
780    // Toggle certain types of hints on and off, all switched on by default.
781    "show_type_hints": true,
782    "show_parameter_hints": true,
783    "show_value_hints": true,
784    // Corresponds to null/None LSP hint type value.
785    "show_other_hints": true,
786    // Whether to show a background for inlay hints.
787    //
788    // If set to `true`, the background will use the `hint.background` color from the current theme.
789    "show_background": false,
790    // Time to wait after editing the buffer, before requesting the hints,
791    // set to 0 to disable debouncing.
792    "edit_debounce_ms": 700,
793    // Time to wait after scrolling the buffer, before requesting the hints,
794    // set to 0 to disable debouncing.
795    "scroll_debounce_ms": 50,
796    // A set of modifiers which, when pressed, will toggle the visibility of inlay hints.
797    // If the set if empty or not all the modifiers specified are pressed, inlay hints will not be toggled.
798    "toggle_on_modifiers_press": {
799      "control": false,
800      "shift": false,
801      "alt": false,
802      "platform": false,
803      "function": false,
804    },
805  },
806  // Whether to resize all the panels in a dock when resizing the dock.
807  // Can be a combination of "left", "right" and "bottom".
808  "resize_all_panels_in_dock": ["left"],
809  "project_panel": {
810    // Whether to show the project panel button in the status bar
811    "button": true,
812    // Whether to hide the gitignore entries in the project panel.
813    "hide_gitignore": false,
814    // Default width of the project panel.
815    "default_width": 240,
816    // Where to dock the project panel. Can be 'left' or 'right'.
817    "dock": "right",
818    // Spacing between worktree entries in the project panel. Can be 'comfortable' or 'standard'.
819    "entry_spacing": "comfortable",
820    // Whether to show file icons in the project panel.
821    "file_icons": true,
822    // Whether to show folder icons or chevrons for directories in the project panel.
823    "folder_icons": true,
824    // Whether to show the git status in the project panel.
825    "git_status": true,
826    // Amount of indentation for nested items.
827    "indent_size": 20,
828    // Whether to reveal it in the project panel automatically,
829    // when a corresponding project entry becomes active.
830    // Gitignored entries are never auto revealed.
831    "auto_reveal_entries": true,
832    // Whether the project panel should open on startup.
833    "starts_open": true,
834    // Whether to fold directories automatically and show compact folders
835    // (e.g. "a/b/c" ) when a directory has only one subdirectory inside.
836    "auto_fold_dirs": true,
837    // Whether to show folder names with bold text in the project panel.
838    "bold_folder_labels": false,
839    // Scrollbar-related settings
840    "scrollbar": {
841      // When to show the scrollbar in the project panel.
842      // This setting can take five values:
843      //
844      // 1. null (default): Inherit editor settings
845      // 2. Show the scrollbar if there's important information or
846      //    follow the system's configured behavior (default):
847      //   "auto"
848      // 3. Match the system's configured behavior:
849      //    "system"
850      // 4. Always show the scrollbar:
851      //    "always"
852      // 5. Never show the scrollbar:
853      //    "never"
854      "show": null,
855      // Whether to allow horizontal scrolling in the project panel.
856      // When false, the view is locked to the leftmost position and long file names are clipped.
857      "horizontal_scroll": true,
858    },
859    // Which files containing diagnostic errors/warnings to mark in the project panel.
860    // This setting can take the following three values:
861    //
862    // 1. Do not mark any files:
863    //    "off"
864    // 2. Only mark files with errors:
865    //    "errors"
866    // 3. Mark files with errors and warnings:
867    //    "all"
868    "show_diagnostics": "all",
869    // Whether to stick parent directories at top of the project panel.
870    "sticky_scroll": true,
871    // Settings related to indent guides in the project panel.
872    "indent_guides": {
873      // When to show indent guides in the project panel.
874      // This setting can take two values:
875      //
876      // 1. Always show indent guides:
877      //    "always"
878      // 2. Never show indent guides:
879      //    "never"
880      "show": "always",
881    },
882    // Sort order for entries in the project panel.
883    // This setting can take three values:
884    //
885    // 1. Show directories first, then files:
886    //    "directories_first"
887    // 2. Mix directories and files together:
888    //    "mixed"
889    // 3. Show files first, then directories:
890    //    "files_first"
891    "sort_mode": "directories_first",
892    // Whether to sort file and folder names case-sensitively in the project panel.
893    // This setting can take four values:
894    //
895    // 1. Case-insensitive natural sort with lowercase preferred in ties (default):
896    //    "default"
897    // 2. Uppercase names are grouped before lowercase names,
898    //    with case-insensitive natural sort within each group:
899    //    "upper"
900    // 3. Lowercase names are grouped before uppercase names,
901    //    with case-insensitive natural sort within each group:
902    //    "lower"
903    // 4. Pure Unicode codepoint comparison.
904    //    No case folding, no natural number sorting:
905    //    "unicode"
906    "sort_order": "default",
907    // Whether to show error and warning count badges next to file names in the project panel.
908    "diagnostic_badges": false,
909    // Whether to show the git status indicator next to file names in the project panel.
910    "git_status_indicator": false,
911    // Whether to enable drag-and-drop operations in the project panel.
912    "drag_and_drop": true,
913    // Whether to hide the root entry when only one folder is open in the window;
914    // this also affects how file paths appear in the file finder history.
915    "hide_root": false,
916    // Whether to hide the hidden entries in the project panel.
917    "hide_hidden": false,
918    // Settings for automatically opening files.
919    "auto_open": {
920      // Whether to automatically open newly created files in the editor.
921      "on_create": true,
922      // Whether to automatically open files after pasting or duplicating them.
923      "on_paste": true,
924      // Whether to automatically open files dropped from external sources.
925      "on_drop": true,
926    },
927  },
928  "outline_panel": {
929    // Whether to show the outline panel button in the status bar
930    "button": true,
931    // Default width of the outline panel.
932    "default_width": 300,
933    // Where to dock the outline panel. Can be 'left' or 'right'.
934    "dock": "right",
935    // Whether to show file icons in the outline panel.
936    "file_icons": true,
937    // Whether to show folder icons or chevrons for directories in the outline panel.
938    "folder_icons": true,
939    // Whether to show the git status in the outline panel.
940    "git_status": true,
941    // Amount of indentation for nested items.
942    "indent_size": 20,
943    // Whether to reveal it in the outline panel automatically,
944    // when a corresponding outline entry becomes active.
945    // Gitignored entries are never auto revealed.
946    "auto_reveal_entries": true,
947    // Whether to fold directories automatically
948    // when a directory has only one directory inside.
949    "auto_fold_dirs": true,
950    // Settings related to indent guides in the outline panel.
951    "indent_guides": {
952      // When to show indent guides in the outline panel.
953      // This setting can take two values:
954      //
955      // 1. Always show indent guides:
956      //    "always"
957      // 2. Never show indent guides:
958      //    "never"
959      "show": "always",
960    },
961    // Scrollbar-related settings
962    "scrollbar": {
963      // When to show the scrollbar in the project panel.
964      // This setting can take five values:
965      //
966      // 1. null (default): Inherit editor settings
967      // 2. Show the scrollbar if there's important information or
968      //    follow the system's configured behavior (default):
969      //   "auto"
970      // 3. Match the system's configured behavior:
971      //    "system"
972      // 4. Always show the scrollbar:
973      //    "always"
974      // 5. Never show the scrollbar:
975      //    "never"
976      "show": null,
977    },
978    // Default depth to expand outline items in the current file.
979    // Set to 0 to collapse all items that have children, 1 or higher to collapse items at that depth or deeper.
980    "expand_outlines_with_depth": 100,
981  },
982  "collaboration_panel": {
983    // Whether to show the collaboration panel button in the status bar.
984    "button": true,
985    // Where to dock the collaboration panel. Can be 'left' or 'right'.
986    "dock": "right",
987    // Default width of the collaboration panel.
988    "default_width": 240,
989  },
990  "git_panel": {
991    // Whether to show the git panel button in the status bar.
992    "button": true,
993    // Where to dock the git panel. Can be 'left' or 'right'.
994    "dock": "right",
995    // Default width of the git panel.
996    "default_width": 360,
997    // Style of the git status indicator in the panel.
998    //
999    // Choices: label_color, icon
1000    // Default: icon
1001    "status_style": "icon",
1002    // Whether to show file icons in the git panel.
1003    //
1004    // Default: false
1005    "file_icons": false,
1006    // Whether to show folder icons or chevrons for directories in the git panel.
1007    //
1008    // Default: true
1009    "folder_icons": true,
1010    // What branch name to use if `init.defaultBranch` is not set
1011    //
1012    // Default: main
1013    "fallback_branch_name": "main",
1014    // How to sort entries in the git panel.
1015    //
1016    // Default: path
1017    "sort_by": "path",
1018    // How to group entries in the git panel.
1019    //
1020    // Default: status
1021    "group_by": "status",
1022    // Whether to collapse untracked files in the diff panel.
1023    //
1024    // Default: false
1025    "collapse_untracked_diff": false,
1026    /// Whether to show entries with tree or flat view in the panel
1027    ///
1028    /// Default: false
1029    "tree_view": false,
1030    // Whether the git panel should open on startup.
1031    //
1032    // Default: false
1033    "starts_open": false,
1034    // Whether to show a badge on the git panel icon with the count of uncommitted changes.
1035    //
1036    // Default: false
1037    "show_count_badge": false,
1038    "scrollbar": {
1039      // When to show the scrollbar in the git panel.
1040      //
1041      // Choices: always, auto, never, system
1042      // Default: inherits editor scrollbar settings
1043      // "show": null
1044    },
1045    // Whether to show the addition/deletion change count next to each file in the Git panel.
1046    //
1047    // Default: true
1048    "diff_stats": true,
1049    // Maximum length of the commit message title before a warning is shown.
1050    // Set to 0 to disable.
1051    //
1052    // Default: 0
1053    "commit_title_max_length": 0,
1054    // Default action when clicking a changed file in the Git panel.
1055    //
1056    // Choices: project_diff, file_diff, view_file
1057    // Default: project_diff
1058    "entry_primary_click_action": "project_diff",
1059  },
1060  "agent": {
1061    // Whether the inline assistant should use streaming tools, when available
1062    "inline_assistant_use_streaming_tools": true,
1063    // Whether to include project rules files (AGENTS.md, CLAUDE.md, .rules, etc.)
1064    // in the prompt when generating git commit messages.
1065    "commit_message_include_project_rules": true,
1066    // Whether the agent is enabled.
1067    //
1068    // Omega ships this on. It was turned off by the Zed service-isolation
1069    // sweep, which was correct for the hosted-model path and wrong for the
1070    // agent as a whole: the agent runtime, its tools, and every local
1071    // provider are Omega's own. See OMEGA-DELTA-0013.
1072    "enabled": true,
1073    // Whether to show the agent panel button in the status bar.
1074    "button": true,
1075    // Where to dock the agent panel. Can be 'left', 'right' or 'bottom'.
1076    "dock": "left",
1077    // Whether the agent panel should use flexible (proportional) sizing.
1078    //
1079    // Default: true
1080    "flexible": true,
1081    // Where to position the threads sidebar. Can be 'left' or 'right'.
1082    "sidebar_side": "left",
1083    // Default width when the agent panel is docked to the left or right.
1084    "default_width": 640,
1085    // Default height when the agent panel is docked to the bottom.
1086    "default_height": 320,
1087    // Whether to limit the content width in the agent panel. When enabled,
1088    // content will be constrained to `max_content_width` and centered when
1089    // the panel is wider, for optimal readability.
1090    "limit_content_width": true,
1091    // Maximum content width in pixels when limit_content_width is enabled.
1092    // Content will be centered within the panel.
1093    "max_content_width": 850,
1094    // The default model to use when creating new threads.
1095    "default_model": {
1096      // Owner direction 2026-07-25. Google is a direct provider and reaches no
1097      // Zed host, so this does not weaken the service isolation the ollama
1098      // default was protecting. It needs a Gemini API key, entered once in the
1099      // agent panel, rather than a local model server.
1100      "provider": "google",
1101      "model": "gemini-3.6-flash",
1102      "enable_thinking": false,
1103    },
1104    // Additional parameters for language model requests. When making a request to a model, parameters will be taken
1105    // from the last entry in this list that matches the model's provider and name. In each entry, both provider
1106    // and model are optional, so that you can specify parameters for either one.
1107    "model_parameters": [
1108      // To set parameters for all requests to OpenAI models:
1109      // {
1110      //   "provider": "openai",
1111      //   "temperature": 0.5
1112      // }
1113      //
1114      // To set parameters for all requests in general:
1115      // {
1116      //   "temperature": 0
1117      // }
1118      //
1119      // To set parameters for a specific provider and model:
1120      // {
1121      //   "provider": "zed.dev",
1122      //   "model": "claude-sonnet-4",
1123      //   "temperature": 1.0
1124      // }
1125    ],
1126    // Permission rules for tool actions.
1127    //
1128    // The "default" setting applies when no tool-specific rules match.
1129    // For external agents that define their own permission modes,
1130    // "deny" and "confirm" still take precedence — the external agent's
1131    // permission system is only used when Omega would allow the action.
1132    //
1133    // Per-tool regex patterns ("tools" below) match against tool input text
1134    // (commands, paths, URLs, etc.). For `copy_path` and `move_path`,
1135    // patterns are matched independently against each path (source and
1136    // destination).
1137    "tool_permissions": {
1138      // Global default permission when no tool-specific rules match.
1139      // "allow" - Auto-approve without prompting
1140      // "deny" - Auto-reject
1141      // "confirm" - Always prompt
1142      //
1143      // Omega defaults to "allow". Upstream Zed defaults to "confirm".
1144      // Omega's purpose is unattended agent work, and a confirm-by-default
1145      // policy is not a safety feature there: with nobody watching, a prompt
1146      // is a hang. See OMEGA-DELTA-0002.
1147      //
1148      // The "always_confirm" and "always_deny" patterns below still work and
1149      // are the supported way to draw a line around specific operations.
1150      // Omega ships none by default because the owner asked for none.
1151      "default": "allow",
1152      // Per-tool permission rules. Regex patterns match against tool input text.
1153      // The per-tool "default" also applies to MCP tools.
1154      // Each tool can have its own default and regex patterns.
1155      "tools": {
1156        // "terminal": {
1157        //   "default": "confirm",
1158        //   "always_confirm": [
1159        //     // Destructive git operations
1160        //     { "pattern": "git\\s+(reset|clean)\\s+--hard" },
1161        //     { "pattern": "git\\s+push\\s+(-f|--force)" },
1162        //   ],
1163        // },
1164        // "edit_file": {
1165        //   "default": "confirm",
1166        //   "always_deny": [
1167        //     // Secrets and credentials
1168        //     { "pattern": "\\.env($|\\.)" },
1169        //     { "pattern": "secrets?/" },
1170        //     { "pattern": "\\.pem$" },
1171        //     { "pattern": "\\.key$" },
1172        //   ],
1173        // },
1174      },
1175    },
1176    // When enabled, agent edits will be displayed in single-file editors for review
1177    "single_file_review": false,
1178    // Settings for automatic agent context compaction, which summarizes earlier
1179    // messages to free up room in the model's context window once it grows too
1180    // large.
1181    "auto_compact": {
1182      // Whether to automatically compact the agent's context near the limit.
1183      "enabled": true,
1184      // The threshold at which auto-compaction runs. One of:
1185      //   - A percentage string ending in "%" (e.g. "90%"), measured against
1186      //     the model's context window. Decimals are allowed (e.g. "95.5%").
1187      //   - A positive integer: compact after that many tokens have been used
1188      //     (e.g. 100000 compacts after 100,000 tokens are used).
1189      //   - A negative integer: compact once that many tokens remain in the
1190      //     context window (e.g. -20000 compacts once fewer than 20,000 remain).
1191      // 0 is not a valid threshold.
1192      "threshold": "90%",
1193    },
1194    // When enabled, show voting thumbs for feedback on agent edits.
1195    "enable_feedback": true,
1196    "default_profile": "write",
1197    "profiles": {
1198      "write": {
1199        "name": "Write",
1200        "enable_all_context_servers": true,
1201        "tools": {
1202          "copy_path": true,
1203          "create_directory": true,
1204          "create_thread": true,
1205          "delete_path": true,
1206          "diagnostics": true,
1207          "apply_code_action": true,
1208          "edit_file": true,
1209          "write_file": true,
1210          "fetch": true,
1211          "find_path": true,
1212          "find_references": true,
1213          "get_code_actions": true,
1214          "go_to_definition": true,
1215          "list_agents_and_models": true,
1216          "list_directory": true,
1217          "move_path": true,
1218          "rename_symbol": true,
1219          "read_file": true,
1220          "grep": true,
1221          "skill": true,
1222          "spawn_agent": true,
1223          "terminal": true,
1224          "search_web": true,
1225        },
1226      },
1227      "ask": {
1228        "name": "Ask",
1229        // We don't know which of the context server tools are safe for the "Ask" profile, so we don't enable them by default.
1230        // "enable_all_context_servers": true,
1231        "tools": {
1232          "create_thread": true,
1233          "diagnostics": true,
1234          "fetch": true,
1235          "list_agents_and_models": true,
1236          "list_directory": true,
1237          "find_path": true,
1238          "find_references": true,
1239          "get_code_actions": true,
1240          "go_to_definition": true,
1241          "read_file": true,
1242          "grep": true,
1243          "skill": true,
1244          "spawn_agent": true,
1245          "search_web": true,
1246        },
1247      },
1248      "minimal": {
1249        "name": "Minimal",
1250        "enable_all_context_servers": false,
1251        "tools": {},
1252      },
1253    },
1254    // Where to show notifications when the agent has either completed
1255    // its response, or else needs confirmation before it can run a
1256    // tool action.
1257    // "primary_screen" - Show the notification only on your primary screen (default)
1258    // "all_screens" - Show these notifications on all screens
1259    // "never" - Never show these notifications
1260    "notify_when_agent_waiting": "primary_screen",
1261    // When to play a sound when the agent has either completed
1262    // its response, or needs user input.
1263    // "never" - Never play the sound
1264    // "when_hidden" - Only play the sound when the agent panel is not visible
1265    // "always" - Always play the sound
1266    //
1267    // Default: never
1268    "play_sound_when_agent_done": "never",
1269    // Whether to have edit cards in the agent panel expanded, showing a preview of the full diff.
1270    //
1271    // Default: true
1272    "expand_edit_card": true,
1273    // Whether to have terminal cards in the agent panel expanded, showing the whole command output.
1274    //
1275    // Default: true
1276    "expand_terminal_card": true,
1277    // Command to automatically run when Omega creates a Terminal Thread shell in the agent panel.
1278    // The command is sent to the shell as if typed, so it is interpreted by your
1279    // configured shell (including on Windows and remote/WSL projects).
1280    // Set to "" to disable.
1281    //
1282    // Example: "terminal_init_command": "claude"
1283    "terminal_init_command": "",
1284    // How thinking blocks should be displayed by default in the agent panel.
1285    //
1286    // Default: auto
1287    "thinking_display": "auto",
1288    // Whether clicking the stop button on a running terminal tool should also cancel the agent's generation.
1289    // Note that this only applies to the stop button, not to ctrl+c inside the terminal.
1290    //
1291    // Default: true
1292    "cancel_generation_on_terminal_stop": true,
1293    // Whether to always use cmd-enter (or ctrl-enter on Linux or Windows) to send messages in the agent panel.
1294    //
1295    // Default: false
1296    "use_modifier_to_send": false,
1297    // Minimum number of lines to display in the agent message editor.
1298    //
1299    // Default: 4
1300    "message_editor_min_lines": 4,
1301    // Whether to show turn statistics (elapsed time during generation, final turn duration).
1302    //
1303    // Default: false
1304    "show_turn_stats": false,
1305    // Whether to show the merge conflict indicator in the status bar
1306    // that offers to resolve conflicts using the agent.
1307    //
1308    // Default: true
1309    "show_merge_conflict_indicator": true,
1310  },
1311  // Whether the screen sharing icon is shown in the os status bar.
1312  "show_call_status_icon": true,
1313  // Whether to use language servers to provide code intelligence.
1314  "enable_language_server": true,
1315  // Whether to perform linked edits of associated ranges, if the language server supports it.
1316  // For example, when editing opening <html> tag, the contents of the closing </html> tag will be edited as well.
1317  "linked_edits": true,
1318  // The list of language servers to use (or disable) for all languages.
1319  //
1320  // This is typically customized on a per-language basis.
1321  "language_servers": ["..."],
1322  // Controls how semantic tokens from language servers are used for syntax highlighting.
1323  //
1324  // Options:
1325  // - "off": Do not request semantic tokens from language servers.
1326  // - "combined": Use LSP semantic tokens together with tree-sitter highlighting as base.
1327  // - "full": Use LSP semantic tokens exclusively to highlight the text, tree-sitter syntax highlighting is off.
1328  //
1329  // May require language server restart to properly apply.
1330  "semantic_tokens": "off",
1331
1332  // Controls whether folding ranges from language servers are used instead of
1333  // tree-sitter and indent-based folding.
1334  //
1335  // Options:
1336  // - "off": Use tree-sitter and indent-based folding (default).
1337  // - "on": Use LSP folding wherever possible, falling back to tree-sitter and indent-based folding when no results were returned by the server.
1338  "document_folding_ranges": "off",
1339
1340  // Controls the source of document symbols used for outlines and breadcrumbs.
1341  //
1342  // Options:
1343  // - "off": Use tree-sitter queries to compute document symbols (default).
1344  // - "on": Use the language server's `textDocument/documentSymbol` LSP response. When enabled, tree-sitter is not used for document symbols.
1345  "document_symbols": "off",
1346
1347  // When to automatically save edited buffers. This setting can
1348  // take four values.
1349  //
1350  // 1. Never automatically save:
1351  //     "autosave": "off",
1352  // 2. Save when changing focus away from the Omega window:
1353  //     "autosave": "on_window_change",
1354  // 3. Save when changing focus away from a specific buffer:
1355  //     "autosave": "on_focus_change",
1356  // 4. Save when idle for a certain amount of time:
1357  //     "autosave": { "after_delay": {"milliseconds": 500} },
1358  "autosave": "off",
1359  // Maximum number of tabs per pane. Unset for unlimited.
1360  "max_tabs": null,
1361  // Settings related to the editor's tab bar.
1362  "tab_bar": {
1363    // Whether or not to show the tab bar in the editor
1364    "show": true,
1365    // Whether or not to show the navigation history buttons.
1366    "show_nav_history_buttons": true,
1367    // Whether or not to show the tab bar buttons.
1368    "show_tab_bar_buttons": true,
1369    // Whether or not to show pinned tabs in a separate row.
1370    // When enabled, pinned tabs appear in a top row and unpinned tabs in a bottom row.
1371    // When disabled, all tabs appear in a single row (default behavior).
1372    "show_pinned_tabs_in_separate_row": false,
1373  },
1374  // Settings related to the editor's tabs
1375  "tabs": {
1376    // Show git status colors in the editor tabs.
1377    "git_status": false,
1378    // Position of the close button on the editor tabs.
1379    // One of: ["right", "left"]
1380    "close_position": "right",
1381    // Whether to show the file icon for a tab.
1382    "file_icons": false,
1383    // Controls the appearance behavior of the tab's close button.
1384    //
1385    // 1. Show it just upon hovering the tab. (default)
1386    //     "hover"
1387    // 2. Show it persistently.
1388    //     "always"
1389    // 3. Never show it, even if hovering it.
1390    //     "hidden"
1391    "show_close_button": "hover",
1392    // What to do after closing the current tab.
1393    //
1394    // 1. Activate the tab that was open previously (default)
1395    //     "history"
1396    // 2. Activate the right neighbour tab if present
1397    //     "neighbour"
1398    // 3. Activate the left neighbour tab if present
1399    //     "left_neighbour"
1400    "activate_on_close": "history",
1401    // Which files containing diagnostic errors/warnings to mark in the tabs.
1402    // Diagnostics are only shown when file icons are also active.
1403    // This setting only works when can take the following three values:
1404    //
1405    // 1. Do not mark any files:
1406    //    "off"
1407    // 2. Only mark files with errors:
1408    //    "errors"
1409    // 3. Mark files with errors and warnings:
1410    //    "all"
1411    "show_diagnostics": "off",
1412  },
1413  // Settings related to preview tabs.
1414  "preview_tabs": {
1415    // Whether preview tabs should be enabled.
1416    // Preview tabs allow you to open files in preview mode, where they close automatically
1417    // when you open another preview tab.
1418    // This is useful for quickly viewing files without cluttering your workspace.
1419    "enabled": true,
1420    // Whether to open tabs in preview mode when opened from the project panel with a single click.
1421    "enable_preview_from_project_panel": true,
1422    // Whether to open tabs in preview mode when selected from the file finder.
1423    "enable_preview_from_file_finder": false,
1424    // Whether to open tabs in preview mode when opened from a multibuffer.
1425    "enable_preview_from_multibuffer": true,
1426    // Whether to open tabs in preview mode when code navigation is used to open a multibuffer.
1427    "enable_preview_multibuffer_from_code_navigation": false,
1428    // Whether to open tabs in preview mode when code navigation is used to open a single file.
1429    "enable_preview_file_from_code_navigation": true,
1430    // Whether to keep tabs in preview mode when code navigation is used to navigate away from them.
1431    // If `enable_preview_file_from_code_navigation` or `enable_preview_multibuffer_from_code_navigation` is also true, the new tab may replace the existing one.
1432    "enable_keep_preview_on_code_navigation": false,
1433  },
1434  // Settings related to the file finder.
1435  "file_finder": {
1436    // Whether to show file icons in the file finder.
1437    "file_icons": true,
1438    // Determines how much space the file finder can take up in relation to the available window width.
1439    // There are 5 possible width values:
1440    //
1441    // 1. Small: This value is essentially a fixed width.
1442    //    "modal_max_width": "small"
1443    // 2. Medium:
1444    //    "modal_max_width": "medium"
1445    // 3. Large:
1446    //    "modal_max_width": "large"
1447    // 4. Extra Large:
1448    //    "modal_max_width": "xlarge"
1449    // 5. Fullscreen: This value removes any horizontal padding, as it consumes the whole viewport width.
1450    //    "modal_max_width": "full"
1451    //
1452    // Default: small
1453    "modal_max_width": "small",
1454    // Determines whether the file finder should skip focus for the active file in search results.
1455    // There are 2 possible values:
1456    //
1457    // 1. true: When searching for files, if the currently active file appears as the first result,
1458    //    auto-focus will skip it and focus the second result instead.
1459    //    "skip_focus_for_active_in_search": true
1460    //
1461    // 2. false: When searching for files, the first result will always receive focus,
1462    //    even if it's the currently active file.
1463    //    "skip_focus_for_active_in_search": false
1464    //
1465    // Default: true
1466    "skip_focus_for_active_in_search": true,
1467    // Whether to use gitignored files when searching.
1468    // Only the file Omega had indexed will be used, not necessary all the gitignored files.
1469    //
1470    // Can accept 3 values:
1471    //   * "all": Use all gitignored files
1472    //   * "indexed": Use only the files Omega had indexed
1473    //   * "smart": Be smart and search for ignored when called from a gitignored worktree
1474    "include_ignored": "smart",
1475    // Whether to include text channels in file finder results.
1476    "include_channels": false,
1477  },
1478  // Whether or not to remove any trailing whitespace from lines of a buffer
1479  // before saving it.
1480  "remove_trailing_whitespace_on_save": true,
1481  // Whether to start a new line with a comment when a previous line is a comment as well.
1482  "extend_comment_on_newline": true,
1483  // Whether to continue markdown lists when pressing enter.
1484  "extend_list_on_newline": true,
1485  // Whether to indent list items when pressing tab after a list marker.
1486  "indent_list_on_tab": true,
1487  // Removes any lines containing only whitespace at the end of the file and
1488  // ensures just one newline at the end.
1489  "ensure_final_newline_on_save": true,
1490  // How line endings should be handled for new files and during format and save.
1491  // This setting can take five values:
1492  //
1493  // 1. Detect existing line endings and otherwise use the platform default
1494  //    (`lf` on Unix, `crlf` on Windows):
1495  //    "line_ending": "detect"
1496  // 2. Prefer LF (`\n`) for new files and files with no existing line ending:
1497  //    "line_ending": "prefer_lf"
1498  // 3. Prefer CRLF (`\r\n`) for new files and files with no existing line ending:
1499  //    "line_ending": "prefer_crlf"
1500  // 4. Enforce LF (`\n`) during format and save:
1501  //    "line_ending": "enforce_lf"
1502  // 5. Enforce CRLF (`\r\n`) during format and save:
1503  //    "line_ending": "enforce_crlf"
1504  //
1505  // The EditorConfig `end_of_line` property overrides this setting and behaves
1506  // like `enforce_lf` or `enforce_crlf`.
1507  "line_ending": "detect",
1508  // Whether or not to perform a buffer format before saving:
1509  //   "on" — format the whole buffer
1510  //   "off" — do not format
1511  //   "modifications" — format only lines with unstaged changes; skips formatting
1512  //     when no git diff is available or the language server lacks range formatting
1513  //   "modifications_if_available" — same, but falls back to formatting the whole
1514  //     buffer when range formatting cannot be used
1515  // Keep in mind, if the autosave with delay is enabled, format_on_save will be ignored
1516  "format_on_save": "off",
1517  // How to perform a buffer format. This setting can take multiple values:
1518  //
1519  // 1. Default. Format files using Omega's Prettier integration (if applicable),
1520  //    or falling back to formatting via language server:
1521  //     "formatter": "auto"
1522  // 2. Format code using the current language server:
1523  //     "formatter": "language_server"
1524  // 3. Format code using a specific language server:
1525  //     "formatter": {"language_server": {"name": "ruff"}}
1526  // 4. Format code using an external command:
1527  //     "formatter": {
1528  //       "external": {
1529  //         "command": "prettier",
1530  //         "arguments": ["--stdin-filepath", "{buffer_path}"]
1531  //       }
1532  //     }
1533  // 5. Format code using Omega's Prettier integration:
1534  //     "formatter": "prettier"
1535  // 6. Format code using a code action
1536  //     "formatter": {"code_action": "source.fixAll.eslint"}
1537  // 7. An array of any format step specified above to apply in order
1538  //     "formatter": [{"code_action": "source.fixAll.eslint"}, "prettier"]
1539  "formatter": "auto",
1540  // How to soft-wrap long lines of text.
1541  // Possible values:
1542  //
1543  // 1. Prefer a single line generally, unless an overly long line is encountered.
1544  //      "soft_wrap": "none",
1545  //      "soft_wrap": "prefer_line", // (deprecated, same as "none")
1546  // 2. Soft wrap lines that overflow the editor.
1547  //      "soft_wrap": "editor_width",
1548  // 3. Soft wrap lines at the preferred line length or the editor width (whichever is smaller).
1549  //      "soft_wrap": "bounded",
1550  "soft_wrap": "none",
1551  // The column at which to soft-wrap lines, for buffers where soft-wrap
1552  // is enabled.
1553  "preferred_line_length": 80,
1554  // Whether to indent lines using tab characters, as opposed to multiple
1555  // spaces.
1556  "hard_tabs": false,
1557  // How many columns a tab should occupy.
1558  "tab_size": 4,
1559  // Number of lines to search for modelines at the beginning and end of files.
1560  // Modelines contain editor directives (e.g., vim/emacs settings) that configure
1561  // the editor behavior for specific files.
1562  //
1563  // A value of 0 disables modelines support.
1564  "modeline_lines": 5,
1565  // What debuggers are preferred by default for all languages.
1566  "debuggers": [],
1567  // Whether to enable word diff highlighting in the editor.
1568  //
1569  // When enabled, changed words within modified lines are highlighted
1570  // to show exactly what changed.
1571  //
1572  // Default: true
1573  "word_diff_enabled": true,
1574  // Control what info is collected by Omega.
1575  "telemetry": {
1576    // Send debug info like crash reports.
1577    "diagnostics": false,
1578    // Send anonymized usage data like what languages you're using.
1579    "metrics": false,
1580    // Allow sending requests to Anthropic models that cannot be offered with
1581    // Zero Data Retention
1582    "anthropic_retention": false,
1583  },
1584  // Whether to disable all AI features in Omega.
1585  //
1586  // Local and registry ACP agents remain enabled. Hosted Zed services are
1587  // isolated independently by Omega's service gates and provider defaults.
1588  "disable_ai": false,
1589  // Automatically update Omega. Disabled until an owned update feed exists.
1590  // Upstream Zed ships true, which points the updater at Zed's release feed —
1591  // the one default that can replace the binary. See OMEGA-DELTA-0026.
1592  "auto_update": false,
1593  // How to render LSP `textDocument/documentColor` colors in the editor.
1594  //
1595  // Possible values:
1596  //
1597  // 1. Do not query and render document colors.
1598  //      "lsp_document_colors": "none",
1599  // 2. Render document colors as inlay hints near the color text (default).
1600  //      "lsp_document_colors": "inlay",
1601  // 3. Draw a border around the color text.
1602  //      "lsp_document_colors": "border",
1603  // 4. Draw a background behind the color text..
1604  //      "lsp_document_colors": "background",
1605  "lsp_document_colors": "inlay",
1606  // Whether to query and display LSP `textDocument/documentLink` links in the editor.
1607  //
1608  // Default: true
1609  "lsp_document_links": true,
1610  // Diagnostics configuration.
1611  "diagnostics": {
1612    // Whether to show the project diagnostics button in the status bar.
1613    "button": true,
1614    // Whether to show warnings or not by default.
1615    //
1616    // Default: true
1617    "include_warnings": true,
1618    // Settings for using LSP pull diagnostics mechanism in Omega.
1619    "lsp_pull_diagnostics": {
1620      // Whether to pull for diagnostics or not.
1621      "enabled": true,
1622      // Minimum time to wait before pulling diagnostics from the language server(s).
1623      // 0 turns the debounce off.
1624      "debounce_ms": 50,
1625    },
1626    // Settings for inline diagnostics
1627    "inline": {
1628      // Whether to show diagnostics inline or not
1629      "enabled": false,
1630      // The delay in milliseconds to show inline diagnostics after the
1631      // last diagnostic update.
1632      "update_debounce_ms": 150,
1633      // The amount of padding between the end of the source line and the start
1634      // of the inline diagnostic in units of em widths.
1635      "padding": 4,
1636      // The minimum column to display inline diagnostics. This setting can be
1637      // used to horizontally align inline diagnostics at some column. Lines
1638      // longer than this value will still push diagnostics further to the right.
1639      "min_column": 0,
1640      // The minimum severity of the diagnostics to show inline.
1641      // Inherits editor's diagnostics' max severity settings when `null`.
1642      "max_severity": null,
1643    },
1644  },
1645  // Files or globs of files that will be excluded by Omega entirely. They will be skipped during file
1646  // scans, file searches, and not be displayed in the project file tree. Takes precedence over `file_scan_inclusions`.
1647  "file_scan_exclusions": [
1648    "**/.git",
1649    "**/.svn",
1650    "**/.hg",
1651    "**/.jj",
1652    "**/.sl",
1653    "**/.repo",
1654    "**/CVS",
1655    "**/.DS_Store",
1656    "**/Thumbs.db",
1657    "**/.classpath",
1658    "**/.settings",
1659  ],
1660  // Files or globs of files that will be included by Omega, even when ignored by git. This is useful
1661  // for files that are not tracked by git, but are still important to your project. Note that globs
1662  // that are overly broad can slow down Omega's file scanning. `file_scan_exclusions` takes
1663  // precedence over these inclusions.
1664  "file_scan_inclusions": [".env*"],
1665  // When to scan content of linked directories.
1666  // May take 2 values:
1667  //  1. Only scan symlinked directories when they've been expanded in the workspace:
1668  //         "scan_symlinks": "expanded"
1669  //  2. Always scan symlinked directories:
1670  //         "scan_symlinks": "always"
1671  "scan_symlinks": "expanded",
1672  // Globs to match files that will be considered "hidden". These files can be hidden from the
1673  // project panel by toggling the "hide_hidden" setting.
1674  "hidden_files": ["**/.*"],
1675  // Globs to match files that will be opened as read-only. You can still view these files,
1676  // but cannot edit them. This is useful for generated files or external dependencies.
1677  "read_only_files": [],
1678  // Git gutter behavior configuration.
1679  "git": {
1680    // Global switch to enable or disable all git integration features.
1681    // If set to true, disables all git integration features.
1682    // If set to false, individual git integration features below will be independently enabled or disabled.
1683    "disable_git": false,
1684    // Whether to enable git status tracking.
1685    "enable_status": true,
1686    // Whether to enable git diff display.
1687    "enable_diff": true,
1688    // Control whether the git gutter is shown. May take 2 values:
1689    // 1. Show the gutter
1690    //      "git_gutter": "tracked_files"
1691    // 2. Hide the gutter
1692    //      "git_gutter": "hide"
1693    "git_gutter": "tracked_files",
1694    /// Sets the debounce threshold (in milliseconds) after which changes are reflected in the git gutter.
1695    ///
1696    /// Default: 0
1697    "gutter_debounce": 0,
1698    // Control whether the git blame information is shown for the currently
1699    // focused line, and where it is rendered.
1700    "inline_blame": {
1701      "enabled": true,
1702      // Sets a delay after which the inline blame information is shown.
1703      // Delay is restarted with every cursor movement.
1704      "delay_ms": 0,
1705      // Where to render the blame information when it is enabled.
1706      "location": "inline",
1707      // The amount of padding between the end of the source line and the start
1708      // of the inline blame in units of em widths.
1709      "padding": 7,
1710      // Whether or not to display the git commit summary on the same line.
1711      "show_commit_summary": false,
1712      // The minimum column number to show the inline blame information at
1713      "min_column": 0,
1714    },
1715    "blame": {
1716      "show_avatar": true,
1717    },
1718    // Control which information is shown in the branch picker.
1719    "branch_picker": {
1720      "show_author_name": true,
1721    },
1722    "file_diff": {
1723      // Whether newly opened file diffs show the full file instead of changes only.
1724      "show_full_file": true,
1725    },
1726    // How git hunks are displayed visually in the editor.
1727    // This setting can take two values:
1728    //
1729    // 1. Show unstaged hunks filled and staged hunks hollow:
1730    //    "hunk_style": "staged_hollow"
1731    // 2. Show unstaged hunks hollow and staged hunks filled:
1732    //    "hunk_style": "unstaged_hollow"
1733    "hunk_style": "staged_hollow",
1734    // Should the name or path be displayed first in the git view.
1735    // "path_style": "file_name_first" or "file_path_first"
1736    "path_style": "file_name_first",
1737    // Whether to show the stage and restore buttons on diff hunks.
1738    "show_stage_restore_buttons": true,
1739    // Directory where git worktrees are created, relative to the repository
1740    // working directory.
1741    //
1742    // When the resolved directory is outside the project root, the
1743    // project's directory name is automatically appended so that
1744    // sibling repos don't collide. For example, with the default
1745    // "../worktrees" and a project at ~/code/omega, worktrees are
1746    // created under ~/code/worktrees/omega/.
1747    //
1748    // When the resolved directory is inside the project root, no
1749    // extra component is added (it's already project-scoped).
1750    //
1751    // Examples:
1752    //   "../worktrees" — ~/code/worktrees/<project>/ (default)
1753    //   ".git/zed-worktrees" — <project>/.git/zed-worktrees/
1754    //   "my-worktrees" — <project>/my-worktrees/
1755    //
1756    // Trailing slashes are ignored.
1757    "worktree_directory": "../worktrees",
1758  },
1759  // The list of custom Git hosting providers.
1760  "git_hosting_providers": [
1761    // {
1762    //   "provider": "github",
1763    //   "name": "BigCorp GitHub",
1764    //   "base_url": "https://code.big-corp.com"
1765    // }
1766  ],
1767  // Configuration for how direnv configuration should be loaded. May take 2 values:
1768  // 1. Load direnv configuration using `direnv export json` directly.
1769  //      "load_direnv": "direct"
1770  // 2. Load direnv configuration through the shell hook, works for POSIX shells and fish.
1771  //      "load_direnv": "shell_hook"
1772  // 3. Don't load direnv configuration at all.
1773  //      "load_direnv": "disabled"
1774  "load_direnv": "direct",
1775  "edit_predictions": {
1776    // Which edit prediction provider to use. Upstream Zed ships "zed", which
1777    // is its hosted edit-prediction service. Omega has none, and its retained
1778    // provider is GitHub Copilot, configured per user. See OMEGA-DELTA-0026.
1779    "provider": "none",
1780    // A list of globs representing files that edit predictions should be disabled for.
1781    // There's a sensible default list of globs already included.
1782    // Any addition to this list will be merged with the default list.
1783    // Globs are matched relative to the worktree root,
1784    // except when starting with a slash (/) or equivalent in Windows.
1785    "disabled_globs": [
1786      "**/.env*",
1787      "**/*.pem",
1788      "**/*.key",
1789      "**/*.cert",
1790      "**/*.crt",
1791      "**/.dev.vars",
1792      "**/secrets.yml",
1793      "**/.zed/settings.json", // zed project settings
1794      "/**/zed/settings.json", // zed user settings
1795      "/**/zed/keymap.json",
1796    ],
1797    // When to show edit predictions previews in buffer.
1798    // This setting takes two possible values:
1799    // 1. Display predictions inline when there are no language server completions available.
1800    //     "mode": "eager"
1801    // 2. Display predictions inline only when holding a modifier key (alt by default).
1802    //     "mode": "subtle"
1803    "mode": "eager",
1804    // Copilot-specific settings
1805    // "copilot": {
1806    //   "enterprise_uri": "",
1807    //   "proxy": "",
1808    //   "proxy_no_verify": false
1809    //   "enable_next_edit_suggestions": true
1810    // },
1811    "copilot": {
1812      "enterprise_uri": null,
1813      "proxy": null,
1814      "proxy_no_verify": null,
1815      "enable_next_edit_suggestions": true,
1816    },
1817    "codestral": {
1818      "api_url": "https://codestral.mistral.ai",
1819      "model": "codestral-latest",
1820      "max_tokens": 150,
1821    },
1822    "ollama": {
1823      "api_url": "http://localhost:11434",
1824      "model": "qwen2.5-coder:7b-base",
1825      "prompt_format": "infer",
1826      "max_output_tokens": 64,
1827    },
1828    "open_ai_compatible_api": {
1829      "api_url": "",
1830      "model": "",
1831      "prompt_format": "infer",
1832      "max_output_tokens": 64,
1833    },
1834    // Controls whether Omega may collect training data when using Zed's Edit Predictions.
1835    // Data is only captured when the project is detected as open source.
1836    // Possible values:
1837    //   - "default": use the preference previously set via the status-bar toggle,
1838    //     or false if no preference has been stored.
1839    //   - "yes": allow data collection for files in open-source projects.
1840    //   - "no": never allow data collection.
1841    "allow_data_collection": "default",
1842  },
1843  // Settings specific to journaling
1844  "journal": {
1845    // The path of the directory where journal entries are stored
1846    "path": "~",
1847    // What format to display the hours in
1848    // May take 2 values:
1849    // 1. hour12
1850    // 2. hour24
1851    "hour_format": "hour12",
1852  },
1853  // Status bar-related settings.
1854  "status_bar": {
1855    // Whether to show the status bar.
1856    "experimental.show": true,
1857    // Whether to show the name of the active file in the status bar.
1858    "show_active_file": false,
1859    // Whether to show the active language button in the status bar.
1860    "active_language_button": true,
1861    // Whether to show the cursor position button in the status bar.
1862    "cursor_position_button": true,
1863    // Whether to show active line endings button in the status bar.
1864    "line_endings_button": false,
1865    // Control when to show the active encoding in the status bar.
1866    "active_encoding_button": "non_utf8",
1867  },
1868  // Settings specific to the terminal
1869  "terminal": {
1870    // What shell to use when opening a terminal. May take 3 values:
1871    // 1. Use the system's default terminal configuration in /etc/passwd
1872    //      "shell": "system"
1873    // 2. A program:
1874    //      "shell": {
1875    //        "program": "sh"
1876    //      }
1877    // 3. A program with arguments:
1878    //     "shell": {
1879    //         "with_arguments": {
1880    //           "program": "/bin/bash",
1881    //           "args": ["--login"]
1882    //         }
1883    //     }
1884    "shell": "system",
1885    // Where to dock terminals panel. Can be `left`, `right`, `bottom`.
1886    "dock": "bottom",
1887    // Whether the terminal panel should use flexible (proportional) sizing.
1888    //
1889    // Default: true
1890    "flexible": true,
1891    // Default width when the terminal is docked to the left or right.
1892    "default_width": 640,
1893    // Default height when the terminal is docked to the bottom.
1894    "default_height": 320,
1895    // What working directory to use when launching the terminal.
1896    // May take 5 values:
1897    // 1. Use the current file's directory, falling back to the project
1898    //    directory, then the first project in the workspace.
1899    //      "working_directory": "current_file_directory"
1900    // 2. Use the current file's project directory. Fallback to the
1901    //    first project directory strategy if unsuccessful
1902    //      "working_directory": "current_project_directory"
1903    // 3. Use the first project in this workspace's directory
1904    //      "working_directory": "first_project_directory"
1905    // 4. Always use this platform's home directory (if we can find it)
1906    //     "working_directory": "always_home"
1907    // 5. Always use a specific directory. This value will be shell expanded.
1908    //    If this path is not a valid directory the terminal will default to
1909    //    this platform's home directory  (if we can find it)
1910    //      "working_directory": {
1911    //        "always": {
1912    //          "directory": "~/zed/projects/"
1913    //        }
1914    //      }
1915    "working_directory": "current_project_directory",
1916    // Set the cursor blinking behavior in the terminal.
1917    // May take 3 values:
1918    //  1. Never blink the cursor, ignoring the terminal mode
1919    //         "blinking": "off",
1920    //  2. Default the cursor blink to off, but allow the terminal to
1921    //     set blinking
1922    //         "blinking": "terminal_controlled",
1923    //  3. Always blink the cursor, ignoring the terminal mode
1924    //         "blinking": "on",
1925    "blinking": "terminal_controlled",
1926    // Default cursor shape for the terminal.
1927    //  1. A block that surrounds the following character
1928    //     "block"
1929    //  2. A vertical bar
1930    //     "bar"
1931    //  3. An underline / underscore that runs along the following character
1932    //     "underline"
1933    //  4. A box drawn around the following character
1934    //     "hollow"
1935    //
1936    // Default: "block"
1937    "cursor_shape": "block",
1938    // Set whether Alternate Scroll mode (code: ?1007) is active by default.
1939    // Alternate Scroll mode converts mouse scroll events into up / down key
1940    // presses when in the alternate screen (e.g. when running applications
1941    // like vim or  less). The terminal can still set and unset this mode.
1942    // May take 2 values:
1943    //  1. Default alternate scroll mode to on
1944    //         "alternate_scroll": "on",
1945    //  2. Default alternate scroll mode to off
1946    //         "alternate_scroll": "off",
1947    "alternate_scroll": "on",
1948    // Set whether the option key behaves as the meta key.
1949    // May take 2 values:
1950    //  1. Rely on default platform handling of option key, on macOS
1951    //     this means generating certain unicode characters
1952    //         "option_as_meta": false,
1953    //  2. Make the option keys behave as a 'meta' key, e.g. for emacs
1954    //         "option_as_meta": true,
1955    "option_as_meta": false,
1956    // Whether or not selecting text in the terminal will automatically
1957    // copy to the system clipboard.
1958    "copy_on_select": false,
1959    // Whether to keep the text selection after copying it to the clipboard.
1960    "keep_selection_on_copy": true,
1961    // Whether cmd-click (ctrl-click on Linux and Windows) opens hyperlinks even
1962    // when the terminal application has enabled mouse reporting (e.g. vim with
1963    // mouse=a, htop). When false, these clicks are forwarded to the application
1964    // instead, and hyperlinks can still be opened with shift-cmd-click
1965    // (shift-ctrl-click).
1966    "open_links_in_mouse_mode": true,
1967    // Whether to show the terminal button in the status bar
1968    "button": true,
1969    // Any key-value pairs added to this list will be added to the terminal's
1970    // environment. Use `:` to separate multiple values.
1971    "env": {
1972      // "KEY": "value1:value2"
1973    },
1974    // Set the terminal's line height.
1975    // May take 3 values:
1976    //  1. Use a line height that's comfortable for reading, 1.618
1977    //         "line_height": "comfortable"
1978    //  2. Use a standard line height, 1.3. This option is useful for TUIs,
1979    //      particularly if they use box characters
1980    //         "line_height": "standard",
1981    //  3. Use a custom line height.
1982    //         "line_height": {
1983    //           "custom": 2
1984    //         },
1985    "line_height": "standard",
1986    // Activate the python virtual environment, if one is found, in the
1987    // terminal's working directory (as resolved by the working_directory
1988    // setting). Set this to "off" to disable this behavior.
1989    "detect_venv": {
1990      "on": {
1991        // Default directories to search for virtual environments, relative
1992        // to the current working directory. We recommend overriding this
1993        // in your project's settings, rather than globally.
1994        "directories": [".env", "env", ".venv", "venv"],
1995        // Can also be `csh`, `fish`, `nushell` and `power_shell`
1996        "activate_script": "default",
1997        // Preferred Conda manager to use when activating Conda environments.
1998        // Values: "auto", "conda", "mamba", "micromamba"
1999        // Default: "auto"
2000        "conda_manager": "auto",
2001      },
2002    },
2003    "toolbar": {
2004      // Whether to display the terminal title in its toolbar's breadcrumbs.
2005      // Only shown if the terminal title is not empty.
2006      //
2007      // The shell running in the terminal needs to be configured to emit the title.
2008      // Example: `echo -e "\e]2;New Title\007";`
2009      "breadcrumbs": false,
2010    },
2011    // Scrollbar-related settings
2012    "scrollbar": {
2013      // When to show the scrollbar in the terminal.
2014      // This setting can take five values:
2015      //
2016      // 1. null (default): Inherit editor settings
2017      // 2. Show the scrollbar if there's important information or
2018      //    follow the system's configured behavior (default):
2019      //   "auto"
2020      // 3. Match the system's configured behavior:
2021      //    "system"
2022      // 4. Always show the scrollbar:
2023      //    "always"
2024      // 5. Never show the scrollbar:
2025      //    "never"
2026      "show": null,
2027    },
2028    // Set the terminal's font size. If this option is not included,
2029    // the terminal will default to matching the buffer's font size.
2030    // "font_size": 15,
2031    // Set the terminal's font family. If this option is not included,
2032    // the terminal will default to matching the buffer's font family.
2033    // "font_family": ".ZedMono",
2034    // Set the terminal's font fallbacks. If this option is not included,
2035    // the terminal will default to matching the buffer's font fallbacks.
2036    // This will be merged with the platform's default font fallbacks
2037    // "font_fallbacks": ["FiraCode Nerd Fonts"],
2038    // The weight of the editor font in standard CSS units from 100 to 900.
2039    "font_weight": 400,
2040    // Sets the maximum number of lines in the terminal's scrollback buffer.
2041    // Default: 10_000, maximum: 100_000 (all bigger values set will be treated as 100_000), 0 disables the scrolling.
2042    // Existing terminals will not pick up this change until they are recreated.
2043    "max_scroll_history_lines": 10000,
2044    // The multiplier for scrolling speed in the terminal.
2045    "scroll_multiplier": 1.0,
2046    // The minimum APCA perceptual contrast between foreground and background colors.
2047    // APCA (Accessible Perceptual Contrast Algorithm) is more accurate than WCAG 2.x,
2048    // especially for dark mode. Values range from 0 to 106.
2049    //
2050    // Based on APCA Readability Criterion (ARC) Bronze Simple Mode:
2051    // https://readtech.org/ARC/tests/bronze-simple-mode/
2052    // - 0: No contrast adjustment
2053    // - 45: Minimum for large fluent text (36px+)
2054    // - 60: Minimum for other content text
2055    // - 75: Minimum for body text
2056    // - 90: Preferred for body text
2057    //
2058    // Most terminal themes have APCA values of 40-70.
2059    // A value of 45 preserves colorful themes while ensuring legibility.
2060    "minimum_contrast": 45,
2061    // Regexes used to identify paths for hyperlink navigation. Supports optional named capture
2062    // groups `path`, `line`, `column`, and `link`. If none of these are present, the entire match
2063    // is the hyperlink target. If `path` is present, it is the hyperlink target, along with `line`
2064    // and `column` if present. `link` may be used to customize what text in terminal is part of the
2065    // hyperlink. If `link` is not present, the text of the entire match is used. If `line` and
2066    // `column` are not present, the default built-in line and column suffix processing is used
2067    // which parses `line:column` and `(line,column)` variants. The default value handles Python
2068    // diagnostics and common path, line, column syntaxes. This can be extended or replaced to
2069    // handle specific scenarios. For example, to enable support for hyperlinking paths which
2070    // contain spaces in rust output,
2071    //
2072    // [
2073    //   "\\s+(-->|:::|at) (?<link>(?<path>.+?))(:$|$)",
2074    //   "\\s+(Compiling|Checking|Documenting) [^(]+\\((?<link>(?<path>.+))\\)"
2075    // ],
2076    //
2077    // could be used. Processing stops at the first regex with a match, even if no link is
2078    // produced which is the case when the cursor is not over the hyperlinked text. For best
2079    // performance it is recommended to order regexes from most common to least common. For
2080    // readability and documentation, each regex may be an array of strings which are collected
2081    // into one multi-line regex string for use in terminal path hyperlink detection.
2082    "path_hyperlink_regexes": [
2083      // Python-style diagnostics
2084      "File \"(?<path>[^\"]+)\", line (?<line>[0-9]+)",
2085      // Common path syntax with optional line, column, description, trailing punctuation, or
2086      // surrounding symbols or quotes
2087      [
2088        "(?x)",
2089        "(?<path>",
2090        "    (",
2091        "        # multi-char path: first char (not opening delimiter, space, or box drawing char)",
2092        "        [^({\\[<\"'`\\ \\u2500-\\u257F]",
2093        "        # middle chars: non-space, and colon/paren only if not followed by digit/paren/space",
2094        "        ([^\\ :(]|[:(][^0-9()\\ ])*",
2095        "        # last char: not closing delimiter or colon",
2096        "        [^()}\\]>\"'`.,;:\\ ]",
2097        "    |",
2098        "        # single-char path: not delimiter, punctuation, space, or box drawing char",
2099        "        [^(){}\\[\\]<>\"'`.,;:\\ \\u2500-\\u257F]",
2100        "    )",
2101        "    # optional line/column suffix (included in path for PathWithPosition::parse_str)",
2102        "    (:+[0-9]+(:[0-9]+)?|:?\\([0-9]+([,:]?[0-9]+)?\\))?",
2103        ")",
2104      ],
2105    ],
2106    // Timeout for hover and Cmd-click path hyperlink discovery in milliseconds. Specifying a
2107    // timeout of `0` will disable path hyperlinking in terminal.
2108    "path_hyperlink_timeout_ms": 1,
2109    // Whether to show a badge on the terminal panel icon with the count of open terminals.
2110    "show_count_badge": false,
2111    // Whether to invoke the OS-specific alert sound when the terminal bell (BEL character) is printed.
2112    "bell": "off",
2113  },
2114  "code_actions_on_format": {},
2115  // Settings related to running tasks.
2116  "tasks": {
2117    "variables": {},
2118    "enabled": true,
2119    // Use LSP tasks over Omega language extension ones.
2120    // If no LSP tasks are returned due to error/timeout or regular execution,
2121    // Omega language extension tasks will be used instead.
2122    //
2123    // Other Omega tasks will still be shown:
2124    // * Omega task from either of the task config file
2125    // * Omega task from history (e.g. one-off task was spawned before)
2126    //
2127    // Default: true
2128    "prefer_lsp": true,
2129  },
2130  // An object whose keys are language names, and whose values
2131  // are arrays of filenames or extensions of files that should
2132  // use those languages.
2133  //
2134  // For example, to treat files like `foo.notjs` as JavaScript,
2135  // and `Embargo.lock` as TOML:
2136  //
2137  // {
2138  //   "JavaScript": ["notjs"],
2139  //   "TOML": ["Embargo.lock"]
2140  // }
2141  //
2142  "file_types": {
2143    "JSONC": [
2144      "**/.zed/*.json",
2145      "**/.vscode/**/*.json",
2146      "**/{zed,Zed}/{settings,keymap,tasks,debug}.json",
2147      "tsconfig*.json",
2148    ],
2149    "Markdown": [".rules", ".cursorrules", ".windsurfrules", ".clinerules"],
2150    "Shell Script": [".env.*"],
2151  },
2152  // Settings for which version of Node.js and NPM to use when installing
2153  // language servers and Copilot.
2154  //
2155  // Note: changing this setting currently requires restarting Omega.
2156  "node": {
2157    // By default, Omega will look for `node` and `npm` on your `$PATH`, and use the
2158    // existing executables if their version is recent enough. Set this to `true`
2159    // to prevent this, and force Omega to always download and install its own
2160    // version of Node.
2161    "ignore_system_version": false,
2162    // You can also specify alternative paths to Node and NPM. If you specify
2163    // `path`, but not `npm_path`, Omega will assume that `npm` is located at
2164    // `${path}/../npm`.
2165    "path": null,
2166    "npm_path": null,
2167  },
2168  // The extensions that Omega should automatically install on startup.
2169  //
2170  // If you don't want any of these extensions, add this field to your settings
2171  // and change the value to `false`.
2172  //
2173  // Empty in Omega. Upstream Zed installs the "html" extension from Zed's
2174  // extension registry on first start. See OMEGA-DELTA-0026.
2175  "auto_install_extensions": {},
2176  // The capabilities granted to extensions.
2177  //
2178  // This list can be customized to restrict what extensions are able to do.
2179  "granted_extension_capabilities": [
2180    { "kind": "process:exec", "command": "*", "args": ["**"] },
2181    { "kind": "download_file", "host": "*", "path": ["**"] },
2182    { "kind": "npm:install", "package": "*" },
2183  ],
2184  // Controls how completions are processed for this language.
2185  "completions": {
2186    // Controls how words are completed.
2187    // For large documents, not all words may be fetched for completion.
2188    //
2189    // May take 3 values:
2190    // 1. "enabled"
2191    //   Always fetch document's words for completions along with LSP completions.
2192    // 2. "fallback"
2193    //   Only if LSP response errors or times out, use document's words to show completions.
2194    // 3. "disabled"
2195    //   Never fetch or complete document's words for completions.
2196    //   (Word-based completions can still be queried via a separate action)
2197    //
2198    // Default: fallback
2199    "words": "fallback",
2200    // Minimum number of characters required to automatically trigger word-based completions.
2201    // Before that value, it's still possible to trigger the words-based completion manually with the corresponding editor command.
2202    //
2203    // Default: 3
2204    "words_min_length": 3,
2205    // Whether to fetch LSP completions or not.
2206    //
2207    // Default: true
2208    "lsp": true,
2209    // When fetching LSP completions, determines how long to wait for a response of a particular server.
2210    // When set to 0, waits indefinitely.
2211    //
2212    // Default: 0
2213    "lsp_fetch_timeout_ms": 0,
2214    // Controls what range to replace when accepting LSP completions.
2215    //
2216    // When LSP servers give an `InsertReplaceEdit` completion, they provides two ranges: `insert` and `replace`. Usually, `insert`
2217    // contains the word prefix before your cursor and `replace` contains the whole word.
2218    //
2219    // Effectively, this setting just changes whether Omega will use the received range for `insert` or `replace`, so the results may
2220    // differ depending on the underlying LSP server.
2221    //
2222    // Possible values:
2223    // 1. "insert"
2224    //   Replaces text before the cursor, using the `insert` range described in the LSP specification.
2225    // 2. "replace"
2226    //   Replaces text before and after the cursor, using the `replace` range described in the LSP specification.
2227    // 3. "replace_subsequence"
2228    //   Behaves like `"replace"` if the text that would be replaced is a subsequence of the completion text,
2229    //   and like `"insert"` otherwise.
2230    // 4. "replace_suffix"
2231    //   Behaves like `"replace"` if the text after the cursor is a suffix of the completion, and like
2232    //   `"insert"` otherwise.
2233    "lsp_insert_mode": "replace_suffix",
2234  },
2235  // Different settings for specific languages.
2236  "languages": {
2237    "Astro": {
2238      "format_on_save": "on",
2239      "language_servers": ["astro-language-server", "..."],
2240      "prettier": {
2241        "allowed": true,
2242        "plugins": ["prettier-plugin-astro"],
2243      },
2244    },
2245    "Blade": {
2246      "prettier": {
2247        "allowed": true,
2248      },
2249    },
2250    "C": {
2251      "use_on_type_format": false,
2252      "prettier": {
2253        "allowed": false,
2254      },
2255    },
2256    "C++": {
2257      "use_on_type_format": false,
2258      "prettier": {
2259        "allowed": false,
2260      },
2261    },
2262    "CSharp": {
2263      "language_servers": ["roslyn", "!csharp-ls", "!omnisharp", "..."],
2264    },
2265    "CSS": {
2266      "prettier": {
2267        "allowed": true,
2268      },
2269    },
2270    "Dart": {
2271      "format_on_save": "on",
2272      "tab_size": 2,
2273    },
2274    "Diff": {
2275      "show_edit_predictions": false,
2276      "remove_trailing_whitespace_on_save": false,
2277      "ensure_final_newline_on_save": false,
2278    },
2279    "EEx": {
2280      "format_on_save": "on",
2281      "language_servers": ["elixir-ls", "!expert", "!dexter", "!next-ls", "!lexical", "..."],
2282    },
2283    "Elixir": {
2284      "format_on_save": "on",
2285      "language_servers": ["elixir-ls", "!expert", "!dexter", "!next-ls", "!lexical", "!emmet-language-server", "..."],
2286    },
2287    "Elm": {
2288      "format_on_save": "on",
2289      "tab_size": 4,
2290    },
2291    "Erlang": {
2292      "language_servers": ["erlang-ls", "!elp", "..."],
2293    },
2294    "Git Commit": {
2295      "allow_rewrap": "anywhere",
2296      "soft_wrap": "editor_width",
2297      "preferred_line_length": 72,
2298    },
2299    "Go": {
2300      "format_on_save": "on",
2301      "hard_tabs": true,
2302      "code_actions_on_format": {
2303        "source.organizeImports": true,
2304      },
2305      "debuggers": ["Delve"],
2306    },
2307    "GraphQL": {
2308      "format_on_save": "on",
2309      "prettier": {
2310        "allowed": true,
2311      },
2312    },
2313    "HEEx": {
2314      "format_on_save": "on",
2315      "language_servers": ["elixir-ls", "!expert", "!dexter", "!next-ls", "!lexical", "..."],
2316    },
2317    "HTML": {
2318      "prettier": {
2319        "allowed": true,
2320      },
2321    },
2322    "HTML+ERB": {
2323      "language_servers": ["herb", "!ruby-lsp", "..."],
2324    },
2325    "Java": {
2326      "prettier": {
2327        "allowed": true,
2328        "plugins": ["prettier-plugin-java"],
2329      },
2330    },
2331    "JavaScript": {
2332      "language_servers": ["!typescript-language-server", "vtsls", "..."],
2333      "prettier": {
2334        "allowed": true,
2335      },
2336    },
2337    "JSON": {
2338      "prettier": {
2339        "allowed": true,
2340      },
2341    },
2342    "JSONC": {
2343      "prettier": {
2344        "allowed": true,
2345      },
2346    },
2347    "JS+ERB": {
2348      "language_servers": ["!ruby-lsp", "..."],
2349    },
2350    "Kotlin": {
2351      "format_on_save": "on",
2352      "language_servers": ["!kotlin-language-server", "kotlin-lsp", "..."],
2353    },
2354    "LaTeX": {
2355      "formatter": "language_server",
2356      "language_servers": ["texlab", "..."],
2357      "prettier": {
2358        "allowed": true,
2359        "plugins": ["prettier-plugin-latex"],
2360      },
2361    },
2362    "Markdown": {
2363      "use_on_type_format": false,
2364      "remove_trailing_whitespace_on_save": false,
2365      "allow_rewrap": "anywhere",
2366      "soft_wrap": "editor_width",
2367      "completions": {
2368        "words": "disabled",
2369      },
2370      "prettier": {
2371        "allowed": true,
2372      },
2373    },
2374    "PHP": {
2375      "language_servers": ["phpactor", "!intelephense", "!phptools", "!phpantom", "..."],
2376      "prettier": {
2377        "allowed": true,
2378        "plugins": ["@prettier/plugin-php"],
2379        "parser": "php",
2380      },
2381    },
2382    "Plain Text": {
2383      "allow_rewrap": "anywhere",
2384      "soft_wrap": "editor_width",
2385      "completions": {
2386        "words": "disabled",
2387      },
2388    },
2389    "Proto": {
2390      "language_servers": ["buf", "!protols", "!protobuf-language-server", "..."],
2391    },
2392    "Python": {
2393      "code_actions_on_format": {
2394        "source.organizeImports.ruff": true,
2395      },
2396      "formatter": {
2397        "language_server": {
2398          "name": "ruff",
2399        },
2400      },
2401      "debuggers": ["Debugpy"],
2402      "language_servers": ["basedpyright", "ruff", "!ty", "!pyrefly", "!pyright", "!pylsp", "..."],
2403    },
2404    "Ruby": {
2405      "language_servers": [
2406        "solargraph",
2407        "!ruby-lsp",
2408        "!rubocop",
2409        "!sorbet",
2410        "!steep",
2411        "!kanayago",
2412        "!fuzzy-ruby-server",
2413        "...",
2414      ],
2415    },
2416    "Rust": {
2417      "format_on_save": "on",
2418      "debuggers": ["CodeLLDB"],
2419    },
2420    "SCSS": {
2421      "prettier": {
2422        "allowed": true,
2423      },
2424    },
2425    "Starlark": {
2426      "format_on_save": "on",
2427      "language_servers": ["starpls", "!buck2-lsp", "!tilt", "..."],
2428    },
2429    "Svelte": {
2430      "language_servers": ["svelte-language-server", "..."],
2431      "prettier": {
2432        "allowed": true,
2433        "plugins": ["prettier-plugin-svelte"],
2434      },
2435    },
2436    "TSX": {
2437      "language_servers": ["!typescript-language-server", "vtsls", "..."],
2438      "prettier": {
2439        "allowed": true,
2440      },
2441    },
2442    "Twig": {
2443      "prettier": {
2444        "allowed": true,
2445      },
2446    },
2447    "TypeScript": {
2448      "language_servers": ["!typescript-language-server", "vtsls", "..."],
2449      "prettier": {
2450        "allowed": true,
2451      },
2452    },
2453    "SystemVerilog": {
2454      "language_servers": ["!slang", "..."],
2455      "use_on_type_format": false,
2456    },
2457    "Vue.js": {
2458      "language_servers": ["vue-language-server", "vtsls", "..."],
2459      "prettier": {
2460        "allowed": true,
2461      },
2462    },
2463    "XML": {
2464      "prettier": {
2465        "allowed": true,
2466        "plugins": ["@prettier/plugin-xml"],
2467      },
2468    },
2469    "YAML": {
2470      "prettier": {
2471        "allowed": true,
2472      },
2473    },
2474    "YAML+ERB": {
2475      "language_servers": ["!ruby-lsp", "..."],
2476    },
2477    "Zig": {
2478      "format_on_save": "on",
2479      "language_servers": ["zls", "..."],
2480    },
2481  },
2482  // Different settings for specific language models.
2483  "language_models": {
2484    "anthropic": {
2485      "api_url": "https://api.anthropic.com",
2486    },
2487    "anthropic_compatible": {},
2488    "bedrock": {},
2489    "google": {
2490      "api_url": "https://generativelanguage.googleapis.com",
2491    },
2492    "ollama": {
2493      "api_url": "http://localhost:11434",
2494    },
2495    "llama.cpp": {
2496      "api_url": "http://localhost:8080",
2497    },
2498    "openai": {
2499      "api_url": "https://api.openai.com/v1",
2500    },
2501    "openai_compatible": {},
2502    "opencode": {
2503      "api_url": "https://opencode.ai/zen",
2504    },
2505    "open_router": {
2506      "api_url": "https://openrouter.ai/api/v1",
2507    },
2508    "lmstudio": {
2509      "api_url": "http://localhost:1234/api/v0",
2510    },
2511    "deepseek": {
2512      "api_url": "https://api.deepseek.com/v1",
2513    },
2514    "mistral": {
2515      "api_url": "https://api.mistral.ai/v1",
2516    },
2517    "vercel_ai_gateway": {
2518      "api_url": "https://ai-gateway.vercel.sh/v1",
2519    },
2520    "x_ai": {
2521      "api_url": "https://api.x.ai/v1",
2522    },
2523    "zed.dev": {},
2524  },
2525  "session": {
2526    // Whether or not to restore unsaved buffers on restart.
2527    //
2528    // If this is true, user won't be prompted whether to save/discard
2529    // dirty files when closing the application.
2530    //
2531    // Default: true
2532    "restore_unsaved_buffers": true,
2533    // Whether or not to skip worktree trust checks.
2534    // When trusted, project settings are synchronized automatically,
2535    // language and MCP servers are downloaded and started automatically.
2536    //
2537    // Omega defaults this to true. Upstream Zed defaults it to false and shows
2538    // a Restricted Mode trust prompt on an unrecognized project. Omega is an
2539    // owner-operated editor, so that prompt is owner-directed dead weight: it
2540    // interrupts every new project and, when declined, silently disables
2541    // language servers and project settings.
2542    //
2543    // Default: true
2544    "trust_all_worktrees": true,
2545  },
2546  // Omega's Prettier integration settings.
2547  // Allows to enable/disable formatting with Prettier
2548  // and configure default Prettier, used when no project-level Prettier installation is found.
2549  "prettier": {
2550    // Enables or disables formatting with Prettier for any given language.
2551    "allowed": false,
2552    // Forces Prettier integration to use a specific parser name when formatting files with the language.
2553    "plugins": [],
2554    // Default Prettier options, in the format as in package.json section for Prettier.
2555    // If project installs Prettier via its package.json, these options will be ignored.
2556    // "trailingComma": "es5",
2557    // "tabWidth": 4,
2558    // "semi": false,
2559    // "singleQuote": true
2560    // Forces Prettier integration to use a specific parser name when formatting files with the language
2561    // when set to a non-empty string.
2562    "parser": "",
2563  },
2564  // Settings for auto-closing of JSX tags.
2565  "jsx_tag_auto_close": {
2566    "enabled": true,
2567  },
2568  // LSP Specific settings.
2569  "lsp": {
2570    // Specify the LSP name as a key here.
2571    // "rust-analyzer": {
2572    //     // A special flag for rust-analyzer integration, to use server-provided tasks
2573    //     enable_lsp_tasks": true,
2574    //     // These initialization options are merged into Omega's defaults
2575    //     "initialization_options": {
2576    //         "check": {
2577    //             "command": "clippy" // rust-analyzer.check.command (default: "check")
2578    //         }
2579    //     }
2580    // }
2581  },
2582  // DAP Specific settings.
2583  "dap": {
2584    // Specify the DAP name as a key here.
2585    "CodeLLDB": {
2586      "env": {
2587        "RUST_LOG": "info",
2588      },
2589    },
2590  },
2591  // Common language server settings.
2592  "global_lsp_settings": {
2593    // Whether to show the LSP servers button in the status bar.
2594    "button": true,
2595    // The maximum amount of time to wait for responses from language servers, in seconds.
2596    // A value of 0 will result in no timeout being applied.
2597    //
2598    // Default: 120
2599    "request_timeout": 120,
2600    // The maximum line length a buffer may contain before language server features are disabled
2601    // for the entire buffer.
2602    //
2603    // Default: 20000
2604    "max_buffer_line_length": 20000,
2605    "notifications": {
2606      // Timeout in milliseconds for automatically dismissing language server notifications.
2607      // Set to 0 to disable auto-dismiss.
2608      "dismiss_timeout_ms": 5000,
2609    },
2610    // Rules for highlighting semantic tokens. User-defined rules are prepended to the default
2611    // rules (viewable via "Show Default Semantic Token Rules"), so they take precedence.
2612    //
2613    // Each `rule` has the following properties:
2614    // - `token_type`: The LSP semantic token type to customize. If omitted, the rule matches all token types.
2615    // - `token_modifiers`: A list of LSP semantic token modifiers to match. All modifiers must be present
2616    //    to match.
2617    // - `style`: A list of styles from the current syntax theme to use. The first style found is used. Any
2618    //    settings below override that style.
2619    // - `foreground_color`: The foreground color to use for the token type, in hex format (e.g., "#ff0000").
2620    // - `background_color`: The background color to use for the token type, in hex format.
2621    // - `underline`: A boolean or color to underline with, in hex format. If `true`, then the token will be underlined with the text color.
2622    // - `strikethrough`: A boolean or color to strikethrough with, in hex format. If `true`, then the token have a strikethrough with the text color.
2623    // - `font_weight`: One of "normal", "bold".
2624    // - `font_style`: One of "normal", "italic".
2625    //
2626    // The first matching rule for a token is applied. Because user-defined rules are prepended to the
2627    // default rules, a token can be entirely disabled by adding an empty rule that matches it.
2628    //
2629    // Example: Highlight unresolved references in red and bold:
2630    // "semantic_token_rules": [
2631    //   {
2632    //     "token_type": "unresolvedReference",
2633    //     "foreground_color": "#c93f3f",
2634    //     "font_weight": "bold"
2635    //   }
2636    // ]
2637    //
2638    // Default rules are viewable via the "omega: show default semantic token rules" action.
2639    "semantic_token_rules": [],
2640  },
2641  // Jupyter settings
2642  "jupyter": {
2643    "enabled": true,
2644    "kernel_selections": {},
2645    // Specify the language name as the key and the kernel name as the value.
2646    // "kernel_selections": {
2647    //    "python": "conda-base"
2648    //    "typescript": "deno"
2649    // }
2650  },
2651  // REPL settings.
2652  "repl": {
2653    // Maximum number of columns to keep in REPL's scrollback buffer.
2654    // Clamped with [20, 512] range.
2655    "max_columns": 128,
2656    // Maximum number of lines to keep in REPL's scrollback buffer.
2657    // Clamped with [4, 256] range.
2658    "max_lines": 32,
2659    // Maximum number of lines of output to display before scrolling.
2660    // Set to 0 to disable output height limits.
2661    "output_max_height_lines": 0,
2662    // Maximum number of columns of output to display before scaling images.
2663    // Set to 0 to disable output width limits.
2664    "output_max_width_columns": 0,
2665  },
2666  // Vim settings
2667  "vim": {
2668    "default_mode": "normal",
2669    "toggle_relative_line_numbers": false,
2670    "use_system_clipboard": "always",
2671    "use_smartcase_find": false,
2672    "use_regex_search": true,
2673    "gdefault": false,
2674    "highlight_on_yank_duration": 200,
2675    "custom_digraphs": {},
2676    // When enabled, edit predictions are shown in Vim normal mode.
2677    // By default, edit predictions are only shown in insert and replace modes.
2678    "show_edit_predictions_in_normal_mode": false,
2679    // Cursor shape for each mode.
2680    // The shape can be one of the following: "block", "bar", "underline", "hollow".
2681    "cursor_shape": {
2682      "normal": "block",
2683      "replace": "underline",
2684      "visual": "block",
2685      // Set to "inherit" to use the editor's cursor_shape.
2686      "insert": "inherit",
2687    },
2688  },
2689  // Which-key popup settings
2690  "which_key": {
2691    // Whether to show the which-key popup when holding down key combinations.
2692    "enabled": false,
2693    // Delay in milliseconds before showing the which-key popup.
2694    "delay_ms": 1000,
2695  },
2696  // The server to connect to. Omega does not use Zed production services.
2697  // Inherited account, collab, and cloud clients are gated unless
2698  // OMEGA_ALLOW_ZED_SERVICES=1. This host is intentionally non-Zed, and is
2699  // intentionally non-routable. See OMEGA-DELTA-0026.
2700  "server_url": "https://services.openagents.invalid",
2701  // Settings overrides to use when using Omega Preview.
2702  // Mostly useful for developers who are managing multiple instances of Omega.
2703  "preview": {
2704    // "theme": "Andromeda"
2705  },
2706  // Settings overrides to use when using Omega Nightly.
2707  // Mostly useful for developers who are managing multiple instances of Omega.
2708  "nightly": {
2709    // "theme": "Andromeda"
2710    "instrumentation": {
2711      "performance_profiler": {
2712        "enabled": true,
2713      },
2714    },
2715  },
2716  // Settings overrides to use when using Omega Stable.
2717  // Mostly useful for developers who are managing multiple instances of Omega.
2718  "stable": {
2719    // "theme": "Andromeda"
2720  },
2721  // Settings overrides to use when using Omega Dev.
2722  // Mostly useful for developers who are managing multiple instances of Omega.
2723  "dev": {
2724    // "theme": "Andromeda"
2725    "instrumentation": {
2726      "performance_profiler": {
2727        "enabled": true,
2728      },
2729    },
2730  },
2731  // Settings overrides to use when using Linux.
2732  "linux": {},
2733  // Settings overrides to use when using macOS.
2734  "macos": {},
2735  // Settings overrides to use when using Windows.
2736  "windows": {
2737    "languages": {
2738      "PHP": {
2739        "language_servers": ["intelephense", "!phpactor", "!phptools", "!phpantom", "..."],
2740      },
2741    },
2742  },
2743  // Whether to show full labels in line indicator or short ones
2744  //
2745  // Values:
2746  //   - `short`: "2 s, 15 l, 32 c"
2747  //   - `long`: "2 selections, 15 lines, 32 characters"
2748  // Default: long
2749  "line_indicator_format": "long",
2750  // Set a proxy to use. The proxy protocol is specified by the URI scheme.
2751  //
2752  // Supported URI scheme: `http`, `https`, `socks4`, `socks4a`, `socks5`,
2753  // `socks5h`. `http` will be used when no scheme is specified.
2754  //
2755  // By default no proxy will be used, or Omega will try get proxy settings from
2756  // environment variables. If certain hosts should not be proxied,
2757  // set the `no_proxy` environment variable and provide a comma-separated list.
2758  //
2759  // Examples:
2760  //   - "proxy": "socks5h://localhost:10808"
2761  //   - "proxy": "http://127.0.0.1:10809"
2762  "proxy": "",
2763  // Set to configure aliases for the command palette.
2764  // When typing a query which is a key of this object, the value will be used instead.
2765  //
2766  // Examples:
2767  // {
2768  //   "W": "workspace::Save"
2769  // }
2770  "command_aliases": {},
2771  // ssh_connections is an array of ssh connections.
2772  // You can configure these from `project: Open Remote` in the command palette.
2773  // Omega's ssh support will pull configuration from your ~/.ssh too.
2774  // Examples:
2775  // [
2776  //   {
2777  //     "host": "example-box",
2778  //     // "port": 22, "username": "test", "args": ["-i", "/home/user/.ssh/id_rsa"]
2779  //     "projects": [
2780  //       {
2781  //         "paths": ["/home/user/code/zed"]
2782  //       }
2783  //     ]
2784  //   }
2785  // ]
2786  "ssh_connections": [],
2787  // Whether to read ~/.ssh/config for ssh connection sources.
2788  "read_ssh_config": true,
2789  // Default timeout in seconds for all context server tool calls.
2790  // Individual servers can override this in their configuration.
2791  // Examples:
2792  // "context_servers": {
2793  //   "my-stdio-server": {
2794  //     "command": "/path/to/server",
2795  //     "timeout": 120  // Override: 2 minutes for this server
2796  //   },
2797  // }
2798  // Default: 60
2799  "context_server_timeout": 60,
2800  // Configures context servers for use by the agent.
2801  "context_servers": {},
2802  // Configures agent servers available in the agent panel.
2803  //
2804  // Upstream Zed ships this empty. Omega configures codex-acp because Full Auto
2805  // dispatches to it, so an empty map is a Full Auto run that cannot start. It
2806  // resolves from the ACP registry, an approved host in the endpoint
2807  // allow-list. See OMEGA-DELTA-0027.
2808  "agent_servers": {
2809    "codex-acp": {
2810      "type": "registry"
2811    }
2812  },
2813  "debugger": {
2814    "stepping_granularity": "line",
2815    "save_breakpoints": true,
2816    "timeout": 2000,
2817    "dock": "bottom",
2818    "log_dap_communications": true,
2819    "format_dap_log_messages": true,
2820    "button": true,
2821  },
2822  // Configures any number of settings profiles that are temporarily applied
2823  // when selected from `settings profile selector: toggle`.
2824  //
2825  // Each profile has an optional `base` ("user" or "default") and a `settings`
2826  // object. When `base` is "user" (the default), the profile applies on top of
2827  // your user settings. When `base` is "default", user settings are ignored and
2828  // the profile applies on top of Omega's defaults.
2829  //
2830  // Examples:
2831  // "profiles": {
2832  //   "Presenting": {
2833  //     "base": "default",
2834  //     "settings": {
2835  //       "agent_ui_font_size": 20.0,
2836  //       "buffer_font_size": 20.0,
2837  //       "theme": "One Light",
2838  //       "ui_font_size": 20.0
2839  //     }
2840  //   },
2841  //   "Python (ty)": {
2842  //     "settings": {
2843  //       "languages": {
2844  //         "Python": {
2845  //           "language_servers": ["ty"]
2846  //         }
2847  //       }
2848  //     }
2849  //   }
2850  // }
2851  "profiles": {},
2852
2853  // A map of log scopes to the desired log level.
2854  // Useful for filtering out noisy logs or enabling more verbose logging.
2855  //
2856  // Example: {"log": {"client": "warn"}}
2857  "log": {},
2858
2859  // Configuration for developer-oriented instrumentation tools that can be
2860  // toggled at runtime.
2861  "instrumentation": {
2862    // Performance profiler, accessed via the `omega: open performance profiler`
2863    // action. Collects timing data for foreground and background executor
2864    // tasks. Enabling this may lead to increased memory usage, hence it's
2865    // disabled by default for regular builds.
2866    "performance_profiler": {
2867      "enabled": false,
2868    },
2869  },
2870}
2871
Served at tenant.openagents/omega Member data and write actions are omitted.