@google/gemini-cli-core 0.1.18 → 0.1.19-nightly.250814.514e883a

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 (285) hide show
  1. package/README.md +199 -132
  2. package/dist/index.d.ts +3 -0
  3. package/dist/index.js +3 -0
  4. package/dist/index.js.map +1 -1
  5. package/dist/src/code_assist/converter.d.ts +3 -2
  6. package/dist/src/code_assist/converter.js +2 -2
  7. package/dist/src/code_assist/converter.js.map +1 -1
  8. package/dist/src/code_assist/converter.test.js +48 -1
  9. package/dist/src/code_assist/converter.test.js.map +1 -1
  10. package/dist/src/code_assist/oauth2.js +1 -1
  11. package/dist/src/code_assist/oauth2.js.map +1 -1
  12. package/dist/src/code_assist/server.test.js +4 -1
  13. package/dist/src/code_assist/server.test.js.map +1 -1
  14. package/dist/src/code_assist/setup.js +48 -17
  15. package/dist/src/code_assist/setup.js.map +1 -1
  16. package/dist/src/code_assist/setup.test.js +105 -5
  17. package/dist/src/code_assist/setup.test.js.map +1 -1
  18. package/dist/src/config/config.d.ts +25 -6
  19. package/dist/src/config/config.js +47 -16
  20. package/dist/src/config/config.js.map +1 -1
  21. package/dist/src/config/config.test.js +95 -1
  22. package/dist/src/config/config.test.js.map +1 -1
  23. package/dist/src/core/client.d.ts +8 -5
  24. package/dist/src/core/client.js +184 -119
  25. package/dist/src/core/client.js.map +1 -1
  26. package/dist/src/core/client.test.js +342 -37
  27. package/dist/src/core/client.test.js.map +1 -1
  28. package/dist/src/core/contentGenerator.js +3 -2
  29. package/dist/src/core/contentGenerator.js.map +1 -1
  30. package/dist/src/core/contentGenerator.test.js +3 -2
  31. package/dist/src/core/contentGenerator.test.js.map +1 -1
  32. package/dist/src/core/coreToolScheduler.d.ts +21 -8
  33. package/dist/src/core/coreToolScheduler.js +170 -61
  34. package/dist/src/core/coreToolScheduler.js.map +1 -1
  35. package/dist/src/core/coreToolScheduler.test.js +183 -41
  36. package/dist/src/core/coreToolScheduler.test.js.map +1 -1
  37. package/dist/src/core/geminiChat.d.ts +7 -6
  38. package/dist/src/core/geminiChat.js +43 -43
  39. package/dist/src/core/geminiChat.js.map +1 -1
  40. package/dist/src/core/logger.d.ts +1 -0
  41. package/dist/src/core/logger.js +18 -0
  42. package/dist/src/core/logger.js.map +1 -1
  43. package/dist/src/core/logger.test.js +29 -0
  44. package/dist/src/core/logger.test.js.map +1 -1
  45. package/dist/src/core/loggingContentGenerator.d.ts +29 -0
  46. package/dist/src/core/loggingContentGenerator.js +97 -0
  47. package/dist/src/core/loggingContentGenerator.js.map +1 -0
  48. package/dist/src/core/nonInteractiveToolExecutor.js +20 -1
  49. package/dist/src/core/nonInteractiveToolExecutor.js.map +1 -1
  50. package/dist/src/core/nonInteractiveToolExecutor.test.js +7 -31
  51. package/dist/src/core/nonInteractiveToolExecutor.test.js.map +1 -1
  52. package/dist/src/core/subagent.d.ts +230 -0
  53. package/dist/src/core/subagent.js +447 -0
  54. package/dist/src/core/subagent.js.map +1 -0
  55. package/dist/src/core/subagent.test.d.ts +6 -0
  56. package/dist/src/core/subagent.test.js +515 -0
  57. package/dist/src/core/subagent.test.js.map +1 -0
  58. package/dist/src/core/turn.js +1 -0
  59. package/dist/src/core/turn.js.map +1 -1
  60. package/dist/src/core/turn.test.js +4 -0
  61. package/dist/src/core/turn.test.js.map +1 -1
  62. package/dist/src/ide/detect-ide.d.ts +12 -2
  63. package/dist/src/ide/detect-ide.js +64 -5
  64. package/dist/src/ide/detect-ide.js.map +1 -1
  65. package/dist/src/ide/detect-ide.test.d.ts +6 -0
  66. package/dist/src/ide/detect-ide.test.js +65 -0
  67. package/dist/src/ide/detect-ide.test.js.map +1 -0
  68. package/dist/src/ide/ide-client.d.ts +20 -1
  69. package/dist/src/ide/ide-client.js +145 -19
  70. package/dist/src/ide/ide-client.js.map +1 -1
  71. package/dist/src/ide/ide-installer.js +1 -26
  72. package/dist/src/ide/ide-installer.js.map +1 -1
  73. package/dist/src/ide/ide-installer.test.js +0 -4
  74. package/dist/src/ide/ide-installer.test.js.map +1 -1
  75. package/dist/src/ide/ideContext.d.ts +95 -0
  76. package/dist/src/ide/ideContext.js +45 -0
  77. package/dist/src/ide/ideContext.js.map +1 -1
  78. package/dist/src/index.d.ts +2 -1
  79. package/dist/src/index.js +2 -1
  80. package/dist/src/index.js.map +1 -1
  81. package/dist/src/mcp/google-auth-provider.js +9 -0
  82. package/dist/src/mcp/google-auth-provider.js.map +1 -1
  83. package/dist/src/mcp/google-auth-provider.test.js +45 -10
  84. package/dist/src/mcp/google-auth-provider.test.js.map +1 -1
  85. package/dist/src/mcp/oauth-provider.d.ts +0 -1
  86. package/dist/src/mcp/oauth-provider.js +0 -1
  87. package/dist/src/mcp/oauth-provider.js.map +1 -1
  88. package/dist/src/mocks/msw.d.ts +6 -0
  89. package/dist/src/mocks/msw.js +8 -0
  90. package/dist/src/mocks/msw.js.map +1 -0
  91. package/dist/src/services/loopDetectionService.js +14 -11
  92. package/dist/src/services/loopDetectionService.js.map +1 -1
  93. package/dist/src/services/loopDetectionService.test.js +191 -0
  94. package/dist/src/services/loopDetectionService.test.js.map +1 -1
  95. package/dist/src/services/shellExecutionService.js +29 -9
  96. package/dist/src/services/shellExecutionService.js.map +1 -1
  97. package/dist/src/services/shellExecutionService.test.js +8 -0
  98. package/dist/src/services/shellExecutionService.test.js.map +1 -1
  99. package/dist/src/telemetry/clearcut-logger/clearcut-logger.d.ts +50 -7
  100. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +236 -116
  101. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -1
  102. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.d.ts +6 -0
  103. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js +281 -0
  104. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js.map +1 -0
  105. package/dist/src/telemetry/clearcut-logger/event-metadata-key.d.ts +8 -1
  106. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js +17 -0
  107. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js.map +1 -1
  108. package/dist/src/telemetry/index.d.ts +2 -2
  109. package/dist/src/telemetry/index.js +2 -2
  110. package/dist/src/telemetry/index.js.map +1 -1
  111. package/dist/src/telemetry/loggers.d.ts +2 -1
  112. package/dist/src/telemetry/loggers.js +15 -0
  113. package/dist/src/telemetry/loggers.js.map +1 -1
  114. package/dist/src/telemetry/loggers.test.circular.js +7 -2
  115. package/dist/src/telemetry/loggers.test.circular.js.map +1 -1
  116. package/dist/src/telemetry/loggers.test.js +7 -2
  117. package/dist/src/telemetry/loggers.test.js.map +1 -1
  118. package/dist/src/telemetry/metrics.d.ts +3 -2
  119. package/dist/src/telemetry/metrics.js +7 -1
  120. package/dist/src/telemetry/metrics.js.map +1 -1
  121. package/dist/src/telemetry/metrics.test.js +50 -0
  122. package/dist/src/telemetry/metrics.test.js.map +1 -1
  123. package/dist/src/telemetry/sdk.d.ts +1 -1
  124. package/dist/src/telemetry/sdk.js +13 -5
  125. package/dist/src/telemetry/sdk.js.map +1 -1
  126. package/dist/src/telemetry/telemetry.test.js +2 -2
  127. package/dist/src/telemetry/telemetry.test.js.map +1 -1
  128. package/dist/src/telemetry/tool-call-decision.d.ts +13 -0
  129. package/dist/src/telemetry/tool-call-decision.js +29 -0
  130. package/dist/src/telemetry/tool-call-decision.js.map +1 -0
  131. package/dist/src/telemetry/types.d.ts +37 -21
  132. package/dist/src/telemetry/types.js +55 -44
  133. package/dist/src/telemetry/types.js.map +1 -1
  134. package/dist/src/telemetry/uiTelemetry.d.ts +4 -1
  135. package/dist/src/telemetry/uiTelemetry.js +3 -1
  136. package/dist/src/telemetry/uiTelemetry.js.map +1 -1
  137. package/dist/src/telemetry/uiTelemetry.test.js +13 -2
  138. package/dist/src/telemetry/uiTelemetry.test.js.map +1 -1
  139. package/dist/src/test-utils/config.d.ts +16 -0
  140. package/dist/src/test-utils/config.js +32 -0
  141. package/dist/src/test-utils/config.js.map +1 -0
  142. package/dist/src/test-utils/tools.d.ts +23 -0
  143. package/dist/src/test-utils/tools.js +41 -0
  144. package/dist/src/test-utils/tools.js.map +1 -0
  145. package/dist/src/tools/diffOptions.d.ts +2 -0
  146. package/dist/src/tools/diffOptions.js +28 -0
  147. package/dist/src/tools/diffOptions.js.map +1 -1
  148. package/dist/src/tools/diffOptions.test.d.ts +6 -0
  149. package/dist/src/tools/diffOptions.test.js +119 -0
  150. package/dist/src/tools/diffOptions.test.js.map +1 -0
  151. package/dist/src/tools/edit.d.ts +9 -33
  152. package/dist/src/tools/edit.js +142 -132
  153. package/dist/src/tools/edit.js.map +1 -1
  154. package/dist/src/tools/edit.test.js +115 -51
  155. package/dist/src/tools/edit.test.js.map +1 -1
  156. package/dist/src/tools/glob.d.ts +3 -10
  157. package/dist/src/tools/glob.js +85 -89
  158. package/dist/src/tools/glob.js.map +1 -1
  159. package/dist/src/tools/glob.test.js +22 -12
  160. package/dist/src/tools/glob.test.js.map +1 -1
  161. package/dist/src/tools/grep.d.ts +3 -35
  162. package/dist/src/tools/grep.js +111 -83
  163. package/dist/src/tools/grep.js.map +1 -1
  164. package/dist/src/tools/grep.test.js +40 -23
  165. package/dist/src/tools/grep.test.js.map +1 -1
  166. package/dist/src/tools/ls.d.ts +3 -22
  167. package/dist/src/tools/ls.js +81 -78
  168. package/dist/src/tools/ls.js.map +1 -1
  169. package/dist/src/tools/ls.test.js +62 -34
  170. package/dist/src/tools/ls.test.js.map +1 -1
  171. package/dist/src/tools/mcp-client.d.ts +14 -3
  172. package/dist/src/tools/mcp-client.js +82 -6
  173. package/dist/src/tools/mcp-client.js.map +1 -1
  174. package/dist/src/tools/mcp-client.test.js +340 -5
  175. package/dist/src/tools/mcp-client.test.js.map +1 -1
  176. package/dist/src/tools/mcp-tool.d.ts +6 -13
  177. package/dist/src/tools/mcp-tool.js +41 -31
  178. package/dist/src/tools/mcp-tool.js.map +1 -1
  179. package/dist/src/tools/mcp-tool.test.js +53 -51
  180. package/dist/src/tools/mcp-tool.test.js.map +1 -1
  181. package/dist/src/tools/memoryTool.d.ts +10 -14
  182. package/dist/src/tools/memoryTool.js +128 -121
  183. package/dist/src/tools/memoryTool.js.map +1 -1
  184. package/dist/src/tools/memoryTool.test.js +38 -18
  185. package/dist/src/tools/memoryTool.test.js.map +1 -1
  186. package/dist/src/tools/modifiable-tool.d.ts +8 -5
  187. package/dist/src/tools/modifiable-tool.js +4 -1
  188. package/dist/src/tools/modifiable-tool.js.map +1 -1
  189. package/dist/src/tools/modifiable-tool.test.js +3 -3
  190. package/dist/src/tools/modifiable-tool.test.js.map +1 -1
  191. package/dist/src/tools/read-file.d.ts +4 -6
  192. package/dist/src/tools/read-file.js +92 -45
  193. package/dist/src/tools/read-file.js.map +1 -1
  194. package/dist/src/tools/read-file.test.js +192 -130
  195. package/dist/src/tools/read-file.test.js.map +1 -1
  196. package/dist/src/tools/read-many-files.d.ts +4 -5
  197. package/dist/src/tools/read-many-files.js +120 -103
  198. package/dist/src/tools/read-many-files.js.map +1 -1
  199. package/dist/src/tools/read-many-files.test.js +81 -47
  200. package/dist/src/tools/read-many-files.test.js.map +1 -1
  201. package/dist/src/tools/shell.d.ts +4 -6
  202. package/dist/src/tools/shell.js +99 -101
  203. package/dist/src/tools/shell.js.map +1 -1
  204. package/dist/src/tools/shell.test.js +43 -28
  205. package/dist/src/tools/shell.test.js.map +1 -1
  206. package/dist/src/tools/tool-error.d.ts +4 -0
  207. package/dist/src/tools/tool-error.js +4 -0
  208. package/dist/src/tools/tool-error.js.map +1 -1
  209. package/dist/src/tools/tool-registry.d.ts +17 -20
  210. package/dist/src/tools/tool-registry.js +35 -77
  211. package/dist/src/tools/tool-registry.js.map +1 -1
  212. package/dist/src/tools/tool-registry.test.js +19 -192
  213. package/dist/src/tools/tool-registry.test.js.map +1 -1
  214. package/dist/src/tools/tools.d.ts +156 -54
  215. package/dist/src/tools/tools.js +196 -25
  216. package/dist/src/tools/tools.js.map +1 -1
  217. package/dist/src/tools/tools.test.d.ts +6 -0
  218. package/dist/src/tools/tools.test.js +117 -0
  219. package/dist/src/tools/tools.test.js.map +1 -0
  220. package/dist/src/tools/web-fetch.d.ts +4 -7
  221. package/dist/src/tools/web-fetch.js +62 -63
  222. package/dist/src/tools/web-fetch.js.map +1 -1
  223. package/dist/src/tools/web-fetch.test.js +8 -4
  224. package/dist/src/tools/web-fetch.test.js.map +1 -1
  225. package/dist/src/tools/web-search.js +3 -3
  226. package/dist/src/tools/web-search.js.map +1 -1
  227. package/dist/src/tools/write-file.d.ts +8 -3
  228. package/dist/src/tools/write-file.js +89 -22
  229. package/dist/src/tools/write-file.js.map +1 -1
  230. package/dist/src/tools/write-file.test.js +112 -8
  231. package/dist/src/tools/write-file.test.js.map +1 -1
  232. package/dist/src/utils/bfsFileSearch.test.js +28 -56
  233. package/dist/src/utils/bfsFileSearch.test.js.map +1 -1
  234. package/dist/src/utils/editCorrector.js +8 -9
  235. package/dist/src/utils/editCorrector.js.map +1 -1
  236. package/dist/src/utils/environmentContext.d.ts +21 -0
  237. package/dist/src/utils/environmentContext.js +90 -0
  238. package/dist/src/utils/environmentContext.js.map +1 -0
  239. package/dist/src/utils/environmentContext.test.d.ts +6 -0
  240. package/dist/src/utils/environmentContext.test.js +139 -0
  241. package/dist/src/utils/environmentContext.test.js.map +1 -0
  242. package/dist/src/utils/errorParsing.d.ts +8 -0
  243. package/dist/src/utils/errorParsing.js +93 -0
  244. package/dist/src/utils/errorParsing.js.map +1 -0
  245. package/dist/src/utils/errorParsing.test.d.ts +6 -0
  246. package/dist/src/utils/errorParsing.test.js +172 -0
  247. package/dist/src/utils/errorParsing.test.js.map +1 -0
  248. package/dist/src/utils/fileUtils.d.ts +7 -0
  249. package/dist/src/utils/fileUtils.js +15 -12
  250. package/dist/src/utils/fileUtils.js.map +1 -1
  251. package/dist/src/utils/fileUtils.test.js +6 -5
  252. package/dist/src/utils/fileUtils.test.js.map +1 -1
  253. package/dist/src/utils/filesearch/crawlCache.d.ts +1 -1
  254. package/dist/src/utils/filesearch/crawlCache.js +4 -1
  255. package/dist/src/utils/filesearch/crawlCache.js.map +1 -1
  256. package/dist/src/utils/filesearch/crawlCache.test.js +10 -0
  257. package/dist/src/utils/filesearch/crawlCache.test.js.map +1 -1
  258. package/dist/src/utils/filesearch/fileSearch.d.ts +2 -0
  259. package/dist/src/utils/filesearch/fileSearch.js +33 -8
  260. package/dist/src/utils/filesearch/fileSearch.js.map +1 -1
  261. package/dist/src/utils/filesearch/fileSearch.test.js +139 -0
  262. package/dist/src/utils/filesearch/fileSearch.test.js.map +1 -1
  263. package/dist/src/utils/filesearch/result-cache.d.ts +1 -2
  264. package/dist/src/utils/filesearch/result-cache.js +1 -3
  265. package/dist/src/utils/filesearch/result-cache.js.map +1 -1
  266. package/dist/src/utils/filesearch/result-cache.test.js +3 -4
  267. package/dist/src/utils/filesearch/result-cache.test.js.map +1 -1
  268. package/dist/src/utils/memoryDiscovery.js +4 -1
  269. package/dist/src/utils/memoryDiscovery.js.map +1 -1
  270. package/dist/src/utils/memoryImportProcessor.js +1 -1
  271. package/dist/src/utils/memoryImportProcessor.js.map +1 -1
  272. package/dist/src/utils/memoryImportProcessor.test.js +17 -20
  273. package/dist/src/utils/memoryImportProcessor.test.js.map +1 -1
  274. package/dist/src/utils/nextSpeakerChecker.js +5 -6
  275. package/dist/src/utils/nextSpeakerChecker.js.map +1 -1
  276. package/dist/src/utils/nextSpeakerChecker.test.js +2 -2
  277. package/dist/src/utils/nextSpeakerChecker.test.js.map +1 -1
  278. package/dist/src/utils/quotaErrorDetection.d.ts +1 -5
  279. package/dist/src/utils/quotaErrorDetection.js.map +1 -1
  280. package/dist/src/utils/schemaValidator.d.ts +1 -8
  281. package/dist/src/utils/schemaValidator.js +1 -32
  282. package/dist/src/utils/schemaValidator.js.map +1 -1
  283. package/dist/tsconfig.tsbuildinfo +1 -1
  284. package/package.json +3 -1
  285. package/dist/google-gemini-cli-core-0.1.17.tgz +0 -0
package/README.md CHANGED
@@ -1,215 +1,282 @@
1
1
  # Gemini CLI
2
2
 
3
3
  [![Gemini CLI CI](https://github.com/google-gemini/gemini-cli/actions/workflows/ci.yml/badge.svg)](https://github.com/google-gemini/gemini-cli/actions/workflows/ci.yml)
4
+ [![Version](https://img.shields.io/npm/v/@google/gemini-cli)](https://www.npmjs.com/package/@google/gemini-cli)
5
+ [![License](https://img.shields.io/github/license/google-gemini/gemini-cli)](https://github.com/google-gemini/gemini-cli/blob/main/LICENSE)
4
6
 
5
7
  ![Gemini CLI Screenshot](./docs/assets/gemini-screenshot.png)
6
8
 
7
- This repository contains the Gemini CLI, a command-line AI workflow tool that connects to your
8
- tools, understands your code and accelerates your workflows.
9
+ Gemini CLI is an open-source AI agent that brings the power of Gemini directly into your terminal. It provides lightweight access to Gemini, giving you the most direct path from your prompt to our model.
9
10
 
10
- With the Gemini CLI you can:
11
+ ## 🚀 Why Gemini CLI?
11
12
 
12
- - Query and edit large codebases in and beyond Gemini's 1M token context window.
13
- - Generate new apps from PDFs or sketches, using Gemini's multimodal capabilities.
14
- - Automate operational tasks, like querying pull requests or handling complex rebases.
15
- - Use tools and MCP servers to connect new capabilities, including [media generation with Imagen,
16
- Veo or Lyria](https://github.com/GoogleCloudPlatform/vertex-ai-creative-studio/tree/main/experiments/mcp-genmedia)
17
- - Ground your queries with the [Google Search](https://ai.google.dev/gemini-api/docs/grounding)
18
- tool, built into Gemini.
13
+ - **🎯 Free tier**: 60 requests/min and 1,000 requests/day with personal Google account
14
+ - **🧠 Powerful Gemini 2.5 Pro**: Access to 1M token context window
15
+ - **🔧 Built-in tools**: Google Search grounding, file operations, shell commands, web fetching
16
+ - **🔌 Extensible**: MCP (Model Context Protocol) support for custom integrations
17
+ - **💻 Terminal-first**: Designed for developers who live in the command line
18
+ - **🛡️ Open source**: Apache 2.0 licensed
19
19
 
20
- ## Quickstart
20
+ ## 📦 Installation
21
21
 
22
- You have two options to install Gemini CLI.
22
+ ### Quick Install
23
23
 
24
- ### With Node
24
+ #### Run instantly with npx
25
25
 
26
- 1. **Prerequisites:** Ensure you have [Node.js version 20](https://nodejs.org/en/download) or higher installed.
27
- 2. **Run the CLI:** Execute the following command in your terminal:
26
+ ```bash
27
+ # Using npx (no installation required)
28
+ npx https://github.com/google-gemini/gemini-cli
29
+ ```
30
+
31
+ #### Install globally with npm
32
+
33
+ ```bash
34
+ npm install -g @google/gemini-cli
35
+ ```
28
36
 
29
- ```bash
30
- npx https://github.com/google-gemini/gemini-cli
31
- ```
37
+ #### Install globally with Homebrew (macOS/Linux)
32
38
 
33
- Or install it with:
39
+ ```bash
40
+ brew install gemini-cli
41
+ ```
34
42
 
35
- ```bash
36
- npm install -g @google/gemini-cli
37
- ```
43
+ #### System Requirements
38
44
 
39
- Then, run the CLI from anywhere:
45
+ - Node.js version 20 or higher
46
+ - macOS, Linux, or Windows
40
47
 
41
- ```bash
42
- gemini
43
- ```
48
+ ## 📋 Key Features
44
49
 
45
- ### With Homebrew
50
+ With Gemini CLI you can:
46
51
 
47
- 1. **Prerequisites:** Ensure you have [Homebrew](https://brew.sh/) installed.
48
- 2. **Install the CLI:** Execute the following command in your terminal:
52
+ - **Code Understanding & Generation**
53
+ - Query and edit large codebases
54
+ - Generate new apps from PDFs, images, or sketches using multimodal capabilities
55
+ - Debug issues and troubleshoot with natural language
56
+ - **Automation & Integration**
57
+ - Automate operational tasks like querying pull requests or handling complex rebases
58
+ - Use MCP servers to connect new capabilities, including [media generation with Imagen, Veo or Lyria](https://github.com/GoogleCloudPlatform/vertex-ai-creative-studio/tree/main/experiments/mcp-genmedia)
59
+ - Run non-interactively in scripts for workflow automation
60
+ - **Advanced Capabilities**
61
+ - Ground your queries with built-in [Google Search](https://ai.google.dev/gemini-api/docs/grounding) for real-time information
62
+ - Conversation checkpointing to save and resume complex sessions
63
+ - Custom context files (GEMINI.md) to tailor behavior for your projects
49
64
 
50
- ```bash
51
- brew install gemini-cli
52
- ```
65
+ - **🔗 GitHub Integration**
66
+ - Use the Gemini CLI GitHub Action for automated PR reviews
67
+ - Automated issue triage and on-demand AI assistance directly in your repositories
68
+ - Seamless integration with your GitHub workflows
53
69
 
54
- Then, run the CLI from anywhere:
70
+ ## 🔐 Authentication Options
55
71
 
56
- ```bash
57
- gemini
58
- ```
72
+ Choose the authentication method that best fits your needs:
59
73
 
60
- ### Common Configuration steps
74
+ ### Option 1: OAuth login (Using your Google Account)
61
75
 
62
- 3. **Pick a color theme**
63
- 4. **Authenticate:** When prompted, sign in with your personal Google account. This will grant you up to 60 model requests per minute and 1,000 model requests per day using Gemini.
76
+ **✨ Best for:** Individual developers as well as anyone who has a Gemini Code Assist License. (see [quota limits and terms of service](https://cloud.google.com/gemini/docs/quotas) for details)
64
77
 
65
- You are now ready to use the Gemini CLI!
78
+ **Benefits:**
66
79
 
67
- ### Use a Gemini API key:
80
+ - **Free tier**: 60 requests/min and 1,000 requests/day
81
+ - **Gemini 2.5 Pro** with 1M token context window
82
+ - **No API key management** - just sign in with your Google account
83
+ - **Automatic updates** to latest models
68
84
 
69
- The Gemini API provides a free tier with [100 requests per day](https://ai.google.dev/gemini-api/docs/rate-limits#free-tier) using Gemini 2.5 Pro, control over which model you use, and access to higher rate limits (with a paid plan):
85
+ #### Start Gemini CLI, then choose OAuth and follow the browser authentication flow when prompted
70
86
 
71
- 1. Generate a key from [Google AI Studio](https://aistudio.google.com/apikey).
72
- 2. Set it as an environment variable in your terminal. Replace `YOUR_API_KEY` with your generated key.
87
+ ```bash
88
+ gemini
89
+ ```
73
90
 
74
- ```bash
75
- export GEMINI_API_KEY="YOUR_API_KEY"
76
- ```
91
+ #### If you are using a paid Code Assist License from your organization, remember to set the Google Cloud Project
77
92
 
78
- 3. (Optionally) Upgrade your Gemini API project to a paid plan on the API key page (will automatically unlock [Tier 1 rate limits](https://ai.google.dev/gemini-api/docs/rate-limits#tier-1))
93
+ ```bash
94
+ # Set your Google Cloud Project
95
+ export GOOGLE_CLOUD_PROJECT="YOUR_PROJECT_NAME"
96
+ gemini
97
+ ```
79
98
 
80
- ### Use a Vertex AI API key:
99
+ ### Option 2: Gemini API Key
81
100
 
82
- The Vertex AI API provides a [free tier](https://cloud.google.com/vertex-ai/generative-ai/docs/start/express-mode/overview) using express mode for Gemini 2.5 Pro, control over which model you use, and access to higher rate limits with a billing account:
101
+ **✨ Best for:** Developers who need specific model control or paid tier access
83
102
 
84
- 1. Generate a key from [Google Cloud](https://cloud.google.com/vertex-ai/generative-ai/docs/start/api-keys).
85
- 2. Set it as an environment variable in your terminal. Replace `YOUR_API_KEY` with your generated key and set GOOGLE_GENAI_USE_VERTEXAI to true
103
+ **Benefits:**
86
104
 
87
- ```bash
88
- export GOOGLE_API_KEY="YOUR_API_KEY"
89
- export GOOGLE_GENAI_USE_VERTEXAI=true
90
- ```
105
+ - **Free tier**: 100 requests/day with Gemini 2.5 Pro
106
+ - **Model selection**: Choose specific Gemini models
107
+ - **Usage-based billing**: Upgrade for higher limits when needed
91
108
 
92
- 3. (Optionally) Add a billing account on your project to get access to [higher usage limits](https://cloud.google.com/vertex-ai/generative-ai/docs/quotas)
109
+ ```bash
110
+ # Get your key from https://aistudio.google.com/apikey
111
+ export GEMINI_API_KEY="YOUR_API_KEY"
112
+ gemini
113
+ ```
93
114
 
94
- For other authentication methods, including Google Workspace accounts, see the [authentication](./docs/cli/authentication.md) guide.
115
+ ### Option 3: Vertex AI
95
116
 
96
- ## Examples
117
+ **✨ Best for:** Enterprise teams and production workloads
97
118
 
98
- Once the CLI is running, you can start interacting with Gemini from your shell.
119
+ **Benefits:**
99
120
 
100
- You can start a project from a new directory:
121
+ - **Enterprise features**: Advanced security and compliance
122
+ - **Scalable**: Higher rate limits with billing account
123
+ - **Integration**: Works with existing Google Cloud infrastructure
101
124
 
102
- ```sh
103
- cd new-project/
125
+ ```bash
126
+ # Get your key from Google Cloud Console
127
+ export GOOGLE_API_KEY="YOUR_API_KEY"
128
+ export GOOGLE_GENAI_USE_VERTEXAI=true
104
129
  gemini
105
- > Write me a Gemini Discord bot that answers questions using a FAQ.md file I will provide
106
130
  ```
107
131
 
108
- Or work with an existing project:
132
+ For Google Workspace accounts and other authentication methods, see the [authentication guide](./docs/cli/authentication.md).
133
+
134
+ ## 🚀 Getting Started
135
+
136
+ ### Basic Usage
137
+
138
+ #### Start in current directory
139
+
140
+ ```bash
141
+ gemini
142
+ ```
143
+
144
+ #### Include multiple directories
145
+
146
+ ```bash
147
+ gemini --include-directories ../lib,../docs
148
+ ```
149
+
150
+ #### Use specific model
151
+
152
+ ```bash
153
+ gemini -m gemini-2.5-flash
154
+ ```
155
+
156
+ #### Non-interactive mode for scripts
157
+
158
+ ```bash
159
+ gemini -p "Explain the architecture of this codebase"
160
+ ```
161
+
162
+ ### Quick Examples
163
+
164
+ #### Start a new project
165
+
166
+ ````bash
167
+ cd new-project/
168
+ gemini
169
+ > Write me a Discord bot that answers questions using a FAQ.md file I will provide
109
170
 
110
- ```sh
171
+ #### Analyze existing code
172
+ ```bash
111
173
  git clone https://github.com/google-gemini/gemini-cli
112
174
  cd gemini-cli
113
175
  gemini
114
176
  > Give me a summary of all of the changes that went in yesterday
115
- ```
177
+ ````
116
178
 
117
- ### Next steps
179
+ ## 🔗 GitHub Integration
118
180
 
119
- - Learn how to [contribute to or build from the source](./CONTRIBUTING.md).
120
- - Explore the available **[CLI Commands](./docs/cli/commands.md)**.
121
- - If you encounter any issues, review the **[troubleshooting guide](./docs/troubleshooting.md)**.
122
- - For more comprehensive documentation, see the [full documentation](./docs/index.md).
123
- - Take a look at some [popular tasks](#popular-tasks) for more inspiration.
124
- - Check out our **[Official Roadmap](./ROADMAP.md)**
181
+ Integrate Gemini CLI directly into your GitHub workflows with the [**Gemini CLI GitHub Action**](https://github.com/google-github-actions/run-gemini-cli). Key features include:
125
182
 
126
- ### Troubleshooting
183
+ - **Pull Request Reviews**: Automatically review pull requests when they're opened.
184
+ - **Issue Triage**: Automatically triage and label GitHub issues.
185
+ - **On-demand Collaboration**: Mention `@gemini-cli` in issues and pull requests for assistance and task delegation.
186
+ - **Custom Workflows**: Set up your own scheduled tasks and event-driven automations.
127
187
 
128
- Head over to the [troubleshooting guide](docs/troubleshooting.md) if you're
129
- having issues.
188
+ ## 📚 Documentation
130
189
 
131
- ## Popular tasks
190
+ ### Getting Started
132
191
 
133
- ### Explore a new codebase
192
+ - [**Quickstart Guide**](./docs/cli/index.md) - Get up and running quickly
193
+ - [**Authentication Setup**](./docs/cli/authentication.md) - Detailed auth configuration
194
+ - [**Configuration Guide**](./docs/cli/configuration.md) - Settings and customization
195
+ - [**Keyboard Shortcuts**](./docs/keyboard-shortcuts.md) - Productivity tips
134
196
 
135
- Start by `cd`ing into an existing or newly-cloned repository and running `gemini`.
197
+ ### Core Features
136
198
 
137
- ```text
138
- > Describe the main pieces of this system's architecture.
139
- ```
199
+ - [**Commands Reference**](./docs/cli/commands.md) - All slash commands (`/help`, `/chat`, `/mcp`, etc.)
200
+ - [**Checkpointing**](./docs/checkpointing.md) - Save and resume conversations
201
+ - [**Memory Management**](./docs/tools/memory.md) - Using GEMINI.md context files
202
+ - [**Token Caching**](./docs/cli/token-caching.md) - Optimize token usage
140
203
 
141
- ```text
142
- > What security mechanisms are in place?
143
- ```
204
+ ### Tools & Extensions
144
205
 
145
- ```text
146
- > Provide a step-by-step dev onboarding doc for developers new to the codebase.
147
- ```
206
+ - [**Built-in Tools Overview**](./docs/tools/index.md)
207
+ - [File System Operations](./docs/tools/file-system.md)
208
+ - [Shell Commands](./docs/tools/shell.md)
209
+ - [Web Fetch & Search](./docs/tools/web-fetch.md)
210
+ - [Multi-file Operations](./docs/tools/multi-file.md)
211
+ - [**MCP Server Integration**](./docs/tools/mcp-server.md) - Extend with custom tools
212
+ - [**Custom Extensions**](./docs/extension.md) - Build your own commands
148
213
 
149
- ```text
150
- > Summarize this codebase and highlight the most interesting patterns or techniques I could learn from.
151
- ```
214
+ ### Advanced Topics
152
215
 
153
- ```text
154
- > Identify potential areas for improvement or refactoring in this codebase, highlighting parts that appear fragile, complex, or hard to maintain.
155
- ```
216
+ - [**Architecture Overview**](./docs/architecture.md) - How Gemini CLI works
217
+ - [**IDE Integration**](./docs/ide-integration.md) - VS Code companion
218
+ - [**Sandboxing & Security**](./docs/sandbox.md) - Safe execution environments
219
+ - [**Enterprise Deployment**](./docs/deployment.md) - Docker, system-wide config
220
+ - [**Telemetry & Monitoring**](./docs/telemetry.md) - Usage tracking
221
+ - [**Tools API Development**](./docs/core/tools-api.md) - Create custom tools
156
222
 
157
- ```text
158
- > Which parts of this codebase might be challenging to scale or debug?
159
- ```
223
+ ### Configuration & Customization
160
224
 
161
- ```text
162
- > Generate a README section for the [module name] module explaining what it does and how to use it.
163
- ```
225
+ - [**Settings Reference**](./docs/cli/configuration.md) - All configuration options
226
+ - [**Theme Customization**](./docs/cli/themes.md) - Visual customization
227
+ - [**.gemini Directory**](./docs/gemini-ignore.md) - Project-specific settings
228
+ - [**Environment Variables**](./docs/cli/configuration.md#environment-variables)
164
229
 
165
- ```text
166
- > What kind of error handling and logging strategies does the project use?
167
- ```
230
+ ### Troubleshooting & Support
168
231
 
169
- ```text
170
- > Which tools, libraries, and dependencies are used in this project?
171
- ```
232
+ - [**Troubleshooting Guide**](./docs/troubleshooting.md) - Common issues and solutions
233
+ - [**FAQ**](./docs/troubleshooting.md#frequently-asked-questions) - Quick answers
234
+ - Use `/bug` command to report issues directly from the CLI
172
235
 
173
- ### Work with your existing code
236
+ ### Using MCP Servers
174
237
 
175
- ```text
176
- > Implement a first draft for GitHub issue #123.
177
- ```
238
+ Configure MCP servers in `~/.gemini/settings.json` to extend Gemini CLI with custom tools:
178
239
 
179
240
  ```text
180
- > Help me migrate this codebase to the latest version of Java. Start with a plan.
241
+ > @github List my open pull requests
242
+ > @slack Send a summary of today's commits to #dev channel
243
+ > @database Run a query to find inactive users
181
244
  ```
182
245
 
183
- ### Automate your workflows
246
+ See the [MCP Server Integration guide](./docs/tools/mcp-server.md) for setup instructions.
184
247
 
185
- Use MCP servers to integrate your local system tools with your enterprise collaboration suite.
248
+ ## 🤝 Contributing
186
249
 
187
- ```text
188
- > Make me a slide deck showing the git history from the last 7 days, grouped by feature and team member.
189
- ```
250
+ We welcome contributions! Gemini CLI is fully open source (Apache 2.0), and we encourage the community to:
190
251
 
191
- ```text
192
- > Make a full-screen web app for a wall display to show our most interacted-with GitHub issues.
193
- ```
252
+ - Report bugs and suggest features
253
+ - Improve documentation
254
+ - Submit code improvements
255
+ - Share your MCP servers and extensions
194
256
 
195
- ### Interact with your system
257
+ See our [Contributing Guide](./CONTRIBUTING.md) for development setup, coding standards, and how to submit pull requests.
196
258
 
197
- ```text
198
- > Convert all the images in this directory to png, and rename them to use dates from the exif data.
199
- ```
259
+ Check our [Official Roadmap](https://github.com/orgs/google-gemini/projects/11/) for planned features and priorities.
200
260
 
201
- ```text
202
- > Organize my PDF invoices by month of expenditure.
203
- ```
261
+ ## 📖 Resources
262
+
263
+ - **[Official Roadmap](./ROADMAP.md)** - See what's coming next
264
+ - **[NPM Package](https://www.npmjs.com/package/@google/gemini-cli)** - Package registry
265
+ - **[GitHub Issues](https://github.com/google-gemini/gemini-cli/issues)** - Report bugs or request features
266
+ - **[Security Advisories](https://github.com/google-gemini/gemini-cli/security/advisories)** - Security updates
204
267
 
205
268
  ### Uninstall
206
269
 
207
- Head over to the [Uninstall](docs/Uninstall.md) guide for uninstallation instructions.
270
+ See the [Uninstall Guide](docs/Uninstall.md) for removal instructions.
208
271
 
209
- ## Terms of Service and Privacy Notice
272
+ ## 📄 Legal
210
273
 
211
- For details on the terms of service and privacy notice applicable to your use of Gemini CLI, see the [Terms of Service and Privacy Notice](./docs/tos-privacy.md).
274
+ - **License**: [Apache License 2.0](LICENSE)
275
+ - **Terms of Service**: [Terms & Privacy](./docs/tos-privacy.md)
276
+ - **Security**: [Security Policy](SECURITY.md)
212
277
 
213
- ## Security Disclosures
278
+ ---
214
279
 
215
- Please see our [security disclosure process](SECURITY.md). All [security advisories](https://github.com/google-gemini/gemini-cli/security/advisories) are managed on Github.
280
+ <p align="center">
281
+ Built with ❤️ by Google and the open source community
282
+ </p>
package/dist/index.d.ts CHANGED
@@ -5,3 +5,6 @@
5
5
  */
6
6
  export * from './src/index.js';
7
7
  export { DEFAULT_GEMINI_MODEL, DEFAULT_GEMINI_FLASH_MODEL, DEFAULT_GEMINI_EMBEDDING_MODEL, } from './src/config/models.js';
8
+ export { logIdeConnection } from './src/telemetry/loggers.js';
9
+ export { IdeConnectionEvent, IdeConnectionType, } from './src/telemetry/types.js';
10
+ export { makeFakeConfig } from './src/test-utils/config.js';
package/dist/index.js CHANGED
@@ -5,4 +5,7 @@
5
5
  */
6
6
  export * from './src/index.js';
7
7
  export { DEFAULT_GEMINI_MODEL, DEFAULT_GEMINI_FLASH_MODEL, DEFAULT_GEMINI_EMBEDDING_MODEL, } from './src/config/models.js';
8
+ export { logIdeConnection } from './src/telemetry/loggers.js';
9
+ export { IdeConnectionEvent, IdeConnectionType, } from './src/telemetry/types.js';
10
+ export { makeFakeConfig } from './src/test-utils/config.js';
8
11
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAC1B,8BAA8B,GAC/B,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAC1B,8BAA8B,GAC/B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EACL,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC"}
@@ -3,7 +3,7 @@
3
3
  * Copyright 2025 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { Content, GenerateContentParameters, CountTokensParameters, CountTokensResponse, GenerateContentResponse, GenerationConfigRoutingConfig, MediaResolution, Candidate, ModelSelectionConfig, GenerateContentResponsePromptFeedback, GenerateContentResponseUsageMetadata, SafetySetting, SchemaUnion, SpeechConfigUnion, ThinkingConfig, ToolListUnion, ToolConfig } from '@google/genai';
6
+ import { Content, ContentListUnion, GenerateContentParameters, CountTokensParameters, CountTokensResponse, GenerateContentResponse, GenerationConfigRoutingConfig, MediaResolution, Candidate, ModelSelectionConfig, GenerateContentResponsePromptFeedback, GenerateContentResponseUsageMetadata, SafetySetting, SpeechConfigUnion, ThinkingConfig, ToolListUnion, ToolConfig } from '@google/genai';
7
7
  export interface CAGenerateContentRequest {
8
8
  model: string;
9
9
  project?: string;
@@ -34,7 +34,7 @@ interface VertexGenerationConfig {
34
34
  frequencyPenalty?: number;
35
35
  seed?: number;
36
36
  responseMimeType?: string;
37
- responseSchema?: SchemaUnion;
37
+ responseJsonSchema?: unknown;
38
38
  routingConfig?: GenerationConfigRoutingConfig;
39
39
  modelSelectionConfig?: ModelSelectionConfig;
40
40
  responseModalities?: string[];
@@ -66,4 +66,5 @@ export declare function toCountTokenRequest(req: CountTokensParameters): CaCount
66
66
  export declare function fromCountTokenResponse(res: CaCountTokenResponse): CountTokensResponse;
67
67
  export declare function toGenerateContentRequest(req: GenerateContentParameters, userPromptId: string, project?: string, sessionId?: string): CAGenerateContentRequest;
68
68
  export declare function fromGenerateContentResponse(res: CaGenerateContentResponse): GenerateContentResponse;
69
+ export declare function toContents(contents: ContentListUnion): Content[];
69
70
  export {};
@@ -47,7 +47,7 @@ function toVertexGenerateContentRequest(req, sessionId) {
47
47
  session_id: sessionId,
48
48
  };
49
49
  }
50
- function toContents(contents) {
50
+ export function toContents(contents) {
51
51
  if (Array.isArray(contents)) {
52
52
  // it's a Content[] or a PartsUnion[]
53
53
  return contents.map(toContent);
@@ -113,7 +113,7 @@ function toVertexGenerationConfig(config) {
113
113
  frequencyPenalty: config.frequencyPenalty,
114
114
  seed: config.seed,
115
115
  responseMimeType: config.responseMimeType,
116
- responseSchema: config.responseSchema,
116
+ responseJsonSchema: config.responseJsonSchema,
117
117
  routingConfig: config.routingConfig,
118
118
  modelSelectionConfig: config.modelSelectionConfig,
119
119
  responseModalities: config.responseModalities,
@@ -1 +1 @@
1
- {"version":3,"file":"converter.js","sourceRoot":"","sources":["../../../src/code_assist/converter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"converter.js","sourceRoot":"","sources":["../../../src/code_assist/converter.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import { describe, it, expect } from 'vitest';
7
- import { toGenerateContentRequest, fromGenerateContentResponse, } from './converter.js';
7
+ import { toGenerateContentRequest, fromGenerateContentResponse, toContents, } from './converter.js';
8
8
  import { GenerateContentResponse, FinishReason, BlockedReason, } from '@google/genai';
9
9
  describe('converter', () => {
10
10
  describe('toCodeAssistRequest', () => {
@@ -228,5 +228,52 @@ describe('converter', () => {
228
228
  expect(genaiRes.automaticFunctionCallingHistory).toEqual(codeAssistRes.response.automaticFunctionCallingHistory);
229
229
  });
230
230
  });
231
+ describe('toContents', () => {
232
+ it('should handle Content', () => {
233
+ const content = {
234
+ role: 'user',
235
+ parts: [{ text: 'hello' }],
236
+ };
237
+ expect(toContents(content)).toEqual([
238
+ { role: 'user', parts: [{ text: 'hello' }] },
239
+ ]);
240
+ });
241
+ it('should handle array of Contents', () => {
242
+ const contents = [
243
+ { role: 'user', parts: [{ text: 'hello' }] },
244
+ { role: 'model', parts: [{ text: 'hi' }] },
245
+ ];
246
+ expect(toContents(contents)).toEqual([
247
+ { role: 'user', parts: [{ text: 'hello' }] },
248
+ { role: 'model', parts: [{ text: 'hi' }] },
249
+ ]);
250
+ });
251
+ it('should handle Part', () => {
252
+ const part = { text: 'a part' };
253
+ expect(toContents(part)).toEqual([
254
+ { role: 'user', parts: [{ text: 'a part' }] },
255
+ ]);
256
+ });
257
+ it('should handle array of Parts', () => {
258
+ const parts = [{ text: 'part 1' }, 'part 2'];
259
+ expect(toContents(parts)).toEqual([
260
+ { role: 'user', parts: [{ text: 'part 1' }] },
261
+ { role: 'user', parts: [{ text: 'part 2' }] },
262
+ ]);
263
+ });
264
+ it('should handle string', () => {
265
+ const str = 'a string';
266
+ expect(toContents(str)).toEqual([
267
+ { role: 'user', parts: [{ text: 'a string' }] },
268
+ ]);
269
+ });
270
+ it('should handle array of strings', () => {
271
+ const strings = ['string 1', 'string 2'];
272
+ expect(toContents(strings)).toEqual([
273
+ { role: 'user', parts: [{ text: 'string 1' }] },
274
+ { role: 'user', parts: [{ text: 'string 2' }] },
275
+ ]);
276
+ });
277
+ });
231
278
  });
232
279
  //# sourceMappingURL=converter.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"converter.test.js","sourceRoot":"","sources":["../../../src/code_assist/converter.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"converter.test.js","sourceRoot":"","sources":["../../../src/code_assist/converter.test.ts"],"names":[],"mappings":"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"}
@@ -295,7 +295,7 @@ async function cacheCredentials(credentials) {
295
295
  const filePath = getCachedCredentialPath();
296
296
  await fs.mkdir(path.dirname(filePath), { recursive: true });
297
297
  const credString = JSON.stringify(credentials, null, 2);
298
- await fs.writeFile(filePath, credString);
298
+ await fs.writeFile(filePath, credString, { mode: 0o600 });
299
299
  }
300
300
  function getCachedCredentialPath() {
301
301
  return path.join(os.homedir(), GEMINI_DIR, CREDENTIAL_FILENAME);