@google/gemini-cli-core 0.26.0-preview.4 → 0.27.0-nightly.20260126.cb772a5b7

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 (325) hide show
  1. package/README.md +18 -1
  2. package/dist/docs/changelogs/index.md +87 -0
  3. package/dist/docs/changelogs/latest.md +355 -150
  4. package/dist/docs/changelogs/preview.md +318 -210
  5. package/dist/docs/cli/commands.md +0 -6
  6. package/dist/docs/cli/keyboard-shortcuts.md +32 -31
  7. package/dist/docs/cli/settings.md +16 -18
  8. package/dist/docs/cli/system-prompt.md +32 -0
  9. package/dist/docs/cli/uninstall.md +18 -0
  10. package/dist/docs/extensions/index.md +1 -1
  11. package/dist/docs/get-started/configuration.md +9 -34
  12. package/dist/docs/hooks/best-practices.md +219 -398
  13. package/dist/docs/hooks/index.md +111 -656
  14. package/dist/docs/hooks/reference.md +280 -136
  15. package/dist/docs/hooks/writing-hooks.md +202 -796
  16. package/dist/docs/sidebar.json +1 -5
  17. package/dist/docs/tools/mcp-server.md +24 -1
  18. package/dist/google-gemini-cli-core-0.27.0-nightly.20260121.97aac696f.tgz +0 -0
  19. package/dist/src/agents/agentLoader.js +10 -10
  20. package/dist/src/agents/agentLoader.js.map +1 -1
  21. package/dist/src/agents/agentLoader.test.js +16 -19
  22. package/dist/src/agents/agentLoader.test.js.map +1 -1
  23. package/dist/src/agents/cli-help-agent.js +8 -5
  24. package/dist/src/agents/cli-help-agent.js.map +1 -1
  25. package/dist/src/agents/cli-help-agent.test.js +4 -2
  26. package/dist/src/agents/cli-help-agent.test.js.map +1 -1
  27. package/dist/src/agents/codebase-investigator.d.ts +2 -1
  28. package/dist/src/agents/codebase-investigator.js +62 -41
  29. package/dist/src/agents/codebase-investigator.js.map +1 -1
  30. package/dist/src/agents/codebase-investigator.test.js +15 -8
  31. package/dist/src/agents/codebase-investigator.test.js.map +1 -1
  32. package/dist/src/agents/generalist-agent.js +9 -11
  33. package/dist/src/agents/generalist-agent.js.map +1 -1
  34. package/dist/src/agents/generalist-agent.test.js +3 -3
  35. package/dist/src/agents/generalist-agent.test.js.map +1 -1
  36. package/dist/src/agents/local-executor.js +25 -9
  37. package/dist/src/agents/local-executor.js.map +1 -1
  38. package/dist/src/agents/local-executor.test.js +74 -7
  39. package/dist/src/agents/local-executor.test.js.map +1 -1
  40. package/dist/src/agents/local-invocation.test.js +7 -3
  41. package/dist/src/agents/local-invocation.test.js.map +1 -1
  42. package/dist/src/agents/registry.d.ts +8 -5
  43. package/dist/src/agents/registry.js +31 -75
  44. package/dist/src/agents/registry.js.map +1 -1
  45. package/dist/src/agents/registry.test.js +93 -30
  46. package/dist/src/agents/registry.test.js.map +1 -1
  47. package/dist/src/agents/remote-invocation.js +2 -1
  48. package/dist/src/agents/remote-invocation.js.map +1 -1
  49. package/dist/src/agents/remote-invocation.test.js +15 -3
  50. package/dist/src/agents/remote-invocation.test.js.map +1 -1
  51. package/dist/src/agents/subagent-tool-wrapper.js +1 -3
  52. package/dist/src/agents/subagent-tool-wrapper.js.map +1 -1
  53. package/dist/src/agents/subagent-tool-wrapper.test.js +10 -25
  54. package/dist/src/agents/subagent-tool-wrapper.test.js.map +1 -1
  55. package/dist/src/agents/subagent-tool.d.ts +15 -0
  56. package/dist/src/agents/subagent-tool.js +61 -0
  57. package/dist/src/agents/subagent-tool.js.map +1 -0
  58. package/dist/src/agents/types.d.ts +6 -9
  59. package/dist/src/agents/types.js +4 -0
  60. package/dist/src/agents/types.js.map +1 -1
  61. package/dist/src/code_assist/codeAssist.js +1 -1
  62. package/dist/src/code_assist/codeAssist.js.map +1 -1
  63. package/dist/src/code_assist/codeAssist.test.js +2 -2
  64. package/dist/src/code_assist/codeAssist.test.js.map +1 -1
  65. package/dist/src/code_assist/experiments/experiments.test.js +1 -0
  66. package/dist/src/code_assist/experiments/experiments.test.js.map +1 -1
  67. package/dist/src/code_assist/experiments/experiments_local.test.js +11 -6
  68. package/dist/src/code_assist/experiments/experiments_local.test.js.map +1 -1
  69. package/dist/src/code_assist/experiments/flagNames.d.ts +2 -0
  70. package/dist/src/code_assist/experiments/flagNames.js +2 -0
  71. package/dist/src/code_assist/experiments/flagNames.js.map +1 -1
  72. package/dist/src/code_assist/oauth2.js +3 -3
  73. package/dist/src/code_assist/oauth2.test.js +1 -1
  74. package/dist/src/code_assist/server.d.ts +2 -1
  75. package/dist/src/code_assist/server.js +3 -1
  76. package/dist/src/code_assist/server.js.map +1 -1
  77. package/dist/src/code_assist/setup.d.ts +1 -0
  78. package/dist/src/code_assist/setup.js +5 -1
  79. package/dist/src/code_assist/setup.js.map +1 -1
  80. package/dist/src/code_assist/setup.test.js +10 -4
  81. package/dist/src/code_assist/setup.test.js.map +1 -1
  82. package/dist/src/config/config.d.ts +25 -18
  83. package/dist/src/config/config.js +70 -40
  84. package/dist/src/config/config.js.map +1 -1
  85. package/dist/src/config/config.test.js +48 -21
  86. package/dist/src/config/config.test.js.map +1 -1
  87. package/dist/src/confirmation-bus/message-bus.js +2 -32
  88. package/dist/src/confirmation-bus/message-bus.js.map +1 -1
  89. package/dist/src/confirmation-bus/types.d.ts +35 -21
  90. package/dist/src/confirmation-bus/types.js +8 -3
  91. package/dist/src/confirmation-bus/types.js.map +1 -1
  92. package/dist/src/core/client.js +25 -7
  93. package/dist/src/core/client.js.map +1 -1
  94. package/dist/src/core/client.test.js +52 -6
  95. package/dist/src/core/client.test.js.map +1 -1
  96. package/dist/src/core/contentGenerator.d.ts +1 -0
  97. package/dist/src/core/contentGenerator.js.map +1 -1
  98. package/dist/src/core/coreToolHookTriggers.d.ts +2 -38
  99. package/dist/src/core/coreToolHookTriggers.js +12 -159
  100. package/dist/src/core/coreToolHookTriggers.js.map +1 -1
  101. package/dist/src/core/coreToolHookTriggers.test.js +62 -94
  102. package/dist/src/core/coreToolHookTriggers.test.js.map +1 -1
  103. package/dist/src/core/coreToolScheduler.js +3 -5
  104. package/dist/src/core/coreToolScheduler.js.map +1 -1
  105. package/dist/src/core/coreToolScheduler.test.js +3 -0
  106. package/dist/src/core/coreToolScheduler.test.js.map +1 -1
  107. package/dist/src/core/fakeContentGenerator.d.ts +1 -0
  108. package/dist/src/core/fakeContentGenerator.js +1 -0
  109. package/dist/src/core/fakeContentGenerator.js.map +1 -1
  110. package/dist/src/core/geminiChat.js +1 -0
  111. package/dist/src/core/geminiChat.js.map +1 -1
  112. package/dist/src/core/geminiChat.test.js +21 -0
  113. package/dist/src/core/geminiChat.test.js.map +1 -1
  114. package/dist/src/core/geminiChat_network_retry.test.js +17 -12
  115. package/dist/src/core/geminiChat_network_retry.test.js.map +1 -1
  116. package/dist/src/core/loggingContentGenerator.d.ts +3 -0
  117. package/dist/src/core/loggingContentGenerator.js +6 -0
  118. package/dist/src/core/loggingContentGenerator.js.map +1 -1
  119. package/dist/src/core/loggingContentGenerator.test.js +11 -0
  120. package/dist/src/core/loggingContentGenerator.test.js.map +1 -1
  121. package/dist/src/core/prompts-substitution.test.js +101 -0
  122. package/dist/src/core/prompts-substitution.test.js.map +1 -0
  123. package/dist/src/core/prompts.js +115 -31
  124. package/dist/src/core/prompts.js.map +1 -1
  125. package/dist/src/core/prompts.test.js +32 -0
  126. package/dist/src/core/prompts.test.js.map +1 -1
  127. package/dist/src/core/recordingContentGenerator.d.ts +2 -1
  128. package/dist/src/core/recordingContentGenerator.js +6 -1
  129. package/dist/src/core/recordingContentGenerator.js.map +1 -1
  130. package/dist/src/core/turn.d.ts +2 -0
  131. package/dist/src/core/turn.js.map +1 -1
  132. package/dist/src/generated/git-commit.d.ts +2 -2
  133. package/dist/src/generated/git-commit.js +2 -2
  134. package/dist/src/generated/git-commit.js.map +1 -1
  135. package/dist/src/hooks/hookAggregator.js +13 -3
  136. package/dist/src/hooks/hookAggregator.js.map +1 -1
  137. package/dist/src/hooks/hookEventHandler.d.ts +1 -13
  138. package/dist/src/hooks/hookEventHandler.js +1 -289
  139. package/dist/src/hooks/hookEventHandler.js.map +1 -1
  140. package/dist/src/hooks/hookEventHandler.test.js +1 -4
  141. package/dist/src/hooks/hookEventHandler.test.js.map +1 -1
  142. package/dist/src/hooks/hookSystem.d.ts +47 -3
  143. package/dist/src/hooks/hookSystem.js +90 -6
  144. package/dist/src/hooks/hookSystem.js.map +1 -1
  145. package/dist/src/hooks/hookSystem.test.js +19 -8
  146. package/dist/src/hooks/hookSystem.test.js.map +1 -1
  147. package/dist/src/hooks/types.d.ts +23 -1
  148. package/dist/src/hooks/types.js +28 -2
  149. package/dist/src/hooks/types.js.map +1 -1
  150. package/dist/src/hooks/types.test.js +9 -1
  151. package/dist/src/hooks/types.test.js.map +1 -1
  152. package/dist/src/ide/detect-ide.d.ts +41 -0
  153. package/dist/src/ide/detect-ide.js +47 -3
  154. package/dist/src/ide/detect-ide.js.map +1 -1
  155. package/dist/src/ide/detect-ide.test.js +46 -0
  156. package/dist/src/ide/detect-ide.test.js.map +1 -1
  157. package/dist/src/ide/ide-client.d.ts +1 -0
  158. package/dist/src/ide/ide-client.js +36 -9
  159. package/dist/src/ide/ide-client.js.map +1 -1
  160. package/dist/src/ide/ide-client.test.js +154 -6
  161. package/dist/src/ide/ide-client.test.js.map +1 -1
  162. package/dist/src/index.d.ts +2 -0
  163. package/dist/src/index.js +2 -0
  164. package/dist/src/index.js.map +1 -1
  165. package/dist/src/mcp/oauth-provider.d.ts +1 -2
  166. package/dist/src/mcp/oauth-provider.js +4 -8
  167. package/dist/src/mcp/oauth-provider.js.map +1 -1
  168. package/dist/src/mcp/oauth-provider.test.js +32 -0
  169. package/dist/src/mcp/oauth-provider.test.js.map +1 -1
  170. package/dist/src/mcp/oauth-utils.d.ts +13 -4
  171. package/dist/src/mcp/oauth-utils.js +23 -19
  172. package/dist/src/mcp/oauth-utils.js.map +1 -1
  173. package/dist/src/mcp/oauth-utils.test.js +13 -8
  174. package/dist/src/mcp/oauth-utils.test.js.map +1 -1
  175. package/dist/src/policy/policy-engine.d.ts +1 -8
  176. package/dist/src/policy/policy-engine.js +1 -75
  177. package/dist/src/policy/policy-engine.js.map +1 -1
  178. package/dist/src/policy/policy-engine.test.js +0 -222
  179. package/dist/src/policy/policy-engine.test.js.map +1 -1
  180. package/dist/src/routing/modelRouterService.js +18 -8
  181. package/dist/src/routing/modelRouterService.js.map +1 -1
  182. package/dist/src/routing/modelRouterService.test.js +14 -6
  183. package/dist/src/routing/modelRouterService.test.js.map +1 -1
  184. package/dist/src/routing/strategies/classifierStrategy.js +4 -7
  185. package/dist/src/routing/strategies/classifierStrategy.js.map +1 -1
  186. package/dist/src/routing/strategies/classifierStrategy.test.js +10 -4
  187. package/dist/src/routing/strategies/classifierStrategy.test.js.map +1 -1
  188. package/dist/src/routing/strategies/numericalClassifierStrategy.d.ts +13 -0
  189. package/dist/src/routing/strategies/numericalClassifierStrategy.js +178 -0
  190. package/dist/src/routing/strategies/numericalClassifierStrategy.js.map +1 -0
  191. package/dist/src/routing/strategies/numericalClassifierStrategy.test.js +347 -0
  192. package/dist/src/routing/strategies/numericalClassifierStrategy.test.js.map +1 -0
  193. package/dist/src/scheduler/confirmation.js +2 -3
  194. package/dist/src/scheduler/confirmation.js.map +1 -1
  195. package/dist/src/scheduler/confirmation.test.js +8 -8
  196. package/dist/src/scheduler/confirmation.test.js.map +1 -1
  197. package/dist/src/scheduler/scheduler.test.js +0 -3
  198. package/dist/src/scheduler/scheduler.test.js.map +1 -1
  199. package/dist/src/scheduler/state-manager.js +4 -0
  200. package/dist/src/scheduler/state-manager.js.map +1 -1
  201. package/dist/src/scheduler/state-manager.test.js +11 -0
  202. package/dist/src/scheduler/state-manager.test.js.map +1 -1
  203. package/dist/src/scheduler/tool-executor.js +2 -4
  204. package/dist/src/scheduler/tool-executor.js.map +1 -1
  205. package/dist/src/scheduler/tool-executor.test.js +1 -1
  206. package/dist/src/scheduler/tool-executor.test.js.map +1 -1
  207. package/dist/src/services/chatRecordingService.d.ts +1 -1
  208. package/dist/src/services/chatRecordingService.js +23 -1
  209. package/dist/src/services/chatRecordingService.js.map +1 -1
  210. package/dist/src/services/chatRecordingService.test.js +111 -0
  211. package/dist/src/services/chatRecordingService.test.js.map +1 -1
  212. package/dist/src/services/sessionSummaryService.test.js +1 -1
  213. package/dist/src/services/sessionSummaryService.test.js.map +1 -1
  214. package/dist/src/telemetry/metrics.js +15 -4
  215. package/dist/src/telemetry/metrics.js.map +1 -1
  216. package/dist/src/telemetry/metrics.test.js +7 -0
  217. package/dist/src/telemetry/metrics.test.js.map +1 -1
  218. package/dist/src/telemetry/types.d.ts +3 -1
  219. package/dist/src/telemetry/types.js +19 -4
  220. package/dist/src/telemetry/types.js.map +1 -1
  221. package/dist/src/test-utils/mock-message-bus.d.ts +1 -19
  222. package/dist/src/test-utils/mock-message-bus.js +1 -65
  223. package/dist/src/test-utils/mock-message-bus.js.map +1 -1
  224. package/dist/src/tools/ask-user.d.ts +20 -0
  225. package/dist/src/tools/ask-user.js +142 -0
  226. package/dist/src/tools/ask-user.js.map +1 -0
  227. package/dist/src/{core/geminiChatHookTriggers.test.d.ts → tools/ask-user.test.d.ts} +1 -1
  228. package/dist/src/tools/ask-user.test.js +187 -0
  229. package/dist/src/tools/ask-user.test.js.map +1 -0
  230. package/dist/src/tools/confirmation-policy.test.js +1 -1
  231. package/dist/src/tools/confirmation-policy.test.js.map +1 -1
  232. package/dist/src/tools/diffOptions.d.ts +1 -1
  233. package/dist/src/tools/diffOptions.js +7 -3
  234. package/dist/src/tools/diffOptions.js.map +1 -1
  235. package/dist/src/tools/diffOptions.test.js +17 -0
  236. package/dist/src/tools/diffOptions.test.js.map +1 -1
  237. package/dist/src/tools/edit.js +1 -1
  238. package/dist/src/tools/edit.js.map +1 -1
  239. package/dist/src/tools/edit.test.js +11 -3
  240. package/dist/src/tools/edit.test.js.map +1 -1
  241. package/dist/src/tools/mcp-client-manager.d.ts +13 -4
  242. package/dist/src/tools/mcp-client-manager.js +53 -21
  243. package/dist/src/tools/mcp-client-manager.js.map +1 -1
  244. package/dist/src/tools/mcp-client-manager.test.js +1 -0
  245. package/dist/src/tools/mcp-client-manager.test.js.map +1 -1
  246. package/dist/src/tools/mcp-client.test.js +1 -2
  247. package/dist/src/tools/mcp-client.test.js.map +1 -1
  248. package/dist/src/tools/modifiable-tool.test.js +3 -3
  249. package/dist/src/tools/modifiable-tool.test.js.map +1 -1
  250. package/dist/src/tools/read-many-files.js +3 -2
  251. package/dist/src/tools/read-many-files.js.map +1 -1
  252. package/dist/src/tools/ripGrep.js +7 -2
  253. package/dist/src/tools/ripGrep.js.map +1 -1
  254. package/dist/src/tools/ripGrep.test.js +2 -2
  255. package/dist/src/tools/ripGrep.test.js.map +1 -1
  256. package/dist/src/tools/tool-names.d.ts +8 -2
  257. package/dist/src/tools/tool-names.js +14 -2
  258. package/dist/src/tools/tool-names.js.map +1 -1
  259. package/dist/src/tools/tools.d.ts +1 -0
  260. package/dist/src/tools/tools.js +2 -1
  261. package/dist/src/tools/tools.js.map +1 -1
  262. package/dist/src/tools/write-file.test.js +7 -7
  263. package/dist/src/tools/write-file.test.js.map +1 -1
  264. package/dist/src/utils/constants.d.ts +7 -0
  265. package/dist/src/utils/constants.js +8 -0
  266. package/dist/src/utils/constants.js.map +1 -0
  267. package/dist/src/utils/editCorrector.js +1 -1
  268. package/dist/src/utils/editCorrector.js.map +1 -1
  269. package/dist/src/utils/editor.js +4 -1
  270. package/dist/src/utils/editor.js.map +1 -1
  271. package/dist/src/utils/editor.test.js +6 -4
  272. package/dist/src/utils/editor.test.js.map +1 -1
  273. package/dist/src/utils/events.d.ts +2 -0
  274. package/dist/src/utils/events.js +1 -0
  275. package/dist/src/utils/events.js.map +1 -1
  276. package/dist/src/utils/extensionLoader.js +1 -0
  277. package/dist/src/utils/extensionLoader.js.map +1 -1
  278. package/dist/src/utils/extensionLoader.test.js +11 -0
  279. package/dist/src/utils/extensionLoader.test.js.map +1 -1
  280. package/dist/src/utils/googleQuotaErrors.d.ts +3 -3
  281. package/dist/src/utils/googleQuotaErrors.js +6 -17
  282. package/dist/src/utils/googleQuotaErrors.js.map +1 -1
  283. package/dist/src/utils/googleQuotaErrors.test.js +4 -22
  284. package/dist/src/utils/googleQuotaErrors.test.js.map +1 -1
  285. package/dist/src/utils/llm-edit-fixer.js +4 -7
  286. package/dist/src/utils/llm-edit-fixer.js.map +1 -1
  287. package/dist/src/utils/llm-edit-fixer.test.js +2 -2
  288. package/dist/src/utils/llm-edit-fixer.test.js.map +1 -1
  289. package/dist/src/utils/memoryImportProcessor.js +7 -24
  290. package/dist/src/utils/memoryImportProcessor.js.map +1 -1
  291. package/dist/src/utils/promptIdContext.d.ts +6 -0
  292. package/dist/src/utils/promptIdContext.js +15 -0
  293. package/dist/src/utils/promptIdContext.js.map +1 -1
  294. package/dist/src/utils/schemaValidator.d.ts +6 -0
  295. package/dist/src/utils/schemaValidator.js +12 -1
  296. package/dist/src/utils/schemaValidator.js.map +1 -1
  297. package/dist/src/utils/workspaceContext.d.ts +15 -0
  298. package/dist/src/utils/workspaceContext.js +32 -11
  299. package/dist/src/utils/workspaceContext.js.map +1 -1
  300. package/dist/src/utils/workspaceContext.test.js +55 -0
  301. package/dist/src/utils/workspaceContext.test.js.map +1 -1
  302. package/dist/tsconfig.tsbuildinfo +1 -1
  303. package/package.json +2 -3
  304. package/dist/docs/changelogs/releases.md +0 -1543
  305. package/dist/google-gemini-cli-core-0.26.0-preview.3.tgz +0 -0
  306. package/dist/src/agents/delegate-to-agent-tool.d.ts +0 -19
  307. package/dist/src/agents/delegate-to-agent-tool.js +0 -178
  308. package/dist/src/agents/delegate-to-agent-tool.js.map +0 -1
  309. package/dist/src/agents/delegate-to-agent-tool.test.js +0 -213
  310. package/dist/src/agents/delegate-to-agent-tool.test.js.map +0 -1
  311. package/dist/src/agents/schema-utils.d.ts +0 -39
  312. package/dist/src/agents/schema-utils.js +0 -57
  313. package/dist/src/agents/schema-utils.js.map +0 -1
  314. package/dist/src/agents/schema-utils.test.js +0 -144
  315. package/dist/src/agents/schema-utils.test.js.map +0 -1
  316. package/dist/src/core/clientHookTriggers.d.ts +0 -36
  317. package/dist/src/core/clientHookTriggers.js +0 -76
  318. package/dist/src/core/clientHookTriggers.js.map +0 -1
  319. package/dist/src/core/geminiChatHookTriggers.d.ts +0 -68
  320. package/dist/src/core/geminiChatHookTriggers.js +0 -158
  321. package/dist/src/core/geminiChatHookTriggers.js.map +0 -1
  322. package/dist/src/core/geminiChatHookTriggers.test.js +0 -153
  323. package/dist/src/core/geminiChatHookTriggers.test.js.map +0 -1
  324. /package/dist/src/{agents/delegate-to-agent-tool.test.d.ts → core/prompts-substitution.test.d.ts} +0 -0
  325. /package/dist/src/{agents/schema-utils.test.d.ts → routing/strategies/numericalClassifierStrategy.test.d.ts} +0 -0
@@ -19,14 +19,14 @@ available combinations.
19
19
 
20
20
  | Action | Keys |
21
21
  | ------------------------------------------- | ------------------------------------------------------------ |
22
- | Move the cursor to the start of the line. | `Ctrl + A`<br />`Home (no Ctrl, no Shift)` |
23
- | Move the cursor to the end of the line. | `Ctrl + E`<br />`End (no Ctrl, no Shift)` |
24
- | Move the cursor up one line. | `Up Arrow (no Ctrl, no Cmd)` |
25
- | Move the cursor down one line. | `Down Arrow (no Ctrl, no Cmd)` |
26
- | Move the cursor one character to the left. | `Left Arrow (no Ctrl, no Cmd)`<br />`Ctrl + B` |
27
- | Move the cursor one character to the right. | `Right Arrow (no Ctrl, no Cmd)`<br />`Ctrl + F` |
28
- | Move the cursor one word to the left. | `Ctrl + Left Arrow`<br />`Cmd + Left Arrow`<br />`Cmd + B` |
29
- | Move the cursor one word to the right. | `Ctrl + Right Arrow`<br />`Cmd + Right Arrow`<br />`Cmd + F` |
22
+ | Move the cursor to the start of the line. | `Ctrl + A`<br />`Home (no Shift, Ctrl)` |
23
+ | Move the cursor to the end of the line. | `Ctrl + E`<br />`End (no Shift, Ctrl)` |
24
+ | Move the cursor up one line. | `Up Arrow (no Shift, Alt, Ctrl, Cmd)` |
25
+ | Move the cursor down one line. | `Down Arrow (no Shift, Alt, Ctrl, Cmd)` |
26
+ | Move the cursor one character to the left. | `Left Arrow (no Shift, Alt, Ctrl, Cmd)`<br />`Ctrl + B` |
27
+ | Move the cursor one character to the right. | `Right Arrow (no Shift, Alt, Ctrl, Cmd)`<br />`Ctrl + F` |
28
+ | Move the cursor one word to the left. | `Ctrl + Left Arrow`<br />`Alt + Left Arrow`<br />`Alt + B` |
29
+ | Move the cursor one word to the right. | `Ctrl + Right Arrow`<br />`Alt + Right Arrow`<br />`Alt + F` |
30
30
 
31
31
  #### Editing
32
32
 
@@ -35,12 +35,12 @@ available combinations.
35
35
  | Delete from the cursor to the end of the line. | `Ctrl + K` |
36
36
  | Delete from the cursor to the start of the line. | `Ctrl + U` |
37
37
  | Clear all text in the input field. | `Ctrl + C` |
38
- | Delete the previous word. | `Ctrl + Backspace`<br />`Cmd + Backspace`<br />`Ctrl + W` |
39
- | Delete the next word. | `Ctrl + Delete`<br />`Cmd + Delete` |
38
+ | Delete the previous word. | `Ctrl + Backspace`<br />`Alt + Backspace`<br />`Ctrl + W` |
39
+ | Delete the next word. | `Ctrl + Delete`<br />`Alt + Delete` |
40
40
  | Delete the character to the left. | `Backspace`<br />`Ctrl + H` |
41
41
  | Delete the character to the right. | `Delete`<br />`Ctrl + D` |
42
42
  | Undo the most recent text edit. | `Ctrl + Z (no Shift)` |
43
- | Redo the most recent undone text edit. | `Ctrl + Shift + Z` |
43
+ | Redo the most recent undone text edit. | `Shift + Ctrl + Z` |
44
44
 
45
45
  #### Scrolling
46
46
 
@@ -62,6 +62,7 @@ available combinations.
62
62
  | Start reverse search through history. | `Ctrl + R` |
63
63
  | Submit the selected reverse-search match. | `Enter (no Ctrl)` |
64
64
  | Accept a suggestion while reverse searching. | `Tab` |
65
+ | Browse and rewind previous interactions. | `Double Esc` |
65
66
 
66
67
  #### Navigation
67
68
 
@@ -84,29 +85,29 @@ available combinations.
84
85
 
85
86
  #### Text Input
86
87
 
87
- | Action | Keys |
88
- | ---------------------------------------------- | ---------------------------------------------------------------------- |
89
- | Submit the current prompt. | `Enter (no Ctrl, no Shift, no Cmd)` |
90
- | Insert a newline without submitting. | `Ctrl + Enter`<br />`Cmd + Enter`<br />`Shift + Enter`<br />`Ctrl + J` |
91
- | Open the current prompt in an external editor. | `Ctrl + X` |
92
- | Paste from the clipboard. | `Ctrl + V`<br />`Cmd + V` |
88
+ | Action | Keys |
89
+ | ---------------------------------------------- | ----------------------------------------------------------------------------------------- |
90
+ | Submit the current prompt. | `Enter (no Shift, Alt, Ctrl, Cmd)` |
91
+ | Insert a newline without submitting. | `Ctrl + Enter`<br />`Cmd + Enter`<br />`Alt + Enter`<br />`Shift + Enter`<br />`Ctrl + J` |
92
+ | Open the current prompt in an external editor. | `Ctrl + X` |
93
+ | Paste from the clipboard. | `Ctrl + V`<br />`Cmd + V`<br />`Alt + V` |
93
94
 
94
95
  #### App Controls
95
96
 
96
- | Action | Keys |
97
- | ------------------------------------------------------------------------------------------------ | ---------------- |
98
- | Toggle detailed error information. | `F12` |
99
- | Toggle the full TODO list. | `Ctrl + T` |
100
- | Show IDE context details. | `Ctrl + G` |
101
- | Toggle Markdown rendering. | `Cmd + M` |
102
- | Toggle copy mode when in alternate buffer mode. | `Ctrl + S` |
103
- | Toggle YOLO (auto-approval) mode for tool calls. | `Ctrl + Y` |
104
- | Toggle Auto Edit (auto-accept edits) mode. | `Shift + Tab` |
105
- | Expand a height-constrained response to show additional lines when not in alternate buffer mode. | `Ctrl + S` |
106
- | Focus the shell input from the gemini input. | `Tab (no Shift)` |
107
- | Focus the Gemini input from the shell input. | `Tab` |
108
- | Clear the terminal screen and redraw the UI. | `Ctrl + L` |
109
- | Restart the application. | `R` |
97
+ | Action | Keys |
98
+ | ----------------------------------------------------------------------------------------------------- | ---------------- |
99
+ | Toggle detailed error information. | `F12` |
100
+ | Toggle the full TODO list. | `Ctrl + T` |
101
+ | Show IDE context details. | `Ctrl + G` |
102
+ | Toggle Markdown rendering. | `Alt + M` |
103
+ | Toggle copy mode when in alternate buffer mode. | `Ctrl + S` |
104
+ | Toggle YOLO (auto-approval) mode for tool calls. | `Ctrl + Y` |
105
+ | Cycle through approval modes: default (prompt), auto_edit (auto-approve edits), and plan (read-only). | `Shift + Tab` |
106
+ | Expand a height-constrained response to show additional lines when not in alternate buffer mode. | `Ctrl + S` |
107
+ | Focus the shell input from the gemini input. | `Tab (no Shift)` |
108
+ | Focus the Gemini input from the shell input. | `Tab` |
109
+ | Clear the terminal screen and redraw the UI. | `Ctrl + L` |
110
+ | Restart the application. | `R` |
110
111
 
111
112
  <!-- KEYBINDINGS-AUTOGEN:END -->
112
113
 
@@ -90,16 +90,17 @@ they appear in the UI.
90
90
 
91
91
  ### Tools
92
92
 
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` |
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
+ | Approval Mode | `tools.approvalMode` | The default approval mode for tool execution. 'default' prompts for approval, 'auto_edit' auto-approves edit tools, and 'plan' is read-only mode. 'yolo' is not supported yet. | `"default"` |
99
+ | Use Ripgrep | `tools.useRipgrep` | Use ripgrep for file content search instead of the fallback implementation. Provides faster search performance. | `true` |
100
+ | Enable Tool Output Truncation | `tools.enableToolOutputTruncation` | Enable truncation of large tool outputs. | `true` |
101
+ | Tool Output Truncation Threshold | `tools.truncateToolOutputThreshold` | Truncate tool output if it is larger than this many characters. Set to -1 to disable. | `4000000` |
102
+ | Tool Output Truncation Lines | `tools.truncateToolOutputLines` | The number of lines to keep when truncating tool output. | `1000` |
103
+ | 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. | `true` |
103
104
 
104
105
  ### Security
105
106
 
@@ -113,14 +114,11 @@ they appear in the UI.
113
114
 
114
115
  ### Experimental
115
116
 
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
- | Plan | `experimental.plan` | Enable planning features (Plan Mode and tools). | `false` |
117
+ | UI Label | Setting | Description | Default |
118
+ | ---------------- | ---------------------------- | ----------------------------------------------------------------------------------- | ------- |
119
+ | Agent Skills | `experimental.skills` | Enable Agent Skills (experimental). | `false` |
120
+ | Use OSC 52 Paste | `experimental.useOSC52Paste` | Use OSC 52 sequence for pasting instead of clipboardy (useful for remote sessions). | `false` |
121
+ | Plan | `experimental.plan` | Enable planning features (Plan Mode and tools). | `false` |
124
122
 
125
123
  ### HooksConfig
126
124
 
@@ -56,6 +56,38 @@ error with: `missing system prompt file '<path>'`.
56
56
  When `GEMINI_SYSTEM_MD` is active, the CLI shows a `|⌐■_■|` indicator in the UI
57
57
  to signal custom system‑prompt mode.
58
58
 
59
+ ## Variable Substitution
60
+
61
+ When using a custom system prompt file, you can use the following variables to
62
+ dynamically include built-in content:
63
+
64
+ - `${AgentSkills}`: Injects a complete section (including header) of all
65
+ available agent skills.
66
+ - `${SubAgents}`: Injects a complete section (including header) of available
67
+ sub-agents.
68
+ - `${AvailableTools}`: Injects a bulleted list of all currently enabled tool
69
+ names.
70
+ - Tool Name Variables: Injects the actual name of a tool using the pattern:
71
+ `${toolName}_ToolName` (e.g., `${write_file_ToolName}`,
72
+ `${run_shell_command_ToolName}`).
73
+
74
+ This pattern is generated dynamically for all available tools.
75
+
76
+ ### Example
77
+
78
+ ```markdown
79
+ # Custom System Prompt
80
+
81
+ You are a helpful assistant. ${AgentSkills}
82
+ ${SubAgents}
83
+
84
+ ## Tooling
85
+
86
+ The following tools are available to you: ${AvailableTools}
87
+
88
+ You can use ${write_file_ToolName} to save logs.
89
+ ```
90
+
59
91
  ## Export the default prompt (recommended)
60
92
 
61
93
  Before overriding, export the current default prompt so you can review required
@@ -45,3 +45,21 @@ npm uninstall -g @google/gemini-cli
45
45
  ```
46
46
 
47
47
  This command completely removes the package from your system.
48
+
49
+ ## Method 3: Homebrew
50
+
51
+ If you installed the CLI globally using Homebrew (e.g.,
52
+ `brew install gemini-cli`), use the `brew uninstall` command to remove it.
53
+
54
+ ```bash
55
+ brew uninstall gemini-cli
56
+ ```
57
+
58
+ ## Method 4: MacPorts
59
+
60
+ If you installed the CLI globally using MacPorts (e.g.,
61
+ `sudo port install gemini-cli`), use the `port uninstall` command to remove it.
62
+
63
+ ```bash
64
+ sudo port uninstall gemini-cli
65
+ ```
@@ -324,7 +324,7 @@ The `hooks.json` file contains a `hooks` object where keys are
324
324
  ```json
325
325
  {
326
326
  "hooks": {
327
- "before_agent": [
327
+ "BeforeAgent": [
328
328
  {
329
329
  "hooks": [
330
330
  {
@@ -650,6 +650,13 @@ their corresponding top-level category object in your `settings.json` file.
650
650
  considered safe (e.g., read-only operations).
651
651
  - **Default:** `false`
652
652
 
653
+ - **`tools.approvalMode`** (enum):
654
+ - **Description:** The default approval mode for tool execution. 'default'
655
+ prompts for approval, 'auto_edit' auto-approves edit tools, and 'plan' is
656
+ read-only mode. 'yolo' is not supported yet.
657
+ - **Default:** `"default"`
658
+ - **Values:** `"default"`, `"auto_edit"`, `"plan"`
659
+
653
660
  - **`tools.core`** (array):
654
661
  - **Description:** Restrict the set of built-in tools with an allowlist. Match
655
662
  semantics mirror tools.allowed; see the built-in tools documentation for
@@ -707,7 +714,7 @@ their corresponding top-level category object in your `settings.json` file.
707
714
  - **Description:** Disable LLM-based error correction for edit tools. When
708
715
  enabled, tools will fail immediately if exact string matches are not found,
709
716
  instead of attempting to self-correct.
710
- - **Default:** `false`
717
+ - **Default:** `true`
711
718
  - **Requires restart:** Yes
712
719
 
713
720
  - **`tools.enableHooks`** (boolean):
@@ -837,7 +844,7 @@ their corresponding top-level category object in your `settings.json` file.
837
844
 
838
845
  - **`experimental.enableEventDrivenScheduler`** (boolean):
839
846
  - **Description:** Enables event-driven scheduler within the CLI session.
840
- - **Default:** `false`
847
+ - **Default:** `true`
841
848
  - **Requires restart:** Yes
842
849
 
843
850
  - **`experimental.extensionReloading`** (boolean):
@@ -855,43 +862,11 @@ their corresponding top-level category object in your `settings.json` file.
855
862
  - **Default:** `false`
856
863
  - **Requires restart:** Yes
857
864
 
858
- - **`experimental.codebaseInvestigatorSettings.enabled`** (boolean):
859
- - **Description:** Enable the Codebase Investigator agent.
860
- - **Default:** `true`
861
- - **Requires restart:** Yes
862
-
863
- - **`experimental.codebaseInvestigatorSettings.maxNumTurns`** (number):
864
- - **Description:** Maximum number of turns for the Codebase Investigator
865
- agent.
866
- - **Default:** `10`
867
- - **Requires restart:** Yes
868
-
869
- - **`experimental.codebaseInvestigatorSettings.maxTimeMinutes`** (number):
870
- - **Description:** Maximum time for the Codebase Investigator agent (in
871
- minutes).
872
- - **Default:** `3`
873
- - **Requires restart:** Yes
874
-
875
- - **`experimental.codebaseInvestigatorSettings.thinkingBudget`** (number):
876
- - **Description:** The thinking budget for the Codebase Investigator agent.
877
- - **Default:** `8192`
878
- - **Requires restart:** Yes
879
-
880
- - **`experimental.codebaseInvestigatorSettings.model`** (string):
881
- - **Description:** The model to use for the Codebase Investigator agent.
882
- - **Default:** `"auto"`
883
- - **Requires restart:** Yes
884
-
885
865
  - **`experimental.useOSC52Paste`** (boolean):
886
866
  - **Description:** Use OSC 52 sequence for pasting instead of clipboardy
887
867
  (useful for remote sessions).
888
868
  - **Default:** `false`
889
869
 
890
- - **`experimental.cliHelpAgentSettings.enabled`** (boolean):
891
- - **Description:** Enable the CLI Help Agent.
892
- - **Default:** `true`
893
- - **Requires restart:** Yes
894
-
895
870
  - **`experimental.plan`** (boolean):
896
871
  - **Description:** Enable planning features (Plan Mode and tools).
897
872
  - **Default:** `false`