# Settings

> User and Workspace settings, settings.json, precedence, and the settings Codevre understands.

Last updated: October 17, 2026
Source: https://codevre.com/docs/ide/settings

Open Settings with **Ctrl+,** (Cmd+, on Mac), the ⚙ button, or **File ▸ Preferences**. The Settings tool and the `settings.json` files are always in sync: change one and the other follows. You can also change any setting from the command palette by typing its name.

## How settings are layered

```
built-in defaults  →  User settings  →  Workspace settings
                     (your browser)     (.codevre/settings.json in the project)
```

The later layer wins, **key by key**. A Workspace file only overrides the keys it contains. Object settings such as `files.exclude` are merged entry by entry, so a Workspace `files.exclude` adds to your User one instead of replacing it.

With no project open, only User settings apply. When you close a project or open another, its Workspace settings are dropped, so one project's `vre.settings.root` never leaks into the next.

## User settings

Your settings for every project: theme, font size, layout preferences and so on.

- Stored in this browser's local storage (key `codevre-user-settings`).
- Other open Codevre tabs follow changes immediately.
- **Preferences ▸ User Settings** opens them. **Reset All** in the Settings tool restores the defaults, with Undo.

## Workspace settings

Settings for one project, stored in the project and saved with it:

1. `.codevre/settings.json`, or if that doesn't exist,
2. `.vscode/settings.json`.

Only the first one found is used; they aren't merged with each other. The format is **JSONC**: comments and trailing commas are fine. If you save a file with a syntax error, the last valid settings stay in effect until you fix it.

Open it with **Preferences ▸ Open Workspace settings.json**, or right-click the `.codevre` folder and choose **Create settings.json**.

```jsonc
{
  // Workspace settings for this project. They override your User settings,
  // key by key.
  "vre.preview.autoRun": true,
  "vre.settings.root": "",
  "vre.settings.Wait": 100,
  "vre.settings.ignoreFiles": []
}
```

### VS Code Live Server compatibility

Codevre reads Live Server's keys as aliases, so a project from VS Code works unchanged:

| Live Server key | Codevre key |
|---|---|
| `liveServer.settings.root` | `vre.settings.root` |
| `liveServer.settings.Wait` | `vre.settings.Wait` |
| `liveServer.settings.ignoreFiles` | `vre.settings.ignoreFiles` |

If both are set, the `vre.*` key wins.

## Which scope to use

| Put in **User** | Put in **Workspace** |
|---|---|
| Theme, font size, word wrap, minimap | `vre.*` preview settings |
| Default layout, header and status bar | `files.exclude` |
| AI provider and model | Anything only this project needs |

Project settings in User settings follow you into every other project and can break them. For example, `vre.settings.root: "public"` empties the preview of any project without a `public` folder. When the Agent changes a setting, `vre.*`, `liveServer.*` and `files.exclude` always go to the Workspace file.

When a change could go either way, some commands (such as **Color Theme**) write to the Workspace file only if the project already sets that key, and to User settings otherwise.

## Settings Codevre understands

### Preview (localhost:codevre)

| Key | Type | Default | Meaning |
|---|---|---|---|
| `vre.preview.autoRun` | boolean | `true` | Rerun a running preview after files change |
| `vre.settings.root` | string | `""` | Subfolder served as the preview's `/`, e.g. `public`. `""` or `.` means the project root. The folder must exist |
| `vre.settings.Wait` | number (ms) | `100` | Delay before rebuilding the preview after a change (0–10000) |
| `vre.settings.ignoreFiles` | string[] | `[]` | Globs whose changes don't reload the preview, e.g. `["**/*.md", "notes/**"]` |

See [localhost:codevre](localhost-codevre.md).

### Files

| Key | Type | Default | Meaning |
|---|---|---|---|
| `files.exclude` | object | `{ "**/.git": true }` | Glob → `true` hides matches from the Explorer and Search |

### Editor

Any Monaco option, as `editor.<option>` (one level of nesting, like `editor.minimap.enabled`).

| Key | Default |
|---|---|
| `editor.theme` | `dark-plus` (also `light-plus` and many more themes) |
| `editor.fontSize` | `14` |
| `editor.tabSize` | `2` |
| `editor.wordWrap` | `on` |
| `editor.minimap.enabled` | `true` |

### Workbench

| Key | Default | Meaning |
|---|---|---|
| `workbench.defaultLayout` | `code` | `code` or `agent`. User only |
| `workbench.header.visible` | `true` | Show the header bar |
| `workbench.statusBar.visible` | `true` | Show the status bar |
| `workbench.fileStatusBar` | `true` | Per-file status bars in editor panes |
| `workbench.compactDock` | `false` | Compact dock chrome |
| `workbench.tabs.connected` | `false` | Connected tab style |

### Diff

| Key | Default | Meaning |
|---|---|---|
| `diff.renderSideBySide` | `false` | Side-by-side diffs |
| `diff.gitOnly` | `false` | Only Git baselines |

### AI

All AI settings are User only. Keys aren't settings; they're saved to your Codevre account and never written to `settings.json`.

| Key | Default | Meaning |
|---|---|---|
| `ai.provider` | `openrouter` | The Agent's provider: `openrouter`, `anthropic`, `openai`, `gemini`, `xai` |
| `ai.openRouter.model`, `ai.anthropic.model`, `ai.openai.model`, `ai.gemini.model`, `ai.xai.model` | `""` | The Agent's model for each provider. An empty OpenRouter model uses the Default router (`openrouter/free`) |
| `ai.monacopilot.enabled` | `false` | Inline completions |
| `ai.monacopilot.delay` | `800` | Idle delay in ms (100–5000) |
| `ai.monacopilot.provider` | `chat` | Provider for completions. `chat` = same as the Agent |
| `ai.monacopilot.model` | `""` | Completion-only model. Empty = the provider's chat model |

Some Agent preferences, such as Chat/Agent mode, approvals, reasoning effort and recent models, are kept per browser rather than as settings. See [Agent settings](agent.md#agent-settings).

**This is a summary.** See [Settings reference](settings-reference.md) for every setting, including the cursor, suggestions, minimap and breadcrumbs.

## The Settings editor

- **User / Workspace tabs.** The active tab decides where a change is written. The Workspace tab is read-only with no project open, or while `settings.json` has a syntax error; a banner shows the line and column and an **Open settings.json** button.
- **Search** matches keys, titles, descriptions and values ("N Settings Found"). Ctrl+F focuses it; Esc clears it.
- **Modified** settings are marked. "(Also modified in: Workspace)" links to the other tab. The filter button shows modified settings only.
- **Setting a value equal to the inherited one removes the key** instead of writing a duplicate.
- Each setting's ⋯ menu (or right-click) has **Reset Setting**, **Apply to This Project** / **Apply to All Projects**, **Copy Setting ID**, **Copy Setting as JSON** and **Edit in settings.json**.
- The header ⋯ menu has **Reset All User Settings…** and **Reset All Workspace Settings…**, both with Undo for 8 seconds, plus **Open Workspace settings.json**.
- Changing a Workspace setting edits `settings.json` in place, keeping your comments, key order and formatting. If the project has no settings file, the first change creates `.codevre/settings.json`.
- Keys the editor doesn't know are listed under **Other** with their value.
- **Project › Project Settings** holds the project's name, description, tags, cover image, visibility and link. See [Files and projects](files-and-projects.md#project-settings).

The Settings tool lists every setting with its description. Use its search box, or ask the Agent to `list_settings`.
