@google/gemini-cli-core 0.48.0-preview.0 → 0.49.0-preview.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/dist/bundled/chrome-devtools-mcp.mjs +269 -17
  2. package/dist/docs/changelogs/index.md +3 -0
  3. package/dist/docs/changelogs/preview.md +52 -28
  4. package/dist/docs/cli/gemini-md.md +2 -0
  5. package/dist/docs/cli/plan-mode.md +1 -0
  6. package/dist/docs/cli/session-management.md +1 -0
  7. package/dist/docs/cli/system-prompt.md +2 -0
  8. package/dist/docs/cli/telemetry.md +5 -0
  9. package/dist/docs/ide-integration/ide-companion-spec.md +2 -0
  10. package/dist/docs/ide-integration/index.md +4 -0
  11. package/dist/docs/local-development.md +2 -0
  12. package/dist/docs/reference/commands.md +4 -0
  13. package/dist/docs/reference/configuration.md +194 -0
  14. package/dist/docs/release-confidence.md +6 -0
  15. package/dist/docs/releases.md +2 -0
  16. package/dist/docs/resources/quota-and-pricing.md +1 -0
  17. package/dist/docs/resources/troubleshooting.md +13 -0
  18. package/dist/docs/tools/ask-user.md +2 -0
  19. package/dist/docs/tools/mcp-server.md +1 -0
  20. package/dist/src/agents/agentLoader.d.ts +20 -20
  21. package/dist/src/agents/auth-provider/api-key-provider.d.ts +1 -1
  22. package/dist/src/agents/auth-provider/api-key-provider.js.map +1 -1
  23. package/dist/src/agents/auth-provider/google-credentials-provider.d.ts +1 -1
  24. package/dist/src/agents/auth-provider/google-credentials-provider.js.map +1 -1
  25. package/dist/src/agents/auth-provider/http-provider.d.ts +1 -1
  26. package/dist/src/agents/auth-provider/http-provider.js.map +1 -1
  27. package/dist/src/agents/auth-provider/oauth2-provider.d.ts +1 -1
  28. package/dist/src/agents/auth-provider/oauth2-provider.js.map +1 -1
  29. package/dist/src/agents/local-executor.js +5 -4
  30. package/dist/src/agents/local-executor.js.map +1 -1
  31. package/dist/src/code_assist/types.d.ts +20 -20
  32. package/dist/src/generated/git-commit.d.ts +2 -2
  33. package/dist/src/generated/git-commit.js +2 -2
  34. package/dist/src/ide/ide-client.js +4 -1
  35. package/dist/src/ide/ide-client.js.map +1 -1
  36. package/dist/src/policy/toml-loader.js +1 -1
  37. package/dist/src/policy/toml-loader.js.map +1 -1
  38. package/dist/src/scheduler/scheduler.js +1 -1
  39. package/dist/src/scheduler/scheduler.js.map +1 -1
  40. package/dist/src/services/executionLifecycleService.js +4 -1
  41. package/dist/src/services/executionLifecycleService.js.map +1 -1
  42. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.d.ts +1 -1
  43. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js +1 -1
  44. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js.map +1 -1
  45. package/dist/src/tools/mcp-client-manager.test.js +6 -6
  46. package/dist/src/tools/mcp-client-manager.test.js.map +1 -1
  47. package/dist/src/tools/mcp-client.js +5 -1
  48. package/dist/src/tools/mcp-client.js.map +1 -1
  49. package/dist/src/tools/tool-registry.js +1 -1
  50. package/dist/src/tools/tool-registry.js.map +1 -1
  51. package/dist/src/utils/editor.js +2 -1
  52. package/dist/src/utils/editor.js.map +1 -1
  53. package/dist/src/utils/filesearch/ignore.js +4 -1
  54. package/dist/src/utils/filesearch/ignore.js.map +1 -1
  55. package/dist/src/utils/gitIgnoreParser.js +4 -1
  56. package/dist/src/utils/gitIgnoreParser.js.map +1 -1
  57. package/dist/src/utils/googleQuotaErrors.js +1 -1
  58. package/dist/src/utils/googleQuotaErrors.js.map +1 -1
  59. package/dist/src/utils/ignoreFileParser.js +4 -1
  60. package/dist/src/utils/ignoreFileParser.js.map +1 -1
  61. package/dist/src/utils/llm-edit-fixer.js +2 -0
  62. package/dist/src/utils/llm-edit-fixer.js.map +1 -1
  63. package/dist/src/utils/schemaValidator.js +3 -2
  64. package/dist/src/utils/schemaValidator.js.map +1 -1
  65. package/dist/tsconfig.tsbuildinfo +1 -1
  66. package/package.json +76 -76
@@ -106,6 +106,7 @@ their corresponding top-level category object in your `settings.json` file.
106
106
  #### `general`
107
107
 
108
108
  - **`general.preferredEditor`** (enum):
109
+
109
110
  - **Description:** The preferred editor to open files in. Must be one of the
110
111
  built-in supported identifiers. Use /editor in the CLI to pick
111
112
  interactively, or leave unset to use $VISUAL/$EDITOR.
@@ -115,15 +116,18 @@ their corresponding top-level category object in your `settings.json` file.
115
116
  `"neovim"`, `"emacs"`, `"hx"`, `"emacsclient"`, `"micro"`
116
117
 
117
118
  - **`general.openEditorInNewWindow`** (boolean):
119
+
118
120
  - **Description:** Open VS Code-family editors in a new window when editing
119
121
  files.
120
122
  - **Default:** `false`
121
123
 
122
124
  - **`general.vimMode`** (boolean):
125
+
123
126
  - **Description:** Enable Vim keybindings
124
127
  - **Default:** `false`
125
128
 
126
129
  - **`general.defaultApprovalMode`** (enum):
130
+
127
131
  - **Description:** The default approval mode for tool execution. 'default'
128
132
  prompts for approval, 'auto_edit' auto-approves edit tools, and 'plan' is
129
133
  read-only mode. YOLO mode (auto-approve all actions) can only be enabled via
@@ -132,38 +136,46 @@ their corresponding top-level category object in your `settings.json` file.
132
136
  - **Values:** `"default"`, `"auto_edit"`, `"plan"`
133
137
 
134
138
  - **`general.devtools`** (boolean):
139
+
135
140
  - **Description:** Enable DevTools inspector on launch.
136
141
  - **Default:** `false`
137
142
 
138
143
  - **`general.enableAutoUpdate`** (boolean):
144
+
139
145
  - **Description:** Enable automatic updates.
140
146
  - **Default:** `true`
141
147
 
142
148
  - **`general.enableAutoUpdateNotification`** (boolean):
149
+
143
150
  - **Description:** Enable update notification prompts.
144
151
  - **Default:** `true`
145
152
 
146
153
  - **`general.enableNotifications`** (boolean):
154
+
147
155
  - **Description:** Enable terminal run-event notifications for action-required
148
156
  prompts and session completion.
149
157
  - **Default:** `false`
150
158
 
151
159
  - **`general.notificationMethod`** (enum):
160
+
152
161
  - **Description:** How to send terminal notifications.
153
162
  - **Default:** `"auto"`
154
163
  - **Values:** `"auto"`, `"osc9"`, `"osc777"`, `"bell"`
155
164
 
156
165
  - **`general.checkpointing.enabled`** (boolean):
166
+
157
167
  - **Description:** Enable session checkpointing for recovery
158
168
  - **Default:** `false`
159
169
  - **Requires restart:** Yes
160
170
 
161
171
  - **`general.plan.enabled`** (boolean):
172
+
162
173
  - **Description:** Enable Plan Mode for read-only safety during planning.
163
174
  - **Default:** `true`
164
175
  - **Requires restart:** Yes
165
176
 
166
177
  - **`general.plan.directory`** (string):
178
+
167
179
  - **Description:** The directory where planning artifacts are stored. If not
168
180
  specified, defaults to the system temporary directory. A custom directory
169
181
  requires a policy to allow write access in Plan Mode.
@@ -171,44 +183,53 @@ their corresponding top-level category object in your `settings.json` file.
171
183
  - **Requires restart:** Yes
172
184
 
173
185
  - **`general.plan.modelRouting`** (boolean):
186
+
174
187
  - **Description:** Automatically switch between Pro and Flash models based on
175
188
  Plan Mode status. Uses Pro for the planning phase and Flash for the
176
189
  implementation phase.
177
190
  - **Default:** `true`
178
191
 
179
192
  - **`general.retryFetchErrors`** (boolean):
193
+
180
194
  - **Description:** Retry on "exception TypeError: fetch failed sending
181
195
  request" errors.
182
196
  - **Default:** `true`
183
197
 
184
198
  - **`general.maxAttempts`** (number):
199
+
185
200
  - **Description:** Maximum number of attempts for requests to the main chat
186
201
  model. Cannot exceed 10.
187
202
  - **Default:** `10`
188
203
 
189
204
  - **`general.debugKeystrokeLogging`** (boolean):
205
+
190
206
  - **Description:** Enable debug logging of keystrokes to the console.
191
207
  - **Default:** `false`
192
208
 
193
209
  - **`general.sessionRetention.enabled`** (boolean):
210
+
194
211
  - **Description:** Enable automatic session cleanup
195
212
  - **Default:** `true`
196
213
 
197
214
  - **`general.sessionRetention.maxAge`** (string):
215
+
198
216
  - **Description:** Automatically delete chats older than this time period
199
217
  (e.g., "30d", "7d", "24h", "1w")
200
218
  - **Default:** `"30d"`
201
219
 
202
220
  - **`general.sessionRetention.maxCount`** (number):
221
+
203
222
  - **Description:** Alternative: Maximum number of sessions to keep (most
204
223
  recent)
205
224
  - **Default:** `undefined`
206
225
 
207
226
  - **`general.sessionRetention.minRetention`** (string):
227
+
208
228
  - **Description:** Minimum retention period (safety limit, defaults to "1d")
209
229
  - **Default:** `"1d"`
210
230
 
211
231
  - **`general.topicUpdateNarration`** (boolean):
232
+
212
233
  - **Description:** Enable the Topic & Update communication model for reduced
213
234
  chattiness and structured progress reporting.
214
235
  - **Default:** `true`
@@ -228,163 +249,198 @@ their corresponding top-level category object in your `settings.json` file.
228
249
  #### `ui`
229
250
 
230
251
  - **`ui.debugRainbow`** (boolean):
252
+
231
253
  - **Description:** Enable debug rainbow rendering. Only useful for debugging
232
254
  rendering bugs and performance issues.
233
255
  - **Default:** `false`
234
256
  - **Requires restart:** Yes
235
257
 
236
258
  - **`ui.theme`** (string):
259
+
237
260
  - **Description:** The color theme for the UI. See the CLI themes guide for
238
261
  available options.
239
262
  - **Default:** `undefined`
240
263
 
241
264
  - **`ui.autoThemeSwitching`** (boolean):
265
+
242
266
  - **Description:** Automatically switch between default light and dark themes
243
267
  based on terminal background color.
244
268
  - **Default:** `true`
245
269
 
246
270
  - **`ui.terminalBackgroundPollingInterval`** (number):
271
+
247
272
  - **Description:** Interval in seconds to poll the terminal background color.
248
273
  - **Default:** `60`
249
274
 
250
275
  - **`ui.customThemes`** (object):
276
+
251
277
  - **Description:** Custom theme definitions.
252
278
  - **Default:** `{}`
253
279
 
254
280
  - **`ui.hideWindowTitle`** (boolean):
281
+
255
282
  - **Description:** Hide the window title bar
256
283
  - **Default:** `false`
257
284
  - **Requires restart:** Yes
258
285
 
259
286
  - **`ui.inlineThinkingMode`** (enum):
287
+
260
288
  - **Description:** Display model thinking inline: off or full.
261
289
  - **Default:** `"off"`
262
290
  - **Values:** `"off"`, `"full"`
263
291
 
264
292
  - **`ui.showStatusInTitle`** (boolean):
293
+
265
294
  - **Description:** Show Gemini CLI model thoughts in the terminal window title
266
295
  during the working phase
267
296
  - **Default:** `false`
268
297
 
269
298
  - **`ui.dynamicWindowTitle`** (boolean):
299
+
270
300
  - **Description:** Update the terminal window title with current status icons
271
301
  (Ready: ◇, Action Required: ✋, Working: ✦)
272
302
  - **Default:** `true`
273
303
 
274
304
  - **`ui.showHomeDirectoryWarning`** (boolean):
305
+
275
306
  - **Description:** Show a warning when running Gemini CLI in the home
276
307
  directory.
277
308
  - **Default:** `true`
278
309
  - **Requires restart:** Yes
279
310
 
280
311
  - **`ui.showCompatibilityWarnings`** (boolean):
312
+
281
313
  - **Description:** Show warnings about terminal or OS compatibility issues.
282
314
  - **Default:** `true`
283
315
  - **Requires restart:** Yes
284
316
 
285
317
  - **`ui.hideTips`** (boolean):
318
+
286
319
  - **Description:** Hide helpful tips in the UI
287
320
  - **Default:** `false`
288
321
 
289
322
  - **`ui.escapePastedAtSymbols`** (boolean):
323
+
290
324
  - **Description:** When enabled, @ symbols in pasted text are escaped to
291
325
  prevent unintended @path expansion.
292
326
  - **Default:** `false`
293
327
 
294
328
  - **`ui.showShortcutsHint`** (boolean):
329
+
295
330
  - **Description:** Show the "? for shortcuts" hint above the input.
296
331
  - **Default:** `true`
297
332
 
298
333
  - **`ui.compactToolOutput`** (boolean):
334
+
299
335
  - **Description:** Display tool outputs (like directory listings and file
300
336
  reads) in a compact, structured format.
301
337
  - **Default:** `true`
302
338
 
303
339
  - **`ui.hideBanner`** (boolean):
340
+
304
341
  - **Description:** Hide the application banner
305
342
  - **Default:** `false`
306
343
 
307
344
  - **`ui.hideContextSummary`** (boolean):
345
+
308
346
  - **Description:** Hide the context summary (GEMINI.md, MCP servers) above the
309
347
  input.
310
348
  - **Default:** `false`
311
349
 
312
350
  - **`ui.footer.items`** (array):
351
+
313
352
  - **Description:** List of item IDs to display in the footer. Rendered in
314
353
  order
315
354
  - **Default:** `undefined`
316
355
 
317
356
  - **`ui.footer.showLabels`** (boolean):
357
+
318
358
  - **Description:** Display a second line above the footer items with
319
359
  descriptive headers (e.g., /model).
320
360
  - **Default:** `true`
321
361
 
322
362
  - **`ui.footer.hideCWD`** (boolean):
363
+
323
364
  - **Description:** Hide the current working directory in the footer.
324
365
  - **Default:** `false`
325
366
 
326
367
  - **`ui.footer.hideSandboxStatus`** (boolean):
368
+
327
369
  - **Description:** Hide the sandbox status indicator in the footer.
328
370
  - **Default:** `false`
329
371
 
330
372
  - **`ui.footer.hideModelInfo`** (boolean):
373
+
331
374
  - **Description:** Hide the model name and context usage in the footer.
332
375
  - **Default:** `false`
333
376
 
334
377
  - **`ui.footer.hideContextPercentage`** (boolean):
378
+
335
379
  - **Description:** Hides the context window usage percentage.
336
380
  - **Default:** `true`
337
381
 
338
382
  - **`ui.hideFooter`** (boolean):
383
+
339
384
  - **Description:** Hide the footer from the UI
340
385
  - **Default:** `false`
341
386
 
342
387
  - **`ui.collapseDrawerDuringApproval`** (boolean):
388
+
343
389
  - **Description:** Whether to collapse the UI drawer when a tool is awaiting
344
390
  confirmation.
345
391
  - **Default:** `true`
346
392
 
347
393
  - **`ui.showMemoryUsage`** (boolean):
394
+
348
395
  - **Description:** Display memory usage information in the UI
349
396
  - **Default:** `false`
350
397
 
351
398
  - **`ui.showLineNumbers`** (boolean):
399
+
352
400
  - **Description:** Show line numbers in the chat.
353
401
  - **Default:** `true`
354
402
 
355
403
  - **`ui.showCitations`** (boolean):
404
+
356
405
  - **Description:** Show citations for generated text in the chat.
357
406
  - **Default:** `false`
358
407
 
359
408
  - **`ui.showModelInfoInChat`** (boolean):
409
+
360
410
  - **Description:** Show the model name in the chat for each model turn.
361
411
  - **Default:** `false`
362
412
 
363
413
  - **`ui.showUserIdentity`** (boolean):
414
+
364
415
  - **Description:** Show the signed-in user's identity (e.g. email) in the UI.
365
416
  - **Default:** `true`
366
417
 
367
418
  - **`ui.useAlternateBuffer`** (boolean):
419
+
368
420
  - **Description:** Use an alternate screen buffer for the UI, preserving shell
369
421
  history.
370
422
  - **Default:** `false`
371
423
  - **Requires restart:** Yes
372
424
 
373
425
  - **`ui.renderProcess`** (boolean):
426
+
374
427
  - **Description:** Enable Ink render process for the UI.
375
428
  - **Default:** `true`
376
429
  - **Requires restart:** Yes
377
430
 
378
431
  - **`ui.terminalBuffer`** (boolean):
432
+
379
433
  - **Description:** Use the new terminal buffer architecture for rendering.
380
434
  - **Default:** `false`
381
435
  - **Requires restart:** Yes
382
436
 
383
437
  - **`ui.useBackgroundColor`** (boolean):
438
+
384
439
  - **Description:** Whether to use background colors in the UI.
385
440
  - **Default:** `true`
386
441
 
387
442
  - **`ui.incrementalRendering`** (boolean):
443
+
388
444
  - **Description:** Enable incremental rendering for the UI. This option will
389
445
  reduce flickering but may cause rendering artifacts. Only supported when
390
446
  useAlternateBuffer is enabled.
@@ -392,27 +448,32 @@ their corresponding top-level category object in your `settings.json` file.
392
448
  - **Requires restart:** Yes
393
449
 
394
450
  - **`ui.showSpinner`** (boolean):
451
+
395
452
  - **Description:** Show the spinner during operations.
396
453
  - **Default:** `true`
397
454
 
398
455
  - **`ui.loadingPhrases`** (enum):
456
+
399
457
  - **Description:** What to show while the model is working: tips, witty
400
458
  comments, all, or off.
401
459
  - **Default:** `"off"`
402
460
  - **Values:** `"tips"`, `"witty"`, `"all"`, `"off"`
403
461
 
404
462
  - **`ui.errorVerbosity`** (enum):
463
+
405
464
  - **Description:** Controls whether recoverable errors are hidden (low) or
406
465
  fully shown (full).
407
466
  - **Default:** `"low"`
408
467
  - **Values:** `"low"`, `"full"`
409
468
 
410
469
  - **`ui.customWittyPhrases`** (array):
470
+
411
471
  - **Description:** Custom witty phrases to display during loading. When
412
472
  provided, the CLI cycles through these instead of the defaults.
413
473
  - **Default:** `[]`
414
474
 
415
475
  - **`ui.accessibility.enableLoadingPhrases`** (boolean):
476
+
416
477
  - **Description:** @deprecated Use ui.loadingPhrases instead. Enable loading
417
478
  phrases during operations.
418
479
  - **Default:** `true`
@@ -427,6 +488,7 @@ their corresponding top-level category object in your `settings.json` file.
427
488
  #### `ide`
428
489
 
429
490
  - **`ide.enabled`** (boolean):
491
+
430
492
  - **Description:** Enable IDE integration mode.
431
493
  - **Default:** `false`
432
494
  - **Requires restart:** Yes
@@ -445,6 +507,7 @@ their corresponding top-level category object in your `settings.json` file.
445
507
  #### `billing`
446
508
 
447
509
  - **`billing.overageStrategy`** (enum):
510
+
448
511
  - **Description:** How to handle quota exhaustion when AI credits are
449
512
  available. 'ask' prompts each time, 'always' automatically uses credits,
450
513
  'never' disables credit usage.
@@ -452,6 +515,7 @@ their corresponding top-level category object in your `settings.json` file.
452
515
  - **Values:** `"ask"`, `"always"`, `"never"`
453
516
 
454
517
  - **`billing.vertexAi.requestType`** (enum):
518
+
455
519
  - **Description:** Sets the X-Vertex-AI-LLM-Request-Type header for Vertex AI
456
520
  requests.
457
521
  - **Default:** `undefined`
@@ -468,27 +532,32 @@ their corresponding top-level category object in your `settings.json` file.
468
532
  #### `model`
469
533
 
470
534
  - **`model.name`** (string):
535
+
471
536
  - **Description:** The Gemini model to use for conversations.
472
537
  - **Default:** `undefined`
473
538
 
474
539
  - **`model.maxSessionTurns`** (number):
540
+
475
541
  - **Description:** Maximum number of user/model/tool turns to keep in a
476
542
  session. -1 means unlimited.
477
543
  - **Default:** `-1`
478
544
 
479
545
  - **`model.summarizeToolOutput`** (object):
546
+
480
547
  - **Description:** Enables or disables summarization of tool output. Configure
481
548
  per-tool token budgets (for example {"run_shell_command": {"tokenBudget":
482
549
  2000}}). Currently only the run_shell_command tool supports summarization.
483
550
  - **Default:** `undefined`
484
551
 
485
552
  - **`model.compressionThreshold`** (number):
553
+
486
554
  - **Description:** The fraction of context usage at which to trigger context
487
555
  compression (e.g. 0.2, 0.3).
488
556
  - **Default:** `0.5`
489
557
  - **Requires restart:** Yes
490
558
 
491
559
  - **`model.disableLoopDetection`** (boolean):
560
+
492
561
  - **Description:** Disable automatic detection and prevention of infinite
493
562
  loops.
494
563
  - **Default:** `false`
@@ -501,6 +570,7 @@ their corresponding top-level category object in your `settings.json` file.
501
570
  #### `modelConfigs`
502
571
 
503
572
  - **`modelConfigs.aliases`** (object):
573
+
504
574
  - **Description:** Named presets for model configs. Can be used in place of a
505
575
  model name and can inherit from other aliases using an `extends` property.
506
576
  - **Default:**
@@ -808,22 +878,26 @@ their corresponding top-level category object in your `settings.json` file.
808
878
  ```
809
879
 
810
880
  - **`modelConfigs.customAliases`** (object):
881
+
811
882
  - **Description:** Custom named presets for model configs. These are merged
812
883
  with (and override) the built-in aliases.
813
884
  - **Default:** `{}`
814
885
 
815
886
  - **`modelConfigs.customOverrides`** (array):
887
+
816
888
  - **Description:** Custom model config overrides. These are merged with (and
817
889
  added to) the built-in overrides.
818
890
  - **Default:** `[]`
819
891
 
820
892
  - **`modelConfigs.overrides`** (array):
893
+
821
894
  - **Description:** Apply specific configuration overrides based on matches,
822
895
  with a primary key of model (or alias). The most specific match will be
823
896
  used.
824
897
  - **Default:** `[]`
825
898
 
826
899
  - **`modelConfigs.modelDefinitions`** (object):
900
+
827
901
  - **Description:** Registry of model metadata, including tier, family, and
828
902
  features.
829
903
  - **Default:**
@@ -997,6 +1071,7 @@ their corresponding top-level category object in your `settings.json` file.
997
1071
  - **Requires restart:** Yes
998
1072
 
999
1073
  - **`modelConfigs.modelIdResolutions`** (object):
1074
+
1000
1075
  - **Description:** Rules for resolving requested model names to concrete model
1001
1076
  IDs based on context.
1002
1077
  - **Default:**
@@ -1213,6 +1288,7 @@ their corresponding top-level category object in your `settings.json` file.
1213
1288
  - **Requires restart:** Yes
1214
1289
 
1215
1290
  - **`modelConfigs.classifierIdResolutions`** (object):
1291
+
1216
1292
  - **Description:** Rules for resolving classifier tiers (flash, pro) to
1217
1293
  concrete model IDs.
1218
1294
  - **Default:**
@@ -1278,6 +1354,7 @@ their corresponding top-level category object in your `settings.json` file.
1278
1354
  - **Requires restart:** Yes
1279
1355
 
1280
1356
  - **`modelConfigs.modelChains`** (object):
1357
+
1281
1358
  - **Description:** Availability policy chains defining fallback behavior for
1282
1359
  models.
1283
1360
  - **Default:**
@@ -1478,34 +1555,40 @@ their corresponding top-level category object in your `settings.json` file.
1478
1555
  #### `agents`
1479
1556
 
1480
1557
  - **`agents.overrides`** (object):
1558
+
1481
1559
  - **Description:** Override settings for specific agents, e.g. to disable the
1482
1560
  agent, set a custom model config, or run config.
1483
1561
  - **Default:** `{}`
1484
1562
  - **Requires restart:** Yes
1485
1563
 
1486
1564
  - **`agents.browser.sessionMode`** (enum):
1565
+
1487
1566
  - **Description:** Session mode: 'persistent', 'isolated', or 'existing'.
1488
1567
  - **Default:** `"persistent"`
1489
1568
  - **Values:** `"persistent"`, `"isolated"`, `"existing"`
1490
1569
  - **Requires restart:** Yes
1491
1570
 
1492
1571
  - **`agents.browser.headless`** (boolean):
1572
+
1493
1573
  - **Description:** Run browser in headless mode.
1494
1574
  - **Default:** `false`
1495
1575
  - **Requires restart:** Yes
1496
1576
 
1497
1577
  - **`agents.browser.profilePath`** (string):
1578
+
1498
1579
  - **Description:** Path to browser profile directory for session persistence.
1499
1580
  - **Default:** `undefined`
1500
1581
  - **Requires restart:** Yes
1501
1582
 
1502
1583
  - **`agents.browser.visualModel`** (string):
1584
+
1503
1585
  - **Description:** Model for the visual agent's analyze_screenshot tool. When
1504
1586
  set, enables the tool.
1505
1587
  - **Default:** `undefined`
1506
1588
  - **Requires restart:** Yes
1507
1589
 
1508
1590
  - **`agents.browser.allowedDomains`** (array):
1591
+
1509
1592
  - **Description:** A list of allowed domains for the browser agent (e.g.,
1510
1593
  ["github.com", "*.google.com"]).
1511
1594
  - **Default:**
@@ -1517,15 +1600,18 @@ their corresponding top-level category object in your `settings.json` file.
1517
1600
  - **Requires restart:** Yes
1518
1601
 
1519
1602
  - **`agents.browser.disableUserInput`** (boolean):
1603
+
1520
1604
  - **Description:** Disable user input on browser window during automation.
1521
1605
  - **Default:** `true`
1522
1606
 
1523
1607
  - **`agents.browser.maxActionsPerTask`** (number):
1608
+
1524
1609
  - **Description:** The maximum number of tool calls allowed per browser task.
1525
1610
  Enforcement is hard: the agent will be terminated when the limit is reached.
1526
1611
  - **Default:** `100`
1527
1612
 
1528
1613
  - **`agents.browser.confirmSensitiveActions`** (boolean):
1614
+
1529
1615
  - **Description:** Require manual confirmation for sensitive browser actions
1530
1616
  (e.g., fill_form, evaluate_script).
1531
1617
  - **Default:** `false`
@@ -1539,24 +1625,29 @@ their corresponding top-level category object in your `settings.json` file.
1539
1625
  #### `context`
1540
1626
 
1541
1627
  - **`context.fileName`** (string | string[]):
1628
+
1542
1629
  - **Description:** The name of the context file or files to load into memory.
1543
1630
  Accepts either a single string or an array of strings.
1544
1631
  - **Default:** `undefined`
1545
1632
 
1546
1633
  - **`context.importFormat`** (string):
1634
+
1547
1635
  - **Description:** The format to use when importing memory.
1548
1636
  - **Default:** `undefined`
1549
1637
 
1550
1638
  - **`context.includeDirectoryTree`** (boolean):
1639
+
1551
1640
  - **Description:** Whether to include the directory tree of the current
1552
1641
  working directory in the initial request to the model.
1553
1642
  - **Default:** `true`
1554
1643
 
1555
1644
  - **`context.discoveryMaxDirs`** (number):
1645
+
1556
1646
  - **Description:** Maximum number of directories to search for memory.
1557
1647
  - **Default:** `200`
1558
1648
 
1559
1649
  - **`context.memoryBoundaryMarkers`** (array):
1650
+
1560
1651
  - **Description:** File or directory names that mark the boundary for
1561
1652
  GEMINI.md discovery. The upward traversal stops at the first directory
1562
1653
  containing any of these markers. An empty array disables parent traversal.
@@ -1569,39 +1660,46 @@ their corresponding top-level category object in your `settings.json` file.
1569
1660
  - **Requires restart:** Yes
1570
1661
 
1571
1662
  - **`context.includeDirectories`** (array):
1663
+
1572
1664
  - **Description:** Additional directories to include in the workspace context.
1573
1665
  Missing directories will be skipped with a warning.
1574
1666
  - **Default:** `[]`
1575
1667
 
1576
1668
  - **`context.loadMemoryFromIncludeDirectories`** (boolean):
1669
+
1577
1670
  - **Description:** Controls how /memory reload loads GEMINI.md files. When
1578
1671
  true, include directories are scanned; when false, only the current
1579
1672
  directory is used.
1580
1673
  - **Default:** `false`
1581
1674
 
1582
1675
  - **`context.fileFiltering.respectGitIgnore`** (boolean):
1676
+
1583
1677
  - **Description:** Respect .gitignore files when searching.
1584
1678
  - **Default:** `true`
1585
1679
  - **Requires restart:** Yes
1586
1680
 
1587
1681
  - **`context.fileFiltering.respectGeminiIgnore`** (boolean):
1682
+
1588
1683
  - **Description:** Respect .geminiignore files when searching.
1589
1684
  - **Default:** `true`
1590
1685
  - **Requires restart:** Yes
1591
1686
 
1592
1687
  - **`context.fileFiltering.enableFileWatcher`** (boolean):
1688
+
1593
1689
  - **Description:** Enable file watcher updates for @ file suggestions
1594
1690
  (experimental).
1595
1691
  - **Default:** `false`
1596
1692
  - **Requires restart:** Yes
1597
1693
 
1598
1694
  - **`context.fileFiltering.enableRecursiveFileSearch`** (boolean):
1695
+
1599
1696
  - **Description:** Enable recursive file search functionality when completing
1600
1697
  @ references in the prompt.
1601
1698
  - **Default:** `true`
1602
1699
  - **Requires restart:** Yes
1603
1700
 
1604
1701
  - **`context.fileFiltering.enableFuzzySearch`** (boolean):
1702
+
1605
1703
  - **Description:** Enable fuzzy search when searching for files.
1606
1704
  - **Default:** `true`
1607
1705
  - **Requires restart:** Yes
@@ -1617,6 +1715,7 @@ their corresponding top-level category object in your `settings.json` file.
1617
1715
  #### `tools`
1618
1716
 
1619
1717
  - **`tools.sandbox`** (string):
1718
+
1620
1719
  - **Description:** Legacy full-process sandbox execution environment. Set to a
1621
1720
  boolean to enable or disable the sandbox, provide a string path to a sandbox
1622
1721
  profile, or specify an explicit sandbox command (e.g., "docker", "podman",
@@ -1625,23 +1724,27 @@ their corresponding top-level category object in your `settings.json` file.
1625
1724
  - **Requires restart:** Yes
1626
1725
 
1627
1726
  - **`tools.sandboxAllowedPaths`** (array):
1727
+
1628
1728
  - **Description:** List of additional paths that the sandbox is allowed to
1629
1729
  access.
1630
1730
  - **Default:** `[]`
1631
1731
  - **Requires restart:** Yes
1632
1732
 
1633
1733
  - **`tools.sandboxNetworkAccess`** (boolean):
1734
+
1634
1735
  - **Description:** Whether the sandbox is allowed to access the network.
1635
1736
  - **Default:** `false`
1636
1737
  - **Requires restart:** Yes
1637
1738
 
1638
1739
  - **`tools.shell.enableInteractiveShell`** (boolean):
1740
+
1639
1741
  - **Description:** Use node-pty for an interactive shell experience. Fallback
1640
1742
  to child_process still applies.
1641
1743
  - **Default:** `true`
1642
1744
  - **Requires restart:** Yes
1643
1745
 
1644
1746
  - **`tools.shell.backgroundCompletionBehavior`** (enum):
1747
+
1645
1748
  - **Description:** Controls what happens when a background shell command
1646
1749
  finishes. 'silent' (default): quietly exits in background. 'inject':
1647
1750
  automatically returns output to agent. 'notify': shows brief message in
@@ -1650,25 +1753,30 @@ their corresponding top-level category object in your `settings.json` file.
1650
1753
  - **Values:** `"silent"`, `"inject"`, `"notify"`
1651
1754
 
1652
1755
  - **`tools.shell.pager`** (string):
1756
+
1653
1757
  - **Description:** The pager command to use for shell output. Defaults to
1654
1758
  `cat`.
1655
1759
  - **Default:** `"cat"`
1656
1760
 
1657
1761
  - **`tools.shell.showColor`** (boolean):
1762
+
1658
1763
  - **Description:** Show color in shell output.
1659
1764
  - **Default:** `true`
1660
1765
 
1661
1766
  - **`tools.shell.inactivityTimeout`** (number):
1767
+
1662
1768
  - **Description:** The maximum time in seconds allowed without output from the
1663
1769
  shell command. Defaults to 5 minutes.
1664
1770
  - **Default:** `300`
1665
1771
 
1666
1772
  - **`tools.shell.enableShellOutputEfficiency`** (boolean):
1773
+
1667
1774
  - **Description:** Enable shell output efficiency optimizations for better
1668
1775
  performance.
1669
1776
  - **Default:** `true`
1670
1777
 
1671
1778
  - **`tools.core`** (array):
1779
+
1672
1780
  - **Description:** Restrict the set of built-in tools with an allowlist. Match
1673
1781
  semantics mirror tools.allowed; see the built-in tools documentation for
1674
1782
  available names.
@@ -1676,6 +1784,7 @@ their corresponding top-level category object in your `settings.json` file.
1676
1784
  - **Requires restart:** Yes
1677
1785
 
1678
1786
  - **`tools.allowed`** (array):
1787
+
1679
1788
  - **Description:** Tool names that bypass the confirmation dialog. Useful for
1680
1789
  trusted commands (for example ["run_shell_command(git)",
1681
1790
  "run_shell_command(npm test)"]). See shell tool command restrictions for
@@ -1684,22 +1793,26 @@ their corresponding top-level category object in your `settings.json` file.
1684
1793
  - **Requires restart:** Yes
1685
1794
 
1686
1795
  - **`tools.confirmationRequired`** (array):
1796
+
1687
1797
  - **Description:** Tool names that always require user confirmation. Takes
1688
1798
  precedence over allowed tools and core tool allowlists.
1689
1799
  - **Default:** `undefined`
1690
1800
  - **Requires restart:** Yes
1691
1801
 
1692
1802
  - **`tools.exclude`** (array):
1803
+
1693
1804
  - **Description:** Tool names to exclude from discovery.
1694
1805
  - **Default:** `undefined`
1695
1806
  - **Requires restart:** Yes
1696
1807
 
1697
1808
  - **`tools.discoveryCommand`** (string):
1809
+
1698
1810
  - **Description:** Command to run for tool discovery.
1699
1811
  - **Default:** `undefined`
1700
1812
  - **Requires restart:** Yes
1701
1813
 
1702
1814
  - **`tools.callCommand`** (string):
1815
+
1703
1816
  - **Description:** Defines a custom shell command for invoking discovered
1704
1817
  tools. The command must take the tool name as the first argument, read JSON
1705
1818
  arguments from stdin, and emit JSON results on stdout.
@@ -1707,11 +1820,13 @@ their corresponding top-level category object in your `settings.json` file.
1707
1820
  - **Requires restart:** Yes
1708
1821
 
1709
1822
  - **`tools.useRipgrep`** (boolean):
1823
+
1710
1824
  - **Description:** Use ripgrep for file content search instead of the fallback
1711
1825
  implementation. Provides faster search performance.
1712
1826
  - **Default:** `true`
1713
1827
 
1714
1828
  - **`tools.truncateToolOutputThreshold`** (number):
1829
+
1715
1830
  - **Description:** Maximum characters to show when truncating large tool
1716
1831
  outputs. Set to 0 or negative to disable truncation.
1717
1832
  - **Default:** `40000`
@@ -1727,11 +1842,13 @@ their corresponding top-level category object in your `settings.json` file.
1727
1842
  #### `mcp`
1728
1843
 
1729
1844
  - **`mcp.serverCommand`** (string):
1845
+
1730
1846
  - **Description:** Command to start an MCP server.
1731
1847
  - **Default:** `undefined`
1732
1848
  - **Requires restart:** Yes
1733
1849
 
1734
1850
  - **`mcp.allowed`** (array):
1851
+
1735
1852
  - **Description:** A list of MCP servers to allow.
1736
1853
  - **Default:** `undefined`
1737
1854
  - **Requires restart:** Yes
@@ -1750,38 +1867,45 @@ their corresponding top-level category object in your `settings.json` file.
1750
1867
  #### `security`
1751
1868
 
1752
1869
  - **`security.toolSandboxing`** (boolean):
1870
+
1753
1871
  - **Description:** Tool-level sandboxing. Isolates individual tools instead of
1754
1872
  the entire CLI process.
1755
1873
  - **Default:** `false`
1756
1874
  - **Requires restart:** Yes
1757
1875
 
1758
1876
  - **`security.disableYoloMode`** (boolean):
1877
+
1759
1878
  - **Description:** Disable YOLO mode, even if enabled by a flag.
1760
1879
  - **Default:** `false`
1761
1880
  - **Requires restart:** Yes
1762
1881
 
1763
1882
  - **`security.disableAlwaysAllow`** (boolean):
1883
+
1764
1884
  - **Description:** Disable "Always allow" options in tool confirmation
1765
1885
  dialogs.
1766
1886
  - **Default:** `false`
1767
1887
  - **Requires restart:** Yes
1768
1888
 
1769
1889
  - **`security.enablePermanentToolApproval`** (boolean):
1890
+
1770
1891
  - **Description:** Enable the "Allow for all future sessions" option in tool
1771
1892
  confirmation dialogs.
1772
1893
  - **Default:** `false`
1773
1894
 
1774
1895
  - **`security.autoAddToPolicyByDefault`** (boolean):
1896
+
1775
1897
  - **Description:** When enabled, the "Allow for all future sessions" option
1776
1898
  becomes the default choice for low-risk tools in trusted workspaces.
1777
1899
  - **Default:** `false`
1778
1900
 
1779
1901
  - **`security.blockGitExtensions`** (boolean):
1902
+
1780
1903
  - **Description:** Blocks installing and loading extensions from Git.
1781
1904
  - **Default:** `false`
1782
1905
  - **Requires restart:** Yes
1783
1906
 
1784
1907
  - **`security.allowedExtensions`** (array):
1908
+
1785
1909
  - **Description:** List of Regex patterns for allowed extensions. If nonempty,
1786
1910
  only extensions that match the patterns in this list are allowed. Overrides
1787
1911
  the blockGitExtensions setting.
@@ -1789,38 +1913,45 @@ their corresponding top-level category object in your `settings.json` file.
1789
1913
  - **Requires restart:** Yes
1790
1914
 
1791
1915
  - **`security.folderTrust.enabled`** (boolean):
1916
+
1792
1917
  - **Description:** Setting to track whether Folder trust is enabled.
1793
1918
  - **Default:** `true`
1794
1919
  - **Requires restart:** Yes
1795
1920
 
1796
1921
  - **`security.environmentVariableRedaction.allowed`** (array):
1922
+
1797
1923
  - **Description:** Environment variables to always allow (bypass redaction).
1798
1924
  - **Default:** `[]`
1799
1925
  - **Requires restart:** Yes
1800
1926
 
1801
1927
  - **`security.environmentVariableRedaction.blocked`** (array):
1928
+
1802
1929
  - **Description:** Environment variables to always redact.
1803
1930
  - **Default:** `[]`
1804
1931
  - **Requires restart:** Yes
1805
1932
 
1806
1933
  - **`security.environmentVariableRedaction.enabled`** (boolean):
1934
+
1807
1935
  - **Description:** Enable redaction of environment variables that may contain
1808
1936
  secrets.
1809
1937
  - **Default:** `false`
1810
1938
  - **Requires restart:** Yes
1811
1939
 
1812
1940
  - **`security.auth.selectedType`** (string):
1941
+
1813
1942
  - **Description:** The currently selected authentication type.
1814
1943
  - **Default:** `undefined`
1815
1944
  - **Requires restart:** Yes
1816
1945
 
1817
1946
  - **`security.auth.enforcedType`** (string):
1947
+
1818
1948
  - **Description:** The required auth type. If this does not match the selected
1819
1949
  auth type, the user will be prompted to re-authenticate.
1820
1950
  - **Default:** `undefined`
1821
1951
  - **Requires restart:** Yes
1822
1952
 
1823
1953
  - **`security.auth.useExternal`** (boolean):
1954
+
1824
1955
  - **Description:** Whether to use an external authentication flow.
1825
1956
  - **Default:** `undefined`
1826
1957
  - **Requires restart:** Yes
@@ -1836,6 +1967,7 @@ their corresponding top-level category object in your `settings.json` file.
1836
1967
  #### `advanced`
1837
1968
 
1838
1969
  - **`advanced.autoConfigureMemory`** (boolean):
1970
+
1839
1971
  - **Description:** Automatically configure Node.js memory limits. Note:
1840
1972
  Because memory is allocated during the initial process boot, this setting is
1841
1973
  only read from the global user settings file and ignores workspace-level
@@ -1844,11 +1976,13 @@ their corresponding top-level category object in your `settings.json` file.
1844
1976
  - **Requires restart:** Yes
1845
1977
 
1846
1978
  - **`advanced.dnsResolutionOrder`** (string):
1979
+
1847
1980
  - **Description:** The DNS resolution order.
1848
1981
  - **Default:** `undefined`
1849
1982
  - **Requires restart:** Yes
1850
1983
 
1851
1984
  - **`advanced.excludedEnvVars`** (array):
1985
+
1852
1986
  - **Description:** Environment variables to exclude from project context.
1853
1987
  - **Default:**
1854
1988
 
@@ -1857,6 +1991,7 @@ their corresponding top-level category object in your `settings.json` file.
1857
1991
  ```
1858
1992
 
1859
1993
  - **`advanced.ignoreLocalEnv`** (boolean):
1994
+
1860
1995
  - **Description:** Whether to ignore generic .env files in the project
1861
1996
  directory.
1862
1997
  - **Default:** `false`
@@ -1869,21 +2004,25 @@ their corresponding top-level category object in your `settings.json` file.
1869
2004
  #### `experimental`
1870
2005
 
1871
2006
  - **`experimental.gemma`** (boolean):
2007
+
1872
2008
  - **Description:** Enable access to Gemma 4 models via Gemini API.
1873
2009
  - **Default:** `true`
1874
2010
  - **Requires restart:** Yes
1875
2011
 
1876
2012
  - **`experimental.voiceMode`** (boolean):
2013
+
1877
2014
  - **Description:** Enable experimental voice dictation and commands (/voice,
1878
2015
  /voice model).
1879
2016
  - **Default:** `false`
1880
2017
 
1881
2018
  - **`experimental.voice.activationMode`** (enum):
2019
+
1882
2020
  - **Description:** How to trigger voice recording with the Space key.
1883
2021
  - **Default:** `"push-to-talk"`
1884
2022
  - **Values:** `"push-to-talk"`, `"toggle"`
1885
2023
 
1886
2024
  - **`experimental.voice.backend`** (enum):
2025
+
1887
2026
  - **Description:** The backend to use for voice transcription. Note: When
1888
2027
  using the Gemini Live backend, voice recordings are sent to Google Cloud for
1889
2028
  transcription.
@@ -1891,138 +2030,163 @@ their corresponding top-level category object in your `settings.json` file.
1891
2030
  - **Values:** `"gemini-live"`, `"whisper"`
1892
2031
 
1893
2032
  - **`experimental.voice.whisperModel`** (enum):
2033
+
1894
2034
  - **Description:** The Whisper model to use for local transcription.
1895
2035
  - **Default:** `"ggml-base.en.bin"`
1896
2036
  - **Values:** `"ggml-tiny.en.bin"`, `"ggml-base.en.bin"`,
1897
2037
  `"ggml-large-v3-turbo-q5_0.bin"`, `"ggml-large-v3-turbo-q8_0.bin"`
1898
2038
 
1899
2039
  - **`experimental.voice.stopGracePeriodMs`** (number):
2040
+
1900
2041
  - **Description:** How long to wait for final transcription after stopping
1901
2042
  recording.
1902
2043
  - **Default:** `4000`
1903
2044
 
1904
2045
  - **`experimental.adk.agentSessionNoninteractiveEnabled`** (boolean):
2046
+
1905
2047
  - **Description:** Enable non-interactive agent sessions.
1906
2048
  - **Default:** `false`
1907
2049
  - **Requires restart:** Yes
1908
2050
 
1909
2051
  - **`experimental.adk.agentSessionInteractiveEnabled`** (boolean):
2052
+
1910
2053
  - **Description:** Enable the agent session implementation for the interactive
1911
2054
  CLI.
1912
2055
  - **Default:** `false`
1913
2056
  - **Requires restart:** Yes
1914
2057
 
1915
2058
  - **`experimental.adk.agentSessionSubagentEnabled`** (boolean):
2059
+
1916
2060
  - **Description:** Route subagent invocations through the AgentSession
1917
2061
  protocol instead of legacy executors.
1918
2062
  - **Default:** `false`
1919
2063
  - **Requires restart:** Yes
1920
2064
 
1921
2065
  - **`experimental.enableAgents`** (boolean):
2066
+
1922
2067
  - **Description:** Enable local and remote subagents.
1923
2068
  - **Default:** `true`
1924
2069
  - **Requires restart:** Yes
1925
2070
 
1926
2071
  - **`experimental.worktrees`** (boolean):
2072
+
1927
2073
  - **Description:** Enable automated Git worktree management for parallel work.
1928
2074
  - **Default:** `false`
1929
2075
  - **Requires restart:** Yes
1930
2076
 
1931
2077
  - **`experimental.extensionManagement`** (boolean):
2078
+
1932
2079
  - **Description:** Enable extension management features.
1933
2080
  - **Default:** `true`
1934
2081
  - **Requires restart:** Yes
1935
2082
 
1936
2083
  - **`experimental.extensionConfig`** (boolean):
2084
+
1937
2085
  - **Description:** Enable requesting and fetching of extension settings.
1938
2086
  - **Default:** `true`
1939
2087
  - **Requires restart:** Yes
1940
2088
 
1941
2089
  - **`experimental.extensionRegistry`** (boolean):
2090
+
1942
2091
  - **Description:** Enable extension registry explore UI.
1943
2092
  - **Default:** `false`
1944
2093
  - **Requires restart:** Yes
1945
2094
 
1946
2095
  - **`experimental.extensionRegistryURI`** (string):
2096
+
1947
2097
  - **Description:** The URI (web URL or local file path) of the extension
1948
2098
  registry.
1949
2099
  - **Default:** `"https://geminicli.com/extensions.json"`
1950
2100
  - **Requires restart:** Yes
1951
2101
 
1952
2102
  - **`experimental.extensionReloading`** (boolean):
2103
+
1953
2104
  - **Description:** Enables extension loading/unloading within the CLI session.
1954
2105
  - **Default:** `false`
1955
2106
  - **Requires restart:** Yes
1956
2107
 
1957
2108
  - **`experimental.useOSC52Paste`** (boolean):
2109
+
1958
2110
  - **Description:** Use OSC 52 for pasting. This may be more robust than the
1959
2111
  default system when using remote terminal sessions (if your terminal is
1960
2112
  configured to allow it).
1961
2113
  - **Default:** `false`
1962
2114
 
1963
2115
  - **`experimental.useOSC52Copy`** (boolean):
2116
+
1964
2117
  - **Description:** Use OSC 52 for copying. This may be more robust than the
1965
2118
  default system when using remote terminal sessions (if your terminal is
1966
2119
  configured to allow it).
1967
2120
  - **Default:** `false`
1968
2121
 
1969
2122
  - **`experimental.taskTracker`** (boolean):
2123
+
1970
2124
  - **Description:** Enable task tracker tools.
1971
2125
  - **Default:** `false`
1972
2126
  - **Requires restart:** Yes
1973
2127
 
1974
2128
  - **`experimental.modelSteering`** (boolean):
2129
+
1975
2130
  - **Description:** Enable model steering (user hints) to guide the model
1976
2131
  during tool execution.
1977
2132
  - **Default:** `false`
1978
2133
 
1979
2134
  - **`experimental.directWebFetch`** (boolean):
2135
+
1980
2136
  - **Description:** Enable web fetch behavior that bypasses LLM summarization.
1981
2137
  - **Default:** `false`
1982
2138
  - **Requires restart:** Yes
1983
2139
 
1984
2140
  - **`experimental.dynamicModelConfiguration`** (boolean):
2141
+
1985
2142
  - **Description:** Enable dynamic model configuration (definitions,
1986
2143
  resolutions, and chains) via settings.
1987
2144
  - **Default:** `false`
1988
2145
  - **Requires restart:** Yes
1989
2146
 
1990
2147
  - **`experimental.gemmaModelRouter.enabled`** (boolean):
2148
+
1991
2149
  - **Description:** Enable the Gemma Model Router (experimental). Requires a
1992
2150
  local endpoint serving Gemma via the Gemini API using LiteRT-LM shim.
1993
2151
  - **Default:** `false`
1994
2152
  - **Requires restart:** Yes
1995
2153
 
1996
2154
  - **`experimental.gemmaModelRouter.autoStartServer`** (boolean):
2155
+
1997
2156
  - **Description:** Automatically start the LiteRT-LM server when Gemini CLI
1998
2157
  starts and the Gemma router is enabled.
1999
2158
  - **Default:** `false`
2000
2159
  - **Requires restart:** Yes
2001
2160
 
2002
2161
  - **`experimental.gemmaModelRouter.binaryPath`** (string):
2162
+
2003
2163
  - **Description:** Custom path to the LiteRT-LM binary. Leave empty to use the
2004
2164
  default location (~/.gemini/bin/litert/).
2005
2165
  - **Default:** `""`
2006
2166
  - **Requires restart:** Yes
2007
2167
 
2008
2168
  - **`experimental.gemmaModelRouter.classifier.host`** (string):
2169
+
2009
2170
  - **Description:** The host of the classifier.
2010
2171
  - **Default:** `"http://localhost:9379"`
2011
2172
  - **Requires restart:** Yes
2012
2173
 
2013
2174
  - **`experimental.gemmaModelRouter.classifier.model`** (string):
2175
+
2014
2176
  - **Description:** The model to use for the classifier. Only tested on
2015
2177
  `gemma3-1b-gpu-custom`.
2016
2178
  - **Default:** `"gemma3-1b-gpu-custom"`
2017
2179
  - **Requires restart:** Yes
2018
2180
 
2019
2181
  - **`experimental.stressTestProfile`** (boolean):
2182
+
2020
2183
  - **Description:** Significantly lowers token limits to force early garbage
2021
2184
  collection and distillation for testing purposes.
2022
2185
  - **Default:** `false`
2023
2186
  - **Requires restart:** Yes
2024
2187
 
2025
2188
  - **`experimental.autoMemory`** (boolean):
2189
+
2026
2190
  - **Description:** Automatically extract memory patches and skills from past
2027
2191
  sessions in the background. Every change is written as a unified diff
2028
2192
  `.patch` file under `<projectMemoryDir>/.inbox/<kind>/` and held for review
@@ -2031,16 +2195,19 @@ their corresponding top-level category object in your `settings.json` file.
2031
2195
  - **Requires restart:** Yes
2032
2196
 
2033
2197
  - **`experimental.generalistProfile`** (boolean):
2198
+
2034
2199
  - **Description:** Suitable for general coding and software development tasks.
2035
2200
  - **Default:** `false`
2036
2201
  - **Requires restart:** Yes
2037
2202
 
2038
2203
  - **`experimental.powerUserProfile`** (boolean):
2204
+
2039
2205
  - **Description:** Less cache friendly version of the generalist profile.
2040
2206
  - **Default:** `false`
2041
2207
  - **Requires restart:** Yes
2042
2208
 
2043
2209
  - **`experimental.contextManagement`** (boolean):
2210
+
2044
2211
  - **Description:** Enable logic for context management.
2045
2212
  - **Default:** `false`
2046
2213
  - **Requires restart:** Yes
@@ -2052,6 +2219,7 @@ their corresponding top-level category object in your `settings.json` file.
2052
2219
  #### `skills`
2053
2220
 
2054
2221
  - **`skills.enabled`** (boolean):
2222
+
2055
2223
  - **Description:** Enable Agent Skills.
2056
2224
  - **Default:** `true`
2057
2225
  - **Requires restart:** Yes
@@ -2064,12 +2232,14 @@ their corresponding top-level category object in your `settings.json` file.
2064
2232
  #### `hooksConfig`
2065
2233
 
2066
2234
  - **`hooksConfig.enabled`** (boolean):
2235
+
2067
2236
  - **Description:** Canonical toggle for the hooks system. When disabled, no
2068
2237
  hooks will be executed.
2069
2238
  - **Default:** `true`
2070
2239
  - **Requires restart:** Yes
2071
2240
 
2072
2241
  - **`hooksConfig.disabled`** (array):
2242
+
2073
2243
  - **Description:** List of hook names (commands) that should be disabled.
2074
2244
  Hooks in this list will not execute even if configured.
2075
2245
  - **Default:** `[]`
@@ -2081,51 +2251,61 @@ their corresponding top-level category object in your `settings.json` file.
2081
2251
  #### `hooks`
2082
2252
 
2083
2253
  - **`hooks.BeforeTool`** (array):
2254
+
2084
2255
  - **Description:** Hooks that execute before tool execution. Can intercept,
2085
2256
  validate, or modify tool calls.
2086
2257
  - **Default:** `[]`
2087
2258
 
2088
2259
  - **`hooks.AfterTool`** (array):
2260
+
2089
2261
  - **Description:** Hooks that execute after tool execution. Can process
2090
2262
  results, log outputs, or trigger follow-up actions.
2091
2263
  - **Default:** `[]`
2092
2264
 
2093
2265
  - **`hooks.BeforeAgent`** (array):
2266
+
2094
2267
  - **Description:** Hooks that execute before agent loop starts. Can set up
2095
2268
  context or initialize resources.
2096
2269
  - **Default:** `[]`
2097
2270
 
2098
2271
  - **`hooks.AfterAgent`** (array):
2272
+
2099
2273
  - **Description:** Hooks that execute after agent loop completes. Can perform
2100
2274
  cleanup or summarize results.
2101
2275
  - **Default:** `[]`
2102
2276
 
2103
2277
  - **`hooks.Notification`** (array):
2278
+
2104
2279
  - **Description:** Hooks that execute on notification events (errors,
2105
2280
  warnings, info). Can log or alert on specific conditions.
2106
2281
  - **Default:** `[]`
2107
2282
 
2108
2283
  - **`hooks.SessionStart`** (array):
2284
+
2109
2285
  - **Description:** Hooks that execute when a session starts. Can initialize
2110
2286
  session-specific resources or state.
2111
2287
  - **Default:** `[]`
2112
2288
 
2113
2289
  - **`hooks.SessionEnd`** (array):
2290
+
2114
2291
  - **Description:** Hooks that execute when a session ends. Can perform cleanup
2115
2292
  or persist session data.
2116
2293
  - **Default:** `[]`
2117
2294
 
2118
2295
  - **`hooks.PreCompress`** (array):
2296
+
2119
2297
  - **Description:** Hooks that execute before chat history compression. Can
2120
2298
  back up or analyze conversation before compression.
2121
2299
  - **Default:** `[]`
2122
2300
 
2123
2301
  - **`hooks.BeforeModel`** (array):
2302
+
2124
2303
  - **Description:** Hooks that execute before LLM requests. Can modify prompts,
2125
2304
  inject context, or control model parameters.
2126
2305
  - **Default:** `[]`
2127
2306
 
2128
2307
  - **`hooks.AfterModel`** (array):
2308
+
2129
2309
  - **Description:** Hooks that execute after LLM responses. Can process
2130
2310
  outputs, extract information, or log interactions.
2131
2311
  - **Default:** `[]`
@@ -2138,35 +2318,41 @@ their corresponding top-level category object in your `settings.json` file.
2138
2318
  #### `contextManagement`
2139
2319
 
2140
2320
  - **`contextManagement.historyWindow.maxTokens`** (number):
2321
+
2141
2322
  - **Description:** The number of tokens to allow before triggering
2142
2323
  compression.
2143
2324
  - **Default:** `150000`
2144
2325
  - **Requires restart:** Yes
2145
2326
 
2146
2327
  - **`contextManagement.historyWindow.retainedTokens`** (number):
2328
+
2147
2329
  - **Description:** The number of tokens to always retain.
2148
2330
  - **Default:** `40000`
2149
2331
  - **Requires restart:** Yes
2150
2332
 
2151
2333
  - **`contextManagement.messageLimits.normalMaxTokens`** (number):
2334
+
2152
2335
  - **Description:** The target number of tokens to budget for a normal
2153
2336
  conversation turn.
2154
2337
  - **Default:** `2500`
2155
2338
  - **Requires restart:** Yes
2156
2339
 
2157
2340
  - **`contextManagement.messageLimits.retainedMaxTokens`** (number):
2341
+
2158
2342
  - **Description:** The maximum number of tokens a single conversation turn can
2159
2343
  consume before truncation.
2160
2344
  - **Default:** `12000`
2161
2345
  - **Requires restart:** Yes
2162
2346
 
2163
2347
  - **`contextManagement.messageLimits.normalizationHeadRatio`** (number):
2348
+
2164
2349
  - **Description:** The ratio of tokens to retain from the beginning of a
2165
2350
  truncated message (0.0 to 1.0).
2166
2351
  - **Default:** `0.25`
2167
2352
  - **Requires restart:** Yes
2168
2353
 
2169
2354
  - **`contextManagement.tools.distillation.maxOutputTokens`** (number):
2355
+
2170
2356
  - **Description:** Maximum tokens to show to the model when truncating large
2171
2357
  tool outputs.
2172
2358
  - **Default:** `10000`
@@ -2174,6 +2360,7 @@ their corresponding top-level category object in your `settings.json` file.
2174
2360
 
2175
2361
  - **`contextManagement.tools.distillation.summarizationThresholdTokens`**
2176
2362
  (number):
2363
+
2177
2364
  - **Description:** Threshold above which truncated tool outputs will be
2178
2365
  summarized by an LLM.
2179
2366
  - **Default:** `20000`
@@ -2181,6 +2368,7 @@ their corresponding top-level category object in your `settings.json` file.
2181
2368
 
2182
2369
  - **`contextManagement.tools.outputMasking.protectionThresholdTokens`**
2183
2370
  (number):
2371
+
2184
2372
  - **Description:** Minimum number of tokens to protect from masking (most
2185
2373
  recent tool outputs).
2186
2374
  - **Default:** `50000`
@@ -2188,6 +2376,7 @@ their corresponding top-level category object in your `settings.json` file.
2188
2376
 
2189
2377
  - **`contextManagement.tools.outputMasking.minPrunableThresholdTokens`**
2190
2378
  (number):
2379
+
2191
2380
  - **Description:** Minimum prunable tokens required to trigger a masking pass.
2192
2381
  - **Default:** `30000`
2193
2382
  - **Requires restart:** Yes
@@ -2201,24 +2390,29 @@ their corresponding top-level category object in your `settings.json` file.
2201
2390
  #### `admin`
2202
2391
 
2203
2392
  - **`admin.secureModeEnabled`** (boolean):
2393
+
2204
2394
  - **Description:** If true, disallows YOLO mode and "Always allow" options
2205
2395
  from being used.
2206
2396
  - **Default:** `false`
2207
2397
 
2208
2398
  - **`admin.extensions.enabled`** (boolean):
2399
+
2209
2400
  - **Description:** If false, disallows extensions from being installed or
2210
2401
  used.
2211
2402
  - **Default:** `true`
2212
2403
 
2213
2404
  - **`admin.mcp.enabled`** (boolean):
2405
+
2214
2406
  - **Description:** If false, disallows MCP servers from being used.
2215
2407
  - **Default:** `true`
2216
2408
 
2217
2409
  - **`admin.mcp.config`** (object):
2410
+
2218
2411
  - **Description:** Admin-configured MCP servers (allowlist).
2219
2412
  - **Default:** `{}`
2220
2413
 
2221
2414
  - **`admin.mcp.requiredConfig`** (object):
2415
+
2222
2416
  - **Description:** Admin-required MCP servers that are always injected.
2223
2417
  - **Default:** `{}`
2224
2418