@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.
- package/README.md +42 -193
- package/bundle/docs/cli/settings.md +8 -9
- package/bundle/docs/extensions/reference.md +14 -38
- package/bundle/docs/hooks/reference.md +0 -8
- package/bundle/docs/reference/configuration.md +0 -8
- package/bundle/gemini.js +10730 -11704
- package/bundle/node_modules/@google/gemini-cli-devtools/package.json +1 -1
- package/bundle/package.json +2 -1
- package/package.json +67 -5
- package/packages/cli/dist/index.js +0 -0
- package/packages/cli/dist/package.json +2 -2
- package/packages/cli/dist/src/commands/extensions/examples/custom-commands/gemini-extension.json +2 -2
- package/packages/cli/dist/src/commands/extensions/examples/exclude-tools/gemini-extension.json +3 -3
- package/packages/cli/dist/src/commands/extensions/examples/hooks/gemini-extension.json +2 -2
- package/packages/cli/dist/src/commands/extensions/examples/hooks/hooks/hooks.json +11 -11
- package/packages/cli/dist/src/commands/extensions/examples/mcp-server/example.js +1 -1
- package/packages/cli/dist/src/commands/extensions/examples/mcp-server/gemini-extension.json +8 -8
- package/packages/cli/dist/src/commands/extensions/examples/mcp-server/package.json +9 -9
- package/packages/cli/dist/src/commands/extensions/examples/skills/gemini-extension.json +2 -2
- package/packages/cli/dist/src/commands/extensions/examples/themes-example/README.md +8 -5
- package/packages/cli/dist/src/commands/extensions/examples/themes-example/gemini-extension.json +27 -27
- package/packages/cli/dist/src/config/config.js +4 -65
- package/packages/cli/dist/src/config/config.js.map +1 -1
- package/packages/cli/dist/src/config/settingsSchema.d.ts +1 -235
- package/packages/cli/dist/src/config/settingsSchema.js +1 -235
- package/packages/cli/dist/src/config/settingsSchema.js.map +1 -1
- package/packages/cli/dist/src/gemini.js +0 -2
- package/packages/cli/dist/src/gemini.js.map +1 -1
- package/packages/cli/dist/src/generated/git-commit.d.ts +2 -2
- package/packages/cli/dist/src/generated/git-commit.js +2 -2
- package/packages/cli/dist/src/patches/empty-module.d.ts +2 -0
- package/packages/cli/dist/src/patches/empty-module.js +2 -0
- package/packages/cli/dist/src/patches/empty-module.js.map +1 -0
- package/packages/cli/dist/src/services/McpPromptLoader.js +3 -6
- package/packages/cli/dist/src/services/McpPromptLoader.js.map +1 -1
- package/packages/cli/dist/src/ui/components/AgentConfigDialog.js +19 -5
- package/packages/cli/dist/src/ui/components/AgentConfigDialog.js.map +1 -1
- package/packages/cli/dist/src/ui/components/AgentConfigDialog.test.js +41 -19
- package/packages/cli/dist/src/ui/components/AgentConfigDialog.test.js.map +1 -1
- package/packages/cli/dist/src/ui/components/DialogManager.d.ts +1 -1
- package/packages/cli/dist/src/ui/components/DialogManager.js +34 -7
- package/packages/cli/dist/src/ui/components/DialogManager.js.map +1 -1
- package/packages/cli/dist/src/ui/components/InputPrompt.d.ts +9 -0
- package/packages/cli/dist/src/ui/components/InputPrompt.js +350 -125
- package/packages/cli/dist/src/ui/components/InputPrompt.js.map +1 -1
- package/packages/cli/dist/src/ui/components/InputPrompt.test.js +788 -35
- package/packages/cli/dist/src/ui/components/InputPrompt.test.js.map +1 -1
- package/packages/cli/dist/src/ui/components/messages/ShellToolMessage.js +2 -2
- package/packages/cli/dist/src/ui/components/messages/ShellToolMessage.js.map +1 -1
- package/packages/cli/dist/src/ui/components/messages/ToolConfirmationMessage.js +4 -77
- package/packages/cli/dist/src/ui/components/messages/ToolConfirmationMessage.js.map +1 -1
- package/packages/cli/dist/src/ui/components/messages/ToolConfirmationMessage.test.js +0 -51
- package/packages/cli/dist/src/ui/components/messages/ToolConfirmationMessage.test.js.map +1 -1
- package/packages/cli/dist/src/ui/components/messages/ToolMessage.js +2 -2
- package/packages/cli/dist/src/ui/components/messages/ToolMessage.js.map +1 -1
- package/packages/cli/dist/src/ui/components/messages/ToolShared.d.ts +0 -1
- package/packages/cli/dist/src/ui/components/messages/ToolShared.js +2 -2
- package/packages/cli/dist/src/ui/components/messages/ToolShared.js.map +1 -1
- package/packages/cli/dist/src/ui/components/shared/BaseSettingsDialog.js +4 -1
- package/packages/cli/dist/src/ui/components/shared/BaseSettingsDialog.js.map +1 -1
- package/packages/cli/dist/src/ui/components/shared/BaseSettingsDialog.test.js +139 -40
- package/packages/cli/dist/src/ui/components/shared/BaseSettingsDialog.test.js.map +1 -1
- package/packages/cli/dist/src/ui/components/shared/TextInput.js +2 -1
- package/packages/cli/dist/src/ui/components/shared/TextInput.js.map +1 -1
- package/packages/cli/dist/src/ui/hooks/toolMapping.js +0 -1
- package/packages/cli/dist/src/ui/hooks/toolMapping.js.map +1 -1
- package/packages/cli/dist/src/ui/hooks/toolMapping.test.js +0 -13
- package/packages/cli/dist/src/ui/hooks/toolMapping.test.js.map +1 -1
- package/packages/cli/dist/src/ui/hooks/useToolScheduler.js +2 -18
- package/packages/cli/dist/src/ui/hooks/useToolScheduler.js.map +1 -1
- package/packages/cli/dist/src/ui/hooks/useToolScheduler.test.js +0 -44
- package/packages/cli/dist/src/ui/hooks/useToolScheduler.test.js.map +1 -1
- package/packages/cli/dist/src/ui/keyMatchers.test.js.map +1 -1
- package/packages/cli/dist/src/ui/types.d.ts +0 -1
- package/packages/cli/dist/src/ui/types.js.map +1 -1
- package/packages/cli/dist/src/ui/utils/commandUtils.js +4 -1
- package/packages/cli/dist/src/ui/utils/commandUtils.js.map +1 -1
- package/packages/cli/dist/src/utils/activityLogger.js +23 -94
- package/packages/cli/dist/src/utils/activityLogger.js.map +1 -1
- package/packages/cli/dist/src/utils/handleAutoUpdate.d.ts +1 -1
- package/packages/cli/dist/src/utils/handleAutoUpdate.js +1 -1
- package/packages/cli/dist/src/utils/handleAutoUpdate.js.map +1 -1
- package/packages/cli/dist/src/utils/handleAutoUpdate.test.js +11 -11
- package/packages/cli/dist/src/utils/handleAutoUpdate.test.js.map +1 -1
- package/{bundle/sandbox-macos-restrictive-closed.sb → packages/cli/dist/src/utils/sandbox-macos-strict-open.sb} +42 -4
- package/packages/cli/dist/src/utils/{sandbox-macos-restrictive-closed.sb → sandbox-macos-strict-proxied.sb} +44 -4
- package/packages/cli/dist/tsconfig.tsbuildinfo +1 -1
- package/packages/core/dist/docs/admin/enterprise-controls.md +115 -0
- package/packages/core/dist/docs/changelogs/index.md +57 -1
- package/packages/core/dist/docs/changelogs/latest.md +357 -314
- package/packages/core/dist/docs/changelogs/preview.md +288 -411
- package/packages/core/dist/docs/cli/checkpointing.md +2 -3
- package/packages/core/dist/docs/cli/cli-reference.md +42 -28
- package/packages/core/dist/docs/cli/custom-commands.md +3 -0
- package/packages/core/dist/docs/cli/enterprise.md +28 -8
- package/packages/core/dist/docs/cli/gemini-md.md +21 -13
- package/packages/core/dist/docs/cli/headless.md +34 -372
- package/packages/core/dist/docs/cli/model.md +1 -1
- package/packages/core/dist/docs/cli/plan-mode.md +245 -0
- package/packages/core/dist/docs/cli/rewind.md +11 -11
- package/packages/core/dist/docs/cli/sandbox.md +6 -5
- package/packages/core/dist/docs/cli/session-management.md +61 -44
- package/packages/core/dist/docs/cli/settings.md +64 -49
- package/packages/core/dist/docs/cli/skills.md +29 -7
- package/packages/core/dist/docs/cli/telemetry.md +41 -5
- package/packages/core/dist/docs/cli/themes.md +88 -54
- package/packages/core/dist/docs/cli/trusted-folders.md +31 -0
- package/packages/core/dist/docs/cli/tutorials/automation.md +187 -0
- package/packages/core/dist/docs/cli/tutorials/file-management.md +142 -0
- package/packages/core/dist/docs/cli/tutorials/mcp-setup.md +105 -0
- package/packages/core/dist/docs/cli/tutorials/memory-management.md +126 -0
- package/packages/core/dist/docs/cli/tutorials/session-management.md +105 -0
- package/packages/core/dist/docs/cli/tutorials/shell-commands.md +107 -0
- package/packages/core/dist/docs/cli/tutorials/skills-getting-started.md +36 -31
- package/packages/core/dist/docs/cli/tutorials/task-planning.md +93 -0
- package/packages/core/dist/docs/cli/tutorials/web-tools.md +78 -0
- package/packages/core/dist/docs/core/index.md +7 -7
- package/packages/core/dist/docs/core/subagents.md +40 -40
- package/packages/core/dist/docs/extensions/best-practices.md +102 -53
- package/packages/core/dist/docs/extensions/index.md +37 -21
- package/packages/core/dist/docs/extensions/reference.md +148 -219
- package/packages/core/dist/docs/extensions/releasing.md +93 -122
- package/packages/core/dist/docs/extensions/writing-extensions.md +87 -76
- package/packages/core/dist/docs/get-started/authentication.md +4 -4
- package/packages/core/dist/docs/get-started/examples.md +39 -119
- package/packages/core/dist/docs/get-started/gemini-3.md +17 -3
- package/packages/core/dist/docs/get-started/index.md +16 -5
- package/packages/core/dist/docs/get-started/installation.md +110 -77
- package/packages/core/dist/docs/hooks/best-practices.md +1 -1
- package/packages/core/dist/docs/hooks/reference.md +2 -2
- package/packages/core/dist/docs/index.md +142 -149
- package/packages/core/dist/docs/redirects.json +19 -0
- package/packages/core/dist/docs/reference/commands.md +523 -0
- package/{bundle/docs/get-started → packages/core/dist/docs/reference}/configuration.md +180 -71
- package/packages/core/dist/docs/{cli → reference}/keyboard-shortcuts.md +49 -35
- package/packages/core/dist/docs/{core → reference}/policy-engine.md +76 -32
- package/packages/core/dist/docs/releases.md +2 -2
- package/{bundle/docs → packages/core/dist/docs/resources}/faq.md +1 -1
- package/packages/core/dist/docs/{quota-and-pricing.md → resources/quota-and-pricing.md} +12 -5
- package/{bundle/docs → packages/core/dist/docs/resources}/tos-privacy.md +3 -3
- package/packages/core/dist/docs/{troubleshooting.md → resources/troubleshooting.md} +1 -1
- package/packages/core/dist/docs/sidebar.json +194 -113
- package/packages/core/dist/docs/tools/activate-skill.md +43 -0
- package/packages/core/dist/docs/tools/ask-user.md +95 -0
- package/packages/core/dist/docs/tools/file-system.md +55 -143
- package/packages/core/dist/docs/tools/index.md +97 -93
- package/packages/core/dist/docs/tools/internal-docs.md +46 -0
- package/packages/core/dist/docs/tools/mcp-server.md +65 -16
- package/packages/core/dist/docs/tools/memory.md +21 -40
- package/packages/core/dist/docs/tools/planning.md +57 -0
- package/packages/core/dist/docs/tools/shell.md +44 -88
- package/packages/core/dist/docs/tools/todos.md +22 -44
- package/packages/core/dist/docs/tools/web-fetch.md +22 -46
- package/packages/core/dist/docs/tools/web-search.md +19 -29
- package/packages/core/dist/src/code_assist/types.d.ts +14 -14
- package/packages/core/dist/src/config/config.d.ts +1 -13
- package/packages/core/dist/src/config/config.js +6 -39
- package/packages/core/dist/src/config/config.js.map +1 -1
- package/packages/core/dist/src/confirmation-bus/types.d.ts +0 -3
- package/packages/core/dist/src/confirmation-bus/types.js.map +1 -1
- package/packages/core/dist/src/core/coreToolHookTriggers.d.ts +1 -1
- package/packages/core/dist/src/core/coreToolHookTriggers.js +3 -8
- package/packages/core/dist/src/core/coreToolHookTriggers.js.map +1 -1
- package/packages/core/dist/src/generated/git-commit.d.ts +2 -2
- package/packages/core/dist/src/generated/git-commit.js +2 -2
- package/packages/core/dist/src/hooks/hookEventHandler.d.ts +2 -2
- package/packages/core/dist/src/hooks/hookEventHandler.js +2 -8
- package/packages/core/dist/src/hooks/hookEventHandler.js.map +1 -1
- package/packages/core/dist/src/hooks/hookSystem.d.ts +2 -2
- package/packages/core/dist/src/hooks/hookSystem.js +4 -4
- package/packages/core/dist/src/hooks/hookSystem.js.map +1 -1
- package/packages/core/dist/src/hooks/types.d.ts +0 -18
- package/packages/core/dist/src/hooks/types.js +0 -17
- package/packages/core/dist/src/hooks/types.js.map +1 -1
- package/packages/core/dist/src/ide/ide-client.js +1 -1
- package/packages/core/dist/src/ide/ide-client.js.map +1 -1
- package/packages/core/dist/src/ide/types.d.ts +8 -8
- package/packages/core/dist/src/index.d.ts +2 -0
- package/packages/core/dist/src/index.js +2 -0
- package/packages/core/dist/src/index.js.map +1 -1
- package/packages/core/dist/src/policy/policies/plan.toml +29 -43
- package/packages/core/dist/src/policy/policies/read-only.toml +12 -11
- package/packages/core/dist/src/policy/policies/write.toml +11 -10
- package/packages/core/dist/src/policy/policies/yolo.toml +24 -12
- package/packages/core/dist/src/policy/policy-engine.js +1 -5
- package/packages/core/dist/src/policy/policy-engine.js.map +1 -1
- package/packages/core/dist/src/policy/types.d.ts +1 -2
- package/packages/core/dist/src/policy/types.js +0 -1
- package/packages/core/dist/src/policy/types.js.map +1 -1
- package/packages/core/dist/src/safety/context-builder.d.ts +3 -3
- package/packages/core/dist/src/safety/context-builder.js +4 -60
- package/packages/core/dist/src/safety/context-builder.js.map +1 -1
- package/packages/core/dist/src/safety/context-builder.test.js +18 -98
- package/packages/core/dist/src/safety/context-builder.test.js.map +1 -1
- package/packages/core/dist/src/safety/protocol.d.ts +0 -4
- package/packages/core/dist/src/safety/registry.d.ts +1 -2
- package/packages/core/dist/src/safety/registry.js +4 -14
- package/packages/core/dist/src/safety/registry.js.map +1 -1
- package/packages/core/dist/src/safety/registry.test.js +2 -5
- package/packages/core/dist/src/safety/registry.test.js.map +1 -1
- package/packages/core/dist/src/scheduler/scheduler.d.ts +1 -1
- package/packages/core/dist/src/scheduler/scheduler.js +4 -49
- package/packages/core/dist/src/scheduler/scheduler.js.map +1 -1
- package/packages/core/dist/src/scheduler/scheduler.test.js +0 -91
- package/packages/core/dist/src/scheduler/scheduler.test.js.map +1 -1
- package/packages/core/dist/src/scheduler/state-manager.d.ts +0 -6
- package/packages/core/dist/src/scheduler/state-manager.js +0 -12
- package/packages/core/dist/src/scheduler/state-manager.js.map +1 -1
- package/packages/core/dist/src/scheduler/tool-executor.js +7 -9
- package/packages/core/dist/src/scheduler/tool-executor.js.map +1 -1
- package/packages/core/dist/src/scheduler/tool-executor.test.js +1 -1
- package/packages/core/dist/src/scheduler/tool-executor.test.js.map +1 -1
- package/packages/core/dist/src/scheduler/types.d.ts +0 -13
- package/packages/core/dist/src/services/shellExecutionService.d.ts +1 -1
- package/packages/core/dist/src/services/shellExecutionService.js +7 -8
- package/packages/core/dist/src/services/shellExecutionService.js.map +1 -1
- package/packages/core/dist/src/services/shellExecutionService.test.js +5 -5
- package/packages/core/dist/src/services/shellExecutionService.test.js.map +1 -1
- package/packages/core/dist/src/services/test-data/resolved-aliases-retry.golden.json +251 -251
- package/packages/core/dist/src/services/test-data/resolved-aliases.golden.json +251 -251
- package/packages/core/dist/src/skills/builtin/skill-creator/scripts/init_skill.cjs +5 -1
- package/packages/core/dist/src/skills/builtin/skill-creator/scripts/package_skill.cjs +5 -1
- package/packages/core/dist/src/skills/builtin/skill-creator/scripts/validate_skill.cjs +5 -1
- package/packages/core/dist/src/telemetry/clearcut-logger/clearcut-logger.d.ts +1 -3
- package/packages/core/dist/src/telemetry/clearcut-logger/clearcut-logger.js +0 -2
- package/packages/core/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -1
- package/packages/core/dist/src/telemetry/clearcut-logger/event-metadata-key.d.ts +1 -9
- package/packages/core/dist/src/telemetry/clearcut-logger/event-metadata-key.js +1 -19
- package/packages/core/dist/src/telemetry/clearcut-logger/event-metadata-key.js.map +1 -1
- package/packages/core/dist/src/telemetry/index.d.ts +1 -2
- package/packages/core/dist/src/telemetry/index.js +1 -2
- package/packages/core/dist/src/telemetry/index.js.map +1 -1
- package/packages/core/dist/src/telemetry/loggers.js +0 -4
- package/packages/core/dist/src/telemetry/loggers.js.map +1 -1
- package/packages/core/dist/src/telemetry/trace.js.map +1 -1
- package/packages/core/dist/src/telemetry/types.d.ts +0 -26
- package/packages/core/dist/src/telemetry/types.js +2 -76
- package/packages/core/dist/src/telemetry/types.js.map +1 -1
- package/packages/core/dist/src/tools/diffOptions.d.ts +2 -2
- package/packages/core/dist/src/tools/diffOptions.js.map +1 -1
- package/packages/core/dist/src/tools/mcp-client.test.js.map +1 -1
- package/packages/core/dist/src/tools/mcp-tool.d.ts +1 -3
- package/packages/core/dist/src/tools/mcp-tool.js +2 -9
- package/packages/core/dist/src/tools/mcp-tool.js.map +1 -1
- package/packages/core/dist/src/tools/memoryTool.d.ts +0 -10
- package/packages/core/dist/src/tools/memoryTool.js +30 -25
- package/packages/core/dist/src/tools/memoryTool.js.map +1 -1
- package/packages/core/dist/src/tools/tool-names.d.ts +6 -0
- package/packages/core/dist/src/tools/tool-names.js +16 -1
- package/packages/core/dist/src/tools/tool-names.js.map +1 -1
- package/packages/core/dist/src/tools/tools.d.ts +0 -11
- package/packages/core/dist/src/tools/tools.js.map +1 -1
- package/packages/core/dist/src/utils/getPty.d.ts +14 -1
- package/packages/core/dist/src/utils/getPty.js +67 -2
- package/packages/core/dist/src/utils/getPty.js.map +1 -1
- package/packages/core/dist/src/utils/memoryDiscovery.d.ts +11 -3
- package/packages/core/dist/src/utils/memoryDiscovery.js +56 -21
- package/packages/core/dist/src/utils/memoryDiscovery.js.map +1 -1
- package/packages/core/dist/src/utils/secure-browser-launcher.js +40 -29
- package/packages/core/dist/src/utils/secure-browser-launcher.js.map +1 -1
- package/packages/core/dist/src/utils/textUtils.d.ts +0 -9
- package/packages/core/dist/src/utils/textUtils.js +0 -15
- package/packages/core/dist/src/utils/textUtils.js.map +1 -1
- package/packages/core/dist/src/utils/textUtils.test.js +1 -42
- package/packages/core/dist/src/utils/textUtils.test.js.map +1 -1
- package/packages/core/dist/tsconfig.tsbuildinfo +1 -1
- package/packages/test-utils/dist/tsconfig.tsbuildinfo +1 -1
- package/bundle/docs/ROADMAP.md +0 -113
- package/bundle/docs/TERMUX.md +0 -95
- package/bundle/docs/architecture.md +0 -80
- package/bundle/docs/assets/hero.png +0 -0
- package/bundle/docs/cli/authentication.md +0 -3
- package/bundle/docs/cli/commands.md +0 -430
- package/bundle/docs/cli/context-memory.md +0 -69
- package/bundle/docs/cli/index.md +0 -65
- package/bundle/docs/cli/keyboard-shortcuts.md +0 -140
- package/bundle/docs/cli/tutorials.md +0 -87
- package/bundle/docs/core/policy-engine.md +0 -305
- package/bundle/docs/get-started/configuration-v1.md +0 -888
- package/bundle/docs/patches/README.md +0 -74
- package/bundle/docs/patches/mcp-sdk-typings-shim.md +0 -27
- package/bundle/docs/quota-and-pricing.md +0 -158
- package/bundle/docs/termux-api/COMMANDS.md +0 -592
- package/bundle/docs/termux-api/DISCOVERY_SETUP.md +0 -670
- package/bundle/docs/termux-api/EXECUTION_PLAN.md +0 -532
- package/bundle/docs/termux-api/MERGE_STRATEGY.md +0 -365
- package/bundle/docs/termux-api/PATCHES.md +0 -480
- package/bundle/docs/termux-api/README.md +0 -416
- package/bundle/docs/troubleshooting.md +0 -173
- package/bundle/policies/conseca.toml +0 -6
- package/bundle/sandbox-macos-permissive-closed.sb +0 -32
- package/packages/cli/README.md +0 -173
- package/packages/cli/dist/src/commands/extensions/examples/mcp-server/example.d.ts +0 -6
- package/packages/cli/dist/src/commands/extensions/examples/mcp-server/example.js.map +0 -1
- package/packages/cli/dist/src/commands/extensions/examples/mcp-server/example.test.d.ts +0 -6
- package/packages/cli/dist/src/commands/extensions/examples/mcp-server/example.test.js +0 -111
- package/packages/cli/dist/src/commands/extensions/examples/mcp-server/example.test.js.map +0 -1
- package/packages/cli/dist/src/ui/components/messages/ToolConfirmationMessageOverflow.test.d.ts +0 -6
- package/packages/cli/dist/src/ui/components/messages/ToolConfirmationMessageOverflow.test.js +0 -93
- package/packages/cli/dist/src/ui/components/messages/ToolConfirmationMessageOverflow.test.js.map +0 -1
- package/packages/cli/dist/src/ui/hooks/useReactToolScheduler.d.ts +0 -42
- package/packages/cli/dist/src/ui/hooks/useReactToolScheduler.js +0 -105
- package/packages/cli/dist/src/ui/hooks/useReactToolScheduler.js.map +0 -1
- package/packages/cli/dist/src/ui/hooks/useReactToolScheduler.test.d.ts +0 -6
- package/packages/cli/dist/src/ui/hooks/useReactToolScheduler.test.js +0 -58
- package/packages/cli/dist/src/ui/hooks/useReactToolScheduler.test.js.map +0 -1
- package/packages/cli/dist/src/ui/hooks/useRefreshMemoryCommand.d.ts +0 -6
- package/packages/cli/dist/src/ui/hooks/useRefreshMemoryCommand.js +0 -7
- package/packages/cli/dist/src/ui/hooks/useRefreshMemoryCommand.js.map +0 -1
- package/packages/cli/dist/src/ui/hooks/useShowMemoryCommand.d.ts +0 -9
- package/packages/cli/dist/src/ui/hooks/useShowMemoryCommand.js +0 -59
- package/packages/cli/dist/src/ui/hooks/useShowMemoryCommand.js.map +0 -1
- package/packages/cli/dist/src/ui/hooks/useToolExecutionScheduler.d.ts +0 -30
- package/packages/cli/dist/src/ui/hooks/useToolExecutionScheduler.js +0 -149
- package/packages/cli/dist/src/ui/hooks/useToolExecutionScheduler.js.map +0 -1
- package/packages/cli/dist/src/ui/hooks/useToolExecutionScheduler.test.d.ts +0 -6
- package/packages/cli/dist/src/ui/hooks/useToolExecutionScheduler.test.js +0 -376
- package/packages/cli/dist/src/ui/hooks/useToolExecutionScheduler.test.js.map +0 -1
- package/packages/cli/dist/src/ui/hooks/useToolSchedulerFacade.test.d.ts +0 -6
- package/packages/cli/dist/src/ui/hooks/useToolSchedulerFacade.test.js +0 -45
- package/packages/cli/dist/src/ui/hooks/useToolSchedulerFacade.test.js.map +0 -1
- package/packages/cli/dist/src/ui/utils/InlineMarkdownRenderer.test.d.ts +0 -6
- package/packages/cli/dist/src/ui/utils/InlineMarkdownRenderer.test.js +0 -21
- package/packages/cli/dist/src/ui/utils/InlineMarkdownRenderer.test.js.map +0 -1
- package/packages/cli/dist/src/ui/utils/terminalUtils.test.d.ts +0 -6
- package/packages/cli/dist/src/ui/utils/terminalUtils.test.js +0 -40
- package/packages/cli/dist/src/ui/utils/terminalUtils.test.js.map +0 -1
- package/packages/cli/dist/src/utils/checks.d.ts +0 -19
- package/packages/cli/dist/src/utils/checks.js +0 -24
- package/packages/cli/dist/src/utils/checks.js.map +0 -1
- package/packages/cli/dist/src/utils/checks.test.d.ts +0 -6
- package/packages/cli/dist/src/utils/checks.test.js +0 -29
- package/packages/cli/dist/src/utils/checks.test.js.map +0 -1
- package/packages/cli/dist/src/utils/sandbox-macos-permissive-closed.sb +0 -32
- package/packages/cli/index.js +0 -2
- package/packages/core/dist/docs/TERMUX.md +0 -95
- package/packages/core/dist/docs/architecture.md +0 -80
- package/packages/core/dist/docs/assets/hero.png +0 -0
- package/packages/core/dist/docs/cli/authentication.md +0 -3
- package/packages/core/dist/docs/cli/commands.md +0 -430
- package/packages/core/dist/docs/cli/context-memory.md +0 -69
- package/packages/core/dist/docs/cli/index.md +0 -65
- package/packages/core/dist/docs/cli/tutorials.md +0 -87
- package/packages/core/dist/docs/cli/uninstall.md +0 -65
- package/packages/core/dist/docs/core/memport.md +0 -246
- package/packages/core/dist/docs/core/tools-api.md +0 -131
- package/packages/core/dist/docs/faq.md +0 -154
- package/packages/core/dist/docs/get-started/configuration-v1.md +0 -888
- package/packages/core/dist/docs/get-started/configuration.md +0 -1585
- package/packages/core/dist/docs/patches/README.md +0 -74
- package/packages/core/dist/docs/patches/mcp-sdk-typings-shim.md +0 -27
- package/packages/core/dist/docs/termux-api/COMMANDS.md +0 -592
- package/packages/core/dist/docs/termux-api/DISCOVERY_SETUP.md +0 -670
- package/packages/core/dist/docs/termux-api/EXECUTION_PLAN.md +0 -532
- package/packages/core/dist/docs/termux-api/MERGE_STRATEGY.md +0 -365
- package/packages/core/dist/docs/termux-api/PATCHES.md +0 -480
- package/packages/core/dist/docs/termux-api/README.md +0 -416
- package/packages/core/dist/docs/tos-privacy.md +0 -96
- package/packages/core/dist/src/safety/conseca/conseca.d.ts +0 -31
- package/packages/core/dist/src/safety/conseca/conseca.js +0 -105
- package/packages/core/dist/src/safety/conseca/conseca.js.map +0 -1
- package/packages/core/dist/src/safety/conseca/conseca.test.d.ts +0 -6
- package/packages/core/dist/src/safety/conseca/conseca.test.js +0 -226
- package/packages/core/dist/src/safety/conseca/conseca.test.js.map +0 -1
- package/packages/core/dist/src/safety/conseca/integration.test.d.ts +0 -6
- package/packages/core/dist/src/safety/conseca/integration.test.js +0 -19
- package/packages/core/dist/src/safety/conseca/integration.test.js.map +0 -1
- package/packages/core/dist/src/safety/conseca/policy-enforcer.d.ts +0 -13
- package/packages/core/dist/src/safety/conseca/policy-enforcer.js +0 -135
- package/packages/core/dist/src/safety/conseca/policy-enforcer.js.map +0 -1
- package/packages/core/dist/src/safety/conseca/policy-enforcer.test.d.ts +0 -6
- package/packages/core/dist/src/safety/conseca/policy-enforcer.test.js +0 -141
- package/packages/core/dist/src/safety/conseca/policy-enforcer.test.js.map +0 -1
- package/packages/core/dist/src/safety/conseca/policy-generator.d.ts +0 -15
- package/packages/core/dist/src/safety/conseca/policy-generator.js +0 -144
- package/packages/core/dist/src/safety/conseca/policy-generator.js.map +0 -1
- package/packages/core/dist/src/safety/conseca/policy-generator.test.d.ts +0 -6
- package/packages/core/dist/src/safety/conseca/policy-generator.test.js +0 -84
- package/packages/core/dist/src/safety/conseca/policy-generator.test.js.map +0 -1
- package/packages/core/dist/src/safety/conseca/types.d.ts +0 -15
- package/packages/core/dist/src/safety/conseca/types.js +0 -7
- package/packages/core/dist/src/safety/conseca/types.js.map +0 -1
- package/packages/core/dist/src/telemetry/conseca-logger.d.ts +0 -9
- package/packages/core/dist/src/telemetry/conseca-logger.js +0 -91
- package/packages/core/dist/src/telemetry/conseca-logger.js.map +0 -1
- package/packages/core/dist/src/telemetry/conseca-logger.test.d.ts +0 -6
- package/packages/core/dist/src/telemetry/conseca-logger.test.js +0 -89
- package/packages/core/dist/src/telemetry/conseca-logger.test.js.map +0 -1
- package/packages/core/dist/src/tools/mcpImportTool.d.ts +0 -31
- package/packages/core/dist/src/tools/mcpImportTool.js +0 -143
- package/packages/core/dist/src/tools/mcpImportTool.js.map +0 -1
- package/packages/core/dist/src/utils/contextMemory.d.ts +0 -67
- package/packages/core/dist/src/utils/contextMemory.js +0 -493
- package/packages/core/dist/src/utils/contextMemory.js.map +0 -1
- package/packages/core/dist/src/utils/contextMemory.test.d.ts +0 -6
- package/packages/core/dist/src/utils/contextMemory.test.js +0 -183
- package/packages/core/dist/src/utils/contextMemory.test.js.map +0 -1
- /package/{bundle/docs/core → packages/core/dist/docs/reference}/memport.md +0 -0
- /package/{bundle/docs/core → packages/core/dist/docs/reference}/tools-api.md +0 -0
- /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
|
|
4
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
11
|
+
### Output formats
|
|
41
12
|
|
|
42
|
-
|
|
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
|
-
|
|
15
|
+
#### JSON output
|
|
49
16
|
|
|
50
|
-
|
|
17
|
+
Returns a single JSON object containing the response and usage statistics.
|
|
51
18
|
|
|
52
|
-
|
|
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
|
-
|
|
55
|
-
gemini --prompt "What is machine learning?"
|
|
56
|
-
```
|
|
24
|
+
#### Streaming JSON output
|
|
57
25
|
|
|
58
|
-
|
|
26
|
+
Returns a stream of newline-delimited JSON (JSONL) events.
|
|
59
27
|
|
|
60
|
-
|
|
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
|
-
|
|
63
|
-
echo "Explain this code" | gemini
|
|
64
|
-
```
|
|
36
|
+
## Exit codes
|
|
65
37
|
|
|
66
|
-
|
|
38
|
+
The CLI returns standard exit codes to indicate the result of the headless
|
|
39
|
+
execution:
|
|
67
40
|
|
|
68
|
-
|
|
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
|
-
|
|
71
|
-
cat README.md | gemini --prompt "Summarize this documentation"
|
|
72
|
-
```
|
|
46
|
+
## Next steps
|
|
73
47
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
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](../
|
|
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
|