@machina.ai/cell-cli-core 1.47.0-rc1 → 1.49.0-rc2

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