@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,134 +1,113 @@
1
- # Extensions reference
1
+ # Extension reference
2
2
 
3
3
  This guide covers the `gemini extensions` commands and the structure of the
4
4
  `gemini-extension.json` configuration file.
5
5
 
6
- ## Extension management
6
+ ## Manage extensions
7
7
 
8
- We offer a suite of extension management tools using `gemini extensions`
9
- commands.
8
+ Use the `gemini extensions` command group to manage your extensions from the
9
+ terminal.
10
10
 
11
- Note that these commands (e.g. `gemini extensions install`) are not supported
12
- from within the CLI's **interactive mode**, although you can list installed
13
- extensions using the `/extensions list` slash command.
11
+ Note that commands like `gemini extensions install` are not supported within the
12
+ CLI's interactive mode. However, you can use the `/extensions list` command to
13
+ view installed extensions. All management operations, including updates to slash
14
+ commands, take effect only after you restart the CLI session.
14
15
 
15
- Note that all of these management operations (including updates to slash
16
- commands) will only be reflected in active CLI sessions on **restart**.
16
+ ### Install an extension
17
17
 
18
- ### Installing an extension
18
+ Install an extension by providing its GitHub repository URL or a local file
19
+ path.
19
20
 
20
- You can install an extension using `gemini extensions install` with either a
21
- GitHub URL or a local path.
21
+ Gemini CLI creates a copy of the extension during installation. You must run
22
+ `gemini extensions update` to pull changes from the source. To install from
23
+ GitHub, you must have `git` installed on your machine.
22
24
 
23
- Note that we create a copy of the installed extension, so you will need to run
24
- `gemini extensions update` to pull in changes from both locally-defined
25
- extensions and those on GitHub.
26
-
27
- NOTE: If you are installing an extension from GitHub, you'll need to have `git`
28
- installed on your machine. See
29
- [git installation instructions](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git)
30
- for help.
31
-
32
- ```
25
+ ```bash
33
26
  gemini extensions install <source> [--ref <ref>] [--auto-update] [--pre-release] [--consent]
34
27
  ```
35
28
 
36
- - `<source>`: The github URL or local path of the extension to install.
37
- - `--ref`: The git ref to install from.
38
- - `--auto-update`: Enable auto-update for this extension.
39
- - `--pre-release`: Enable pre-release versions for this extension.
40
- - `--consent`: Acknowledge the security risks of installing an extension and
41
- skip the confirmation prompt.
29
+ - `<source>`: The GitHub URL or local path of the extension.
30
+ - `--ref`: The git ref (branch, tag, or commit) to install.
31
+ - `--auto-update`: Enable automatic updates for this extension.
32
+ - `--pre-release`: Enable installation of pre-release versions.
33
+ - `--consent`: Acknowledge security risks and skip the confirmation prompt.
42
34
 
43
- ### Uninstalling an extension
35
+ ### Uninstall an extension
44
36
 
45
- To uninstall one or more extensions, run
46
- `gemini extensions uninstall <name...>`:
37
+ To uninstall one or more extensions, use the `uninstall` command:
47
38
 
48
- ```
49
- gemini extensions uninstall gemini-cli-security gemini-cli-another-extension
39
+ ```bash
40
+ gemini extensions uninstall <name...>
50
41
  ```
51
42
 
52
- ### Disabling an extension
43
+ ### Disable an extension
53
44
 
54
- Extensions are, by default, enabled across all workspaces. You can disable an
55
- extension entirely or for specific workspace.
45
+ Extensions are enabled globally by default. You can disable an extension
46
+ entirely or for a specific workspace.
56
47
 
57
- ```
48
+ ```bash
58
49
  gemini extensions disable <name> [--scope <scope>]
59
50
  ```
60
51
 
61
52
  - `<name>`: The name of the extension to disable.
62
53
  - `--scope`: The scope to disable the extension in (`user` or `workspace`).
63
54
 
64
- ### Enabling an extension
55
+ ### Enable an extension
65
56
 
66
- You can enable extensions using `gemini extensions enable <name>`. You can also
67
- enable an extension for a specific workspace using
68
- `gemini extensions enable <name> --scope=workspace` from within that workspace.
57
+ Re-enable a disabled extension using the `enable` command:
69
58
 
70
- ```
59
+ ```bash
71
60
  gemini extensions enable <name> [--scope <scope>]
72
61
  ```
73
62
 
74
63
  - `<name>`: The name of the extension to enable.
75
64
  - `--scope`: The scope to enable the extension in (`user` or `workspace`).
76
65
 
77
- ### Updating an extension
78
-
79
- For extensions installed from a local path or a git repository, you can
80
- explicitly update to the latest version (as reflected in the
81
- `gemini-extension.json` `version` field) with `gemini extensions update <name>`.
66
+ ### Update an extension
82
67
 
83
- You can update all extensions with:
68
+ Update an extension to the version specified in its `gemini-extension.json`
69
+ file.
84
70
 
71
+ ```bash
72
+ gemini extensions update <name>
85
73
  ```
74
+
75
+ To update all installed extensions at once:
76
+
77
+ ```bash
86
78
  gemini extensions update --all
87
79
  ```
88
80
 
89
- ### Create a boilerplate extension
90
-
91
- We offer several example extensions `context`, `custom-commands`,
92
- `exclude-tools` and `mcp-server`. You can view these examples
93
- [here](https://github.com/google-gemini/gemini-cli/tree/main/packages/cli/src/commands/extensions/examples).
81
+ ### Create an extension from a template
94
82
 
95
- To copy one of these examples into a development directory using the type of
96
- your choosing, run:
83
+ Create a new extension directory using a built-in template.
97
84
 
98
- ```
85
+ ```bash
99
86
  gemini extensions new <path> [template]
100
87
  ```
101
88
 
102
- - `<path>`: The path to create the extension in.
103
- - `[template]`: The boilerplate template to use.
89
+ - `<path>`: The directory to create.
90
+ - `[template]`: The template to use (e.g., `mcp-server`, `context`,
91
+ `custom-commands`).
104
92
 
105
93
  ### Link a local extension
106
94
 
107
- The `gemini extensions link` command will create a symbolic link from the
108
- extension installation directory to the development path.
109
-
110
- This is useful so you don't have to run `gemini extensions update` every time
111
- you make changes you'd like to test.
95
+ Create a symbolic link between your development directory and the Gemini CLI
96
+ extensions directory. This lets you test changes immediately without
97
+ reinstalling.
112
98
 
113
- ```
99
+ ```bash
114
100
  gemini extensions link <path>
115
101
  ```
116
102
 
117
- - `<path>`: The path of the extension to link.
118
-
119
103
  ## Extension format
120
104
 
121
- On startup, Gemini CLI looks for extensions in `<home>/.gemini/extensions`
122
-
123
- Extensions exist as a directory that contains a `gemini-extension.json` file.
124
- For example:
125
-
126
- `<home>/.gemini/extensions/my-extension/gemini-extension.json`
105
+ Gemini CLI loads extensions from `<home>/.gemini/extensions`. Each extension
106
+ must have a `gemini-extension.json` file in its root directory.
127
107
 
128
108
  ### `gemini-extension.json`
129
109
 
130
- The `gemini-extension.json` file contains the configuration for the extension.
131
- The file has the following structure:
110
+ The manifest file defines the extension's behavior and configuration.
132
111
 
133
112
  ```json
134
113
  {
@@ -145,56 +124,27 @@ The file has the following structure:
145
124
  }
146
125
  ```
147
126
 
148
- - `name`: The name of the extension. This is used to uniquely identify the
149
- extension and for conflict resolution when extension commands have the same
150
- name as user or project commands. The name should be lowercase or numbers and
151
- use dashes instead of underscores or spaces. This is how users will refer to
152
- your extension in the CLI. Note that we expect this name to match the
153
- extension directory name.
154
- - `version`: The version of the extension.
155
- - `description`: A short description of the extension. This will be displayed on
156
- [geminicli.com/extensions](https://geminicli.com/extensions).
157
- - `mcpServers`: A map of MCP servers to settings. The key is the name of the
158
- server, and the value is the server configuration. These servers will be
159
- loaded on startup just like MCP servers settingsd in a
160
- [`settings.json` file](../get-started/configuration.md). If both an extension
161
- and a `settings.json` file settings an MCP server with the same name, the
162
- server defined in the `settings.json` file takes precedence.
163
- - Note that all MCP server configuration options are supported except for
164
- `trust`.
165
- - `contextFileName`: The name of the file that contains the context for the
166
- extension. This will be used to load the context from the extension directory.
167
- If this property is not used but a `GEMINI.md` file is present in your
168
- extension directory, then that file will be loaded.
169
- - `excludeTools`: An array of tool names to exclude from the model. You can also
170
- specify command-specific restrictions for tools that support it, like the
171
- `run_shell_command` tool. For example,
172
- `"excludeTools": ["run_shell_command(rm -rf)"]` will block the `rm -rf`
173
- command. Note that this differs from the MCP server `excludeTools`
174
- functionality, which can be listed in the MCP server config.
175
-
176
- When Gemini CLI starts, it loads all the extensions and merges their
177
- configurations. If there are any conflicts, the workspace configuration takes
178
- precedence.
179
-
180
- ### Settings
181
-
182
- _Note: This is an experimental feature. We do not yet recommend extension
183
- authors introduce settings as part of their core flows._
184
-
185
- Extensions can define settings that the user will be prompted to provide upon
186
- installation. This is useful for things like API keys, URLs, or other
187
- configuration that the extension needs to function.
188
-
189
- To define settings, add a `settings` array to your `gemini-extension.json` file.
190
- Each object in the array should have the following properties:
191
-
192
- - `name`: A user-friendly name for the setting.
193
- - `description`: A description of the setting and what it's used for.
194
- - `envVar`: The name of the environment variable that the setting will be stored
195
- as.
196
- - `sensitive`: Optional boolean. If true, obfuscates the input the user provides
197
- and stores the secret in keychain storage. **Example**
127
+ - `name`: A unique identifier for the extension. Use lowercase letters, numbers,
128
+ and dashes. This name must match the extension's directory name.
129
+ - `version`: The current version of the extension.
130
+ - `description`: A short summary shown in the extension gallery.
131
+ - <a id="mcp-servers"></a>`mcpServers`: A map of Model Context Protocol (MCP)
132
+ servers. Extension servers follow the same format as standard
133
+ [CLI configuration](../reference/configuration.md).
134
+ - `contextFileName`: The name of the context file (defaults to `GEMINI.md`). Can
135
+ also be an array of strings to load multiple context files.
136
+ - `excludeTools`: An array of tools to block from the model. You can restrict
137
+ specific arguments, such as `run_shell_command(rm -rf)`.
138
+ - `themes`: An optional list of themes provided by the extension. See
139
+ [Themes](../cli/themes.md) for more information.
140
+
141
+ ### Extension settings
142
+
143
+ Extensions can define settings that users provide during installation, such as
144
+ API keys or URLs. These values are stored in a `.env` file within the extension
145
+ directory.
146
+
147
+ To define settings, add a `settings` array to your manifest:
198
148
 
199
149
  ```json
200
150
  {
@@ -204,133 +154,112 @@ Each object in the array should have the following properties:
204
154
  {
205
155
  "name": "API Key",
206
156
  "description": "Your API key for the service.",
207
- "envVar": "MY_API_KEY"
157
+ "envVar": "MY_API_KEY",
158
+ "sensitive": true
208
159
  }
209
160
  ]
210
161
  }
211
162
  ```
212
163
 
213
- When a user installs this extension, they will be prompted to enter their API
214
- key. The value will be saved to a `.env` file in the extension's directory
215
- (e.g., `<home>/.gemini/extensions/my-api-extension/.env`).
164
+ - `name`: The setting's display name.
165
+ - `description`: A clear explanation of the setting.
166
+ - `envVar`: The environment variable name where the value is stored.
167
+ - `sensitive`: If `true`, the value is stored in the system keychain and
168
+ obfuscated in the UI.
216
169
 
217
- You can view a list of an extension's settings by running:
170
+ To update an extension's settings:
218
171
 
219
- ```
220
- gemini extensions list
172
+ ```bash
173
+ gemini extensions config <name> [setting] [--scope <scope>]
221
174
  ```
222
175
 
223
- and you can update a given setting using:
224
-
225
- ```
226
- gemini extensions config <extension name> [setting name] [--scope <scope>]
227
- ```
228
-
229
- - `--scope`: The scope to set the setting in (`user` or `workspace`). This is
230
- optional and will default to `user`.
231
-
232
176
  ### Custom commands
233
177
 
234
- Extensions can provide [custom commands](../cli/custom-commands.md) by placing
235
- TOML files in a `commands/` subdirectory within the extension directory. These
236
- commands follow the same format as user and project custom commands and use
237
- standard naming conventions.
238
-
239
- **Example**
240
-
241
- An extension named `gcp` with the following structure:
178
+ Provide [custom commands](../cli/custom-commands.md) by placing TOML files in a
179
+ `commands/` subdirectory. Gemini CLI uses the directory structure to determine
180
+ the command name.
242
181
 
243
- ```
244
- .gemini/extensions/gcp/
245
- ├── gemini-extension.json
246
- └── commands/
247
- ├── deploy.toml
248
- └── gcs/
249
- └── sync.toml
250
- ```
182
+ For an extension named `gcp`:
251
183
 
252
- Would provide these commands:
253
-
254
- - `/deploy` - Shows as `[gcp] Custom command from deploy.toml` in help
255
- - `/gcs:sync` - Shows as `[gcp] Custom command from sync.toml` in help
184
+ - `commands/deploy.toml` becomes `/deploy`
185
+ - `commands/gcs/sync.toml` becomes `/gcs:sync` (namespaced with a colon)
256
186
 
257
187
  ### Hooks
258
188
 
259
- Extensions can provide [hooks](../hooks/index.md) to intercept and customize
260
- Gemini CLI behavior at specific lifecycle events. Hooks provided by an extension
261
- must be defined in a `hooks/hooks.json` file within the extension directory.
262
-
263
- > [!IMPORTANT] Hooks are not defined directly in `gemini-extension.json`. The
264
- > CLI specifically looks for the `hooks/hooks.json` file.
265
-
266
- ### Agent Skills
189
+ Intercept and customize CLI behavior using [hooks](../hooks/index.md). Define
190
+ hooks in a `hooks/hooks.json` file within your extension directory. Note that
191
+ hooks are not defined in the `gemini-extension.json` manifest.
267
192
 
268
- Extensions can bundle [Agent Skills](../cli/skills.md) to provide specialized
269
- workflows. Skills must be placed in a `skills/` directory within the extension.
270
-
271
- **Example**
272
-
273
- An extension with the following structure:
274
-
275
- ```
276
- .gemini/extensions/my-extension/
277
- ├── gemini-extension.json
278
- └── skills/
279
- └── security-audit/
280
- └── SKILL.md
281
- ```
193
+ ### Agent skills
282
194
 
283
- Will expose a `security-audit` skill that the model can activate.
195
+ Bundle [agent skills](../cli/skills.md) to provide specialized workflows. Place
196
+ skill definitions in a `skills/` directory. For example,
197
+ `skills/security-audit/SKILL.md` exposes a `security-audit` skill.
284
198
 
285
199
  ### Sub-agents
286
200
 
287
- > **Note: Sub-agents are currently an experimental feature.**
201
+ > **Note:** Sub-agents are a preview feature currently under active development.
288
202
 
289
- Extensions can provide [sub-agents](../core/subagents.md) that users can
290
- delegate tasks to.
203
+ Provide [sub-agents](../core/subagents.md) that users can delegate tasks to. Add
204
+ agent definition files (`.md`) to an `agents/` directory in your extension root.
291
205
 
292
- To bundle sub-agents with your extension, create an `agents/` directory in your
293
- extension's root folder and add your agent definition files (`.md`) there.
206
+ ### Themes
207
+
208
+ Extensions can provide custom themes to personalize the CLI UI. Themes are
209
+ defined in the `themes` array in `gemini-extension.json`.
294
210
 
295
211
  **Example**
296
212
 
297
- ```
298
- .gemini/extensions/my-extension/
299
- ├── gemini-extension.json
300
- └── agents/
301
- ├── security-auditor.md
302
- └── database-expert.md
213
+ ```json
214
+ {
215
+ "name": "my-green-extension",
216
+ "version": "1.0.0",
217
+ "themes": [
218
+ {
219
+ "name": "shades-of-green",
220
+ "type": "custom",
221
+ "background": {
222
+ "primary": "#1a362a"
223
+ },
224
+ "text": {
225
+ "primary": "#a6e3a1",
226
+ "secondary": "#6e8e7a",
227
+ "link": "#89e689"
228
+ },
229
+ "status": {
230
+ "success": "#76c076",
231
+ "warning": "#d9e689",
232
+ "error": "#b34e4e"
233
+ },
234
+ "border": {
235
+ "default": "#4a6c5a"
236
+ },
237
+ "ui": {
238
+ "comment": "#6e8e7a"
239
+ }
240
+ }
241
+ ]
242
+ }
303
243
  ```
304
244
 
305
- Gemini CLI will automatically discover and load these agents when the extension
306
- is installed and enabled.
245
+ Custom themes provided by extensions can be selected using the `/theme` command
246
+ or by setting the `ui.theme` property in your `settings.json` file. Note that
247
+ when referring to a theme from an extension, the extension name is appended to
248
+ the theme name in parentheses, e.g., `shades-of-green (my-green-extension)`.
307
249
 
308
250
  ### Conflict resolution
309
251
 
310
- Extension commands have the lowest precedence. When a conflict occurs with user
311
- or project commands:
312
-
313
- 1. **No conflict**: Extension command uses its natural name (e.g., `/deploy`)
314
- 2. **With conflict**: Extension command is renamed with the extension prefix
315
- (e.g., `/gcp.deploy`)
316
-
317
- For example, if both a user and the `gcp` extension define a `deploy` command:
318
-
319
- - `/deploy` - Executes the user's deploy command
320
- - `/gcp.deploy` - Executes the extension's deploy command (marked with `[gcp]`
321
- tag)
252
+ Extension commands have the lowest precedence. If an extension command name
253
+ conflicts with a user or project command, the extension command is prefixed with
254
+ the extension name (e.g., `/gcp.deploy`) using a dot separator.
322
255
 
323
256
  ## Variables
324
257
 
325
- Gemini CLI extensions allow variable substitution in both
326
- `gemini-extension.json` and `hooks/hooks.json`. This can be useful if e.g., you
327
- need the current directory to run an MCP server using an argument like
328
- `"args": ["${extensionPath}${/}dist${/}server.js"]`.
329
-
330
- **Supported variables:**
258
+ Gemini CLI supports variable substitution in `gemini-extension.json` and
259
+ `hooks/hooks.json`.
331
260
 
332
- | variable | description |
333
- | -------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- |
334
- | `${extensionPath}` | The fully-qualified path of the extension in the user's filesystem e.g., '/Users/username/.gemini/extensions/example-extension'. This will not unwrap symlinks. |
335
- | `${workspacePath}` | The fully-qualified path of the current workspace. |
336
- | `${/} or ${pathSeparator}` | The path separator (differs per OS). |
261
+ | Variable | Description |
262
+ | :----------------- | :---------------------------------------------- |
263
+ | `${extensionPath}` | The absolute path to the extension's directory. |
264
+ | `${workspacePath}` | The absolute path to the current workspace. |
265
+ | `${/}` | The platform-specific path separator. |