@mmmbuto/gemini-cli-termux 0.30.3-termux → 0.30.5-termux

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 (400) hide show
  1. package/README.md +42 -193
  2. package/bundle/docs/cli/settings.md +8 -9
  3. package/bundle/docs/extensions/reference.md +14 -38
  4. package/bundle/docs/hooks/reference.md +0 -8
  5. package/bundle/docs/reference/configuration.md +0 -8
  6. package/bundle/gemini.js +10730 -11704
  7. package/bundle/node_modules/@google/gemini-cli-devtools/package.json +1 -1
  8. package/bundle/package.json +2 -1
  9. package/package.json +67 -5
  10. package/packages/cli/dist/index.js +0 -0
  11. package/packages/cli/dist/package.json +2 -2
  12. package/packages/cli/dist/src/commands/extensions/examples/custom-commands/gemini-extension.json +2 -2
  13. package/packages/cli/dist/src/commands/extensions/examples/exclude-tools/gemini-extension.json +3 -3
  14. package/packages/cli/dist/src/commands/extensions/examples/hooks/gemini-extension.json +2 -2
  15. package/packages/cli/dist/src/commands/extensions/examples/hooks/hooks/hooks.json +11 -11
  16. package/packages/cli/dist/src/commands/extensions/examples/mcp-server/example.js +1 -1
  17. package/packages/cli/dist/src/commands/extensions/examples/mcp-server/gemini-extension.json +8 -8
  18. package/packages/cli/dist/src/commands/extensions/examples/mcp-server/package.json +9 -9
  19. package/packages/cli/dist/src/commands/extensions/examples/skills/gemini-extension.json +2 -2
  20. package/packages/cli/dist/src/commands/extensions/examples/themes-example/README.md +8 -5
  21. package/packages/cli/dist/src/commands/extensions/examples/themes-example/gemini-extension.json +27 -27
  22. package/packages/cli/dist/src/config/config.js +4 -65
  23. package/packages/cli/dist/src/config/config.js.map +1 -1
  24. package/packages/cli/dist/src/config/settingsSchema.d.ts +1 -235
  25. package/packages/cli/dist/src/config/settingsSchema.js +1 -235
  26. package/packages/cli/dist/src/config/settingsSchema.js.map +1 -1
  27. package/packages/cli/dist/src/gemini.js +0 -2
  28. package/packages/cli/dist/src/gemini.js.map +1 -1
  29. package/packages/cli/dist/src/generated/git-commit.d.ts +2 -2
  30. package/packages/cli/dist/src/generated/git-commit.js +2 -2
  31. package/packages/cli/dist/src/patches/empty-module.d.ts +2 -0
  32. package/packages/cli/dist/src/patches/empty-module.js +2 -0
  33. package/packages/cli/dist/src/patches/empty-module.js.map +1 -0
  34. package/packages/cli/dist/src/services/McpPromptLoader.js +3 -6
  35. package/packages/cli/dist/src/services/McpPromptLoader.js.map +1 -1
  36. package/packages/cli/dist/src/ui/components/AgentConfigDialog.js +19 -5
  37. package/packages/cli/dist/src/ui/components/AgentConfigDialog.js.map +1 -1
  38. package/packages/cli/dist/src/ui/components/AgentConfigDialog.test.js +41 -19
  39. package/packages/cli/dist/src/ui/components/AgentConfigDialog.test.js.map +1 -1
  40. package/packages/cli/dist/src/ui/components/DialogManager.d.ts +1 -1
  41. package/packages/cli/dist/src/ui/components/DialogManager.js +34 -7
  42. package/packages/cli/dist/src/ui/components/DialogManager.js.map +1 -1
  43. package/packages/cli/dist/src/ui/components/InputPrompt.d.ts +9 -0
  44. package/packages/cli/dist/src/ui/components/InputPrompt.js +350 -125
  45. package/packages/cli/dist/src/ui/components/InputPrompt.js.map +1 -1
  46. package/packages/cli/dist/src/ui/components/InputPrompt.test.js +788 -35
  47. package/packages/cli/dist/src/ui/components/InputPrompt.test.js.map +1 -1
  48. package/packages/cli/dist/src/ui/components/messages/ShellToolMessage.js +2 -2
  49. package/packages/cli/dist/src/ui/components/messages/ShellToolMessage.js.map +1 -1
  50. package/packages/cli/dist/src/ui/components/messages/ToolConfirmationMessage.js +4 -77
  51. package/packages/cli/dist/src/ui/components/messages/ToolConfirmationMessage.js.map +1 -1
  52. package/packages/cli/dist/src/ui/components/messages/ToolConfirmationMessage.test.js +0 -51
  53. package/packages/cli/dist/src/ui/components/messages/ToolConfirmationMessage.test.js.map +1 -1
  54. package/packages/cli/dist/src/ui/components/messages/ToolMessage.js +2 -2
  55. package/packages/cli/dist/src/ui/components/messages/ToolMessage.js.map +1 -1
  56. package/packages/cli/dist/src/ui/components/messages/ToolShared.d.ts +0 -1
  57. package/packages/cli/dist/src/ui/components/messages/ToolShared.js +2 -2
  58. package/packages/cli/dist/src/ui/components/messages/ToolShared.js.map +1 -1
  59. package/packages/cli/dist/src/ui/components/shared/BaseSettingsDialog.js +4 -1
  60. package/packages/cli/dist/src/ui/components/shared/BaseSettingsDialog.js.map +1 -1
  61. package/packages/cli/dist/src/ui/components/shared/BaseSettingsDialog.test.js +139 -40
  62. package/packages/cli/dist/src/ui/components/shared/BaseSettingsDialog.test.js.map +1 -1
  63. package/packages/cli/dist/src/ui/components/shared/TextInput.js +2 -1
  64. package/packages/cli/dist/src/ui/components/shared/TextInput.js.map +1 -1
  65. package/packages/cli/dist/src/ui/hooks/toolMapping.js +0 -1
  66. package/packages/cli/dist/src/ui/hooks/toolMapping.js.map +1 -1
  67. package/packages/cli/dist/src/ui/hooks/toolMapping.test.js +0 -13
  68. package/packages/cli/dist/src/ui/hooks/toolMapping.test.js.map +1 -1
  69. package/packages/cli/dist/src/ui/hooks/useToolScheduler.js +2 -18
  70. package/packages/cli/dist/src/ui/hooks/useToolScheduler.js.map +1 -1
  71. package/packages/cli/dist/src/ui/hooks/useToolScheduler.test.js +0 -44
  72. package/packages/cli/dist/src/ui/hooks/useToolScheduler.test.js.map +1 -1
  73. package/packages/cli/dist/src/ui/keyMatchers.test.js.map +1 -1
  74. package/packages/cli/dist/src/ui/types.d.ts +0 -1
  75. package/packages/cli/dist/src/ui/types.js.map +1 -1
  76. package/packages/cli/dist/src/ui/utils/commandUtils.js +4 -1
  77. package/packages/cli/dist/src/ui/utils/commandUtils.js.map +1 -1
  78. package/packages/cli/dist/src/utils/activityLogger.js +23 -94
  79. package/packages/cli/dist/src/utils/activityLogger.js.map +1 -1
  80. package/packages/cli/dist/src/utils/handleAutoUpdate.d.ts +1 -1
  81. package/packages/cli/dist/src/utils/handleAutoUpdate.js +1 -1
  82. package/packages/cli/dist/src/utils/handleAutoUpdate.js.map +1 -1
  83. package/packages/cli/dist/src/utils/handleAutoUpdate.test.js +11 -11
  84. package/packages/cli/dist/src/utils/handleAutoUpdate.test.js.map +1 -1
  85. package/{bundle/sandbox-macos-restrictive-closed.sb → packages/cli/dist/src/utils/sandbox-macos-strict-open.sb} +42 -4
  86. package/packages/cli/dist/src/utils/{sandbox-macos-restrictive-closed.sb → sandbox-macos-strict-proxied.sb} +44 -4
  87. package/packages/cli/dist/tsconfig.tsbuildinfo +1 -1
  88. package/packages/core/dist/docs/admin/enterprise-controls.md +115 -0
  89. package/packages/core/dist/docs/changelogs/index.md +57 -1
  90. package/packages/core/dist/docs/changelogs/latest.md +357 -314
  91. package/packages/core/dist/docs/changelogs/preview.md +288 -411
  92. package/packages/core/dist/docs/cli/checkpointing.md +2 -3
  93. package/packages/core/dist/docs/cli/cli-reference.md +42 -28
  94. package/packages/core/dist/docs/cli/custom-commands.md +3 -0
  95. package/packages/core/dist/docs/cli/enterprise.md +28 -8
  96. package/packages/core/dist/docs/cli/gemini-md.md +21 -13
  97. package/packages/core/dist/docs/cli/headless.md +34 -372
  98. package/packages/core/dist/docs/cli/model.md +1 -1
  99. package/packages/core/dist/docs/cli/plan-mode.md +245 -0
  100. package/packages/core/dist/docs/cli/rewind.md +11 -11
  101. package/packages/core/dist/docs/cli/sandbox.md +6 -5
  102. package/packages/core/dist/docs/cli/session-management.md +61 -44
  103. package/packages/core/dist/docs/cli/settings.md +64 -49
  104. package/packages/core/dist/docs/cli/skills.md +29 -7
  105. package/packages/core/dist/docs/cli/telemetry.md +41 -5
  106. package/packages/core/dist/docs/cli/themes.md +88 -54
  107. package/packages/core/dist/docs/cli/trusted-folders.md +31 -0
  108. package/packages/core/dist/docs/cli/tutorials/automation.md +187 -0
  109. package/packages/core/dist/docs/cli/tutorials/file-management.md +142 -0
  110. package/packages/core/dist/docs/cli/tutorials/mcp-setup.md +105 -0
  111. package/packages/core/dist/docs/cli/tutorials/memory-management.md +126 -0
  112. package/packages/core/dist/docs/cli/tutorials/session-management.md +105 -0
  113. package/packages/core/dist/docs/cli/tutorials/shell-commands.md +107 -0
  114. package/packages/core/dist/docs/cli/tutorials/skills-getting-started.md +36 -31
  115. package/packages/core/dist/docs/cli/tutorials/task-planning.md +93 -0
  116. package/packages/core/dist/docs/cli/tutorials/web-tools.md +78 -0
  117. package/packages/core/dist/docs/core/index.md +7 -7
  118. package/packages/core/dist/docs/core/subagents.md +40 -40
  119. package/packages/core/dist/docs/extensions/best-practices.md +102 -53
  120. package/packages/core/dist/docs/extensions/index.md +37 -21
  121. package/packages/core/dist/docs/extensions/reference.md +148 -219
  122. package/packages/core/dist/docs/extensions/releasing.md +93 -122
  123. package/packages/core/dist/docs/extensions/writing-extensions.md +87 -76
  124. package/packages/core/dist/docs/get-started/authentication.md +4 -4
  125. package/packages/core/dist/docs/get-started/examples.md +39 -119
  126. package/packages/core/dist/docs/get-started/gemini-3.md +17 -3
  127. package/packages/core/dist/docs/get-started/index.md +16 -5
  128. package/packages/core/dist/docs/get-started/installation.md +110 -77
  129. package/packages/core/dist/docs/hooks/best-practices.md +1 -1
  130. package/packages/core/dist/docs/hooks/reference.md +2 -2
  131. package/packages/core/dist/docs/index.md +142 -149
  132. package/packages/core/dist/docs/redirects.json +19 -0
  133. package/packages/core/dist/docs/reference/commands.md +523 -0
  134. package/{bundle/docs/get-started → packages/core/dist/docs/reference}/configuration.md +180 -71
  135. package/packages/core/dist/docs/{cli → reference}/keyboard-shortcuts.md +49 -35
  136. package/packages/core/dist/docs/{core → reference}/policy-engine.md +76 -32
  137. package/packages/core/dist/docs/releases.md +2 -2
  138. package/{bundle/docs → packages/core/dist/docs/resources}/faq.md +1 -1
  139. package/packages/core/dist/docs/{quota-and-pricing.md → resources/quota-and-pricing.md} +12 -5
  140. package/{bundle/docs → packages/core/dist/docs/resources}/tos-privacy.md +3 -3
  141. package/packages/core/dist/docs/{troubleshooting.md → resources/troubleshooting.md} +1 -1
  142. package/packages/core/dist/docs/sidebar.json +194 -113
  143. package/packages/core/dist/docs/tools/activate-skill.md +43 -0
  144. package/packages/core/dist/docs/tools/ask-user.md +95 -0
  145. package/packages/core/dist/docs/tools/file-system.md +55 -143
  146. package/packages/core/dist/docs/tools/index.md +97 -93
  147. package/packages/core/dist/docs/tools/internal-docs.md +46 -0
  148. package/packages/core/dist/docs/tools/mcp-server.md +65 -16
  149. package/packages/core/dist/docs/tools/memory.md +21 -40
  150. package/packages/core/dist/docs/tools/planning.md +57 -0
  151. package/packages/core/dist/docs/tools/shell.md +44 -88
  152. package/packages/core/dist/docs/tools/todos.md +22 -44
  153. package/packages/core/dist/docs/tools/web-fetch.md +22 -46
  154. package/packages/core/dist/docs/tools/web-search.md +19 -29
  155. package/packages/core/dist/src/code_assist/types.d.ts +14 -14
  156. package/packages/core/dist/src/config/config.d.ts +1 -13
  157. package/packages/core/dist/src/config/config.js +6 -39
  158. package/packages/core/dist/src/config/config.js.map +1 -1
  159. package/packages/core/dist/src/confirmation-bus/types.d.ts +0 -3
  160. package/packages/core/dist/src/confirmation-bus/types.js.map +1 -1
  161. package/packages/core/dist/src/core/coreToolHookTriggers.d.ts +1 -1
  162. package/packages/core/dist/src/core/coreToolHookTriggers.js +3 -8
  163. package/packages/core/dist/src/core/coreToolHookTriggers.js.map +1 -1
  164. package/packages/core/dist/src/generated/git-commit.d.ts +2 -2
  165. package/packages/core/dist/src/generated/git-commit.js +2 -2
  166. package/packages/core/dist/src/hooks/hookEventHandler.d.ts +2 -2
  167. package/packages/core/dist/src/hooks/hookEventHandler.js +2 -8
  168. package/packages/core/dist/src/hooks/hookEventHandler.js.map +1 -1
  169. package/packages/core/dist/src/hooks/hookSystem.d.ts +2 -2
  170. package/packages/core/dist/src/hooks/hookSystem.js +4 -4
  171. package/packages/core/dist/src/hooks/hookSystem.js.map +1 -1
  172. package/packages/core/dist/src/hooks/types.d.ts +0 -18
  173. package/packages/core/dist/src/hooks/types.js +0 -17
  174. package/packages/core/dist/src/hooks/types.js.map +1 -1
  175. package/packages/core/dist/src/ide/ide-client.js +1 -1
  176. package/packages/core/dist/src/ide/ide-client.js.map +1 -1
  177. package/packages/core/dist/src/ide/types.d.ts +8 -8
  178. package/packages/core/dist/src/index.d.ts +2 -0
  179. package/packages/core/dist/src/index.js +2 -0
  180. package/packages/core/dist/src/index.js.map +1 -1
  181. package/packages/core/dist/src/policy/policies/plan.toml +29 -43
  182. package/packages/core/dist/src/policy/policies/read-only.toml +12 -11
  183. package/packages/core/dist/src/policy/policies/write.toml +11 -10
  184. package/packages/core/dist/src/policy/policies/yolo.toml +24 -12
  185. package/packages/core/dist/src/policy/policy-engine.js +1 -5
  186. package/packages/core/dist/src/policy/policy-engine.js.map +1 -1
  187. package/packages/core/dist/src/policy/types.d.ts +1 -2
  188. package/packages/core/dist/src/policy/types.js +0 -1
  189. package/packages/core/dist/src/policy/types.js.map +1 -1
  190. package/packages/core/dist/src/safety/context-builder.d.ts +3 -3
  191. package/packages/core/dist/src/safety/context-builder.js +4 -60
  192. package/packages/core/dist/src/safety/context-builder.js.map +1 -1
  193. package/packages/core/dist/src/safety/context-builder.test.js +18 -98
  194. package/packages/core/dist/src/safety/context-builder.test.js.map +1 -1
  195. package/packages/core/dist/src/safety/protocol.d.ts +0 -4
  196. package/packages/core/dist/src/safety/registry.d.ts +1 -2
  197. package/packages/core/dist/src/safety/registry.js +4 -14
  198. package/packages/core/dist/src/safety/registry.js.map +1 -1
  199. package/packages/core/dist/src/safety/registry.test.js +2 -5
  200. package/packages/core/dist/src/safety/registry.test.js.map +1 -1
  201. package/packages/core/dist/src/scheduler/scheduler.d.ts +1 -1
  202. package/packages/core/dist/src/scheduler/scheduler.js +4 -49
  203. package/packages/core/dist/src/scheduler/scheduler.js.map +1 -1
  204. package/packages/core/dist/src/scheduler/scheduler.test.js +0 -91
  205. package/packages/core/dist/src/scheduler/scheduler.test.js.map +1 -1
  206. package/packages/core/dist/src/scheduler/state-manager.d.ts +0 -6
  207. package/packages/core/dist/src/scheduler/state-manager.js +0 -12
  208. package/packages/core/dist/src/scheduler/state-manager.js.map +1 -1
  209. package/packages/core/dist/src/scheduler/tool-executor.js +7 -9
  210. package/packages/core/dist/src/scheduler/tool-executor.js.map +1 -1
  211. package/packages/core/dist/src/scheduler/tool-executor.test.js +1 -1
  212. package/packages/core/dist/src/scheduler/tool-executor.test.js.map +1 -1
  213. package/packages/core/dist/src/scheduler/types.d.ts +0 -13
  214. package/packages/core/dist/src/services/shellExecutionService.d.ts +1 -1
  215. package/packages/core/dist/src/services/shellExecutionService.js +7 -8
  216. package/packages/core/dist/src/services/shellExecutionService.js.map +1 -1
  217. package/packages/core/dist/src/services/shellExecutionService.test.js +5 -5
  218. package/packages/core/dist/src/services/shellExecutionService.test.js.map +1 -1
  219. package/packages/core/dist/src/services/test-data/resolved-aliases-retry.golden.json +251 -251
  220. package/packages/core/dist/src/services/test-data/resolved-aliases.golden.json +251 -251
  221. package/packages/core/dist/src/skills/builtin/skill-creator/scripts/init_skill.cjs +5 -1
  222. package/packages/core/dist/src/skills/builtin/skill-creator/scripts/package_skill.cjs +5 -1
  223. package/packages/core/dist/src/skills/builtin/skill-creator/scripts/validate_skill.cjs +5 -1
  224. package/packages/core/dist/src/telemetry/clearcut-logger/clearcut-logger.d.ts +1 -3
  225. package/packages/core/dist/src/telemetry/clearcut-logger/clearcut-logger.js +0 -2
  226. package/packages/core/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -1
  227. package/packages/core/dist/src/telemetry/clearcut-logger/event-metadata-key.d.ts +1 -9
  228. package/packages/core/dist/src/telemetry/clearcut-logger/event-metadata-key.js +1 -19
  229. package/packages/core/dist/src/telemetry/clearcut-logger/event-metadata-key.js.map +1 -1
  230. package/packages/core/dist/src/telemetry/index.d.ts +1 -2
  231. package/packages/core/dist/src/telemetry/index.js +1 -2
  232. package/packages/core/dist/src/telemetry/index.js.map +1 -1
  233. package/packages/core/dist/src/telemetry/loggers.js +0 -4
  234. package/packages/core/dist/src/telemetry/loggers.js.map +1 -1
  235. package/packages/core/dist/src/telemetry/trace.js.map +1 -1
  236. package/packages/core/dist/src/telemetry/types.d.ts +0 -26
  237. package/packages/core/dist/src/telemetry/types.js +2 -76
  238. package/packages/core/dist/src/telemetry/types.js.map +1 -1
  239. package/packages/core/dist/src/tools/diffOptions.d.ts +2 -2
  240. package/packages/core/dist/src/tools/diffOptions.js.map +1 -1
  241. package/packages/core/dist/src/tools/mcp-client.test.js.map +1 -1
  242. package/packages/core/dist/src/tools/mcp-tool.d.ts +1 -3
  243. package/packages/core/dist/src/tools/mcp-tool.js +2 -9
  244. package/packages/core/dist/src/tools/mcp-tool.js.map +1 -1
  245. package/packages/core/dist/src/tools/memoryTool.d.ts +0 -10
  246. package/packages/core/dist/src/tools/memoryTool.js +30 -25
  247. package/packages/core/dist/src/tools/memoryTool.js.map +1 -1
  248. package/packages/core/dist/src/tools/tool-names.d.ts +6 -0
  249. package/packages/core/dist/src/tools/tool-names.js +16 -1
  250. package/packages/core/dist/src/tools/tool-names.js.map +1 -1
  251. package/packages/core/dist/src/tools/tools.d.ts +0 -11
  252. package/packages/core/dist/src/tools/tools.js.map +1 -1
  253. package/packages/core/dist/src/utils/getPty.d.ts +14 -1
  254. package/packages/core/dist/src/utils/getPty.js +67 -2
  255. package/packages/core/dist/src/utils/getPty.js.map +1 -1
  256. package/packages/core/dist/src/utils/memoryDiscovery.d.ts +11 -3
  257. package/packages/core/dist/src/utils/memoryDiscovery.js +56 -21
  258. package/packages/core/dist/src/utils/memoryDiscovery.js.map +1 -1
  259. package/packages/core/dist/src/utils/secure-browser-launcher.js +40 -29
  260. package/packages/core/dist/src/utils/secure-browser-launcher.js.map +1 -1
  261. package/packages/core/dist/src/utils/textUtils.d.ts +0 -9
  262. package/packages/core/dist/src/utils/textUtils.js +0 -15
  263. package/packages/core/dist/src/utils/textUtils.js.map +1 -1
  264. package/packages/core/dist/src/utils/textUtils.test.js +1 -42
  265. package/packages/core/dist/src/utils/textUtils.test.js.map +1 -1
  266. package/packages/core/dist/tsconfig.tsbuildinfo +1 -1
  267. package/packages/test-utils/dist/tsconfig.tsbuildinfo +1 -1
  268. package/bundle/docs/ROADMAP.md +0 -113
  269. package/bundle/docs/TERMUX.md +0 -95
  270. package/bundle/docs/architecture.md +0 -80
  271. package/bundle/docs/assets/hero.png +0 -0
  272. package/bundle/docs/cli/authentication.md +0 -3
  273. package/bundle/docs/cli/commands.md +0 -430
  274. package/bundle/docs/cli/context-memory.md +0 -69
  275. package/bundle/docs/cli/index.md +0 -65
  276. package/bundle/docs/cli/keyboard-shortcuts.md +0 -140
  277. package/bundle/docs/cli/tutorials.md +0 -87
  278. package/bundle/docs/core/policy-engine.md +0 -305
  279. package/bundle/docs/get-started/configuration-v1.md +0 -888
  280. package/bundle/docs/patches/README.md +0 -74
  281. package/bundle/docs/patches/mcp-sdk-typings-shim.md +0 -27
  282. package/bundle/docs/quota-and-pricing.md +0 -158
  283. package/bundle/docs/termux-api/COMMANDS.md +0 -592
  284. package/bundle/docs/termux-api/DISCOVERY_SETUP.md +0 -670
  285. package/bundle/docs/termux-api/EXECUTION_PLAN.md +0 -532
  286. package/bundle/docs/termux-api/MERGE_STRATEGY.md +0 -365
  287. package/bundle/docs/termux-api/PATCHES.md +0 -480
  288. package/bundle/docs/termux-api/README.md +0 -416
  289. package/bundle/docs/troubleshooting.md +0 -173
  290. package/bundle/policies/conseca.toml +0 -6
  291. package/bundle/sandbox-macos-permissive-closed.sb +0 -32
  292. package/packages/cli/README.md +0 -173
  293. package/packages/cli/dist/src/commands/extensions/examples/mcp-server/example.d.ts +0 -6
  294. package/packages/cli/dist/src/commands/extensions/examples/mcp-server/example.js.map +0 -1
  295. package/packages/cli/dist/src/commands/extensions/examples/mcp-server/example.test.d.ts +0 -6
  296. package/packages/cli/dist/src/commands/extensions/examples/mcp-server/example.test.js +0 -111
  297. package/packages/cli/dist/src/commands/extensions/examples/mcp-server/example.test.js.map +0 -1
  298. package/packages/cli/dist/src/ui/components/messages/ToolConfirmationMessageOverflow.test.d.ts +0 -6
  299. package/packages/cli/dist/src/ui/components/messages/ToolConfirmationMessageOverflow.test.js +0 -93
  300. package/packages/cli/dist/src/ui/components/messages/ToolConfirmationMessageOverflow.test.js.map +0 -1
  301. package/packages/cli/dist/src/ui/hooks/useReactToolScheduler.d.ts +0 -42
  302. package/packages/cli/dist/src/ui/hooks/useReactToolScheduler.js +0 -105
  303. package/packages/cli/dist/src/ui/hooks/useReactToolScheduler.js.map +0 -1
  304. package/packages/cli/dist/src/ui/hooks/useReactToolScheduler.test.d.ts +0 -6
  305. package/packages/cli/dist/src/ui/hooks/useReactToolScheduler.test.js +0 -58
  306. package/packages/cli/dist/src/ui/hooks/useReactToolScheduler.test.js.map +0 -1
  307. package/packages/cli/dist/src/ui/hooks/useRefreshMemoryCommand.d.ts +0 -6
  308. package/packages/cli/dist/src/ui/hooks/useRefreshMemoryCommand.js +0 -7
  309. package/packages/cli/dist/src/ui/hooks/useRefreshMemoryCommand.js.map +0 -1
  310. package/packages/cli/dist/src/ui/hooks/useShowMemoryCommand.d.ts +0 -9
  311. package/packages/cli/dist/src/ui/hooks/useShowMemoryCommand.js +0 -59
  312. package/packages/cli/dist/src/ui/hooks/useShowMemoryCommand.js.map +0 -1
  313. package/packages/cli/dist/src/ui/hooks/useToolExecutionScheduler.d.ts +0 -30
  314. package/packages/cli/dist/src/ui/hooks/useToolExecutionScheduler.js +0 -149
  315. package/packages/cli/dist/src/ui/hooks/useToolExecutionScheduler.js.map +0 -1
  316. package/packages/cli/dist/src/ui/hooks/useToolExecutionScheduler.test.d.ts +0 -6
  317. package/packages/cli/dist/src/ui/hooks/useToolExecutionScheduler.test.js +0 -376
  318. package/packages/cli/dist/src/ui/hooks/useToolExecutionScheduler.test.js.map +0 -1
  319. package/packages/cli/dist/src/ui/hooks/useToolSchedulerFacade.test.d.ts +0 -6
  320. package/packages/cli/dist/src/ui/hooks/useToolSchedulerFacade.test.js +0 -45
  321. package/packages/cli/dist/src/ui/hooks/useToolSchedulerFacade.test.js.map +0 -1
  322. package/packages/cli/dist/src/ui/utils/InlineMarkdownRenderer.test.d.ts +0 -6
  323. package/packages/cli/dist/src/ui/utils/InlineMarkdownRenderer.test.js +0 -21
  324. package/packages/cli/dist/src/ui/utils/InlineMarkdownRenderer.test.js.map +0 -1
  325. package/packages/cli/dist/src/ui/utils/terminalUtils.test.d.ts +0 -6
  326. package/packages/cli/dist/src/ui/utils/terminalUtils.test.js +0 -40
  327. package/packages/cli/dist/src/ui/utils/terminalUtils.test.js.map +0 -1
  328. package/packages/cli/dist/src/utils/checks.d.ts +0 -19
  329. package/packages/cli/dist/src/utils/checks.js +0 -24
  330. package/packages/cli/dist/src/utils/checks.js.map +0 -1
  331. package/packages/cli/dist/src/utils/checks.test.d.ts +0 -6
  332. package/packages/cli/dist/src/utils/checks.test.js +0 -29
  333. package/packages/cli/dist/src/utils/checks.test.js.map +0 -1
  334. package/packages/cli/dist/src/utils/sandbox-macos-permissive-closed.sb +0 -32
  335. package/packages/cli/index.js +0 -2
  336. package/packages/core/dist/docs/TERMUX.md +0 -95
  337. package/packages/core/dist/docs/architecture.md +0 -80
  338. package/packages/core/dist/docs/assets/hero.png +0 -0
  339. package/packages/core/dist/docs/cli/authentication.md +0 -3
  340. package/packages/core/dist/docs/cli/commands.md +0 -430
  341. package/packages/core/dist/docs/cli/context-memory.md +0 -69
  342. package/packages/core/dist/docs/cli/index.md +0 -65
  343. package/packages/core/dist/docs/cli/tutorials.md +0 -87
  344. package/packages/core/dist/docs/cli/uninstall.md +0 -65
  345. package/packages/core/dist/docs/core/memport.md +0 -246
  346. package/packages/core/dist/docs/core/tools-api.md +0 -131
  347. package/packages/core/dist/docs/faq.md +0 -154
  348. package/packages/core/dist/docs/get-started/configuration-v1.md +0 -888
  349. package/packages/core/dist/docs/get-started/configuration.md +0 -1585
  350. package/packages/core/dist/docs/patches/README.md +0 -74
  351. package/packages/core/dist/docs/patches/mcp-sdk-typings-shim.md +0 -27
  352. package/packages/core/dist/docs/termux-api/COMMANDS.md +0 -592
  353. package/packages/core/dist/docs/termux-api/DISCOVERY_SETUP.md +0 -670
  354. package/packages/core/dist/docs/termux-api/EXECUTION_PLAN.md +0 -532
  355. package/packages/core/dist/docs/termux-api/MERGE_STRATEGY.md +0 -365
  356. package/packages/core/dist/docs/termux-api/PATCHES.md +0 -480
  357. package/packages/core/dist/docs/termux-api/README.md +0 -416
  358. package/packages/core/dist/docs/tos-privacy.md +0 -96
  359. package/packages/core/dist/src/safety/conseca/conseca.d.ts +0 -31
  360. package/packages/core/dist/src/safety/conseca/conseca.js +0 -105
  361. package/packages/core/dist/src/safety/conseca/conseca.js.map +0 -1
  362. package/packages/core/dist/src/safety/conseca/conseca.test.d.ts +0 -6
  363. package/packages/core/dist/src/safety/conseca/conseca.test.js +0 -226
  364. package/packages/core/dist/src/safety/conseca/conseca.test.js.map +0 -1
  365. package/packages/core/dist/src/safety/conseca/integration.test.d.ts +0 -6
  366. package/packages/core/dist/src/safety/conseca/integration.test.js +0 -19
  367. package/packages/core/dist/src/safety/conseca/integration.test.js.map +0 -1
  368. package/packages/core/dist/src/safety/conseca/policy-enforcer.d.ts +0 -13
  369. package/packages/core/dist/src/safety/conseca/policy-enforcer.js +0 -135
  370. package/packages/core/dist/src/safety/conseca/policy-enforcer.js.map +0 -1
  371. package/packages/core/dist/src/safety/conseca/policy-enforcer.test.d.ts +0 -6
  372. package/packages/core/dist/src/safety/conseca/policy-enforcer.test.js +0 -141
  373. package/packages/core/dist/src/safety/conseca/policy-enforcer.test.js.map +0 -1
  374. package/packages/core/dist/src/safety/conseca/policy-generator.d.ts +0 -15
  375. package/packages/core/dist/src/safety/conseca/policy-generator.js +0 -144
  376. package/packages/core/dist/src/safety/conseca/policy-generator.js.map +0 -1
  377. package/packages/core/dist/src/safety/conseca/policy-generator.test.d.ts +0 -6
  378. package/packages/core/dist/src/safety/conseca/policy-generator.test.js +0 -84
  379. package/packages/core/dist/src/safety/conseca/policy-generator.test.js.map +0 -1
  380. package/packages/core/dist/src/safety/conseca/types.d.ts +0 -15
  381. package/packages/core/dist/src/safety/conseca/types.js +0 -7
  382. package/packages/core/dist/src/safety/conseca/types.js.map +0 -1
  383. package/packages/core/dist/src/telemetry/conseca-logger.d.ts +0 -9
  384. package/packages/core/dist/src/telemetry/conseca-logger.js +0 -91
  385. package/packages/core/dist/src/telemetry/conseca-logger.js.map +0 -1
  386. package/packages/core/dist/src/telemetry/conseca-logger.test.d.ts +0 -6
  387. package/packages/core/dist/src/telemetry/conseca-logger.test.js +0 -89
  388. package/packages/core/dist/src/telemetry/conseca-logger.test.js.map +0 -1
  389. package/packages/core/dist/src/tools/mcpImportTool.d.ts +0 -31
  390. package/packages/core/dist/src/tools/mcpImportTool.js +0 -143
  391. package/packages/core/dist/src/tools/mcpImportTool.js.map +0 -1
  392. package/packages/core/dist/src/utils/contextMemory.d.ts +0 -67
  393. package/packages/core/dist/src/utils/contextMemory.js +0 -493
  394. package/packages/core/dist/src/utils/contextMemory.js.map +0 -1
  395. package/packages/core/dist/src/utils/contextMemory.test.d.ts +0 -6
  396. package/packages/core/dist/src/utils/contextMemory.test.js +0 -183
  397. package/packages/core/dist/src/utils/contextMemory.test.js.map +0 -1
  398. /package/{bundle/docs/core → packages/core/dist/docs/reference}/memport.md +0 -0
  399. /package/{bundle/docs/core → packages/core/dist/docs/reference}/tools-api.md +0 -0
  400. /package/{bundle/docs/cli → packages/core/dist/docs/resources}/uninstall.md +0 -0
@@ -1,388 +1,50 @@
1
- # Headless mode
1
+ # Headless mode reference
2
2
 
3
- Headless mode allows you to run Gemini CLI programmatically from command line
4
- scripts and automation tools without any interactive UI. This is ideal for
5
- scripting, automation, CI/CD pipelines, and building AI-powered tools.
3
+ Headless mode provides a programmatic interface to Gemini CLI, returning
4
+ structured text or JSON output without an interactive terminal UI.
6
5
 
7
- - [Headless Mode](#headless-mode)
8
- - [Overview](#overview)
9
- - [Basic Usage](#basic-usage)
10
- - [Direct Prompts](#direct-prompts)
11
- - [Stdin Input](#stdin-input)
12
- - [Combining with File Input](#combining-with-file-input)
13
- - [Output Formats](#output-formats)
14
- - [Text Output (Default)](#text-output-default)
15
- - [JSON Output](#json-output)
16
- - [Response Schema](#response-schema)
17
- - [Example Usage](#example-usage)
18
- - [Streaming JSON Output](#streaming-json-output)
19
- - [When to Use Streaming JSON](#when-to-use-streaming-json)
20
- - [Event Types](#event-types)
21
- - [Basic Usage](#basic-usage)
22
- - [Example Output](#example-output)
23
- - [Processing Stream Events](#processing-stream-events)
24
- - [Real-World Examples](#real-world-examples)
25
- - [File Redirection](#file-redirection)
26
- - [Configuration Options](#configuration-options)
27
- - [Examples](#examples)
28
- - [Code review](#code-review)
29
- - [Generate commit messages](#generate-commit-messages)
30
- - [API documentation](#api-documentation)
31
- - [Batch code analysis](#batch-code-analysis)
32
- - [Code review](#code-review-1)
33
- - [Log analysis](#log-analysis)
34
- - [Release notes generation](#release-notes-generation)
35
- - [Model and tool usage tracking](#model-and-tool-usage-tracking)
36
- - [Resources](#resources)
6
+ ## Technical reference
37
7
 
38
- ## Overview
8
+ Headless mode is triggered when the CLI is run in a non-TTY environment or when
9
+ providing a query as a positional argument without the interactive flag.
39
10
 
40
- The headless mode provides a headless interface to Gemini CLI that:
11
+ ### Output formats
41
12
 
42
- - Accepts prompts via command line arguments or stdin
43
- - Returns structured output (text or JSON)
44
- - Supports file redirection and piping
45
- - Enables automation and scripting workflows
46
- - Provides consistent exit codes for error handling
13
+ You can specify the output format using the `--output-format` flag.
47
14
 
48
- ## Basic usage
15
+ #### JSON output
49
16
 
50
- ### Direct prompts
17
+ Returns a single JSON object containing the response and usage statistics.
51
18
 
52
- Use the `--prompt` (or `-p`) flag to run in headless mode:
19
+ - **Schema:**
20
+ - `response`: (string) The model's final answer.
21
+ - `stats`: (object) Token usage and API latency metrics.
22
+ - `error`: (object, optional) Error details if the request failed.
53
23
 
54
- ```bash
55
- gemini --prompt "What is machine learning?"
56
- ```
24
+ #### Streaming JSON output
57
25
 
58
- ### Stdin input
26
+ Returns a stream of newline-delimited JSON (JSONL) events.
59
27
 
60
- Pipe input to Gemini CLI from your terminal:
28
+ - **Event types:**
29
+ - `init`: Session metadata (session ID, model).
30
+ - `message`: User and assistant message chunks.
31
+ - `tool_use`: Tool call requests with arguments.
32
+ - `tool_result`: Output from executed tools.
33
+ - `error`: Non-fatal warnings and system errors.
34
+ - `result`: Final outcome with aggregated statistics.
61
35
 
62
- ```bash
63
- echo "Explain this code" | gemini
64
- ```
36
+ ## Exit codes
65
37
 
66
- ### Combining with file input
38
+ The CLI returns standard exit codes to indicate the result of the headless
39
+ execution:
67
40
 
68
- Read from files and process with Gemini:
41
+ - `0`: Success.
42
+ - `1`: General error or API failure.
43
+ - `42`: Input error (invalid prompt or arguments).
44
+ - `53`: Turn limit exceeded.
69
45
 
70
- ```bash
71
- cat README.md | gemini --prompt "Summarize this documentation"
72
- ```
46
+ ## Next steps
73
47
 
74
- ## Output formats
75
-
76
- ### Text output (default)
77
-
78
- Standard human-readable output:
79
-
80
- ```bash
81
- gemini -p "What is the capital of France?"
82
- ```
83
-
84
- Response format:
85
-
86
- ```
87
- The capital of France is Paris.
88
- ```
89
-
90
- ### JSON output
91
-
92
- Returns structured data including response, statistics, and metadata. This
93
- format is ideal for programmatic processing and automation scripts.
94
-
95
- #### Response schema
96
-
97
- The JSON output follows this high-level structure:
98
-
99
- ```json
100
- {
101
- "response": "string", // The main AI-generated content answering your prompt
102
- "stats": {
103
- // Usage metrics and performance data
104
- "models": {
105
- // Per-model API and token usage statistics
106
- "[model-name]": {
107
- "api": {
108
- /* request counts, errors, latency */
109
- },
110
- "tokens": {
111
- /* prompt, response, cached, total counts */
112
- }
113
- }
114
- },
115
- "tools": {
116
- // Tool execution statistics
117
- "totalCalls": "number",
118
- "totalSuccess": "number",
119
- "totalFail": "number",
120
- "totalDurationMs": "number",
121
- "totalDecisions": {
122
- /* accept, reject, modify, auto_accept counts */
123
- },
124
- "byName": {
125
- /* per-tool detailed stats */
126
- }
127
- },
128
- "files": {
129
- // File modification statistics
130
- "totalLinesAdded": "number",
131
- "totalLinesRemoved": "number"
132
- }
133
- },
134
- "error": {
135
- // Present only when an error occurred
136
- "type": "string", // Error type (e.g., "ApiError", "AuthError")
137
- "message": "string", // Human-readable error description
138
- "code": "number" // Optional error code
139
- }
140
- }
141
- ```
142
-
143
- #### Example usage
144
-
145
- ```bash
146
- gemini -p "What is the capital of France?" --output-format json
147
- ```
148
-
149
- Response:
150
-
151
- ```json
152
- {
153
- "response": "The capital of France is Paris.",
154
- "stats": {
155
- "models": {
156
- "gemini-2.5-pro": {
157
- "api": {
158
- "totalRequests": 2,
159
- "totalErrors": 0,
160
- "totalLatencyMs": 5053
161
- },
162
- "tokens": {
163
- "prompt": 24939,
164
- "candidates": 20,
165
- "total": 25113,
166
- "cached": 21263,
167
- "thoughts": 154,
168
- "tool": 0
169
- }
170
- },
171
- "gemini-2.5-flash": {
172
- "api": {
173
- "totalRequests": 1,
174
- "totalErrors": 0,
175
- "totalLatencyMs": 1879
176
- },
177
- "tokens": {
178
- "prompt": 8965,
179
- "candidates": 10,
180
- "total": 9033,
181
- "cached": 0,
182
- "thoughts": 30,
183
- "tool": 28
184
- }
185
- }
186
- },
187
- "tools": {
188
- "totalCalls": 1,
189
- "totalSuccess": 1,
190
- "totalFail": 0,
191
- "totalDurationMs": 1881,
192
- "totalDecisions": {
193
- "accept": 0,
194
- "reject": 0,
195
- "modify": 0,
196
- "auto_accept": 1
197
- },
198
- "byName": {
199
- "google_web_search": {
200
- "count": 1,
201
- "success": 1,
202
- "fail": 0,
203
- "durationMs": 1881,
204
- "decisions": {
205
- "accept": 0,
206
- "reject": 0,
207
- "modify": 0,
208
- "auto_accept": 1
209
- }
210
- }
211
- }
212
- },
213
- "files": {
214
- "totalLinesAdded": 0,
215
- "totalLinesRemoved": 0
216
- }
217
- }
218
- }
219
- ```
220
-
221
- ### Streaming JSON output
222
-
223
- Returns real-time events as newline-delimited JSON (JSONL). Each significant
224
- action (initialization, messages, tool calls, results) emits immediately as it
225
- occurs. This format is ideal for monitoring long-running operations, building
226
- UIs with live progress, and creating automation pipelines that react to events.
227
-
228
- #### When to use streaming JSON
229
-
230
- Use `--output-format stream-json` when you need:
231
-
232
- - **Real-time progress monitoring** - See tool calls and responses as they
233
- happen
234
- - **Event-driven automation** - React to specific events (e.g., tool failures)
235
- - **Live UI updates** - Build interfaces showing AI agent activity in real-time
236
- - **Detailed execution logs** - Capture complete interaction history with
237
- timestamps
238
- - **Pipeline integration** - Stream events to logging/monitoring systems
239
-
240
- #### Event types
241
-
242
- The streaming format emits 6 event types:
243
-
244
- 1. **`init`** - Session starts (includes session_id, model)
245
- 2. **`message`** - User prompts and assistant responses
246
- 3. **`tool_use`** - Tool call requests with parameters
247
- 4. **`tool_result`** - Tool execution results (success/error)
248
- 5. **`error`** - Non-fatal errors and warnings
249
- 6. **`result`** - Final session outcome with aggregated stats
250
-
251
- #### Basic usage
252
-
253
- ```bash
254
- # Stream events to console
255
- gemini --output-format stream-json --prompt "What is 2+2?"
256
-
257
- # Save event stream to file
258
- gemini --output-format stream-json --prompt "Analyze this code" > events.jsonl
259
-
260
- # Parse with jq
261
- gemini --output-format stream-json --prompt "List files" | jq -r '.type'
262
- ```
263
-
264
- #### Example output
265
-
266
- Each line is a complete JSON event:
267
-
268
- ```jsonl
269
- {"type":"init","timestamp":"2025-10-10T12:00:00.000Z","session_id":"abc123","model":"gemini-2.0-flash-exp"}
270
- {"type":"message","role":"user","content":"List files in current directory","timestamp":"2025-10-10T12:00:01.000Z"}
271
- {"type":"tool_use","tool_name":"Bash","tool_id":"bash-123","parameters":{"command":"ls -la"},"timestamp":"2025-10-10T12:00:02.000Z"}
272
- {"type":"tool_result","tool_id":"bash-123","status":"success","output":"file1.txt\nfile2.txt","timestamp":"2025-10-10T12:00:03.000Z"}
273
- {"type":"message","role":"assistant","content":"Here are the files...","delta":true,"timestamp":"2025-10-10T12:00:04.000Z"}
274
- {"type":"result","status":"success","stats":{"total_tokens":250,"input_tokens":50,"output_tokens":200,"duration_ms":3000,"tool_calls":1},"timestamp":"2025-10-10T12:00:05.000Z"}
275
- ```
276
-
277
- ### File redirection
278
-
279
- Save output to files or pipe to other commands:
280
-
281
- ```bash
282
- # Save to file
283
- gemini -p "Explain Docker" > docker-explanation.txt
284
- gemini -p "Explain Docker" --output-format json > docker-explanation.json
285
-
286
- # Append to file
287
- gemini -p "Add more details" >> docker-explanation.txt
288
-
289
- # Pipe to other tools
290
- gemini -p "What is Kubernetes?" --output-format json | jq '.response'
291
- gemini -p "Explain microservices" | wc -w
292
- gemini -p "List programming languages" | grep -i "python"
293
- ```
294
-
295
- ## Configuration options
296
-
297
- Key command-line options for headless usage:
298
-
299
- | Option | Description | Example |
300
- | ----------------------- | ---------------------------------- | -------------------------------------------------- |
301
- | `--prompt`, `-p` | Run in headless mode | `gemini -p "query"` |
302
- | `--output-format` | Specify output format (text, json) | `gemini -p "query" --output-format json` |
303
- | `--model`, `-m` | Specify the Gemini model | `gemini -p "query" -m gemini-2.5-flash` |
304
- | `--debug`, `-d` | Enable debug mode | `gemini -p "query" --debug` |
305
- | `--include-directories` | Include additional directories | `gemini -p "query" --include-directories src,docs` |
306
- | `--yolo`, `-y` | Auto-approve all actions | `gemini -p "query" --yolo` |
307
- | `--approval-mode` | Set approval mode | `gemini -p "query" --approval-mode auto_edit` |
308
-
309
- For complete details on all available configuration options, settings files, and
310
- environment variables, see the
311
- [Configuration Guide](../get-started/configuration.md).
312
-
313
- ## Examples
314
-
315
- #### Code review
316
-
317
- ```bash
318
- cat src/auth.py | gemini -p "Review this authentication code for security issues" > security-review.txt
319
- ```
320
-
321
- #### Generate commit messages
322
-
323
- ```bash
324
- result=$(git diff --cached | gemini -p "Write a concise commit message for these changes" --output-format json)
325
- echo "$result" | jq -r '.response'
326
- ```
327
-
328
- #### API documentation
329
-
330
- ```bash
331
- result=$(cat api/routes.js | gemini -p "Generate OpenAPI spec for these routes" --output-format json)
332
- echo "$result" | jq -r '.response' > openapi.json
333
- ```
334
-
335
- #### Batch code analysis
336
-
337
- ```bash
338
- for file in src/*.py; do
339
- echo "Analyzing $file..."
340
- result=$(cat "$file" | gemini -p "Find potential bugs and suggest improvements" --output-format json)
341
- echo "$result" | jq -r '.response' > "reports/$(basename "$file").analysis"
342
- echo "Completed analysis for $(basename "$file")" >> reports/progress.log
343
- done
344
- ```
345
-
346
- #### Code review
347
-
348
- ```bash
349
- result=$(git diff origin/main...HEAD | gemini -p "Review these changes for bugs, security issues, and code quality" --output-format json)
350
- echo "$result" | jq -r '.response' > pr-review.json
351
- ```
352
-
353
- #### Log analysis
354
-
355
- ```bash
356
- grep "ERROR" /var/log/app.log | tail -20 | gemini -p "Analyze these errors and suggest root cause and fixes" > error-analysis.txt
357
- ```
358
-
359
- #### Release notes generation
360
-
361
- ```bash
362
- result=$(git log --oneline v1.0.0..HEAD | gemini -p "Generate release notes from these commits" --output-format json)
363
- response=$(echo "$result" | jq -r '.response')
364
- echo "$response"
365
- echo "$response" >> CHANGELOG.md
366
- ```
367
-
368
- #### Model and tool usage tracking
369
-
370
- ```bash
371
- result=$(gemini -p "Explain this database schema" --include-directories db --output-format json)
372
- total_tokens=$(echo "$result" | jq -r '.stats.models // {} | to_entries | map(.value.tokens.total) | add // 0')
373
- models_used=$(echo "$result" | jq -r '.stats.models // {} | keys | join(", ") | if . == "" then "none" else . end')
374
- tool_calls=$(echo "$result" | jq -r '.stats.tools.totalCalls // 0')
375
- tools_used=$(echo "$result" | jq -r '.stats.tools.byName // {} | keys | join(", ") | if . == "" then "none" else . end')
376
- echo "$(date): $total_tokens tokens, $tool_calls tool calls ($tools_used) used with models: $models_used" >> usage.log
377
- echo "$result" | jq -r '.response' > schema-docs.md
378
- echo "Recent usage trends:"
379
- tail -5 usage.log
380
- ```
381
-
382
- ## Resources
383
-
384
- - [CLI Configuration](../get-started/configuration.md) - Complete configuration
385
- guide
386
- - [Authentication](../get-started/authentication.md) - Setup authentication
387
- - [Commands](./commands.md) - Interactive commands reference
388
- - [Tutorials](./tutorials.md) - Step-by-step automation guides
48
+ - Follow the [Automation tutorial](./tutorials/automation.md) for practical
49
+ scripting examples.
50
+ - See the [CLI reference](./cli-reference.md) for all available flags.
@@ -39,7 +39,7 @@ To enable Gemini 3 Pro and Gemini 3 Flash (if available), enable
39
39
 
40
40
  You can also use the `--model` flag to specify a particular Gemini model on
41
41
  startup. For more details, refer to the
42
- [configuration documentation](../get-started/configuration.md).
42
+ [configuration documentation](../reference/configuration.md).
43
43
 
44
44
  Changes to these settings will be applied to all subsequent interactions with
45
45
  Gemini CLI.
@@ -0,0 +1,245 @@
1
+ # Plan Mode (experimental)
2
+
3
+ Plan Mode is a read-only environment for architecting robust solutions before
4
+ implementation. It allows you to:
5
+
6
+ - **Research:** Explore the project in a read-only state to prevent accidental
7
+ changes.
8
+ - **Design:** Understand problems, evaluate trade-offs, and choose a solution.
9
+ - **Plan:** Align on an execution strategy before any code is modified.
10
+
11
+ > **Note:** This is a preview feature currently under active development. Your
12
+ > feedback is invaluable as we refine this feature. If you have ideas,
13
+ > suggestions, or encounter issues:
14
+ >
15
+ > - [Open an issue](https://github.com/google-gemini/gemini-cli/issues) on
16
+ > GitHub.
17
+ > - Use the **/bug** command within Gemini CLI to file an issue.
18
+
19
+ - [Enabling Plan Mode](#enabling-plan-mode)
20
+ - [How to use Plan Mode](#how-to-use-plan-mode)
21
+ - [Entering Plan Mode](#entering-plan-mode)
22
+ - [Planning Workflow](#planning-workflow)
23
+ - [Exiting Plan Mode](#exiting-plan-mode)
24
+ - [Tool Restrictions](#tool-restrictions)
25
+ - [Customizing Planning with Skills](#customizing-planning-with-skills)
26
+ - [Customizing Policies](#customizing-policies)
27
+ - [Example: Allow git commands in Plan Mode](#example-allow-git-commands-in-plan-mode)
28
+ - [Example: Enable research subagents in Plan Mode](#example-enable-research-subagents-in-plan-mode)
29
+ - [Custom Plan Directory and Policies](#custom-plan-directory-and-policies)
30
+
31
+ ## Enabling Plan Mode
32
+
33
+ To use Plan Mode, enable it via **/settings** (search for **Plan**) or add the
34
+ following to your `settings.json`:
35
+
36
+ ```json
37
+ {
38
+ "experimental": {
39
+ "plan": true
40
+ }
41
+ }
42
+ ```
43
+
44
+ ## How to use Plan Mode
45
+
46
+ ### Entering Plan Mode
47
+
48
+ You can configure Gemini CLI to start in Plan Mode by default or enter it
49
+ manually during a session.
50
+
51
+ - **Configuration:** Configure Gemini CLI to start directly in Plan Mode by
52
+ default:
53
+ 1. Type `/settings` in the CLI.
54
+ 2. Search for **Default Approval Mode**.
55
+ 3. Set the value to **Plan**.
56
+
57
+ Alternatively, use the `gemini --approval-mode=plan` CLI flag or manually
58
+ update:
59
+
60
+ ```json
61
+ {
62
+ "general": {
63
+ "defaultApprovalMode": "plan"
64
+ }
65
+ }
66
+ ```
67
+
68
+ - **Keyboard Shortcut:** Press `Shift+Tab` to cycle through approval modes
69
+ (`Default` -> `Auto-Edit` -> `Plan`).
70
+
71
+ > **Note:** Plan Mode is automatically removed from the rotation when Gemini
72
+ > CLI is actively processing or showing confirmation dialogs.
73
+
74
+ - **Command:** Type `/plan` in the input box.
75
+
76
+ - **Natural Language:** Ask Gemini CLI to "start a plan for...". Gemini CLI then
77
+ calls the [`enter_plan_mode`] tool to switch modes.
78
+ > **Note:** This tool is not available when Gemini CLI is in [YOLO mode].
79
+
80
+ ### Planning Workflow
81
+
82
+ 1. **Explore & Analyze:** Analyze requirements and use read-only tools to map
83
+ the codebase and validate assumptions. For complex tasks, identify at least
84
+ two viable implementation approaches.
85
+ 2. **Consult:** Present a summary of the identified approaches via [`ask_user`]
86
+ to obtain a selection. For simple or canonical tasks, this step may be
87
+ skipped.
88
+ 3. **Draft:** Once an approach is selected, write a detailed implementation
89
+ plan to the plans directory.
90
+ 4. **Review & Approval:** Use the [`exit_plan_mode`] tool to present the plan
91
+ and formally request approval.
92
+ - **Approve:** Exit Plan Mode and start implementation.
93
+ - **Iterate:** Provide feedback to refine the plan.
94
+
95
+ For more complex or specialized planning tasks, you can
96
+ [customize the planning workflow with skills](#customizing-planning-with-skills).
97
+
98
+ ### Exiting Plan Mode
99
+
100
+ To exit Plan Mode, you can:
101
+
102
+ - **Keyboard Shortcut:** Press `Shift+Tab` to cycle to the desired mode.
103
+
104
+ - **Tool:** Gemini CLI calls the [`exit_plan_mode`] tool to present the
105
+ finalized plan for your approval.
106
+
107
+ ## Tool Restrictions
108
+
109
+ Plan Mode enforces strict safety policies to prevent accidental changes.
110
+
111
+ These are the only allowed tools:
112
+
113
+ - **FileSystem (Read):** [`read_file`], [`list_directory`], [`glob`]
114
+ - **Search:** [`grep_search`], [`google_web_search`]
115
+ - **Interaction:** [`ask_user`]
116
+ - **MCP Tools (Read):** Read-only [MCP tools] (e.g., `github_read_issue`,
117
+ `postgres_read_schema`) are allowed.
118
+ - **Planning (Write):** [`write_file`] and [`replace`] only allowed for `.md`
119
+ files in the `~/.gemini/tmp/<project>/<session-id>/plans/` directory or your
120
+ [custom plans directory](#custom-plan-directory-and-policies).
121
+ - **Skills:** [`activate_skill`] (allows loading specialized instructions and
122
+ resources in a read-only manner)
123
+
124
+ ### Customizing Planning with Skills
125
+
126
+ You can use [Agent Skills](./skills.md) to customize how Gemini CLI approaches
127
+ planning for specific types of tasks. When a skill is activated during Plan
128
+ Mode, its specialized instructions and procedural workflows will guide the
129
+ research, design and planning phases.
130
+
131
+ For example:
132
+
133
+ - A **"Database Migration"** skill could ensure the plan includes data safety
134
+ checks and rollback strategies.
135
+ - A **"Security Audit"** skill could prompt Gemini CLI to look for specific
136
+ vulnerabilities during codebase exploration.
137
+ - A **"Frontend Design"** skill could guide Gemini CLI to use specific UI
138
+ components and accessibility standards in its proposal.
139
+
140
+ To use a skill in Plan Mode, you can explicitly ask Gemini CLI to "use the
141
+ `<skill-name>` skill to plan..." or Gemini CLI may autonomously activate it
142
+ based on the task description.
143
+
144
+ ### Customizing Policies
145
+
146
+ Plan Mode is designed to be read-only by default to ensure safety during the
147
+ research phase. However, you may occasionally need to allow specific tools to
148
+ assist in your planning.
149
+
150
+ Because user policies (Tier 2) have a higher base priority than built-in
151
+ policies (Tier 1), you can override Plan Mode's default restrictions by creating
152
+ a rule in your `~/.gemini/policies/` directory.
153
+
154
+ #### Example: Allow git commands in Plan Mode
155
+
156
+ This rule allows you to check the repository status and see changes while in
157
+ Plan Mode.
158
+
159
+ `~/.gemini/policies/git-research.toml`
160
+
161
+ ```toml
162
+ [[rule]]
163
+ toolName = "run_shell_command"
164
+ commandPrefix = ["git status", "git diff"]
165
+ decision = "allow"
166
+ priority = 100
167
+ modes = ["plan"]
168
+ ```
169
+
170
+ #### Example: Enable research subagents in Plan Mode
171
+
172
+ You can enable experimental research [subagents] like `codebase_investigator` to
173
+ help gather architecture details during the planning phase.
174
+
175
+ `~/.gemini/policies/research-subagents.toml`
176
+
177
+ ```toml
178
+ [[rule]]
179
+ toolName = "codebase_investigator"
180
+ decision = "allow"
181
+ priority = 100
182
+ modes = ["plan"]
183
+ ```
184
+
185
+ Tell Gemini CLI it can use these tools in your prompt, for example: _"You can
186
+ check ongoing changes in git."_
187
+
188
+ For more information on how the policy engine works, see the [policy engine]
189
+ docs.
190
+
191
+ ### Custom Plan Directory and Policies
192
+
193
+ By default, planning artifacts are stored in a managed temporary directory
194
+ outside your project: `~/.gemini/tmp/<project>/<session-id>/plans/`.
195
+
196
+ You can configure a custom directory for plans in your `settings.json`. For
197
+ example, to store plans in a `.gemini/plans` directory within your project:
198
+
199
+ ```json
200
+ {
201
+ "general": {
202
+ "plan": {
203
+ "directory": ".gemini/plans"
204
+ }
205
+ }
206
+ }
207
+ ```
208
+
209
+ To maintain the safety of Plan Mode, user-configured paths for the plans
210
+ directory are restricted to the project root. This ensures that custom planning
211
+ locations defined within a project's workspace cannot be used to escape and
212
+ overwrite sensitive files elsewhere. Any user-configured directory must reside
213
+ within the project boundary.
214
+
215
+ Using a custom directory requires updating your [policy engine] configurations
216
+ to allow `write_file` and `replace` in that specific location. For example, to
217
+ allow writing to the `.gemini/plans` directory within your project, create a
218
+ policy file at `~/.gemini/policies/plan-custom-directory.toml`:
219
+
220
+ ```toml
221
+ [[rule]]
222
+ toolName = ["write_file", "replace"]
223
+ decision = "allow"
224
+ priority = 100
225
+ modes = ["plan"]
226
+ # Adjust the pattern to match your custom directory.
227
+ # This example matches any .md file in a .gemini/plans directory within the project.
228
+ argsPattern = "\"file_path\":\"[^\"]+[\\\\/]+\\.gemini[\\\\/]+plans[\\\\/]+[\\w-]+\\.md\""
229
+ ```
230
+
231
+ [`list_directory`]: /docs/tools/file-system.md#1-list_directory-readfolder
232
+ [`read_file`]: /docs/tools/file-system.md#2-read_file-readfile
233
+ [`grep_search`]: /docs/tools/file-system.md#5-grep_search-searchtext
234
+ [`write_file`]: /docs/tools/file-system.md#3-write_file-writefile
235
+ [`glob`]: /docs/tools/file-system.md#4-glob-findfiles
236
+ [`google_web_search`]: /docs/tools/web-search.md
237
+ [`replace`]: /docs/tools/file-system.md#6-replace-edit
238
+ [MCP tools]: /docs/tools/mcp-server.md
239
+ [`activate_skill`]: /docs/cli/skills.md
240
+ [subagents]: /docs/core/subagents.md
241
+ [policy engine]: /docs/reference/policy-engine.md
242
+ [`enter_plan_mode`]: /docs/tools/planning.md#1-enter_plan_mode-enterplanmode
243
+ [`exit_plan_mode`]: /docs/tools/planning.md#2-exit_plan_mode-exitplanmode
244
+ [`ask_user`]: /docs/tools/ask-user.md
245
+ [YOLO mode]: /docs/reference/configuration.md#command-line-arguments