@google/gemini-cli-core 0.24.0-preview.3 → 0.25.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 (366) hide show
  1. package/README.md +1 -1
  2. package/dist/docs/assets/monitoring-dashboard-logs.png +0 -0
  3. package/dist/docs/assets/monitoring-dashboard-metrics.png +0 -0
  4. package/dist/docs/assets/monitoring-dashboard-overview.png +0 -0
  5. package/dist/docs/changelogs/index.md +22 -0
  6. package/dist/docs/changelogs/latest.md +137 -209
  7. package/dist/docs/changelogs/preview.md +116 -114
  8. package/dist/docs/changelogs/releases.md +273 -7
  9. package/dist/docs/cli/commands.md +3 -0
  10. package/dist/docs/cli/keyboard-shortcuts.md +34 -41
  11. package/dist/docs/cli/model-routing.md +1 -1
  12. package/dist/docs/cli/model.md +1 -1
  13. package/dist/docs/cli/settings.md +69 -53
  14. package/dist/docs/cli/skills.md +35 -3
  15. package/dist/docs/cli/telemetry.md +20 -0
  16. package/dist/docs/core/memport.md +2 -0
  17. package/dist/docs/core/policy-engine.md +3 -2
  18. package/dist/docs/extensions/index.md +57 -7
  19. package/dist/docs/get-started/configuration.md +39 -9
  20. package/dist/docs/get-started/gemini-3.md +2 -17
  21. package/dist/docs/hooks/best-practices.md +1 -1
  22. package/dist/docs/hooks/index.md +47 -11
  23. package/dist/docs/hooks/reference.md +19 -9
  24. package/dist/docs/hooks/writing-hooks.md +19 -1
  25. package/dist/docs/releases.md +1 -1
  26. package/dist/docs/tools/shell.md +1 -1
  27. package/dist/docs/troubleshooting.md +9 -3
  28. package/dist/src/agents/a2a-client-manager.d.ts +4 -0
  29. package/dist/src/agents/a2a-client-manager.js +22 -22
  30. package/dist/src/agents/a2a-client-manager.js.map +1 -1
  31. package/dist/src/agents/a2a-client-manager.test.js +44 -0
  32. package/dist/src/agents/a2a-client-manager.test.js.map +1 -1
  33. package/dist/src/agents/a2aUtils.d.ts +3 -2
  34. package/dist/src/agents/a2aUtils.js +28 -26
  35. package/dist/src/agents/a2aUtils.js.map +1 -1
  36. package/dist/src/agents/a2aUtils.test.js +9 -9
  37. package/dist/src/agents/a2aUtils.test.js.map +1 -1
  38. package/dist/src/agents/agentLoader.d.ts +68 -0
  39. package/dist/src/agents/{toml-loader.js → agentLoader.js} +86 -79
  40. package/dist/src/agents/agentLoader.js.map +1 -0
  41. package/dist/src/agents/agentLoader.test.js +307 -0
  42. package/dist/src/agents/agentLoader.test.js.map +1 -0
  43. package/dist/src/agents/{introspection-agent.d.ts → cli-help-agent.d.ts} +3 -2
  44. package/dist/src/agents/cli-help-agent.js +85 -0
  45. package/dist/src/agents/cli-help-agent.js.map +1 -0
  46. package/dist/src/agents/{introspection-agent.test.js → cli-help-agent.test.js} +25 -7
  47. package/dist/src/agents/cli-help-agent.test.js.map +1 -0
  48. package/dist/src/agents/codebase-investigator.js +10 -5
  49. package/dist/src/agents/codebase-investigator.js.map +1 -1
  50. package/dist/src/agents/delegate-to-agent-tool.js +17 -10
  51. package/dist/src/agents/delegate-to-agent-tool.js.map +1 -1
  52. package/dist/src/agents/delegate-to-agent-tool.test.js +60 -12
  53. package/dist/src/agents/delegate-to-agent-tool.test.js.map +1 -1
  54. package/dist/src/agents/local-executor.js +42 -8
  55. package/dist/src/agents/local-executor.js.map +1 -1
  56. package/dist/src/agents/local-executor.test.js +70 -11
  57. package/dist/src/agents/local-executor.test.js.map +1 -1
  58. package/dist/src/agents/local-invocation.test.js +8 -2
  59. package/dist/src/agents/local-invocation.test.js.map +1 -1
  60. package/dist/src/agents/registry.d.ts +12 -0
  61. package/dist/src/agents/registry.js +111 -42
  62. package/dist/src/agents/registry.js.map +1 -1
  63. package/dist/src/agents/registry.test.js +228 -15
  64. package/dist/src/agents/registry.test.js.map +1 -1
  65. package/dist/src/agents/remote-invocation.js +10 -13
  66. package/dist/src/agents/remote-invocation.js.map +1 -1
  67. package/dist/src/agents/remote-invocation.test.js +1 -1
  68. package/dist/src/agents/remote-invocation.test.js.map +1 -1
  69. package/dist/src/agents/subagent-tool-wrapper.test.js +8 -2
  70. package/dist/src/agents/subagent-tool-wrapper.test.js.map +1 -1
  71. package/dist/src/agents/types.d.ts +3 -11
  72. package/dist/src/agents/types.js.map +1 -1
  73. package/dist/src/availability/fallbackIntegration.test.js +58 -0
  74. package/dist/src/availability/fallbackIntegration.test.js.map +1 -0
  75. package/dist/src/code_assist/experiments/experiments.d.ts +1 -1
  76. package/dist/src/code_assist/experiments/experiments.js +21 -0
  77. package/dist/src/code_assist/experiments/experiments.js.map +1 -1
  78. package/dist/src/code_assist/experiments/experiments_local.test.d.ts +6 -0
  79. package/dist/src/code_assist/experiments/experiments_local.test.js +110 -0
  80. package/dist/src/code_assist/experiments/experiments_local.test.js.map +1 -0
  81. package/dist/src/code_assist/oauth-credential-storage.js +3 -4
  82. package/dist/src/code_assist/oauth-credential-storage.js.map +1 -1
  83. package/dist/src/code_assist/oauth2.js.map +1 -1
  84. package/dist/src/code_assist/oauth2.test.js +44 -19
  85. package/dist/src/code_assist/oauth2.test.js.map +1 -1
  86. package/dist/src/code_assist/telemetry.js +2 -1
  87. package/dist/src/code_assist/telemetry.js.map +1 -1
  88. package/dist/src/code_assist/telemetry.test.js +2 -1
  89. package/dist/src/code_assist/telemetry.test.js.map +1 -1
  90. package/dist/src/code_assist/types.d.ts +7 -0
  91. package/dist/src/code_assist/types.js +7 -0
  92. package/dist/src/code_assist/types.js.map +1 -1
  93. package/dist/src/commands/memory.d.ts +11 -0
  94. package/dist/src/commands/memory.js +80 -0
  95. package/dist/src/commands/memory.js.map +1 -0
  96. package/dist/src/commands/memory.test.d.ts +6 -0
  97. package/dist/src/commands/memory.test.js +155 -0
  98. package/dist/src/commands/memory.test.js.map +1 -0
  99. package/dist/src/config/config.d.ts +50 -7
  100. package/dist/src/config/config.js +113 -48
  101. package/dist/src/config/config.js.map +1 -1
  102. package/dist/src/config/config.test.js +34 -4
  103. package/dist/src/config/config.test.js.map +1 -1
  104. package/dist/src/config/models.d.ts +7 -0
  105. package/dist/src/config/models.js +11 -0
  106. package/dist/src/config/models.js.map +1 -1
  107. package/dist/src/config/models.test.js +17 -1
  108. package/dist/src/config/models.test.js.map +1 -1
  109. package/dist/src/config/storage.d.ts +1 -0
  110. package/dist/src/config/storage.js +5 -2
  111. package/dist/src/config/storage.js.map +1 -1
  112. package/dist/src/core/client.js +25 -8
  113. package/dist/src/core/client.js.map +1 -1
  114. package/dist/src/core/client.test.js +45 -31
  115. package/dist/src/core/client.test.js.map +1 -1
  116. package/dist/src/core/coreToolHookTriggers.d.ts +8 -4
  117. package/dist/src/core/coreToolHookTriggers.js +43 -5
  118. package/dist/src/core/coreToolHookTriggers.js.map +1 -1
  119. package/dist/src/core/coreToolScheduler.d.ts +1 -8
  120. package/dist/src/core/coreToolScheduler.js +58 -60
  121. package/dist/src/core/coreToolScheduler.js.map +1 -1
  122. package/dist/src/core/coreToolScheduler.test.js +215 -8
  123. package/dist/src/core/coreToolScheduler.test.js.map +1 -1
  124. package/dist/src/core/geminiChat.d.ts +26 -1
  125. package/dist/src/core/geminiChat.js +91 -8
  126. package/dist/src/core/geminiChat.js.map +1 -1
  127. package/dist/src/core/geminiChat.test.js +109 -0
  128. package/dist/src/core/geminiChat.test.js.map +1 -1
  129. package/dist/src/core/geminiChatHookTriggers.d.ts +8 -4
  130. package/dist/src/core/geminiChatHookTriggers.js +31 -9
  131. package/dist/src/core/geminiChatHookTriggers.js.map +1 -1
  132. package/dist/src/core/geminiChatHookTriggers.test.d.ts +6 -0
  133. package/dist/src/core/geminiChatHookTriggers.test.js +153 -0
  134. package/dist/src/core/geminiChatHookTriggers.test.js.map +1 -0
  135. package/dist/src/core/loggingContentGenerator.js +5 -0
  136. package/dist/src/core/loggingContentGenerator.js.map +1 -1
  137. package/dist/src/core/loggingContentGenerator.test.js +30 -0
  138. package/dist/src/core/loggingContentGenerator.test.js.map +1 -1
  139. package/dist/src/core/nonInteractiveToolExecutor.test.js +4 -2
  140. package/dist/src/core/nonInteractiveToolExecutor.test.js.map +1 -1
  141. package/dist/src/core/prompts.js +8 -8
  142. package/dist/src/core/prompts.js.map +1 -1
  143. package/dist/src/core/prompts.test.js +4 -2
  144. package/dist/src/core/prompts.test.js.map +1 -1
  145. package/dist/src/core/tokenLimits.js +6 -12
  146. package/dist/src/core/tokenLimits.js.map +1 -1
  147. package/dist/src/core/tokenLimits.test.js +8 -4
  148. package/dist/src/core/tokenLimits.test.js.map +1 -1
  149. package/dist/src/core/turn.d.ts +2 -0
  150. package/dist/src/core/turn.js +14 -0
  151. package/dist/src/core/turn.js.map +1 -1
  152. package/dist/src/generated/git-commit.d.ts +2 -2
  153. package/dist/src/generated/git-commit.js +2 -2
  154. package/dist/src/hooks/hookEventHandler.d.ts +3 -3
  155. package/dist/src/hooks/hookEventHandler.js +27 -8
  156. package/dist/src/hooks/hookEventHandler.js.map +1 -1
  157. package/dist/src/hooks/hookEventHandler.test.js +145 -0
  158. package/dist/src/hooks/hookEventHandler.test.js.map +1 -1
  159. package/dist/src/hooks/hookSystem.d.ts +12 -0
  160. package/dist/src/hooks/hookSystem.js +38 -0
  161. package/dist/src/hooks/hookSystem.js.map +1 -1
  162. package/dist/src/hooks/hookTranslator.js +2 -1
  163. package/dist/src/hooks/hookTranslator.js.map +1 -1
  164. package/dist/src/hooks/index.d.ts +0 -1
  165. package/dist/src/hooks/index.js +0 -2
  166. package/dist/src/hooks/index.js.map +1 -1
  167. package/dist/src/hooks/types.d.ts +21 -0
  168. package/dist/src/hooks/types.js +0 -15
  169. package/dist/src/hooks/types.js.map +1 -1
  170. package/dist/src/hooks/types.test.js +4 -28
  171. package/dist/src/hooks/types.test.js.map +1 -1
  172. package/dist/src/ide/detect-ide.d.ts +4 -0
  173. package/dist/src/ide/detect-ide.js +7 -2
  174. package/dist/src/ide/detect-ide.js.map +1 -1
  175. package/dist/src/ide/detect-ide.test.js +10 -0
  176. package/dist/src/ide/detect-ide.test.js.map +1 -1
  177. package/dist/src/ide/ide-installer.js +2 -2
  178. package/dist/src/ide/ide-installer.js.map +1 -1
  179. package/dist/src/ide/ide-installer.test.js +11 -2
  180. package/dist/src/ide/ide-installer.test.js.map +1 -1
  181. package/dist/src/index.d.ts +10 -1
  182. package/dist/src/index.js +12 -1
  183. package/dist/src/index.js.map +1 -1
  184. package/dist/src/mcp/token-storage/file-token-storage.js +2 -2
  185. package/dist/src/mcp/token-storage/file-token-storage.js.map +1 -1
  186. package/dist/src/policy/config.test.js +3 -2
  187. package/dist/src/policy/config.test.js.map +1 -1
  188. package/dist/src/policy/persistence.test.js +1 -1
  189. package/dist/src/policy/persistence.test.js.map +1 -1
  190. package/dist/src/policy/policies/agent.toml +1 -1
  191. package/dist/src/policy/policy-engine.js +80 -20
  192. package/dist/src/policy/policy-engine.js.map +1 -1
  193. package/dist/src/policy/policy-engine.test.js +17 -0
  194. package/dist/src/policy/policy-engine.test.js.map +1 -1
  195. package/dist/src/policy/policy-updater.test.js +3 -3
  196. package/dist/src/policy/policy-updater.test.js.map +1 -1
  197. package/dist/src/policy/shell-safety.test.js +371 -8
  198. package/dist/src/policy/shell-safety.test.js.map +1 -1
  199. package/dist/src/policy/types.d.ts +4 -0
  200. package/dist/src/policy/utils.js +4 -1
  201. package/dist/src/policy/utils.js.map +1 -1
  202. package/dist/src/policy/utils.test.js +34 -6
  203. package/dist/src/policy/utils.test.js.map +1 -1
  204. package/dist/src/routing/routingStrategy.d.ts +2 -0
  205. package/dist/src/routing/strategies/classifierStrategy.js +1 -1
  206. package/dist/src/routing/strategies/classifierStrategy.js.map +1 -1
  207. package/dist/src/routing/strategies/classifierStrategy.test.js +16 -0
  208. package/dist/src/routing/strategies/classifierStrategy.test.js.map +1 -1
  209. package/dist/src/routing/strategies/fallbackStrategy.d.ts +1 -1
  210. package/dist/src/routing/strategies/fallbackStrategy.js +2 -2
  211. package/dist/src/routing/strategies/fallbackStrategy.js.map +1 -1
  212. package/dist/src/routing/strategies/fallbackStrategy.test.js +13 -0
  213. package/dist/src/routing/strategies/fallbackStrategy.test.js.map +1 -1
  214. package/dist/src/routing/strategies/overrideStrategy.d.ts +1 -1
  215. package/dist/src/routing/strategies/overrideStrategy.js +5 -5
  216. package/dist/src/routing/strategies/overrideStrategy.js.map +1 -1
  217. package/dist/src/routing/strategies/overrideStrategy.test.js +14 -0
  218. package/dist/src/routing/strategies/overrideStrategy.test.js.map +1 -1
  219. package/dist/src/scheduler/tool-executor.js +2 -2
  220. package/dist/src/scheduler/tool-executor.js.map +1 -1
  221. package/dist/src/scheduler/tool-modifier.d.ts +23 -0
  222. package/dist/src/scheduler/tool-modifier.js +50 -0
  223. package/dist/src/scheduler/tool-modifier.js.map +1 -0
  224. package/dist/src/scheduler/tool-modifier.test.d.ts +6 -0
  225. package/dist/src/scheduler/tool-modifier.test.js +159 -0
  226. package/dist/src/scheduler/tool-modifier.test.js.map +1 -0
  227. package/dist/src/services/chatCompressionService.js +3 -10
  228. package/dist/src/services/chatCompressionService.js.map +1 -1
  229. package/dist/src/services/chatCompressionService.test.js +1 -0
  230. package/dist/src/services/chatCompressionService.test.js.map +1 -1
  231. package/dist/src/services/chatRecordingService.d.ts +7 -1
  232. package/dist/src/services/chatRecordingService.js +20 -2
  233. package/dist/src/services/chatRecordingService.js.map +1 -1
  234. package/dist/src/services/chatRecordingService.test.js +43 -0
  235. package/dist/src/services/chatRecordingService.test.js.map +1 -1
  236. package/dist/src/services/environmentSanitization.js +4 -3
  237. package/dist/src/services/environmentSanitization.js.map +1 -1
  238. package/dist/src/services/gitService.test.js +10 -2
  239. package/dist/src/services/gitService.test.js.map +1 -1
  240. package/dist/src/services/modelConfig.integration.test.js +2 -2
  241. package/dist/src/services/modelConfig.integration.test.js.map +1 -1
  242. package/dist/src/services/modelConfigService.d.ts +38 -4
  243. package/dist/src/services/modelConfigService.js +135 -76
  244. package/dist/src/services/modelConfigService.js.map +1 -1
  245. package/dist/src/services/modelConfigService.test.js +116 -0
  246. package/dist/src/services/modelConfigService.test.js.map +1 -1
  247. package/dist/src/services/shellExecutionService.js +1 -1
  248. package/dist/src/services/shellExecutionService.js.map +1 -1
  249. package/dist/src/services/shellExecutionService.test.js +43 -2
  250. package/dist/src/services/shellExecutionService.test.js.map +1 -1
  251. package/dist/src/skills/skillLoader.d.ts +3 -0
  252. package/dist/src/skills/skillLoader.js +3 -3
  253. package/dist/src/skills/skillLoader.js.map +1 -1
  254. package/dist/src/skills/skillLoader.test.js +4 -2
  255. package/dist/src/skills/skillLoader.test.js.map +1 -1
  256. package/dist/src/skills/skillManager.d.ts +18 -0
  257. package/dist/src/skills/skillManager.js +43 -5
  258. package/dist/src/skills/skillManager.js.map +1 -1
  259. package/dist/src/skills/skillManager.test.js +83 -1
  260. package/dist/src/skills/skillManager.test.js.map +1 -1
  261. package/dist/src/telemetry/clearcut-logger/clearcut-logger.d.ts +9 -2
  262. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +60 -9
  263. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -1
  264. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js +105 -6
  265. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js.map +1 -1
  266. package/dist/src/telemetry/clearcut-logger/event-metadata-key.d.ts +5 -1
  267. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js +8 -0
  268. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js.map +1 -1
  269. package/dist/src/telemetry/loggers.js +1 -1
  270. package/dist/src/telemetry/loggers.js.map +1 -1
  271. package/dist/src/telemetry/loggers.test.js +8 -0
  272. package/dist/src/telemetry/loggers.test.js.map +1 -1
  273. package/dist/src/telemetry/types.js +4 -2
  274. package/dist/src/telemetry/types.js.map +1 -1
  275. package/dist/src/tools/activate-skill.js +23 -10
  276. package/dist/src/tools/activate-skill.js.map +1 -1
  277. package/dist/src/tools/activate-skill.test.js +24 -6
  278. package/dist/src/tools/activate-skill.test.js.map +1 -1
  279. package/dist/src/tools/confirmation-policy.test.js +1 -0
  280. package/dist/src/tools/confirmation-policy.test.js.map +1 -1
  281. package/dist/src/tools/edit.js +12 -0
  282. package/dist/src/tools/edit.js.map +1 -1
  283. package/dist/src/tools/edit.test.js +34 -0
  284. package/dist/src/tools/edit.test.js.map +1 -1
  285. package/dist/src/tools/get-internal-docs.js +11 -18
  286. package/dist/src/tools/get-internal-docs.js.map +1 -1
  287. package/dist/src/tools/mcp-tool.d.ts +18 -3
  288. package/dist/src/tools/mcp-tool.js +1 -1
  289. package/dist/src/tools/mcp-tool.js.map +1 -1
  290. package/dist/src/tools/tool-error.d.ts +4 -0
  291. package/dist/src/tools/tool-error.js +4 -0
  292. package/dist/src/tools/tool-error.js.map +1 -1
  293. package/dist/src/tools/tools.d.ts +2 -0
  294. package/dist/src/tools/tools.js.map +1 -1
  295. package/dist/src/tools/write-file.js +4 -2
  296. package/dist/src/tools/write-file.js.map +1 -1
  297. package/dist/src/tools/write-file.test.js +45 -6
  298. package/dist/src/tools/write-file.test.js.map +1 -1
  299. package/dist/src/utils/apiConversionUtils.d.ts +12 -0
  300. package/dist/src/utils/apiConversionUtils.js +46 -0
  301. package/dist/src/utils/apiConversionUtils.js.map +1 -0
  302. package/dist/src/utils/apiConversionUtils.test.d.ts +6 -0
  303. package/dist/src/utils/apiConversionUtils.test.js +150 -0
  304. package/dist/src/utils/apiConversionUtils.test.js.map +1 -0
  305. package/dist/src/utils/editCorrector.d.ts +3 -3
  306. package/dist/src/utils/editCorrector.js +21 -5
  307. package/dist/src/utils/editCorrector.js.map +1 -1
  308. package/dist/src/utils/editCorrector.test.js +20 -20
  309. package/dist/src/utils/editCorrector.test.js.map +1 -1
  310. package/dist/src/utils/editor.d.ts +3 -2
  311. package/dist/src/utils/editor.js +26 -6
  312. package/dist/src/utils/editor.js.map +1 -1
  313. package/dist/src/utils/editor.test.js +27 -4
  314. package/dist/src/utils/editor.test.js.map +1 -1
  315. package/dist/src/utils/events.d.ts +23 -1
  316. package/dist/src/utils/events.js +14 -0
  317. package/dist/src/utils/events.js.map +1 -1
  318. package/dist/src/utils/fileDiffUtils.d.ts +18 -0
  319. package/dist/src/utils/fileDiffUtils.js +37 -0
  320. package/dist/src/utils/fileDiffUtils.js.map +1 -0
  321. package/dist/src/utils/fileDiffUtils.test.d.ts +6 -0
  322. package/dist/src/utils/fileDiffUtils.test.js +84 -0
  323. package/dist/src/utils/fileDiffUtils.test.js.map +1 -0
  324. package/dist/src/utils/gitIgnoreParser.js +9 -10
  325. package/dist/src/utils/gitIgnoreParser.js.map +1 -1
  326. package/dist/src/utils/installationManager.test.js +11 -3
  327. package/dist/src/utils/installationManager.test.js.map +1 -1
  328. package/dist/src/utils/memoryDiscovery.js +1 -2
  329. package/dist/src/utils/memoryDiscovery.js.map +1 -1
  330. package/dist/src/utils/memoryDiscovery.test.js +9 -0
  331. package/dist/src/utils/memoryDiscovery.test.js.map +1 -1
  332. package/dist/src/utils/paths.d.ts +10 -0
  333. package/dist/src/utils/paths.js +20 -1
  334. package/dist/src/utils/paths.js.map +1 -1
  335. package/dist/src/utils/retry.d.ts +1 -0
  336. package/dist/src/utils/retry.js +14 -2
  337. package/dist/src/utils/retry.js.map +1 -1
  338. package/dist/src/utils/retry.test.js +11 -11
  339. package/dist/src/utils/retry.test.js.map +1 -1
  340. package/dist/src/utils/userAccountManager.test.js +5 -5
  341. package/dist/src/utils/userAccountManager.test.js.map +1 -1
  342. package/dist/src/utils/workspaceContext.test.js +1 -1
  343. package/dist/src/utils/workspaceContext.test.js.map +1 -1
  344. package/dist/tsconfig.tsbuildinfo +1 -1
  345. package/package.json +4 -2
  346. package/dist/docs/cli/configuration.md +0 -780
  347. package/dist/docs/get-started/deployment.md +0 -143
  348. package/dist/google-gemini-cli-core-0.24.0-preview.2.tgz +0 -0
  349. package/dist/src/agents/introspection-agent.js +0 -72
  350. package/dist/src/agents/introspection-agent.js.map +0 -1
  351. package/dist/src/agents/introspection-agent.test.js.map +0 -1
  352. package/dist/src/agents/toml-loader.d.ts +0 -74
  353. package/dist/src/agents/toml-loader.js.map +0 -1
  354. package/dist/src/agents/toml-loader.test.js +0 -309
  355. package/dist/src/agents/toml-loader.test.js.map +0 -1
  356. package/dist/src/core/sessionHookTriggers.d.ts +0 -29
  357. package/dist/src/core/sessionHookTriggers.js +0 -75
  358. package/dist/src/core/sessionHookTriggers.js.map +0 -1
  359. package/dist/src/utils/shell-permissions.d.ts +0 -52
  360. package/dist/src/utils/shell-permissions.js +0 -188
  361. package/dist/src/utils/shell-permissions.js.map +0 -1
  362. package/dist/src/utils/shell-permissions.test.js +0 -369
  363. package/dist/src/utils/shell-permissions.test.js.map +0 -1
  364. /package/dist/src/agents/{introspection-agent.test.d.ts → agentLoader.test.d.ts} +0 -0
  365. /package/dist/src/agents/{toml-loader.test.d.ts → cli-help-agent.test.d.ts} +0 -0
  366. /package/dist/src/{utils/shell-permissions.test.d.ts → availability/fallbackIntegration.test.d.ts} +0 -0
@@ -15,19 +15,28 @@ available combinations.
15
15
 
16
16
  #### Cursor Movement
17
17
 
18
- | Action | Keys |
19
- | ----------------------------------------- | ---------------------- |
20
- | Move the cursor to the start of the line. | `Ctrl + A`<br />`Home` |
21
- | Move the cursor to the end of the line. | `Ctrl + E`<br />`End` |
18
+ | Action | Keys |
19
+ | ------------------------------------------- | ------------------------------------------------------------ |
20
+ | Move the cursor to the start of the line. | `Ctrl + A`<br />`Home` |
21
+ | Move the cursor to the end of the line. | `Ctrl + E`<br />`End` |
22
+ | Move the cursor one character to the left. | `Left Arrow (no Ctrl, no Cmd)`<br />`Ctrl + B` |
23
+ | Move the cursor one character to the right. | `Right Arrow (no Ctrl, no Cmd)`<br />`Ctrl + F` |
24
+ | Move the cursor one word to the left. | `Ctrl + Left Arrow`<br />`Cmd + Left Arrow`<br />`Cmd + B` |
25
+ | Move the cursor one word to the right. | `Ctrl + Right Arrow`<br />`Cmd + Right Arrow`<br />`Cmd + F` |
22
26
 
23
27
  #### Editing
24
28
 
25
- | Action | Keys |
26
- | ------------------------------------------------ | ----------------------------------------- |
27
- | Delete from the cursor to the end of the line. | `Ctrl + K` |
28
- | Delete from the cursor to the start of the line. | `Ctrl + U` |
29
- | Clear all text in the input field. | `Ctrl + C` |
30
- | Delete the previous word. | `Ctrl + Backspace`<br />`Cmd + Backspace` |
29
+ | Action | Keys |
30
+ | ------------------------------------------------ | -------------------------------------------------------------------------------------------- |
31
+ | Delete from the cursor to the end of the line. | `Ctrl + K` |
32
+ | Delete from the cursor to the start of the line. | `Ctrl + U` |
33
+ | Clear all text in the input field. | `Ctrl + C` |
34
+ | Delete the previous word. | `Ctrl + Backspace`<br />`Cmd + Backspace`<br />`Ctrl + ""`<br />`Cmd + ""`<br />`Ctrl + W` |
35
+ | Delete the next word. | `Ctrl + Delete`<br />`Cmd + Delete` |
36
+ | Delete the character to the left. | `Backspace`<br />`""`<br />`Ctrl + H` |
37
+ | Delete the character to the right. | `Delete`<br />`Ctrl + D` |
38
+ | Undo the most recent text edit. | `Ctrl + Z (no Shift)` |
39
+ | Redo the most recent undone text edit. | `Ctrl + Shift + Z` |
31
40
 
32
41
  #### Screen Control
33
42
 
@@ -53,7 +62,7 @@ available combinations.
53
62
  | Show the previous entry in history. | `Ctrl + P (no Shift)` |
54
63
  | Show the next entry in history. | `Ctrl + N (no Shift)` |
55
64
  | Start reverse search through history. | `Ctrl + R` |
56
- | Insert the selected reverse-search match. | `Enter (no Ctrl)` |
65
+ | Submit the selected reverse-search match. | `Enter (no Ctrl)` |
57
66
  | Accept a suggestion while reverse searching. | `Tab` |
58
67
 
59
68
  #### Navigation
@@ -91,15 +100,18 @@ available combinations.
91
100
 
92
101
  #### App Controls
93
102
 
94
- | Action | Keys |
95
- | ----------------------------------------------------------------- | ---------- |
96
- | Toggle detailed error information. | `F12` |
97
- | Toggle the full TODO list. | `Ctrl + T` |
98
- | Toggle IDE context details. | `Ctrl + G` |
99
- | Toggle Markdown rendering. | `Cmd + M` |
100
- | Toggle copy mode when the terminal is using the alternate buffer. | `Ctrl + S` |
101
- | Expand a height-constrained response to show additional lines. | `Ctrl + S` |
102
- | Toggle focus between the shell and Gemini input. | `Ctrl + F` |
103
+ | Action | Keys |
104
+ | ----------------------------------------------------------------- | ---------------- |
105
+ | Toggle detailed error information. | `F12` |
106
+ | Toggle the full TODO list. | `Ctrl + T` |
107
+ | Show IDE context details. | `Ctrl + G` |
108
+ | Toggle Markdown rendering. | `Cmd + M` |
109
+ | Toggle copy mode when the terminal is using the alternate buffer. | `Ctrl + S` |
110
+ | Toggle YOLO (auto-approval) mode for tool calls. | `Ctrl + Y` |
111
+ | Toggle Auto Edit (auto-accept edits) mode. | `Shift + Tab` |
112
+ | Expand a height-constrained response to show additional lines. | `Ctrl + S` |
113
+ | Focus the shell input from the gemini input. | `Tab (no Shift)` |
114
+ | Focus the Gemini input from the shell input. | `Tab` |
103
115
 
104
116
  #### Session Control
105
117
 
@@ -112,30 +124,11 @@ available combinations.
112
124
 
113
125
  ## Additional context-specific shortcuts
114
126
 
115
- - `Ctrl+Y`: Toggle YOLO (auto-approval) mode for tool calls.
116
- - `Shift+Tab`: Toggle Auto Edit (auto-accept edits) mode.
117
- - `Option+M` (macOS): Entering `µ` with Option+M also toggles Markdown
118
- rendering, matching `Cmd+M`.
127
+ - `Option+B/F/M` (macOS only): Are interpreted as `Cmd+B/F/M` even if your
128
+ terminal isn't configured to send Meta with Option.
119
129
  - `!` on an empty prompt: Enter or exit shell mode.
120
130
  - `\` (at end of a line) + `Enter`: Insert a newline without leaving single-line
121
131
  mode.
122
- - `Ctrl+Delete` / `Meta+Delete`: Delete the word to the right of the cursor.
123
- - `Ctrl+B` or `Left Arrow`: Move the cursor one character to the left while
124
- editing text.
125
- - `Ctrl+F` or `Right Arrow`: Move the cursor one character to the right; with an
126
- embedded shell attached, `Ctrl+F` still toggles focus.
127
- - `Ctrl+D` or `Delete`: Remove the character immediately to the right of the
128
- cursor.
129
- - `Ctrl+H` or `Backspace`: Remove the character immediately to the left of the
130
- cursor.
131
- - `Ctrl+Left Arrow` / `Meta+Left Arrow` / `Meta+B`: Move one word to the left.
132
- - `Ctrl+Right Arrow` / `Meta+Right Arrow` / `Meta+F`: Move one word to the
133
- right.
134
- - `Ctrl+W`: Delete the word to the left of the cursor (in addition to
135
- `Ctrl+Backspace` / `Cmd+Backspace`).
136
- - `Ctrl+Z` / `Ctrl+Shift+Z`: Undo or redo the most recent text edit.
137
- - `Meta+Enter`: Open the current input in an external editor (alias for
138
- `Ctrl+X`).
139
132
  - `Esc` pressed twice quickly: Clear the current input buffer.
140
133
  - `Up Arrow` / `Down Arrow`: When the cursor is at the top or bottom of a
141
134
  single-line input, navigate backward or forward through prompt history.
@@ -1,4 +1,4 @@
1
- ## Model routing
1
+ # Model routing
2
2
 
3
3
  Gemini CLI includes a model routing feature that automatically switches to a
4
4
  fallback model in case of a model failure. This feature is enabled by default
@@ -39,7 +39,7 @@ To enable Gemini 3 Pro and Gemini 3 Flash (if available), enable
39
39
 
40
40
  You can also use the `--model` flag to specify a particular Gemini model on
41
41
  startup. For more details, refer to the
42
- [configuration documentation](./configuration.md).
42
+ [configuration documentation](../get-started/configuration.md).
43
43
 
44
44
  Changes to these settings will be applied to all subsequent interactions with
45
45
  Gemini CLI.
@@ -18,45 +18,50 @@ Note: Workspace settings override user settings.
18
18
  Here is a list of all the available settings, grouped by category and ordered as
19
19
  they appear in the UI.
20
20
 
21
+ <!-- SETTINGS-AUTOGEN:START -->
22
+
21
23
  ### General
22
24
 
23
- | UI Label | Setting | Description | Default |
24
- | ------------------------------- | ---------------------------------- | ---------------------------------------------------------------------------- | ----------- |
25
- | Preview Features (e.g., models) | `general.previewFeatures` | Enable preview features (e.g., preview models). | `false` |
26
- | Vim Mode | `general.vimMode` | Enable Vim keybindings. | `false` |
27
- | Disable Auto Update | `general.disableAutoUpdate` | Disable automatic updates. | `false` |
28
- | Enable Prompt Completion | `general.enablePromptCompletion` | Enable AI-powered prompt completion suggestions while typing. | `false` |
29
- | Debug Keystroke Logging | `general.debugKeystrokeLogging` | Enable debug logging of keystrokes to the console. | `false` |
30
- | Session Retention | `general.sessionRetention` | Settings for automatic session cleanup. This feature is disabled by default. | `undefined` |
31
- | Enable Session Cleanup | `general.sessionRetention.enabled` | Enable automatic session cleanup. | `false` |
25
+ | UI Label | Setting | Description | Default |
26
+ | ------------------------------- | ---------------------------------- | ------------------------------------------------------------- | ------- |
27
+ | Preview Features (e.g., models) | `general.previewFeatures` | Enable preview features (e.g., preview models). | `false` |
28
+ | Vim Mode | `general.vimMode` | Enable Vim keybindings | `false` |
29
+ | Disable Auto Update | `general.disableAutoUpdate` | Disable automatic updates | `false` |
30
+ | Enable Prompt Completion | `general.enablePromptCompletion` | Enable AI-powered prompt completion suggestions while typing. | `false` |
31
+ | Debug Keystroke Logging | `general.debugKeystrokeLogging` | Enable debug logging of keystrokes to the console. | `false` |
32
+ | Enable Session Cleanup | `general.sessionRetention.enabled` | Enable automatic session cleanup | `false` |
32
33
 
33
34
  ### Output
34
35
 
35
- | UI Label | Setting | Description | Default |
36
- | ------------- | --------------- | ------------------------------------------------------ | ------- |
37
- | Output Format | `output.format` | The format of the CLI output. Can be `text` or `json`. | `text` |
36
+ | UI Label | Setting | Description | Default |
37
+ | ------------- | --------------- | ------------------------------------------------------ | -------- |
38
+ | Output Format | `output.format` | The format of the CLI output. Can be `text` or `json`. | `"text"` |
38
39
 
39
40
  ### UI
40
41
 
41
- | UI Label | Setting | Description | Default |
42
- | ------------------------------ | ---------------------------------------- | -------------------------------------------------------------------- | ------- |
43
- | Hide Window Title | `ui.hideWindowTitle` | Hide the window title bar. | `false` |
44
- | Show Status in Title | `ui.showStatusInTitle` | Show Gemini CLI status and thoughts in the terminal window title. | `false` |
45
- | Hide Tips | `ui.hideTips` | Hide helpful tips in the UI. | `false` |
46
- | Hide Banner | `ui.hideBanner` | Hide the application banner. | `false` |
47
- | Hide Context Summary | `ui.hideContextSummary` | Hide the context summary (GEMINI.md, MCP servers) above the input. | `false` |
48
- | Hide CWD | `ui.footer.hideCWD` | Hide the current working directory path in the footer. | `false` |
49
- | Hide Sandbox Status | `ui.footer.hideSandboxStatus` | Hide the sandbox status indicator in the footer. | `false` |
50
- | Hide Model Info | `ui.footer.hideModelInfo` | Hide the model name and context usage in the footer. | `false` |
51
- | Hide Context Window Percentage | `ui.footer.hideContextPercentage` | Hides the context window remaining percentage. | `true` |
52
- | Hide Footer | `ui.hideFooter` | Hide the footer from the UI. | `false` |
53
- | Show Memory Usage | `ui.showMemoryUsage` | Display memory usage information in the UI. | `false` |
54
- | Show Line Numbers | `ui.showLineNumbers` | Show line numbers in the chat. | `false` |
55
- | Show Citations | `ui.showCitations` | Show citations for generated text in the chat. | `false` |
56
- | Use Full Width | `ui.useFullWidth` | Use the entire width of the terminal for output. | `true` |
57
- | Use Alternate Screen Buffer | `ui.useAlternateBuffer` | Use an alternate screen buffer for the UI, preserving shell history. | `true` |
58
- | Disable Loading Phrases | `ui.accessibility.disableLoadingPhrases` | Disable loading phrases for accessibility. | `false` |
59
- | Screen Reader Mode | `ui.accessibility.screenReader` | Render output in plain-text to be more screen reader accessible. | `false` |
42
+ | UI Label | Setting | Description | Default |
43
+ | ------------------------------ | ---------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- |
44
+ | Hide Window Title | `ui.hideWindowTitle` | Hide the window title bar | `false` |
45
+ | Show Thoughts in Title | `ui.showStatusInTitle` | Show Gemini CLI model thoughts in the terminal window title during the working phase | `false` |
46
+ | Dynamic Window Title | `ui.dynamicWindowTitle` | Update the terminal window title with current status icons (Ready: ◇, Action Required: ✋, Working: ✦) | `true` |
47
+ | Show Home Directory Warning | `ui.showHomeDirectoryWarning` | Show a warning when running Gemini CLI in the home directory. | `true` |
48
+ | Hide Tips | `ui.hideTips` | Hide helpful tips in the UI | `false` |
49
+ | Hide Banner | `ui.hideBanner` | Hide the application banner | `false` |
50
+ | Hide Context Summary | `ui.hideContextSummary` | Hide the context summary (GEMINI.md, MCP servers) above the input. | `false` |
51
+ | Hide CWD | `ui.footer.hideCWD` | Hide the current working directory path in the footer. | `false` |
52
+ | Hide Sandbox Status | `ui.footer.hideSandboxStatus` | Hide the sandbox status indicator in the footer. | `false` |
53
+ | Hide Model Info | `ui.footer.hideModelInfo` | Hide the model name and context usage in the footer. | `false` |
54
+ | Hide Context Window Percentage | `ui.footer.hideContextPercentage` | Hides the context window remaining percentage. | `true` |
55
+ | Hide Footer | `ui.hideFooter` | Hide the footer from the UI | `false` |
56
+ | Show Memory Usage | `ui.showMemoryUsage` | Display memory usage information in the UI | `false` |
57
+ | Show Line Numbers | `ui.showLineNumbers` | Show line numbers in the chat. | `true` |
58
+ | Show Citations | `ui.showCitations` | Show citations for generated text in the chat. | `false` |
59
+ | Show Model Info In Chat | `ui.showModelInfoInChat` | Show the model name in the chat for each model turn. | `false` |
60
+ | Use Full Width | `ui.useFullWidth` | Use the entire width of the terminal for output. | `true` |
61
+ | Use Alternate Screen Buffer | `ui.useAlternateBuffer` | Use an alternate screen buffer for the UI, preserving shell history. | `false` |
62
+ | Incremental Rendering | `ui.incrementalRendering` | Enable incremental rendering for the UI. This option will reduce flickering but may cause rendering artifacts. Only supported when useAlternateBuffer is enabled. | `true` |
63
+ | Disable Loading Phrases | `ui.accessibility.disableLoadingPhrases` | Disable loading phrases for accessibility | `false` |
64
+ | Screen Reader Mode | `ui.accessibility.screenReader` | Render output in plain-text to be more screen reader accessible | `false` |
60
65
 
61
66
  ### IDE
62
67
 
@@ -69,7 +74,7 @@ they appear in the UI.
69
74
  | UI Label | Setting | Description | Default |
70
75
  | ----------------------- | ---------------------------- | -------------------------------------------------------------------------------------- | ------- |
71
76
  | Max Session Turns | `model.maxSessionTurns` | Maximum number of user/model/tool turns to keep in a session. -1 means unlimited. | `-1` |
72
- | Compression Threshold | `model.compressionThreshold` | The fraction of context usage at which to trigger context compression (e.g. 0.2, 0.3). | `0.2` |
77
+ | Compression Threshold | `model.compressionThreshold` | The fraction of context usage at which to trigger context compression (e.g. 0.2, 0.3). | `0.5` |
73
78
  | Skip Next Speaker Check | `model.skipNextSpeakerCheck` | Skip the next speaker check. | `true` |
74
79
 
75
80
  ### Context
@@ -85,30 +90,41 @@ they appear in the UI.
85
90
 
86
91
  ### Tools
87
92
 
88
- | UI Label | Setting | Description | Default |
89
- | -------------------------------- | ------------------------------------ | --------------------------------------------------------------------------------------------------------------- | ------- |
90
- | Enable Interactive Shell | `tools.shell.enableInteractiveShell` | Use node-pty for an interactive shell experience. Fallback to child_process still applies. | `true` |
91
- | Show Color | `tools.shell.showColor` | Show color in shell output. | `false` |
92
- | Auto Accept | `tools.autoAccept` | Automatically accept and execute tool calls that are considered safe (e.g., read-only operations). | `false` |
93
- | Use Ripgrep | `tools.useRipgrep` | Use ripgrep for file content search instead of the fallback implementation. Provides faster search performance. | `true` |
94
- | Enable Tool Output Truncation | `tools.enableToolOutputTruncation` | Enable truncation of large tool outputs. | `true` |
95
- | Tool Output Truncation Threshold | `tools.truncateToolOutputThreshold` | Truncate tool output if it is larger than this many characters. Set to -1 to disable. | `10000` |
96
- | Tool Output Truncation Lines | `tools.truncateToolOutputLines` | The number of lines to keep when truncating tool output. | `100` |
93
+ | UI Label | Setting | Description | Default |
94
+ | -------------------------------- | ------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------- |
95
+ | Enable Interactive Shell | `tools.shell.enableInteractiveShell` | Use node-pty for an interactive shell experience. Fallback to child_process still applies. | `true` |
96
+ | Show Color | `tools.shell.showColor` | Show color in shell output. | `false` |
97
+ | Auto Accept | `tools.autoAccept` | Automatically accept and execute tool calls that are considered safe (e.g., read-only operations). | `false` |
98
+ | Use Ripgrep | `tools.useRipgrep` | Use ripgrep for file content search instead of the fallback implementation. Provides faster search performance. | `true` |
99
+ | Enable Tool Output Truncation | `tools.enableToolOutputTruncation` | Enable truncation of large tool outputs. | `true` |
100
+ | Tool Output Truncation Threshold | `tools.truncateToolOutputThreshold` | Truncate tool output if it is larger than this many characters. Set to -1 to disable. | `4000000` |
101
+ | Tool Output Truncation Lines | `tools.truncateToolOutputLines` | The number of lines to keep when truncating tool output. | `1000` |
102
+ | Disable LLM Correction | `tools.disableLLMCorrection` | Disable LLM-based error correction for edit tools. When enabled, tools will fail immediately if exact string matches are not found, instead of attempting to self-correct. | `false` |
97
103
 
98
104
  ### Security
99
105
 
100
- | UI Label | Setting | Description | Default |
101
- | ----------------------------- | ----------------------------------------------- | --------------------------------------------------------- | ------- |
102
- | Disable YOLO Mode | `security.disableYoloMode` | Disable YOLO mode, even if enabled by a flag. | `false` |
103
- | Blocks extensions from Git | `security.blockGitExtensions` | Blocks installing and loading extensions from Git. | `false` |
104
- | Folder Trust | `security.folderTrust.enabled` | Setting to track whether Folder trust is enabled. | `false` |
105
- | Allowed Environment Variables | `security.environmentVariableRedaction.allowed` | Environment variables to always allow (bypass redaction). | `[]` |
106
- | Blocked Environment Variables | `security.environmentVariableRedaction.blocked` | Environment variables to always redact. | `[]` |
106
+ | UI Label | Setting | Description | Default |
107
+ | ------------------------------------- | ----------------------------------------------- | ------------------------------------------------------------------------------- | ------- |
108
+ | Disable YOLO Mode | `security.disableYoloMode` | Disable YOLO mode, even if enabled by a flag. | `false` |
109
+ | Allow Permanent Tool Approval | `security.enablePermanentToolApproval` | Enable the "Allow for all future sessions" option in tool confirmation dialogs. | `false` |
110
+ | Blocks extensions from Git | `security.blockGitExtensions` | Blocks installing and loading extensions from Git. | `false` |
111
+ | Folder Trust | `security.folderTrust.enabled` | Setting to track whether Folder trust is enabled. | `false` |
112
+ | Enable Environment Variable Redaction | `security.environmentVariableRedaction.enabled` | Enable redaction of environment variables that may contain secrets. | `false` |
107
113
 
108
114
  ### Experimental
109
115
 
110
- | UI Label | Setting | Description | Default |
111
- | ----------------------------------- | ------------------------------------------------------- | ------------------------------------------------------------ | ------- |
112
- | Enable Codebase Investigator | `experimental.codebaseInvestigatorSettings.enabled` | Enable the Codebase Investigator agent. | `true` |
113
- | Codebase Investigator Max Num Turns | `experimental.codebaseInvestigatorSettings.maxNumTurns` | Maximum number of turns for the Codebase Investigator agent. | `10` |
114
- | Agent Skills | `experimental.skills` | Enable Agent Skills (experimental). | `false` |
116
+ | UI Label | Setting | Description | Default |
117
+ | ----------------------------------- | ------------------------------------------------------- | ----------------------------------------------------------------------------------- | ------- |
118
+ | Agent Skills | `experimental.skills` | Enable Agent Skills (experimental). | `false` |
119
+ | Enable Codebase Investigator | `experimental.codebaseInvestigatorSettings.enabled` | Enable the Codebase Investigator agent. | `true` |
120
+ | Codebase Investigator Max Num Turns | `experimental.codebaseInvestigatorSettings.maxNumTurns` | Maximum number of turns for the Codebase Investigator agent. | `10` |
121
+ | Use OSC 52 Paste | `experimental.useOSC52Paste` | Use OSC 52 sequence for pasting instead of clipboardy (useful for remote sessions). | `false` |
122
+ | Enable CLI Help Agent | `experimental.cliHelpAgentSettings.enabled` | Enable the CLI Help Agent. | `true` |
123
+
124
+ ### Hooks
125
+
126
+ | UI Label | Setting | Description | Default |
127
+ | ------------------ | --------------------- | ------------------------------------------------ | ------- |
128
+ | Hook Notifications | `hooks.notifications` | Show visual indicators when hooks are executing. | `true` |
129
+
130
+ <!-- SETTINGS-AUTOGEN:END -->
@@ -71,9 +71,26 @@ The `gemini skills` command provides management utilities:
71
71
  # List all discovered skills
72
72
  gemini skills list
73
73
 
74
- # Enable/disable skills. Can use --scope to specify project or user
74
+ # Install a skill from a Git repository, local directory, or zipped skill file (.skill)
75
+ # Uses the user scope by default (~/.gemini/skills)
76
+ gemini skills install https://github.com/user/repo.git
77
+ gemini skills install /path/to/local/skill
78
+ gemini skills install /path/to/local/my-expertise.skill
79
+
80
+ # Install a specific skill from a monorepo or subdirectory using --path
81
+ gemini skills install https://github.com/my-org/my-skills.git --path skills/frontend-design
82
+
83
+ # Install to the workspace scope (.gemini/skills)
84
+ gemini skills install /path/to/skill --scope workspace
85
+
86
+ # Uninstall a skill by name
87
+ gemini skills uninstall my-expertise --scope workspace
88
+
89
+ # Enable a skill (globally)
75
90
  gemini skills enable my-expertise
76
- gemini skills disable my-expertise
91
+
92
+ # Disable a skill. Can use --scope to specify project or user (defaults to project)
93
+ gemini skills disable my-expertise --scope project
77
94
  ```
78
95
 
79
96
  ## Creating a Skill
@@ -81,7 +98,20 @@ gemini skills disable my-expertise
81
98
  A skill is a directory containing a `SKILL.md` file at its root. This file uses
82
99
  YAML frontmatter for metadata and Markdown for instructions.
83
100
 
84
- ### Basic Structure
101
+ ### Folder Structure
102
+
103
+ Skills are self-contained directories. At a minimum, a skill requires a
104
+ `SKILL.md` file, but can include other resources:
105
+
106
+ ```text
107
+ my-skill/
108
+ ├── SKILL.md (Required) Instructions and metadata
109
+ ├── scripts/ (Optional) Executable scripts/tools
110
+ ├── references/ (Optional) Static documentation and examples
111
+ └── assets/ (Optional) Templates and binary resources
112
+ ```
113
+
114
+ ### Basic Structure (SKILL.md)
85
115
 
86
116
  ```markdown
87
117
  ---
@@ -100,6 +130,8 @@ description: <what the skill does and when Gemini should use it>
100
130
 
101
131
  ### Example: Team Code Reviewer
102
132
 
133
+ Create `~/.gemini/skills/code-reviewer/SKILL.md`:
134
+
103
135
  ```markdown
104
136
  ---
105
137
  name: code-reviewer
@@ -8,8 +8,10 @@ Learn how to enable and setup OpenTelemetry for Gemini CLI.
8
8
  - [Configuration](#configuration)
9
9
  - [Google Cloud telemetry](#google-cloud-telemetry)
10
10
  - [Prerequisites](#prerequisites)
11
+ - [Authenticating with CLI Credentials](#authenticating-with-cli-credentials)
11
12
  - [Direct export (recommended)](#direct-export-recommended)
12
13
  - [Collector-based export (advanced)](#collector-based-export-advanced)
14
+ - [Monitoring Dashboards](#monitoring-dashboards)
13
15
  - [Local telemetry](#local-telemetry)
14
16
  - [File-based output (recommended)](#file-based-output-recommended)
15
17
  - [Collector-based export (advanced)](#collector-based-export-advanced-1)
@@ -213,6 +215,24 @@ forward data to Google Cloud.
213
215
  - Open `~/.gemini/tmp/<projectHash>/otel/collector-gcp.log` to view local
214
216
  collector logs.
215
217
 
218
+ ### Monitoring Dashboards
219
+
220
+ Gemini CLI provides a pre-configured
221
+ [Google Cloud Monitoring](https://cloud.google.com/monitoring) dashboard to
222
+ visualize your telemetry.
223
+
224
+ This dashboard can be found under **Google Cloud Monitoring Dashboard
225
+ Templates** as "**Gemini CLI Monitoring**".
226
+
227
+ ![Gemini CLI Monitoring Dashboard Overview](../assets/monitoring-dashboard-overview.png)
228
+
229
+ ![Gemini CLI Monitoring Dashboard Metrics](../assets/monitoring-dashboard-metrics.png)
230
+
231
+ ![Gemini CLI Monitoring Dashboard Logs](../assets/monitoring-dashboard-logs.png)
232
+
233
+ To learn more, check out this blog post:
234
+ [Instant insights: Gemini CLI’s new pre-configured monitoring dashboards](https://cloud.google.com/blog/topics/developers-practitioners/instant-insights-gemini-clis-new-pre-configured-monitoring-dashboards/).
235
+
216
236
  ## Local telemetry
217
237
 
218
238
  For local development and debugging, you can capture telemetry data locally:
@@ -83,7 +83,9 @@ The processor automatically detects and prevents circular imports:
83
83
  # file-a.md
84
84
 
85
85
  @./file-b.md
86
+ ```
86
87
 
88
+ ```markdown
87
89
  # file-b.md
88
90
 
89
91
  @./file-a.md <!-- This will be detected and prevented -->
@@ -258,8 +258,9 @@ The Gemini CLI ships with a set of default policies to provide a safe
258
258
  out-of-the-box experience.
259
259
 
260
260
  - **Read-only tools** (like `read_file`, `glob`) are generally **allowed**.
261
- - **Agent delegation** (like `delegate_to_agent`) is **allowed** (sub-agent
262
- actions are checked individually).
261
+ - **Agent delegation** (like `delegate_to_agent`) defaults to **`ask_user`** to
262
+ ensure remote agents can prompt for confirmation, but local sub-agent actions
263
+ are executed silently and checked individually.
263
264
  - **Write tools** (like `write_file`, `run_shell_command`) default to
264
265
  **`ask_user`**.
265
266
  - In **`yolo`** mode, a high-priority rule allows all tools.
@@ -165,7 +165,7 @@ The file has the following structure:
165
165
  - `version`: The version of the extension.
166
166
  - `mcpServers`: A map of MCP servers to settings. The key is the name of the
167
167
  server, and the value is the server configuration. These servers will be
168
- loaded on startup just like MCP servers settingsd in a
168
+ loaded on startup just like MCP servers settings in a
169
169
  [`settings.json` file](../get-started/configuration.md). If both an extension
170
170
  and a `settings.json` file settings an MCP server with the same name, the
171
171
  server defined in the `settings.json` file takes precedence.
@@ -226,13 +226,13 @@ key. The value will be saved to a `.env` file in the extension's directory
226
226
  You can view a list of an extension's settings by running:
227
227
 
228
228
  ```
229
- gemini extensions settings list <extension name>
229
+ gemini extensions list
230
230
  ```
231
231
 
232
232
  and you can update a given setting using:
233
233
 
234
234
  ```
235
- gemini extensions settings set <extension name> <setting name> [--scope <scope>]
235
+ gemini extensions config <extension name> [setting name] [--scope <scope>]
236
236
  ```
237
237
 
238
238
  - `--scope`: The scope to set the setting in (`user` or `workspace`). This is
@@ -263,6 +263,54 @@ Would provide these commands:
263
263
  - `/deploy` - Shows as `[gcp] Custom command from deploy.toml` in help
264
264
  - `/gcs:sync` - Shows as `[gcp] Custom command from sync.toml` in help
265
265
 
266
+ ### Hooks
267
+
268
+ Extensions can provide [hooks](../hooks/index.md) to intercept and customize
269
+ Gemini CLI behavior at specific lifecycle events. Hooks provided by an extension
270
+ must be defined in a `hooks/hooks.json` file within the extension directory.
271
+
272
+ > [!IMPORTANT] Hooks are not defined directly in `gemini-extension.json`. The
273
+ > CLI specifically looks for the `hooks/hooks.json` file.
274
+
275
+ #### Directory structure
276
+
277
+ ```
278
+ .gemini/extensions/my-extension/
279
+ ├── gemini-extension.json
280
+ └── hooks/
281
+ └── hooks.json
282
+ ```
283
+
284
+ #### `hooks/hooks.json` format
285
+
286
+ The `hooks.json` file contains a `hooks` object where keys are
287
+ [event names](../hooks/reference.md#supported-events) and values are arrays of
288
+ [hook definitions](../hooks/reference.md#hook-definition).
289
+
290
+ ```json
291
+ {
292
+ "hooks": {
293
+ "before_agent": [
294
+ {
295
+ "hooks": [
296
+ {
297
+ "type": "command",
298
+ "command": "node ${extensionPath}/scripts/setup.js",
299
+ "name": "Extension Setup"
300
+ }
301
+ ]
302
+ }
303
+ ]
304
+ }
305
+ }
306
+ ```
307
+
308
+ #### Supported variables
309
+
310
+ Just like `gemini-extension.json`, the `hooks/hooks.json` file supports
311
+ [variable substitution](#variables). This is particularly useful for referencing
312
+ scripts within the extension directory using `${extensionPath}`.
313
+
266
314
  ### Conflict resolution
267
315
 
268
316
  Extension commands have the lowest precedence. When a conflict occurs with user
@@ -278,11 +326,12 @@ For example, if both a user and the `gcp` extension define a `deploy` command:
278
326
  - `/gcp.deploy` - Executes the extension's deploy command (marked with `[gcp]`
279
327
  tag)
280
328
 
281
- ## Variables
329
+ ### Variables
282
330
 
283
- Gemini CLI extensions allow variable substitution in `gemini-extension.json`.
284
- This can be useful if e.g., you need the current directory to run an MCP server
285
- using `"cwd": "${extensionPath}${/}run.ts"`.
331
+ Gemini CLI extensions allow variable substitution in both
332
+ `gemini-extension.json` and `hooks/hooks.json`. This can be useful if e.g., you
333
+ need the current directory to run an MCP server or hook script using
334
+ `"cwd": "${extensionPath}${/}run.ts"`.
286
335
 
287
336
  **Supported variables:**
288
337
 
@@ -291,3 +340,4 @@ using `"cwd": "${extensionPath}${/}run.ts"`.
291
340
  | `${extensionPath}` | The fully-qualified path of the extension in the user's filesystem e.g., '/Users/username/.gemini/extensions/example-extension'. This will not unwrap symlinks. |
292
341
  | `${workspacePath}` | The fully-qualified path of the current workspace. |
293
342
  | `${/} or ${pathSeparator}` | The path separator (differs per OS). |
343
+ | `${process.execPath}` | The path to the Node.js binary executing the CLI. |