@office-ai/aioncli-core 0.30.0 → 0.30.1

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/dist/docs/assets/theme-ansi-dark.png +0 -0
  2. package/dist/docs/assets/theme-atom-one-dark.png +0 -0
  3. package/dist/docs/assets/theme-ayu-dark.png +0 -0
  4. package/dist/docs/assets/theme-default-dark.png +0 -0
  5. package/dist/docs/assets/theme-dracula-dark.png +0 -0
  6. package/dist/docs/assets/theme-github-dark.png +0 -0
  7. package/dist/docs/assets/theme-holiday-dark.png +0 -0
  8. package/dist/docs/assets/theme-shades-of-purple-dark.png +0 -0
  9. package/dist/docs/assets/theme-solarized-dark.png +0 -0
  10. package/dist/docs/assets/theme-solarized-light.png +0 -0
  11. package/dist/docs/cli/notifications.md +58 -0
  12. package/dist/docs/redirects.json +20 -0
  13. package/dist/docs/reference/commands.md +563 -0
  14. package/dist/docs/reference/configuration.md +1804 -0
  15. package/dist/docs/reference/keyboard-shortcuts.md +168 -0
  16. package/dist/docs/reference/memport.md +246 -0
  17. package/dist/docs/reference/policy-engine.md +386 -0
  18. package/dist/docs/reference/tools.md +106 -0
  19. package/dist/docs/resources/faq.md +175 -0
  20. package/dist/docs/resources/quota-and-pricing.md +199 -0
  21. package/dist/docs/resources/tos-privacy.md +102 -0
  22. package/dist/docs/resources/troubleshooting.md +176 -0
  23. package/dist/docs/resources/uninstall.md +56 -0
  24. package/dist/src/agents/a2a-errors.d.ts +65 -0
  25. package/dist/src/agents/a2a-errors.js +164 -0
  26. package/dist/src/agents/a2a-errors.js.map +1 -0
  27. package/dist/src/agents/a2a-errors.test.d.ts +6 -0
  28. package/dist/src/agents/a2a-errors.test.js +183 -0
  29. package/dist/src/agents/a2a-errors.test.js.map +1 -0
  30. package/dist/src/agents/auth-provider/api-key-provider.d.ts +30 -0
  31. package/dist/src/agents/auth-provider/api-key-provider.js +66 -0
  32. package/dist/src/agents/auth-provider/api-key-provider.js.map +1 -0
  33. package/dist/src/agents/auth-provider/api-key-provider.test.d.ts +6 -0
  34. package/dist/src/agents/auth-provider/api-key-provider.test.js +130 -0
  35. package/dist/src/agents/auth-provider/api-key-provider.test.js.map +1 -0
  36. package/dist/src/agents/auth-provider/http-provider.d.ts +28 -0
  37. package/dist/src/agents/auth-provider/http-provider.js +73 -0
  38. package/dist/src/agents/auth-provider/http-provider.js.map +1 -0
  39. package/dist/src/agents/auth-provider/http-provider.test.d.ts +6 -0
  40. package/dist/src/agents/auth-provider/http-provider.test.js +112 -0
  41. package/dist/src/agents/auth-provider/http-provider.test.js.map +1 -0
  42. package/dist/src/agents/auth-provider/oauth2-provider.d.ts +65 -0
  43. package/dist/src/agents/auth-provider/oauth2-provider.js +233 -0
  44. package/dist/src/agents/auth-provider/oauth2-provider.js.map +1 -0
  45. package/dist/src/agents/auth-provider/oauth2-provider.test.d.ts +6 -0
  46. package/dist/src/agents/auth-provider/oauth2-provider.test.js +490 -0
  47. package/dist/src/agents/auth-provider/oauth2-provider.test.js.map +1 -0
  48. package/dist/src/agents/browser/analyzeScreenshot.d.ts +35 -0
  49. package/dist/src/agents/browser/analyzeScreenshot.js +183 -0
  50. package/dist/src/agents/browser/analyzeScreenshot.js.map +1 -0
  51. package/dist/src/agents/browser/analyzeScreenshot.test.d.ts +6 -0
  52. package/dist/src/agents/browser/analyzeScreenshot.test.js +161 -0
  53. package/dist/src/agents/browser/analyzeScreenshot.test.js.map +1 -0
  54. package/dist/src/agents/browser/automationOverlay.d.ts +26 -0
  55. package/dist/src/agents/browser/automationOverlay.js +100 -0
  56. package/dist/src/agents/browser/automationOverlay.js.map +1 -0
  57. package/dist/src/agents/browser/browserAgentDefinition.d.ts +50 -0
  58. package/dist/src/agents/browser/browserAgentDefinition.js +141 -0
  59. package/dist/src/agents/browser/browserAgentDefinition.js.map +1 -0
  60. package/dist/src/agents/browser/browserAgentFactory.d.ts +42 -0
  61. package/dist/src/agents/browser/browserAgentFactory.js +116 -0
  62. package/dist/src/agents/browser/browserAgentFactory.js.map +1 -0
  63. package/dist/src/agents/browser/browserAgentFactory.test.d.ts +6 -0
  64. package/dist/src/agents/browser/browserAgentFactory.test.js +240 -0
  65. package/dist/src/agents/browser/browserAgentFactory.test.js.map +1 -0
  66. package/dist/src/agents/browser/browserAgentInvocation.d.ts +34 -0
  67. package/dist/src/agents/browser/browserAgentInvocation.js +386 -0
  68. package/dist/src/agents/browser/browserAgentInvocation.js.map +1 -0
  69. package/dist/src/agents/browser/browserAgentInvocation.test.d.ts +6 -0
  70. package/dist/src/agents/browser/browserAgentInvocation.test.js +382 -0
  71. package/dist/src/agents/browser/browserAgentInvocation.test.js.map +1 -0
  72. package/dist/src/agents/browser/browserManager.d.ts +115 -0
  73. package/dist/src/agents/browser/browserManager.js +370 -0
  74. package/dist/src/agents/browser/browserManager.js.map +1 -0
  75. package/dist/src/agents/browser/browserManager.test.d.ts +6 -0
  76. package/dist/src/agents/browser/browserManager.test.js +382 -0
  77. package/dist/src/agents/browser/browserManager.test.js.map +1 -0
  78. package/dist/src/agents/browser/mcpToolWrapper.d.ts +45 -0
  79. package/dist/src/agents/browser/mcpToolWrapper.js +358 -0
  80. package/dist/src/agents/browser/mcpToolWrapper.js.map +1 -0
  81. package/dist/src/agents/browser/mcpToolWrapper.test.d.ts +6 -0
  82. package/dist/src/agents/browser/mcpToolWrapper.test.js +126 -0
  83. package/dist/src/agents/browser/mcpToolWrapper.test.js.map +1 -0
  84. package/dist/src/agents/browser/mcpToolWrapperConfirmation.test.d.ts +6 -0
  85. package/dist/src/agents/browser/mcpToolWrapperConfirmation.test.js +59 -0
  86. package/dist/src/agents/browser/mcpToolWrapperConfirmation.test.js.map +1 -0
  87. package/dist/src/agents/browser/modelAvailability.d.ts +23 -0
  88. package/dist/src/agents/browser/modelAvailability.js +23 -0
  89. package/dist/src/agents/browser/modelAvailability.js.map +1 -0
  90. package/dist/src/agents/cli-help-agent.d.ts +2 -2
  91. package/dist/src/billing/billing.d.ts +80 -0
  92. package/dist/src/billing/billing.js +128 -0
  93. package/dist/src/billing/billing.js.map +1 -0
  94. package/dist/src/billing/billing.test.d.ts +6 -0
  95. package/dist/src/billing/billing.test.js +182 -0
  96. package/dist/src/billing/billing.test.js.map +1 -0
  97. package/dist/src/billing/index.d.ts +6 -0
  98. package/dist/src/billing/index.js +7 -0
  99. package/dist/src/billing/index.js.map +1 -0
  100. package/dist/src/code_assist/oauth2.d.ts +1 -1
  101. package/dist/src/code_assist/types.d.ts +26 -26
  102. package/dist/src/config/agent-loop-context.d.ts +22 -0
  103. package/dist/src/config/agent-loop-context.js +7 -0
  104. package/dist/src/config/agent-loop-context.js.map +1 -0
  105. package/dist/src/config/trackerFeatureFlag.test.d.ts +6 -0
  106. package/dist/src/config/trackerFeatureFlag.test.js +43 -0
  107. package/dist/src/config/trackerFeatureFlag.test.js.map +1 -0
  108. package/dist/src/config/userHintService.d.ts +46 -0
  109. package/dist/src/config/userHintService.js +81 -0
  110. package/dist/src/config/userHintService.js.map +1 -0
  111. package/dist/src/config/userHintService.test.d.ts +6 -0
  112. package/dist/src/config/userHintService.test.js +62 -0
  113. package/dist/src/config/userHintService.test.js.map +1 -0
  114. package/dist/src/core/localLiteRtLmClient.d.ts +24 -0
  115. package/dist/src/core/localLiteRtLmClient.js +77 -0
  116. package/dist/src/core/localLiteRtLmClient.js.map +1 -0
  117. package/dist/src/core/localLiteRtLmClient.test.d.ts +6 -0
  118. package/dist/src/core/localLiteRtLmClient.test.js +87 -0
  119. package/dist/src/core/localLiteRtLmClient.test.js.map +1 -0
  120. package/dist/src/core/openaiContentGenerator.d.ts +1 -0
  121. package/dist/src/core/openaiContentGenerator.js +13 -13
  122. package/dist/src/core/openaiContentGenerator.js.map +1 -1
  123. package/dist/src/hooks/runtimeHooks.test.d.ts +6 -0
  124. package/dist/src/hooks/runtimeHooks.test.js +100 -0
  125. package/dist/src/hooks/runtimeHooks.test.js.map +1 -0
  126. package/dist/src/ide/types.d.ts +6 -6
  127. package/dist/src/mcp/mcp-oauth-provider.d.ts +43 -0
  128. package/dist/src/mcp/mcp-oauth-provider.js +67 -0
  129. package/dist/src/mcp/mcp-oauth-provider.js.map +1 -0
  130. package/dist/src/mcp/mcp-oauth-provider.test.d.ts +6 -0
  131. package/dist/src/mcp/mcp-oauth-provider.test.js +63 -0
  132. package/dist/src/mcp/mcp-oauth-provider.test.js.map +1 -0
  133. package/dist/src/policy/integrity.d.ts +45 -0
  134. package/dist/src/policy/integrity.js +121 -0
  135. package/dist/src/policy/integrity.js.map +1 -0
  136. package/dist/src/policy/integrity.test.d.ts +6 -0
  137. package/dist/src/policy/integrity.test.js +132 -0
  138. package/dist/src/policy/integrity.test.js.map +1 -0
  139. package/dist/src/policy/policies/conseca.toml +6 -0
  140. package/dist/src/policy/workspace-policy.test.js +231 -0
  141. package/dist/src/policy/workspace-policy.test.js.map +1 -0
  142. package/dist/src/routing/strategies/approvalModeStrategy.d.ts +18 -0
  143. package/dist/src/routing/strategies/approvalModeStrategy.js +59 -0
  144. package/dist/src/routing/strategies/approvalModeStrategy.js.map +1 -0
  145. package/dist/src/routing/strategies/approvalModeStrategy.test.d.ts +6 -0
  146. package/dist/src/routing/strategies/approvalModeStrategy.test.js +140 -0
  147. package/dist/src/routing/strategies/approvalModeStrategy.test.js.map +1 -0
  148. package/dist/src/routing/strategies/gemmaClassifierStrategy.d.ts +14 -0
  149. package/dist/src/routing/strategies/gemmaClassifierStrategy.js +182 -0
  150. package/dist/src/routing/strategies/gemmaClassifierStrategy.js.map +1 -0
  151. package/dist/src/routing/strategies/gemmaClassifierStrategy.test.d.ts +6 -0
  152. package/dist/src/routing/strategies/gemmaClassifierStrategy.test.js +218 -0
  153. package/dist/src/routing/strategies/gemmaClassifierStrategy.test.js.map +1 -0
  154. package/dist/src/safety/conseca/conseca.d.ts +31 -0
  155. package/dist/src/safety/conseca/conseca.js +105 -0
  156. package/dist/src/safety/conseca/conseca.js.map +1 -0
  157. package/dist/src/safety/conseca/conseca.test.js +226 -0
  158. package/dist/src/safety/conseca/conseca.test.js.map +1 -0
  159. package/dist/src/safety/conseca/integration.test.js +19 -0
  160. package/dist/src/safety/conseca/integration.test.js.map +1 -0
  161. package/dist/src/safety/conseca/policy-enforcer.d.ts +13 -0
  162. package/dist/src/safety/conseca/policy-enforcer.js +135 -0
  163. package/dist/src/safety/conseca/policy-enforcer.js.map +1 -0
  164. package/dist/src/safety/conseca/policy-enforcer.test.js +141 -0
  165. package/dist/src/safety/conseca/policy-enforcer.test.js.map +1 -0
  166. package/dist/src/safety/conseca/policy-generator.d.ts +15 -0
  167. package/dist/src/safety/conseca/policy-generator.js +144 -0
  168. package/dist/src/safety/conseca/policy-generator.js.map +1 -0
  169. package/dist/src/safety/conseca/policy-generator.test.d.ts +6 -0
  170. package/dist/src/safety/conseca/policy-generator.test.js +84 -0
  171. package/dist/src/safety/conseca/policy-generator.test.js.map +1 -0
  172. package/dist/src/safety/conseca/types.d.ts +15 -0
  173. package/dist/src/safety/conseca/types.js +7 -0
  174. package/dist/src/safety/conseca/types.js.map +1 -0
  175. package/dist/src/scheduler/scheduler_parallel.test.d.ts +6 -0
  176. package/dist/src/scheduler/scheduler_parallel.test.js +401 -0
  177. package/dist/src/scheduler/scheduler_parallel.test.js.map +1 -0
  178. package/dist/src/services/FolderTrustDiscoveryService.d.ts +32 -0
  179. package/dist/src/services/FolderTrustDiscoveryService.js +169 -0
  180. package/dist/src/services/FolderTrustDiscoveryService.js.map +1 -0
  181. package/dist/src/services/FolderTrustDiscoveryService.test.d.ts +6 -0
  182. package/dist/src/services/FolderTrustDiscoveryService.test.js +118 -0
  183. package/dist/src/services/FolderTrustDiscoveryService.test.js.map +1 -0
  184. package/dist/src/services/fileKeychain.d.ts +24 -0
  185. package/dist/src/services/fileKeychain.js +123 -0
  186. package/dist/src/services/fileKeychain.js.map +1 -0
  187. package/dist/src/services/keychainService.d.ts +51 -0
  188. package/dist/src/services/keychainService.js +133 -0
  189. package/dist/src/services/keychainService.js.map +1 -0
  190. package/dist/src/services/keychainService.test.d.ts +6 -0
  191. package/dist/src/services/keychainService.test.js +150 -0
  192. package/dist/src/services/keychainService.test.js.map +1 -0
  193. package/dist/src/services/keychainTypes.d.ts +41 -0
  194. package/dist/src/services/keychainTypes.js +18 -0
  195. package/dist/src/services/keychainTypes.js.map +1 -0
  196. package/dist/src/services/trackerService.d.ts +49 -0
  197. package/dist/src/services/trackerService.js +193 -0
  198. package/dist/src/services/trackerService.js.map +1 -0
  199. package/dist/src/services/trackerService.test.d.ts +6 -0
  200. package/dist/src/services/trackerService.test.js +117 -0
  201. package/dist/src/services/trackerService.test.js.map +1 -0
  202. package/dist/src/services/trackerTypes.d.ts +51 -0
  203. package/dist/src/services/trackerTypes.js +33 -0
  204. package/dist/src/services/trackerTypes.js.map +1 -0
  205. package/dist/src/telemetry/billingEvents.d.ts +75 -0
  206. package/dist/src/telemetry/billingEvents.js +181 -0
  207. package/dist/src/telemetry/billingEvents.js.map +1 -0
  208. package/dist/src/telemetry/billingEvents.test.d.ts +6 -0
  209. package/dist/src/telemetry/billingEvents.test.js +139 -0
  210. package/dist/src/telemetry/billingEvents.test.js.map +1 -0
  211. package/dist/src/telemetry/conseca-logger.d.ts +9 -0
  212. package/dist/src/telemetry/conseca-logger.js +91 -0
  213. package/dist/src/telemetry/conseca-logger.js.map +1 -0
  214. package/dist/src/telemetry/conseca-logger.test.d.ts +6 -0
  215. package/dist/src/telemetry/conseca-logger.test.js +90 -0
  216. package/dist/src/telemetry/conseca-logger.test.js.map +1 -0
  217. package/dist/src/telemetry/trace.test.d.ts +6 -0
  218. package/dist/src/telemetry/trace.test.js +116 -0
  219. package/dist/src/telemetry/trace.test.js.map +1 -0
  220. package/dist/src/tools/definitions/trackerTools.d.ts +12 -0
  221. package/dist/src/tools/definitions/trackerTools.js +146 -0
  222. package/dist/src/tools/definitions/trackerTools.js.map +1 -0
  223. package/dist/src/tools/diff-utils.d.ts +9 -0
  224. package/dist/src/tools/diff-utils.js +66 -0
  225. package/dist/src/tools/diff-utils.js.map +1 -0
  226. package/dist/src/tools/diff-utils.test.d.ts +6 -0
  227. package/dist/src/tools/diff-utils.test.js +53 -0
  228. package/dist/src/tools/diff-utils.test.js.map +1 -0
  229. package/dist/src/tools/grep-utils.d.ts +49 -0
  230. package/dist/src/tools/grep-utils.js +147 -0
  231. package/dist/src/tools/grep-utils.js.map +1 -0
  232. package/dist/src/tools/omissionPlaceholderDetector.d.ts +15 -0
  233. package/dist/src/tools/omissionPlaceholderDetector.js +90 -0
  234. package/dist/src/tools/omissionPlaceholderDetector.js.map +1 -0
  235. package/dist/src/tools/omissionPlaceholderDetector.test.d.ts +6 -0
  236. package/dist/src/tools/omissionPlaceholderDetector.test.js +49 -0
  237. package/dist/src/tools/omissionPlaceholderDetector.test.js.map +1 -0
  238. package/dist/src/tools/trackerTools.d.ts +122 -0
  239. package/dist/src/tools/trackerTools.js +365 -0
  240. package/dist/src/tools/trackerTools.js.map +1 -0
  241. package/dist/src/tools/trackerTools.test.d.ts +6 -0
  242. package/dist/src/tools/trackerTools.test.js +97 -0
  243. package/dist/src/tools/trackerTools.test.js.map +1 -0
  244. package/dist/src/utils/approvalModeUtils.d.ts +14 -0
  245. package/dist/src/utils/approvalModeUtils.js +35 -0
  246. package/dist/src/utils/approvalModeUtils.js.map +1 -0
  247. package/dist/src/utils/approvalModeUtils.test.d.ts +6 -0
  248. package/dist/src/utils/approvalModeUtils.test.js +36 -0
  249. package/dist/src/utils/approvalModeUtils.test.js.map +1 -0
  250. package/dist/src/utils/cache.d.ts +63 -0
  251. package/dist/src/utils/cache.js +103 -0
  252. package/dist/src/utils/cache.js.map +1 -0
  253. package/dist/src/utils/cache.test.d.ts +6 -0
  254. package/dist/src/utils/cache.test.js +158 -0
  255. package/dist/src/utils/cache.test.js.map +1 -0
  256. package/dist/src/utils/checkpointUtils.d.ts +2 -2
  257. package/dist/src/utils/compatibility.d.ts +41 -0
  258. package/dist/src/utils/compatibility.js +112 -0
  259. package/dist/src/utils/compatibility.js.map +1 -0
  260. package/dist/src/utils/compatibility.test.d.ts +6 -0
  261. package/dist/src/utils/compatibility.test.js +233 -0
  262. package/dist/src/utils/compatibility.test.js.map +1 -0
  263. package/dist/src/utils/envExpansion.d.ts +18 -0
  264. package/dist/src/utils/envExpansion.js +46 -0
  265. package/dist/src/utils/envExpansion.js.map +1 -0
  266. package/dist/src/utils/envExpansion.test.d.ts +6 -0
  267. package/dist/src/utils/envExpansion.test.js +110 -0
  268. package/dist/src/utils/envExpansion.test.js.map +1 -0
  269. package/dist/src/utils/errors_timeout.test.d.ts +6 -0
  270. package/dist/src/utils/errors_timeout.test.js +40 -0
  271. package/dist/src/utils/errors_timeout.test.js.map +1 -0
  272. package/dist/src/utils/fetch.test.d.ts +6 -0
  273. package/dist/src/utils/fetch.test.js +206 -0
  274. package/dist/src/utils/fetch.test.js.map +1 -0
  275. package/dist/src/utils/markdownUtils.d.ts +22 -0
  276. package/dist/src/utils/markdownUtils.js +126 -0
  277. package/dist/src/utils/markdownUtils.js.map +1 -0
  278. package/dist/src/utils/markdownUtils.test.d.ts +6 -0
  279. package/dist/src/utils/markdownUtils.test.js +107 -0
  280. package/dist/src/utils/markdownUtils.test.js.map +1 -0
  281. package/dist/src/utils/oauth-flow.d.ts +105 -0
  282. package/dist/src/utils/oauth-flow.js +370 -0
  283. package/dist/src/utils/oauth-flow.js.map +1 -0
  284. package/dist/src/utils/oauth-flow.test.d.ts +6 -0
  285. package/dist/src/utils/oauth-flow.test.js +360 -0
  286. package/dist/src/utils/oauth-flow.test.js.map +1 -0
  287. package/dist/src/utils/sessionUtils.d.ts +14 -0
  288. package/dist/src/utils/sessionUtils.js +122 -0
  289. package/dist/src/utils/sessionUtils.js.map +1 -0
  290. package/dist/src/utils/sessionUtils.test.d.ts +1 -0
  291. package/dist/src/utils/sessionUtils.test.js +171 -0
  292. package/dist/src/utils/sessionUtils.test.js.map +1 -0
  293. package/dist/src/voice/responseFormatter.d.ts +38 -0
  294. package/dist/src/voice/responseFormatter.js +130 -0
  295. package/dist/src/voice/responseFormatter.js.map +1 -0
  296. package/dist/src/voice/responseFormatter.test.d.ts +6 -0
  297. package/dist/src/voice/responseFormatter.test.js +214 -0
  298. package/dist/src/voice/responseFormatter.test.js.map +1 -0
  299. package/dist/tsconfig.tsbuildinfo +1 -1
  300. package/package.json +1 -1
  301. package/dist/docs/CONTRIBUTING.md +0 -555
  302. package/dist/src/agents/executor.d.ts +0 -114
  303. package/dist/src/agents/executor.js +0 -779
  304. package/dist/src/agents/executor.js.map +0 -1
  305. package/dist/src/agents/executor.test.js +0 -1362
  306. package/dist/src/agents/executor.test.js.map +0 -1
  307. package/dist/src/agents/invocation.d.ts +0 -46
  308. package/dist/src/agents/invocation.js +0 -102
  309. package/dist/src/agents/invocation.js.map +0 -1
  310. package/dist/src/agents/invocation.test.js +0 -215
  311. package/dist/src/agents/invocation.test.js.map +0 -1
  312. package/dist/src/core/subagent.d.ts +0 -236
  313. package/dist/src/core/subagent.js +0 -482
  314. package/dist/src/core/subagent.js.map +0 -1
  315. package/dist/src/core/subagent.test.js +0 -530
  316. package/dist/src/core/subagent.test.js.map +0 -1
  317. package/dist/src/tools/smart-edit.d.ts +0 -78
  318. package/dist/src/tools/smart-edit.js +0 -717
  319. package/dist/src/tools/smart-edit.js.map +0 -1
  320. package/dist/src/tools/smart-edit.test.js +0 -592
  321. package/dist/src/tools/smart-edit.test.js.map +0 -1
  322. /package/dist/src/{agents/executor.test.d.ts → policy/workspace-policy.test.d.ts} +0 -0
  323. /package/dist/src/{agents/invocation.test.d.ts → safety/conseca/conseca.test.d.ts} +0 -0
  324. /package/dist/src/{core/subagent.test.d.ts → safety/conseca/integration.test.d.ts} +0 -0
  325. /package/dist/src/{tools/smart-edit.test.d.ts → safety/conseca/policy-enforcer.test.d.ts} +0 -0
@@ -0,0 +1,58 @@
1
+ # Notifications (experimental)
2
+
3
+ Gemini CLI can send system notifications to alert you when a session completes
4
+ or when it needs your attention, such as when it's waiting for you to approve a
5
+ tool call.
6
+
7
+ > **Note:** This is a preview feature currently under active development.
8
+ > Preview features may be available on the **Preview** channel or may need to be
9
+ > enabled under `/settings`.
10
+
11
+ Notifications are particularly useful when running long-running tasks or using
12
+ [Plan Mode](./plan-mode.md), letting you switch to other windows while Gemini
13
+ CLI works in the background.
14
+
15
+ ## Requirements
16
+
17
+ Currently, system notifications are only supported on macOS.
18
+
19
+ ### Terminal support
20
+
21
+ The CLI uses the OSC 9 terminal escape sequence to trigger system notifications.
22
+ This is supported by several modern terminal emulators. If your terminal does
23
+ not support OSC 9 notifications, Gemini CLI falls back to a system alert sound
24
+ to get your attention.
25
+
26
+ ## Enable notifications
27
+
28
+ Notifications are disabled by default. You can enable them using the `/settings`
29
+ command or by updating your `settings.json` file.
30
+
31
+ 1. Open the settings dialog by typing `/settings` in an interactive session.
32
+ 2. Navigate to the **General** category.
33
+ 3. Toggle the **Enable Notifications** setting to **On**.
34
+
35
+ Alternatively, add the following to your `settings.json`:
36
+
37
+ ```json
38
+ {
39
+ "general": {
40
+ "enableNotifications": true
41
+ }
42
+ }
43
+ ```
44
+
45
+ ## Types of notifications
46
+
47
+ Gemini CLI sends notifications for the following events:
48
+
49
+ - **Action required:** Triggered when the model is waiting for user input or
50
+ tool approval. This helps you know when the CLI has paused and needs you to
51
+ intervene.
52
+ - **Session complete:** Triggered when a session finishes successfully. This is
53
+ useful for tracking the completion of automated tasks.
54
+
55
+ ## Next steps
56
+
57
+ - Start planning with [Plan Mode](./plan-mode.md).
58
+ - Configure your experience with other [settings](./settings.md).
@@ -0,0 +1,20 @@
1
+ {
2
+ "/docs/architecture": "/docs/cli/index",
3
+ "/docs/cli/commands": "/docs/reference/commands",
4
+ "/docs/cli": "/docs",
5
+ "/docs/cli/index": "/docs",
6
+ "/docs/cli/keyboard-shortcuts": "/docs/reference/keyboard-shortcuts",
7
+ "/docs/cli/uninstall": "/docs/resources/uninstall",
8
+ "/docs/core/concepts": "/docs",
9
+ "/docs/core/memport": "/docs/reference/memport",
10
+ "/docs/core/policy-engine": "/docs/reference/policy-engine",
11
+ "/docs/core/tools-api": "/docs/reference/tools",
12
+ "/docs/reference/tools-api": "/docs/reference/tools",
13
+ "/docs/faq": "/docs/resources/faq",
14
+ "/docs/get-started/configuration": "/docs/reference/configuration",
15
+ "/docs/get-started/configuration-v1": "/docs/reference/configuration",
16
+ "/docs/index": "/docs",
17
+ "/docs/quota-and-pricing": "/docs/resources/quota-and-pricing",
18
+ "/docs/tos-privacy": "/docs/resources/tos-privacy",
19
+ "/docs/troubleshooting": "/docs/resources/troubleshooting"
20
+ }
@@ -0,0 +1,563 @@
1
+ # CLI commands
2
+
3
+ Gemini CLI supports several built-in commands to help you manage your session,
4
+ customize the interface, and control its behavior. These commands are prefixed
5
+ with a forward slash (`/`), an at symbol (`@`), or an exclamation mark (`!`).
6
+
7
+ ## Slash commands (`/`)
8
+
9
+ Slash commands provide meta-level control over the CLI itself.
10
+
11
+ ### Built-in Commands
12
+
13
+ ### `/about`
14
+
15
+ - **Description:** Show version info. Share this information when filing issues.
16
+
17
+ ### `/auth`
18
+
19
+ - **Description:** Open a dialog that lets you change the authentication method.
20
+
21
+ ### `/bug`
22
+
23
+ - **Description:** File an issue about Gemini CLI. By default, the issue is
24
+ filed within the GitHub repository for Gemini CLI. The string you enter after
25
+ `/bug` will become the headline for the bug being filed. The default `/bug`
26
+ behavior can be modified using the `advanced.bugCommand` setting in your
27
+ `.gemini/settings.json` files.
28
+
29
+ ### `/chat`
30
+
31
+ - **Description:** Alias for `/resume`. Both commands now expose the same
32
+ session browser action and checkpoint subcommands.
33
+ - **Menu layout when typing `/chat` (or `/resume`)**:
34
+ - `-- auto --`
35
+ - `list` (selecting this opens the auto-saved session browser)
36
+ - `-- checkpoints --`
37
+ - `list`, `save`, `resume`, `delete`, `share` (manual tagged checkpoints)
38
+ - **Note:** Unique prefixes (for example `/cha` or `/resum`) resolve to the
39
+ same grouped menu.
40
+ - **Sub-commands:**
41
+ - **`debug`**
42
+ - **Description:** Export the most recent API request as a JSON payload.
43
+ - **`delete <tag>`**
44
+ - **Description:** Deletes a saved conversation checkpoint.
45
+ - **Equivalent:** `/resume delete <tag>`
46
+ - **`list`**
47
+ - **Description:** Lists available tags for manually saved checkpoints.
48
+ - **Note:** This command only lists chats saved within the current project.
49
+ Because chat history is project-scoped, chats saved in other project
50
+ directories will not be displayed.
51
+ - **Equivalent:** `/resume list`
52
+ - **`resume <tag>`**
53
+ - **Description:** Resumes a conversation from a previous save.
54
+ - **Note:** You can only resume chats that were saved within the current
55
+ project. To resume a chat from a different project, you must run the
56
+ Gemini CLI from that project's directory.
57
+ - **Equivalent:** `/resume resume <tag>`
58
+ - **`save <tag>`**
59
+ - **Description:** Saves the current conversation history. You must add a
60
+ `<tag>` for identifying the conversation state.
61
+ - **Details on checkpoint location:** The default locations for saved chat
62
+ checkpoints are:
63
+ - Linux/macOS: `~/.gemini/tmp/<project_hash>/`
64
+ - Windows: `C:\Users\<YourUsername>\.gemini\tmp\<project_hash>\`
65
+ - **Behavior:** Chats are saved into a project-specific directory,
66
+ determined by where you run the CLI. Consequently, saved chats are only
67
+ accessible when working within that same project.
68
+ - **Note:** These checkpoints are for manually saving and resuming
69
+ conversation states. For automatic checkpoints created before file
70
+ modifications, see the
71
+ [Checkpointing documentation](../cli/checkpointing.md).
72
+ - **Equivalent:** `/resume save <tag>`
73
+ - **`share [filename]`**
74
+ - **Description:** Writes the current conversation to a provided Markdown or
75
+ JSON file. If no filename is provided, then the CLI will generate one.
76
+ - **Usage:** `/chat share file.md` or `/chat share file.json`.
77
+ - **Equivalent:** `/resume share [filename]`
78
+
79
+ ### `/clear`
80
+
81
+ - **Description:** Clear the terminal screen, including the visible session
82
+ history and scrollback within the CLI. The underlying session data (for
83
+ history recall) might be preserved depending on the exact implementation, but
84
+ the visual display is cleared.
85
+ - **Keyboard shortcut:** Press **Ctrl+L** at any time to perform a clear action.
86
+
87
+ ### `/commands`
88
+
89
+ - **Description:** Manage custom slash commands loaded from `.toml` files.
90
+ - **Sub-commands:**
91
+ - **`reload`**:
92
+ - **Description:** Reload custom command definitions from all sources
93
+ (user-level `~/.gemini/commands/`, project-level
94
+ `<project>/.gemini/commands/`, MCP prompts, and extensions). Use this to
95
+ pick up new or modified `.toml` files without restarting the CLI.
96
+ - **Usage:** `/commands reload`
97
+
98
+ ### `/compress`
99
+
100
+ - **Description:** Replace the entire chat context with a summary. This saves on
101
+ tokens used for future tasks while retaining a high level summary of what has
102
+ happened.
103
+
104
+ ### `/copy`
105
+
106
+ - **Description:** Copies the last output produced by Gemini CLI to your
107
+ clipboard, for easy sharing or reuse.
108
+ - **Behavior:**
109
+ - Local sessions use system clipboard tools (pbcopy/xclip/clip).
110
+ - Remote sessions (SSH/WSL) use OSC 52 and require terminal support.
111
+ - **Note:** This command requires platform-specific clipboard tools to be
112
+ installed.
113
+ - On Linux, it requires `xclip` or `xsel`. You can typically install them
114
+ using your system's package manager.
115
+ - On macOS, it requires `pbcopy`, and on Windows, it requires `clip`. These
116
+ tools are typically pre-installed on their respective systems.
117
+
118
+ ### `/directory` (or `/dir`)
119
+
120
+ - **Description:** Manage workspace directories for multi-directory support.
121
+ - **Sub-commands:**
122
+ - **`add`**:
123
+ - **Description:** Add a directory to the workspace. The path can be
124
+ absolute or relative to the current working directory. Moreover, the
125
+ reference from home directory is supported as well.
126
+ - **Usage:** `/directory add <path1>,<path2>`
127
+ - **Note:** Disabled in restrictive sandbox profiles. If you're using that,
128
+ use `--include-directories` when starting the session instead.
129
+ - **`show`**:
130
+ - **Description:** Display all directories added by `/directory add` and
131
+ `--include-directories`.
132
+ - **Usage:** `/directory show`
133
+
134
+ ### `/docs`
135
+
136
+ - **Description:** Open the Gemini CLI documentation in your browser.
137
+
138
+ ### `/editor`
139
+
140
+ - **Description:** Open a dialog for selecting supported editors.
141
+
142
+ ### `/extensions`
143
+
144
+ - **Description:** Manage extensions. See
145
+ [Gemini CLI Extensions](../extensions/index.md).
146
+ - **Sub-commands:**
147
+ - **`config`**:
148
+ - **Description:** Configure extension settings.
149
+ - **`disable`**:
150
+ - **Description:** Disable an extension.
151
+ - **`enable`**:
152
+ - **Description:** Enable an extension.
153
+ - **`explore`**:
154
+ - **Description:** Open extensions page in your browser.
155
+ - **`install`**:
156
+ - **Description:** Install an extension from a git repo or local path.
157
+ - **`link`**:
158
+ - **Description:** Link an extension from a local path.
159
+ - **`list`**:
160
+ - **Description:** List active extensions.
161
+ - **`restart`**:
162
+ - **Description:** Restart all extensions.
163
+ - **`uninstall`**:
164
+ - **Description:** Uninstall an extension.
165
+ - **`update`**:
166
+ - **Description:** Update extensions. Usage: update <extension-names>|--all
167
+
168
+ ### `/help` (or `/?`)
169
+
170
+ - **Description:** Display help information about Gemini CLI, including
171
+ available commands and their usage.
172
+
173
+ ### `/hooks`
174
+
175
+ - **Description:** Manage hooks, which allow you to intercept and customize
176
+ Gemini CLI behavior at specific lifecycle events.
177
+ - **Sub-commands:**
178
+ - **`disable-all`**:
179
+ - **Description:** Disable all enabled hooks.
180
+ - **`disable <hook-name>`**:
181
+ - **Description:** Disable a hook by name.
182
+ - **`enable-all`**:
183
+ - **Description:** Enable all disabled hooks.
184
+ - **`enable <hook-name>`**:
185
+ - **Description:** Enable a hook by name.
186
+ - **`list`** (or `show`, `panel`):
187
+ - **Description:** Display all registered hooks with their status.
188
+
189
+ ### `/ide`
190
+
191
+ - **Description:** Manage IDE integration.
192
+ - **Sub-commands:**
193
+ - **`disable`**:
194
+ - **Description:** Disable IDE integration.
195
+ - **`enable`**:
196
+ - **Description:** Enable IDE integration.
197
+ - **`install`**:
198
+ - **Description:** Install required IDE companion.
199
+ - **`status`**:
200
+ - **Description:** Check status of IDE integration.
201
+
202
+ ### `/init`
203
+
204
+ - **Description:** To help users easily create a `GEMINI.md` file, this command
205
+ analyzes the current directory and generates a tailored context file, making
206
+ it simpler for them to provide project-specific instructions to the Gemini
207
+ agent.
208
+
209
+ ### `/mcp`
210
+
211
+ - **Description:** Manage configured Model Context Protocol (MCP) servers.
212
+ - **Sub-commands:**
213
+ - **`auth`**:
214
+ - **Description:** Authenticate with an OAuth-enabled MCP server.
215
+ - **Usage:** `/mcp auth <server-name>`
216
+ - **Details:** If `<server-name>` is provided, it initiates the OAuth flow
217
+ for that server. If no server name is provided, it lists all configured
218
+ servers that support OAuth authentication.
219
+ - **`desc`**
220
+ - **Description:** List configured MCP servers and tools with descriptions.
221
+ - **`disable`**
222
+ - **Description:** Disable an MCP server.
223
+ - **`enable`**
224
+ - **Description:** Enable a disabled MCP server.
225
+ - **`list`** or **`ls`**:
226
+ - **Description:** List configured MCP servers and tools. This is the
227
+ default action if no subcommand is specified.
228
+ - **`refresh`**:
229
+ - **Description:** Restarts all MCP servers and re-discovers their available
230
+ tools.
231
+ - **`schema`**:
232
+ - **Description:** List configured MCP servers and tools with descriptions
233
+ and schemas.
234
+
235
+ ### `/memory`
236
+
237
+ - **Description:** Manage the AI's instructional context (hierarchical memory
238
+ loaded from `GEMINI.md` files).
239
+ - **Sub-commands:**
240
+ - **`add`**:
241
+ - **Description:** Adds the following text to the AI's memory. Usage:
242
+ `/memory add <text to remember>`
243
+ - **`list`**:
244
+ - **Description:** Lists the paths of the GEMINI.md files in use for
245
+ hierarchical memory.
246
+ - **`refresh`**:
247
+ - **Description:** Reload the hierarchical instructional memory from all
248
+ `GEMINI.md` files found in the configured locations (global,
249
+ project/ancestors, and sub-directories). This command updates the model
250
+ with the latest `GEMINI.md` content.
251
+ - **`show`**:
252
+ - **Description:** Display the full, concatenated content of the current
253
+ hierarchical memory that has been loaded from all `GEMINI.md` files. This
254
+ lets you inspect the instructional context being provided to the Gemini
255
+ model.
256
+ - **Note:** For more details on how `GEMINI.md` files contribute to
257
+ hierarchical memory, see the
258
+ [CLI Configuration documentation](./configuration.md).
259
+
260
+ ### `/model`
261
+
262
+ - **Description:** Manage model configuration.
263
+ - **Sub-commands:**
264
+ - **`manage`**:
265
+ - **Description:** Opens a dialog to configure the model.
266
+ - **`set`**:
267
+ - **Description:** Set the model to use.
268
+ - **Usage:** `/model set <model-name> [--persist]`
269
+
270
+ ### `/permissions`
271
+
272
+ - **Description:** Manage folder trust settings and other permissions.
273
+ - **Sub-commands:**
274
+ - **`trust`**:
275
+ - **Description:** Manage folder trust settings.
276
+ - **Usage:** `/permissions trust [<directory-path>]`
277
+
278
+ ### `/plan`
279
+
280
+ - **Description:** Switch to Plan Mode (read-only) and view the current plan if
281
+ one has been generated.
282
+ - **Note:** This feature is enabled by default. It can be disabled via the
283
+ `experimental.plan` setting in your configuration.
284
+ - **Sub-commands:**
285
+ - **`copy`**:
286
+ - **Description:** Copy the currently approved plan to your clipboard.
287
+
288
+ ### `/policies`
289
+
290
+ - **Description:** Manage policies.
291
+ - **Sub-commands:**
292
+ - **`list`**:
293
+ - **Description:** List all active policies grouped by mode.
294
+
295
+ ### `/privacy`
296
+
297
+ - **Description:** Display the Privacy Notice and allow users to select whether
298
+ they consent to the collection of their data for service improvement purposes.
299
+
300
+ ### `/quit` (or `/exit`)
301
+
302
+ - **Description:** Exit Gemini CLI.
303
+
304
+ ### `/restore`
305
+
306
+ - **Description:** Restores the project files to the state they were in just
307
+ before a tool was executed. This is particularly useful for undoing file edits
308
+ made by a tool. If run without a tool call ID, it will list available
309
+ checkpoints to restore from.
310
+ - **Usage:** `/restore [tool_call_id]`
311
+ - **Note:** Only available if checkpointing is configured via
312
+ [settings](./configuration.md). See
313
+ [Checkpointing documentation](../cli/checkpointing.md) for more details.
314
+
315
+ ### `/rewind`
316
+
317
+ - **Description:** Navigates backward through the conversation history, letting
318
+ you review past interactions and potentially revert both chat state and file
319
+ changes.
320
+ - **Usage:** Press **Esc** twice as a shortcut.
321
+ - **Features:**
322
+ - **Select Interaction:** Preview user prompts and file changes.
323
+ - **Action Selection:** Choose to rewind history only, revert code changes
324
+ only, or both.
325
+
326
+ ### `/resume`
327
+
328
+ - **Description:** Browse and resume previous conversation sessions, and manage
329
+ manual chat checkpoints.
330
+ - **Features:**
331
+ - **Auto sessions:** Run `/resume` to open the interactive session browser for
332
+ automatically saved conversations.
333
+ - **Chat checkpoints:** Use checkpoint subcommands directly (`/resume save`,
334
+ `/resume resume`, etc.).
335
+ - **Management:** Delete unwanted sessions directly from the browser
336
+ - **Resume:** Select any session to resume and continue the conversation
337
+ - **Search:** Use `/` to search through conversation content across all
338
+ sessions
339
+ - **Session Browser:** Interactive interface showing all saved sessions with
340
+ timestamps, message counts, and first user message for context
341
+ - **Sorting:** Sort sessions by date or message count
342
+ - **Note:** All conversations are automatically saved as you chat - no manual
343
+ saving required. See [Session Management](../cli/session-management.md) for
344
+ complete details.
345
+ - **Alias:** `/chat` provides the same behavior and subcommands.
346
+ - **Sub-commands:**
347
+ - **`list`**
348
+ - **Description:** Lists available tags for manual chat checkpoints.
349
+ - **`save <tag>`**
350
+ - **Description:** Saves the current conversation as a tagged checkpoint.
351
+ - **`resume <tag>`** (alias: `load`)
352
+ - **Description:** Loads a previously saved tagged checkpoint.
353
+ - **`delete <tag>`**
354
+ - **Description:** Deletes a tagged checkpoint.
355
+ - **`share [filename]`**
356
+ - **Description:** Exports the current conversation to Markdown or JSON.
357
+ - **`debug`**
358
+ - **Description:** Export the most recent API request as JSON payload
359
+ (nightly builds).
360
+ - **Compatibility alias:** `/resume checkpoints ...` is still accepted for the
361
+ same checkpoint commands.
362
+
363
+ ### `/settings`
364
+
365
+ - **Description:** Open the settings editor to view and modify Gemini CLI
366
+ settings.
367
+ - **Details:** This command provides a user-friendly interface for changing
368
+ settings that control the behavior and appearance of Gemini CLI. It is
369
+ equivalent to manually editing the `.gemini/settings.json` file, but with
370
+ validation and guidance to prevent errors. See the
371
+ [settings documentation](../cli/settings.md) for a full list of available
372
+ settings.
373
+ - **Usage:** Simply run `/settings` and the editor will open. You can then
374
+ browse or search for specific settings, view their current values, and modify
375
+ them as desired. Changes to some settings are applied immediately, while
376
+ others require a restart.
377
+
378
+ ### `/shells` (or `/bashes`)
379
+
380
+ - **Description:** Toggle the background shells view. This allows you to view
381
+ and manage long-running processes that you've sent to the background.
382
+
383
+ ### `/setup-github`
384
+
385
+ - **Description:** Set up GitHub Actions to triage issues and review PRs with
386
+ Gemini.
387
+
388
+ ### `/skills`
389
+
390
+ - **Description:** Manage Agent Skills, which provide on-demand expertise and
391
+ specialized workflows.
392
+ - **Sub-commands:**
393
+ - **`disable <name>`**:
394
+ - **Description:** Disable a specific skill by name.
395
+ - **Usage:** `/skills disable <name>`
396
+ - **`enable <name>`**:
397
+ - **Description:** Enable a specific skill by name.
398
+ - **Usage:** `/skills enable <name>`
399
+ - **`list`**:
400
+ - **Description:** List all discovered skills and their current status
401
+ (enabled/disabled).
402
+ - **`reload`**:
403
+ - **Description:** Refresh the list of discovered skills from all tiers
404
+ (workspace, user, and extensions).
405
+
406
+ ### `/stats`
407
+
408
+ - **Description:** Display detailed statistics for the current Gemini CLI
409
+ session.
410
+ - **Sub-commands:**
411
+ - **`session`**:
412
+ - **Description:** Show session-specific usage statistics, including
413
+ duration, tool calls, and performance metrics. This is the default view.
414
+ - **`model`**:
415
+ - **Description:** Show model-specific usage statistics, including token
416
+ counts and quota information.
417
+ - **`tools`**:
418
+ - **Description:** Show tool-specific usage statistics.
419
+
420
+ ### `/terminal-setup`
421
+
422
+ - **Description:** Configure terminal keybindings for multiline input (VS Code,
423
+ Cursor, Windsurf).
424
+
425
+ ### `/theme`
426
+
427
+ - **Description:** Open a dialog that lets you change the visual theme of Gemini
428
+ CLI.
429
+
430
+ ### `/tools`
431
+
432
+ - **Description:** Display a list of tools that are currently available within
433
+ Gemini CLI.
434
+ - **Usage:** `/tools [desc]`
435
+ - **Sub-commands:**
436
+ - **`desc`** or **`descriptions`**:
437
+ - **Description:** Show detailed descriptions of each tool, including each
438
+ tool's name with its full description as provided to the model.
439
+ - **`nodesc`** or **`nodescriptions`**:
440
+ - **Description:** Hide tool descriptions, showing only the tool names.
441
+
442
+ ### `/upgrade`
443
+
444
+ - **Description:** Open the Gemini Code Assist upgrade page in your browser.
445
+ This lets you upgrade your tier for higher usage limits.
446
+ - **Note:** This command is only available when logged in with Google.
447
+
448
+ ### `/vim`
449
+
450
+ - **Description:** Toggle vim mode on or off. When vim mode is enabled, the
451
+ input area supports vim-style navigation and editing commands in both NORMAL
452
+ and INSERT modes.
453
+ - **Features:**
454
+ - **Count support:** Prefix commands with numbers (e.g., `3h`, `5w`, `10G`)
455
+ - **Editing commands:** Delete with `x`, change with `c`, insert with `i`,
456
+ `a`, `o`, `O`; complex operations like `dd`, `cc`, `dw`, `cw`
457
+ - **INSERT mode:** Standard text input with escape to return to NORMAL mode
458
+ - **NORMAL mode:** Navigate with `h`, `j`, `k`, `l`; jump by words with `w`,
459
+ `b`, `e`; go to line start/end with `0`, `$`, `^`; go to specific lines with
460
+ `G` (or `gg` for first line)
461
+ - **Persistent setting:** Vim mode preference is saved to
462
+ `~/.gemini/settings.json` and restored between sessions
463
+ - **Repeat last command:** Use `.` to repeat the last editing operation
464
+ - **Status indicator:** When enabled, shows `[NORMAL]` or `[INSERT]` in the
465
+ footer
466
+
467
+ ### Custom commands
468
+
469
+ Custom commands allow you to create personalized shortcuts for your most-used
470
+ prompts. For detailed instructions on how to create, manage, and use them,
471
+ please see the dedicated
472
+ [Custom Commands documentation](../cli/custom-commands.md).
473
+
474
+ ## Input prompt shortcuts
475
+
476
+ These shortcuts apply directly to the input prompt for text manipulation.
477
+
478
+ - **Undo:**
479
+ - **Keyboard shortcut:** Press **Alt+z** or **Cmd+z** to undo the last action
480
+ in the input prompt.
481
+
482
+ - **Redo:**
483
+ - **Keyboard shortcut:** Press **Shift+Alt+Z** or **Shift+Cmd+Z** to redo the
484
+ last undone action in the input prompt.
485
+
486
+ ## At commands (`@`)
487
+
488
+ At commands are used to include the content of files or directories as part of
489
+ your prompt to Gemini. These commands include git-aware filtering.
490
+
491
+ - **`@<path_to_file_or_directory>`**
492
+ - **Description:** Inject the content of the specified file or files into your
493
+ current prompt. This is useful for asking questions about specific code,
494
+ text, or collections of files.
495
+ - **Examples:**
496
+ - `@path/to/your/file.txt Explain this text.`
497
+ - `@src/my_project/ Summarize the code in this directory.`
498
+ - `What is this file about? @README.md`
499
+ - **Details:**
500
+ - If a path to a single file is provided, the content of that file is read.
501
+ - If a path to a directory is provided, the command attempts to read the
502
+ content of files within that directory and any subdirectories.
503
+ - Spaces in paths should be escaped with a backslash (e.g.,
504
+ `@My\ Documents/file.txt`).
505
+ - The command uses the `read_many_files` tool internally. The content is
506
+ fetched and then inserted into your query before being sent to the Gemini
507
+ model.
508
+ - **Git-aware filtering:** By default, git-ignored files (like
509
+ `node_modules/`, `dist/`, `.env`, `.git/`) are excluded. This behavior can
510
+ be changed via the `context.fileFiltering` settings.
511
+ - **File types:** The command is intended for text-based files. While it
512
+ might attempt to read any file, binary files or very large files might be
513
+ skipped or truncated by the underlying `read_many_files` tool to ensure
514
+ performance and relevance. The tool indicates if files were skipped.
515
+ - **Output:** The CLI will show a tool call message indicating that
516
+ `read_many_files` was used, along with a message detailing the status and
517
+ the path(s) that were processed.
518
+
519
+ - **`@` (Lone at symbol)**
520
+ - **Description:** If you type a lone `@` symbol without a path, the query is
521
+ passed as-is to the Gemini model. This might be useful if you are
522
+ specifically talking _about_ the `@` symbol in your prompt.
523
+
524
+ ### Error handling for `@` commands
525
+
526
+ - If the path specified after `@` is not found or is invalid, an error message
527
+ will be displayed, and the query might not be sent to the Gemini model, or it
528
+ will be sent without the file content.
529
+ - If the `read_many_files` tool encounters an error (e.g., permission issues),
530
+ this will also be reported.
531
+
532
+ ## Shell mode and passthrough commands (`!`)
533
+
534
+ The `!` prefix lets you interact with your system's shell directly from within
535
+ Gemini CLI.
536
+
537
+ - **`!<shell_command>`**
538
+ - **Description:** Execute the given `<shell_command>` using `bash` on
539
+ Linux/macOS or `powershell.exe -NoProfile -Command` on Windows (unless you
540
+ override `ComSpec`). Any output or errors from the command are displayed in
541
+ the terminal.
542
+ - **Examples:**
543
+ - `!ls -la` (executes `ls -la` and returns to Gemini CLI)
544
+ - `!git status` (executes `git status` and returns to Gemini CLI)
545
+
546
+ - **`!` (Toggle shell mode)**
547
+ - **Description:** Typing `!` on its own toggles shell mode.
548
+ - **Entering shell mode:**
549
+ - When active, shell mode uses a different coloring and a "Shell Mode
550
+ Indicator".
551
+ - While in shell mode, text you type is interpreted directly as a shell
552
+ command.
553
+ - **Exiting shell mode:**
554
+ - When exited, the UI reverts to its standard appearance and normal Gemini
555
+ CLI behavior resumes.
556
+
557
+ - **Caution for all `!` usage:** Commands you execute in shell mode have the
558
+ same permissions and impact as if you ran them directly in your terminal.
559
+
560
+ - **Environment variable:** When a command is executed via `!` or in shell mode,
561
+ the `GEMINI_CLI=1` environment variable is set in the subprocess's
562
+ environment. This allows scripts or tools to detect if they are being run from
563
+ within the Gemini CLI.