@google/gemini-cli-core 0.24.0-nightly.20260103.30f5c4af4 → 0.25.0-nightly.20260112.15891721a
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 +1 -1
- package/dist/docs/changelogs/index.md +22 -0
- package/dist/docs/changelogs/latest.md +137 -209
- package/dist/docs/changelogs/preview.md +116 -114
- package/dist/docs/changelogs/releases.md +273 -7
- package/dist/docs/cli/model-routing.md +1 -1
- package/dist/docs/cli/model.md +1 -1
- package/dist/docs/cli/settings.md +67 -52
- package/dist/docs/cli/skills.md +156 -0
- package/dist/docs/cli/telemetry.md +3 -3
- package/dist/docs/cli/tutorials/skills-getting-started.md +124 -0
- package/dist/docs/cli/tutorials.md +4 -0
- package/dist/docs/core/policy-engine.md +3 -2
- package/dist/docs/extensions/index.md +57 -7
- package/dist/docs/get-started/configuration.md +44 -11
- package/dist/docs/get-started/gemini-3.md +2 -17
- package/dist/docs/hooks/best-practices.md +1 -1
- package/dist/docs/hooks/index.md +47 -11
- package/dist/docs/hooks/reference.md +19 -9
- package/dist/docs/hooks/writing-hooks.md +19 -1
- package/dist/docs/sidebar.json +4 -0
- package/dist/docs/troubleshooting.md +9 -3
- package/dist/google-gemini-cli-core-0.25.0-nightly.20260107.59a18e710.tgz +0 -0
- package/dist/src/agents/a2a-client-manager.d.ts +9 -0
- package/dist/src/agents/a2a-client-manager.js +130 -0
- package/dist/src/agents/a2a-client-manager.js.map +1 -1
- package/dist/src/agents/a2a-client-manager.test.js +71 -1
- package/dist/src/agents/a2a-client-manager.test.js.map +1 -1
- package/dist/src/agents/a2aUtils.d.ts +28 -0
- package/dist/src/agents/a2aUtils.js +111 -0
- package/dist/src/agents/a2aUtils.js.map +1 -0
- package/dist/src/agents/a2aUtils.test.js +147 -0
- package/dist/src/agents/a2aUtils.test.js.map +1 -0
- package/dist/src/agents/agentLoader.d.ts +68 -0
- package/dist/src/agents/{toml-loader.js → agentLoader.js} +83 -78
- package/dist/src/agents/agentLoader.js.map +1 -0
- package/dist/src/agents/agentLoader.test.js +283 -0
- package/dist/src/agents/agentLoader.test.js.map +1 -0
- package/dist/src/agents/{introspection-agent.d.ts → cli-help-agent.d.ts} +3 -2
- package/dist/src/agents/{introspection-agent.js → cli-help-agent.js} +17 -11
- package/dist/src/agents/cli-help-agent.js.map +1 -0
- package/dist/src/agents/{introspection-agent.test.js → cli-help-agent.test.js} +26 -8
- package/dist/src/agents/cli-help-agent.test.js.map +1 -0
- package/dist/src/agents/delegate-to-agent-tool.d.ts +2 -2
- package/dist/src/agents/delegate-to-agent-tool.js +23 -16
- package/dist/src/agents/delegate-to-agent-tool.js.map +1 -1
- package/dist/src/agents/delegate-to-agent-tool.test.js +88 -16
- package/dist/src/agents/delegate-to-agent-tool.test.js.map +1 -1
- package/dist/src/agents/local-executor.js +36 -2
- package/dist/src/agents/local-executor.js.map +1 -1
- package/dist/src/agents/local-executor.test.js +55 -2
- package/dist/src/agents/local-executor.test.js.map +1 -1
- package/dist/src/agents/local-invocation.d.ts +2 -2
- package/dist/src/agents/local-invocation.js +3 -3
- package/dist/src/agents/local-invocation.js.map +1 -1
- package/dist/src/agents/local-invocation.test.js +7 -5
- package/dist/src/agents/local-invocation.test.js.map +1 -1
- package/dist/src/agents/registry.d.ts +10 -0
- package/dist/src/agents/registry.js +61 -26
- package/dist/src/agents/registry.js.map +1 -1
- package/dist/src/agents/registry.test.js +66 -11
- package/dist/src/agents/registry.test.js.map +1 -1
- package/dist/src/agents/remote-invocation.d.ts +17 -3
- package/dist/src/agents/remote-invocation.js +106 -6
- package/dist/src/agents/remote-invocation.js.map +1 -1
- package/dist/src/agents/remote-invocation.test.js +184 -18
- package/dist/src/agents/remote-invocation.test.js.map +1 -1
- package/dist/src/agents/subagent-tool-wrapper.d.ts +2 -2
- package/dist/src/agents/subagent-tool-wrapper.js +6 -5
- package/dist/src/agents/subagent-tool-wrapper.js.map +1 -1
- package/dist/src/agents/subagent-tool-wrapper.test.js +17 -10
- package/dist/src/agents/subagent-tool-wrapper.test.js.map +1 -1
- package/dist/src/agents/types.d.ts +6 -0
- package/dist/src/availability/fallbackIntegration.test.js +58 -0
- package/dist/src/availability/fallbackIntegration.test.js.map +1 -0
- package/dist/src/code_assist/experiments/experiments.d.ts +1 -1
- package/dist/src/code_assist/experiments/experiments.js +21 -0
- package/dist/src/code_assist/experiments/experiments.js.map +1 -1
- package/dist/src/code_assist/experiments/experiments_local.test.js +110 -0
- package/dist/src/code_assist/experiments/experiments_local.test.js.map +1 -0
- package/dist/src/code_assist/oauth-credential-storage.js +3 -4
- package/dist/src/code_assist/oauth-credential-storage.js.map +1 -1
- package/dist/src/code_assist/oauth2.js +31 -1
- package/dist/src/code_assist/oauth2.js.map +1 -1
- package/dist/src/code_assist/oauth2.test.js +105 -8
- package/dist/src/code_assist/oauth2.test.js.map +1 -1
- package/dist/src/code_assist/server.d.ts +5 -0
- package/dist/src/code_assist/server.js +19 -4
- package/dist/src/code_assist/server.js.map +1 -1
- package/dist/src/code_assist/server.test.js +19 -0
- package/dist/src/code_assist/server.test.js.map +1 -1
- package/dist/src/code_assist/setup.js +6 -4
- package/dist/src/code_assist/setup.js.map +1 -1
- package/dist/src/code_assist/setup.test.js +63 -0
- package/dist/src/code_assist/setup.test.js.map +1 -1
- package/dist/src/code_assist/telemetry.js +2 -1
- package/dist/src/code_assist/telemetry.js.map +1 -1
- package/dist/src/code_assist/telemetry.test.js +2 -1
- package/dist/src/code_assist/telemetry.test.js.map +1 -1
- package/dist/src/code_assist/types.d.ts +25 -0
- package/dist/src/code_assist/types.js +7 -0
- package/dist/src/code_assist/types.js.map +1 -1
- package/dist/src/config/config.d.ts +45 -9
- package/dist/src/config/config.js +128 -62
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/config/config.test.js +94 -7
- package/dist/src/config/config.test.js.map +1 -1
- package/dist/src/config/models.d.ts +7 -0
- package/dist/src/config/models.js +17 -4
- package/dist/src/config/models.js.map +1 -1
- package/dist/src/config/models.test.js +37 -1
- package/dist/src/config/models.test.js.map +1 -1
- package/dist/src/config/storage.d.ts +1 -0
- package/dist/src/config/storage.js +5 -2
- package/dist/src/config/storage.js.map +1 -1
- package/dist/src/core/client.js +66 -15
- package/dist/src/core/client.js.map +1 -1
- package/dist/src/core/client.test.js +171 -22
- package/dist/src/core/client.test.js.map +1 -1
- package/dist/src/core/contentGenerator.js +1 -1
- package/dist/src/core/contentGenerator.js.map +1 -1
- package/dist/src/core/contentGenerator.test.js +1 -1
- package/dist/src/core/contentGenerator.test.js.map +1 -1
- package/dist/src/core/coreToolHookTriggers.d.ts +8 -4
- package/dist/src/core/coreToolHookTriggers.js +43 -5
- package/dist/src/core/coreToolHookTriggers.js.map +1 -1
- package/dist/src/core/coreToolHookTriggers.test.js +11 -9
- package/dist/src/core/coreToolHookTriggers.test.js.map +1 -1
- package/dist/src/core/coreToolScheduler.d.ts +2 -8
- package/dist/src/core/coreToolScheduler.js +84 -166
- package/dist/src/core/coreToolScheduler.js.map +1 -1
- package/dist/src/core/coreToolScheduler.test.js +51 -29
- package/dist/src/core/coreToolScheduler.test.js.map +1 -1
- package/dist/src/core/geminiChat.d.ts +26 -1
- package/dist/src/core/geminiChat.js +74 -8
- package/dist/src/core/geminiChat.js.map +1 -1
- package/dist/src/core/geminiChat.test.js +109 -0
- package/dist/src/core/geminiChat.test.js.map +1 -1
- package/dist/src/core/geminiChatHookTriggers.d.ts +8 -4
- package/dist/src/core/geminiChatHookTriggers.js +31 -9
- package/dist/src/core/geminiChatHookTriggers.js.map +1 -1
- package/dist/src/core/geminiChatHookTriggers.test.d.ts +6 -0
- package/dist/src/core/geminiChatHookTriggers.test.js +153 -0
- package/dist/src/core/geminiChatHookTriggers.test.js.map +1 -0
- package/dist/src/core/loggingContentGenerator.js +19 -2
- package/dist/src/core/loggingContentGenerator.js.map +1 -1
- package/dist/src/core/loggingContentGenerator.test.js +30 -0
- package/dist/src/core/loggingContentGenerator.test.js.map +1 -1
- package/dist/src/core/nonInteractiveToolExecutor.test.js +4 -2
- package/dist/src/core/nonInteractiveToolExecutor.test.js.map +1 -1
- package/dist/src/core/prompts.js +9 -9
- package/dist/src/core/prompts.js.map +1 -1
- package/dist/src/core/prompts.test.js +4 -2
- package/dist/src/core/prompts.test.js.map +1 -1
- package/dist/src/core/tokenLimits.js +6 -12
- package/dist/src/core/tokenLimits.js.map +1 -1
- package/dist/src/core/tokenLimits.test.js +8 -4
- package/dist/src/core/tokenLimits.test.js.map +1 -1
- package/dist/src/core/turn.d.ts +18 -2
- package/dist/src/core/turn.js +16 -0
- package/dist/src/core/turn.js.map +1 -1
- package/dist/src/generated/git-commit.d.ts +2 -2
- package/dist/src/generated/git-commit.js +2 -2
- package/dist/src/hooks/hookEventHandler.d.ts +9 -5
- package/dist/src/hooks/hookEventHandler.js +51 -11
- package/dist/src/hooks/hookEventHandler.js.map +1 -1
- package/dist/src/hooks/hookEventHandler.test.js +176 -8
- package/dist/src/hooks/hookEventHandler.test.js.map +1 -1
- package/dist/src/hooks/hookRunner.d.ts +2 -2
- package/dist/src/hooks/hookRunner.js +12 -4
- package/dist/src/hooks/hookRunner.js.map +1 -1
- package/dist/src/hooks/hookRunner.test.js +33 -0
- package/dist/src/hooks/hookRunner.test.js.map +1 -1
- package/dist/src/hooks/hookSystem.d.ts +12 -0
- package/dist/src/hooks/hookSystem.js +36 -0
- package/dist/src/hooks/hookSystem.js.map +1 -1
- package/dist/src/hooks/hookTranslator.js +2 -1
- package/dist/src/hooks/hookTranslator.js.map +1 -1
- package/dist/src/hooks/index.d.ts +0 -1
- package/dist/src/hooks/index.js +0 -2
- package/dist/src/hooks/index.js.map +1 -1
- package/dist/src/hooks/types.d.ts +21 -0
- package/dist/src/hooks/types.js +0 -15
- package/dist/src/hooks/types.js.map +1 -1
- package/dist/src/hooks/types.test.js +4 -28
- package/dist/src/hooks/types.test.js.map +1 -1
- package/dist/src/ide/detect-ide.d.ts +4 -0
- package/dist/src/ide/detect-ide.js +7 -2
- package/dist/src/ide/detect-ide.js.map +1 -1
- package/dist/src/ide/detect-ide.test.js +10 -0
- package/dist/src/ide/detect-ide.test.js.map +1 -1
- package/dist/src/ide/ide-installer.js +2 -2
- package/dist/src/ide/ide-installer.js.map +1 -1
- package/dist/src/ide/ide-installer.test.js +11 -2
- package/dist/src/ide/ide-installer.test.js.map +1 -1
- package/dist/src/index.d.ts +11 -2
- package/dist/src/index.js +13 -3
- package/dist/src/index.js.map +1 -1
- package/dist/src/mcp/token-storage/file-token-storage.js +2 -2
- package/dist/src/mcp/token-storage/file-token-storage.js.map +1 -1
- package/dist/src/policy/config.js +60 -22
- package/dist/src/policy/config.js.map +1 -1
- package/dist/src/policy/config.test.js +21 -0
- package/dist/src/policy/config.test.js.map +1 -1
- package/dist/src/policy/persistence.test.js +1 -1
- package/dist/src/policy/persistence.test.js.map +1 -1
- package/dist/src/policy/policies/agent.toml +1 -1
- package/dist/src/policy/policies/yolo.toml +1 -0
- package/dist/src/policy/policy-engine.js +22 -6
- package/dist/src/policy/policy-engine.js.map +1 -1
- package/dist/src/policy/policy-engine.test.js +206 -1
- package/dist/src/policy/policy-engine.test.js.map +1 -1
- package/dist/src/policy/policy-updater.test.js +3 -3
- package/dist/src/policy/policy-updater.test.js.map +1 -1
- package/dist/src/policy/toml-loader.d.ts +0 -8
- package/dist/src/policy/toml-loader.js +7 -70
- package/dist/src/policy/toml-loader.js.map +1 -1
- package/dist/src/policy/toml-loader.test.js +16 -6
- package/dist/src/policy/toml-loader.test.js.map +1 -1
- package/dist/src/policy/utils.d.ts +21 -0
- package/dist/src/policy/utils.js +45 -0
- package/dist/src/policy/utils.js.map +1 -0
- package/dist/src/policy/utils.test.d.ts +6 -0
- package/dist/src/policy/utils.test.js +92 -0
- package/dist/src/policy/utils.test.js.map +1 -0
- package/dist/src/routing/routingStrategy.d.ts +2 -0
- package/dist/src/routing/strategies/classifierStrategy.js +1 -1
- package/dist/src/routing/strategies/classifierStrategy.js.map +1 -1
- package/dist/src/routing/strategies/classifierStrategy.test.js +16 -0
- package/dist/src/routing/strategies/classifierStrategy.test.js.map +1 -1
- package/dist/src/routing/strategies/fallbackStrategy.d.ts +1 -1
- package/dist/src/routing/strategies/fallbackStrategy.js +2 -2
- package/dist/src/routing/strategies/fallbackStrategy.js.map +1 -1
- package/dist/src/routing/strategies/fallbackStrategy.test.js +13 -0
- package/dist/src/routing/strategies/fallbackStrategy.test.js.map +1 -1
- package/dist/src/routing/strategies/overrideStrategy.d.ts +1 -1
- package/dist/src/routing/strategies/overrideStrategy.js +5 -5
- package/dist/src/routing/strategies/overrideStrategy.js.map +1 -1
- package/dist/src/routing/strategies/overrideStrategy.test.js +14 -0
- package/dist/src/routing/strategies/overrideStrategy.test.js.map +1 -1
- package/dist/src/scheduler/tool-executor.d.ts +22 -0
- package/dist/src/scheduler/tool-executor.js +198 -0
- package/dist/src/scheduler/tool-executor.js.map +1 -0
- package/dist/src/scheduler/tool-executor.test.d.ts +6 -0
- package/dist/src/scheduler/tool-executor.test.js +231 -0
- package/dist/src/scheduler/tool-executor.test.js.map +1 -0
- package/dist/src/scheduler/tool-modifier.d.ts +23 -0
- package/dist/src/scheduler/tool-modifier.js +50 -0
- package/dist/src/scheduler/tool-modifier.js.map +1 -0
- package/dist/src/scheduler/tool-modifier.test.d.ts +6 -0
- package/dist/src/scheduler/tool-modifier.test.js +159 -0
- package/dist/src/scheduler/tool-modifier.test.js.map +1 -0
- package/dist/src/services/chatCompressionService.js +3 -10
- package/dist/src/services/chatCompressionService.js.map +1 -1
- package/dist/src/services/chatCompressionService.test.js +1 -0
- package/dist/src/services/chatCompressionService.test.js.map +1 -1
- package/dist/src/services/chatRecordingService.d.ts +7 -1
- package/dist/src/services/chatRecordingService.js +20 -2
- package/dist/src/services/chatRecordingService.js.map +1 -1
- package/dist/src/services/chatRecordingService.test.js +43 -0
- package/dist/src/services/chatRecordingService.test.js.map +1 -1
- package/dist/src/services/environmentSanitization.js +4 -3
- package/dist/src/services/environmentSanitization.js.map +1 -1
- package/dist/src/services/gitService.test.js +10 -2
- package/dist/src/services/gitService.test.js.map +1 -1
- package/dist/src/services/modelConfig.integration.test.js +2 -2
- package/dist/src/services/modelConfig.integration.test.js.map +1 -1
- package/dist/src/services/modelConfigService.d.ts +29 -1
- package/dist/src/services/modelConfigService.js +116 -69
- package/dist/src/services/modelConfigService.js.map +1 -1
- package/dist/src/services/modelConfigService.test.js +116 -0
- package/dist/src/services/modelConfigService.test.js.map +1 -1
- package/dist/src/services/shellExecutionService.js +1 -1
- package/dist/src/services/shellExecutionService.js.map +1 -1
- package/dist/src/services/shellExecutionService.test.js +43 -2
- package/dist/src/services/shellExecutionService.test.js.map +1 -1
- package/dist/src/skills/skillLoader.d.ts +31 -0
- package/dist/src/skills/skillLoader.js +77 -0
- package/dist/src/skills/skillLoader.js.map +1 -0
- package/dist/src/skills/skillLoader.test.d.ts +6 -0
- package/dist/src/skills/skillLoader.test.js +75 -0
- package/dist/src/skills/skillLoader.test.js.map +1 -0
- package/dist/src/{services → skills}/skillManager.d.ts +18 -19
- package/dist/src/skills/skillManager.js +108 -0
- package/dist/src/skills/skillManager.js.map +1 -0
- package/dist/src/skills/skillManager.test.d.ts +6 -0
- package/dist/src/skills/skillManager.test.js +164 -0
- package/dist/src/skills/skillManager.test.js.map +1 -0
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.d.ts +9 -6
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +20 -16
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -1
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js +43 -4
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js.map +1 -1
- package/dist/src/telemetry/clearcut-logger/event-metadata-key.d.ts +2 -2
- package/dist/src/telemetry/clearcut-logger/event-metadata-key.js +4 -4
- package/dist/src/telemetry/clearcut-logger/event-metadata-key.js.map +1 -1
- package/dist/src/telemetry/loggers.d.ts +3 -3
- package/dist/src/telemetry/loggers.js +4 -4
- package/dist/src/telemetry/loggers.js.map +1 -1
- package/dist/src/telemetry/loggers.test.js +7 -5
- package/dist/src/telemetry/loggers.test.js.map +1 -1
- package/dist/src/telemetry/types.d.ts +7 -7
- package/dist/src/telemetry/types.js +14 -12
- package/dist/src/telemetry/types.js.map +1 -1
- package/dist/src/test-utils/mock-message-bus.d.ts +1 -0
- package/dist/src/test-utils/mock-message-bus.js +29 -0
- package/dist/src/test-utils/mock-message-bus.js.map +1 -1
- package/dist/src/test-utils/mock-tool.d.ts +5 -3
- package/dist/src/test-utils/mock-tool.js +11 -10
- package/dist/src/test-utils/mock-tool.js.map +1 -1
- package/dist/src/tools/activate-skill.d.ts +2 -2
- package/dist/src/tools/activate-skill.js +28 -10
- package/dist/src/tools/activate-skill.js.map +1 -1
- package/dist/src/tools/activate-skill.test.js +31 -11
- package/dist/src/tools/activate-skill.test.js.map +1 -1
- package/dist/src/tools/confirmation-policy.test.js +2 -12
- package/dist/src/tools/confirmation-policy.test.js.map +1 -1
- package/dist/src/tools/edit.d.ts +27 -5
- package/dist/src/tools/edit.js +446 -137
- package/dist/src/tools/edit.js.map +1 -1
- package/dist/src/tools/edit.test.js +257 -525
- package/dist/src/tools/edit.test.js.map +1 -1
- package/dist/src/tools/get-internal-docs.d.ts +2 -2
- package/dist/src/tools/get-internal-docs.js +17 -24
- package/dist/src/tools/get-internal-docs.js.map +1 -1
- package/dist/src/tools/get-internal-docs.test.js +2 -1
- package/dist/src/tools/get-internal-docs.test.js.map +1 -1
- package/dist/src/tools/glob.d.ts +2 -2
- package/dist/src/tools/glob.js +1 -1
- package/dist/src/tools/glob.js.map +1 -1
- package/dist/src/tools/glob.test.js +2 -1
- package/dist/src/tools/glob.test.js.map +1 -1
- package/dist/src/tools/grep.d.ts +2 -2
- package/dist/src/tools/grep.js +1 -1
- package/dist/src/tools/grep.js.map +1 -1
- package/dist/src/tools/grep.test.js +5 -4
- package/dist/src/tools/grep.test.js.map +1 -1
- package/dist/src/tools/ls.d.ts +2 -2
- package/dist/src/tools/ls.js +2 -2
- package/dist/src/tools/ls.js.map +1 -1
- package/dist/src/tools/ls.test.js +2 -1
- package/dist/src/tools/ls.test.js.map +1 -1
- package/dist/src/tools/mcp-client.d.ts +2 -2
- package/dist/src/tools/mcp-client.js +2 -1
- package/dist/src/tools/mcp-client.js.map +1 -1
- package/dist/src/tools/mcp-tool.d.ts +20 -5
- package/dist/src/tools/mcp-tool.js +8 -8
- package/dist/src/tools/mcp-tool.js.map +1 -1
- package/dist/src/tools/mcp-tool.test.js +11 -6
- package/dist/src/tools/mcp-tool.test.js.map +1 -1
- package/dist/src/tools/memoryTool.d.ts +3 -3
- package/dist/src/tools/memoryTool.js +2 -2
- package/dist/src/tools/memoryTool.js.map +1 -1
- package/dist/src/tools/memoryTool.test.js +5 -2
- package/dist/src/tools/memoryTool.test.js.map +1 -1
- package/dist/src/tools/message-bus-integration.test.js +10 -37
- package/dist/src/tools/message-bus-integration.test.js.map +1 -1
- package/dist/src/tools/read-file.d.ts +2 -2
- package/dist/src/tools/read-file.js +1 -1
- package/dist/src/tools/read-file.js.map +1 -1
- package/dist/src/tools/read-file.test.js +3 -2
- package/dist/src/tools/read-file.test.js.map +1 -1
- package/dist/src/tools/read-many-files.d.ts +2 -2
- package/dist/src/tools/read-many-files.js +2 -3
- package/dist/src/tools/read-many-files.js.map +1 -1
- package/dist/src/tools/read-many-files.test.js +3 -2
- package/dist/src/tools/read-many-files.test.js.map +1 -1
- package/dist/src/tools/ripGrep.d.ts +2 -2
- package/dist/src/tools/ripGrep.js +3 -4
- package/dist/src/tools/ripGrep.js.map +1 -1
- package/dist/src/tools/ripGrep.test.js +7 -6
- package/dist/src/tools/ripGrep.test.js.map +1 -1
- package/dist/src/tools/shell.d.ts +3 -4
- package/dist/src/tools/shell.js +9 -35
- package/dist/src/tools/shell.js.map +1 -1
- package/dist/src/tools/shell.test.js +40 -57
- package/dist/src/tools/shell.test.js.map +1 -1
- package/dist/src/tools/tool-error.d.ts +4 -0
- package/dist/src/tools/tool-error.js +4 -0
- package/dist/src/tools/tool-error.js.map +1 -1
- package/dist/src/tools/tool-registry.d.ts +11 -6
- package/dist/src/tools/tool-registry.js +13 -8
- package/dist/src/tools/tool-registry.js.map +1 -1
- package/dist/src/tools/tool-registry.test.js +14 -10
- package/dist/src/tools/tool-registry.test.js.map +1 -1
- package/dist/src/tools/tools.d.ts +7 -5
- package/dist/src/tools/tools.js +15 -17
- package/dist/src/tools/tools.js.map +1 -1
- package/dist/src/tools/tools.test.js +3 -1
- package/dist/src/tools/tools.test.js.map +1 -1
- package/dist/src/tools/web-fetch.d.ts +2 -2
- package/dist/src/tools/web-fetch.js +4 -4
- package/dist/src/tools/web-fetch.js.map +1 -1
- package/dist/src/tools/web-fetch.test.js +17 -19
- package/dist/src/tools/web-fetch.test.js.map +1 -1
- package/dist/src/tools/web-search.d.ts +2 -2
- package/dist/src/tools/web-search.js +3 -4
- package/dist/src/tools/web-search.js.map +1 -1
- package/dist/src/tools/web-search.test.js +2 -1
- package/dist/src/tools/web-search.test.js.map +1 -1
- package/dist/src/tools/write-file.d.ts +2 -2
- package/dist/src/tools/write-file.js +5 -3
- package/dist/src/tools/write-file.js.map +1 -1
- package/dist/src/tools/write-file.test.js +4 -1
- package/dist/src/tools/write-file.test.js.map +1 -1
- package/dist/src/tools/write-todos.d.ts +2 -2
- package/dist/src/tools/write-todos.js +5 -4
- package/dist/src/tools/write-todos.js.map +1 -1
- package/dist/src/tools/write-todos.test.js +2 -1
- package/dist/src/tools/write-todos.test.js.map +1 -1
- package/dist/src/utils/apiConversionUtils.d.ts +12 -0
- package/dist/src/utils/apiConversionUtils.js +46 -0
- package/dist/src/utils/apiConversionUtils.js.map +1 -0
- package/dist/src/utils/apiConversionUtils.test.d.ts +6 -0
- package/dist/src/utils/apiConversionUtils.test.js +150 -0
- package/dist/src/utils/apiConversionUtils.test.js.map +1 -0
- package/dist/src/utils/editCorrector.test.js +1 -1
- package/dist/src/utils/editCorrector.test.js.map +1 -1
- package/dist/src/utils/editor.d.ts +2 -2
- package/dist/src/utils/editor.js +19 -2
- package/dist/src/utils/editor.js.map +1 -1
- package/dist/src/utils/editor.test.js +27 -4
- package/dist/src/utils/editor.test.js.map +1 -1
- package/dist/src/utils/events.d.ts +52 -1
- package/dist/src/utils/events.js +28 -0
- package/dist/src/utils/events.js.map +1 -1
- package/dist/src/utils/events.test.js +25 -0
- package/dist/src/utils/events.test.js.map +1 -1
- package/dist/src/utils/fileDiffUtils.d.ts +18 -0
- package/dist/src/utils/fileDiffUtils.js +37 -0
- package/dist/src/utils/fileDiffUtils.js.map +1 -0
- package/dist/src/utils/fileDiffUtils.test.d.ts +6 -0
- package/dist/src/utils/fileDiffUtils.test.js +84 -0
- package/dist/src/utils/fileDiffUtils.test.js.map +1 -0
- package/dist/src/utils/gitIgnoreParser.js +9 -10
- package/dist/src/utils/gitIgnoreParser.js.map +1 -1
- package/dist/src/utils/installationManager.test.js +11 -3
- package/dist/src/utils/installationManager.test.js.map +1 -1
- package/dist/src/utils/memoryDiscovery.js +1 -2
- package/dist/src/utils/memoryDiscovery.js.map +1 -1
- package/dist/src/utils/memoryDiscovery.test.js +9 -0
- package/dist/src/utils/memoryDiscovery.test.js.map +1 -1
- package/dist/src/utils/paths.d.ts +10 -0
- package/dist/src/utils/paths.js +20 -1
- package/dist/src/utils/paths.js.map +1 -1
- package/dist/src/utils/terminal.d.ts +2 -0
- package/dist/src/utils/terminal.js +6 -0
- package/dist/src/utils/terminal.js.map +1 -1
- package/dist/src/utils/tokenCalculation.js +20 -5
- package/dist/src/utils/tokenCalculation.js.map +1 -1
- package/dist/src/utils/tokenCalculation.test.js +11 -2
- package/dist/src/utils/tokenCalculation.test.js.map +1 -1
- package/dist/src/utils/tool-utils.test.js +2 -1
- package/dist/src/utils/tool-utils.test.js.map +1 -1
- package/dist/src/utils/userAccountManager.test.js +5 -5
- package/dist/src/utils/userAccountManager.test.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -2
- package/dist/docs/cli/configuration.md +0 -780
- package/dist/docs/get-started/deployment.md +0 -143
- package/dist/google-gemini-cli-core-0.24.0-nightly.20251227.37be16243.tgz +0 -0
- package/dist/src/agents/introspection-agent.js.map +0 -1
- package/dist/src/agents/introspection-agent.test.js.map +0 -1
- package/dist/src/agents/toml-loader.d.ts +0 -74
- package/dist/src/agents/toml-loader.js.map +0 -1
- package/dist/src/agents/toml-loader.test.js +0 -309
- package/dist/src/agents/toml-loader.test.js.map +0 -1
- package/dist/src/core/sessionHookTriggers.d.ts +0 -28
- package/dist/src/core/sessionHookTriggers.js +0 -68
- package/dist/src/core/sessionHookTriggers.js.map +0 -1
- package/dist/src/services/skillManager.js +0 -157
- package/dist/src/services/skillManager.js.map +0 -1
- package/dist/src/services/skillManager.test.js +0 -169
- package/dist/src/services/skillManager.test.js.map +0 -1
- package/dist/src/tools/smart-edit.d.ts +0 -78
- package/dist/src/tools/smart-edit.js +0 -722
- package/dist/src/tools/smart-edit.js.map +0 -1
- package/dist/src/tools/smart-edit.test.js +0 -591
- package/dist/src/tools/smart-edit.test.js.map +0 -1
- package/dist/src/utils/shell-permissions.d.ts +0 -52
- package/dist/src/utils/shell-permissions.js +0 -188
- package/dist/src/utils/shell-permissions.js.map +0 -1
- package/dist/src/utils/shell-permissions.test.js +0 -342
- package/dist/src/utils/shell-permissions.test.js.map +0 -1
- /package/dist/src/agents/{introspection-agent.test.d.ts → a2aUtils.test.d.ts} +0 -0
- /package/dist/src/agents/{toml-loader.test.d.ts → agentLoader.test.d.ts} +0 -0
- /package/dist/src/{services/skillManager.test.d.ts → agents/cli-help-agent.test.d.ts} +0 -0
- /package/dist/src/{tools/smart-edit.test.d.ts → availability/fallbackIntegration.test.d.ts} +0 -0
- /package/dist/src/{utils/shell-permissions.test.d.ts → code_assist/experiments/experiments_local.test.d.ts} +0 -0
|
@@ -18,45 +18,49 @@ Note: Workspace settings override user settings.
|
|
|
18
18
|
Here is a list of all the available settings, grouped by category and ordered as
|
|
19
19
|
they appear in the UI.
|
|
20
20
|
|
|
21
|
+
<!-- SETTINGS-AUTOGEN:START -->
|
|
22
|
+
|
|
21
23
|
### General
|
|
22
24
|
|
|
23
|
-
| UI Label | Setting | Description
|
|
24
|
-
| ------------------------------- | ---------------------------------- |
|
|
25
|
-
| Preview Features (e.g., models) | `general.previewFeatures` | Enable preview features (e.g., preview models).
|
|
26
|
-
| Vim Mode | `general.vimMode` | Enable Vim keybindings
|
|
27
|
-
| Disable Auto Update | `general.disableAutoUpdate` | Disable automatic updates
|
|
28
|
-
| Enable Prompt Completion | `general.enablePromptCompletion` | Enable AI-powered prompt completion suggestions while typing.
|
|
29
|
-
| Debug Keystroke Logging | `general.debugKeystrokeLogging` | Enable debug logging of keystrokes to the console.
|
|
30
|
-
| Session
|
|
31
|
-
| Enable Session Cleanup | `general.sessionRetention.enabled` | Enable automatic session cleanup. | `false` |
|
|
25
|
+
| UI Label | Setting | Description | Default |
|
|
26
|
+
| ------------------------------- | ---------------------------------- | ------------------------------------------------------------- | ------- |
|
|
27
|
+
| Preview Features (e.g., models) | `general.previewFeatures` | Enable preview features (e.g., preview models). | `false` |
|
|
28
|
+
| Vim Mode | `general.vimMode` | Enable Vim keybindings | `false` |
|
|
29
|
+
| Disable Auto Update | `general.disableAutoUpdate` | Disable automatic updates | `false` |
|
|
30
|
+
| Enable Prompt Completion | `general.enablePromptCompletion` | Enable AI-powered prompt completion suggestions while typing. | `false` |
|
|
31
|
+
| Debug Keystroke Logging | `general.debugKeystrokeLogging` | Enable debug logging of keystrokes to the console. | `false` |
|
|
32
|
+
| Enable Session Cleanup | `general.sessionRetention.enabled` | Enable automatic session cleanup | `false` |
|
|
32
33
|
|
|
33
34
|
### Output
|
|
34
35
|
|
|
35
|
-
| UI Label | Setting | Description | Default
|
|
36
|
-
| ------------- | --------------- | ------------------------------------------------------ |
|
|
37
|
-
| Output Format | `output.format` | The format of the CLI output. Can be `text` or `json`. | `text`
|
|
36
|
+
| UI Label | Setting | Description | Default |
|
|
37
|
+
| ------------- | --------------- | ------------------------------------------------------ | -------- |
|
|
38
|
+
| Output Format | `output.format` | The format of the CLI output. Can be `text` or `json`. | `"text"` |
|
|
38
39
|
|
|
39
40
|
### UI
|
|
40
41
|
|
|
41
|
-
| UI Label | Setting | Description
|
|
42
|
-
| ------------------------------ | ---------------------------------------- |
|
|
43
|
-
| Hide Window Title | `ui.hideWindowTitle` | Hide the window title bar
|
|
44
|
-
| Show Status in Title | `ui.showStatusInTitle` | Show Gemini CLI status and thoughts in the terminal window title
|
|
45
|
-
|
|
|
46
|
-
| Hide
|
|
47
|
-
| Hide
|
|
48
|
-
| Hide
|
|
49
|
-
| Hide
|
|
50
|
-
| Hide
|
|
51
|
-
| Hide
|
|
52
|
-
| Hide
|
|
53
|
-
|
|
|
54
|
-
| Show
|
|
55
|
-
| Show
|
|
56
|
-
|
|
|
57
|
-
|
|
|
58
|
-
|
|
|
59
|
-
| Screen
|
|
42
|
+
| UI Label | Setting | Description | Default |
|
|
43
|
+
| ------------------------------ | ---------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- |
|
|
44
|
+
| Hide Window Title | `ui.hideWindowTitle` | Hide the window title bar | `false` |
|
|
45
|
+
| Show Status in Title | `ui.showStatusInTitle` | Show Gemini CLI status and thoughts in the terminal window title | `false` |
|
|
46
|
+
| Show Home Directory Warning | `ui.showHomeDirectoryWarning` | Show a warning when running Gemini CLI in the home directory. | `true` |
|
|
47
|
+
| Hide Tips | `ui.hideTips` | Hide helpful tips in the UI | `false` |
|
|
48
|
+
| Hide Banner | `ui.hideBanner` | Hide the application banner | `false` |
|
|
49
|
+
| Hide Context Summary | `ui.hideContextSummary` | Hide the context summary (GEMINI.md, MCP servers) above the input. | `false` |
|
|
50
|
+
| Hide CWD | `ui.footer.hideCWD` | Hide the current working directory path in the footer. | `false` |
|
|
51
|
+
| Hide Sandbox Status | `ui.footer.hideSandboxStatus` | Hide the sandbox status indicator in the footer. | `false` |
|
|
52
|
+
| Hide Model Info | `ui.footer.hideModelInfo` | Hide the model name and context usage in the footer. | `false` |
|
|
53
|
+
| Hide Context Window Percentage | `ui.footer.hideContextPercentage` | Hides the context window remaining percentage. | `true` |
|
|
54
|
+
| Hide Footer | `ui.hideFooter` | Hide the footer from the UI | `false` |
|
|
55
|
+
| Show Memory Usage | `ui.showMemoryUsage` | Display memory usage information in the UI | `false` |
|
|
56
|
+
| Show Line Numbers | `ui.showLineNumbers` | Show line numbers in the chat. | `true` |
|
|
57
|
+
| Show Citations | `ui.showCitations` | Show citations for generated text in the chat. | `false` |
|
|
58
|
+
| Show Model Info In Chat | `ui.showModelInfoInChat` | Show the model name in the chat for each model turn. | `false` |
|
|
59
|
+
| Use Full Width | `ui.useFullWidth` | Use the entire width of the terminal for output. | `true` |
|
|
60
|
+
| Use Alternate Screen Buffer | `ui.useAlternateBuffer` | Use an alternate screen buffer for the UI, preserving shell history. | `false` |
|
|
61
|
+
| Incremental Rendering | `ui.incrementalRendering` | Enable incremental rendering for the UI. This option will reduce flickering but may cause rendering artifacts. Only supported when useAlternateBuffer is enabled. | `true` |
|
|
62
|
+
| Disable Loading Phrases | `ui.accessibility.disableLoadingPhrases` | Disable loading phrases for accessibility | `false` |
|
|
63
|
+
| Screen Reader Mode | `ui.accessibility.screenReader` | Render output in plain-text to be more screen reader accessible | `false` |
|
|
60
64
|
|
|
61
65
|
### IDE
|
|
62
66
|
|
|
@@ -69,7 +73,7 @@ they appear in the UI.
|
|
|
69
73
|
| UI Label | Setting | Description | Default |
|
|
70
74
|
| ----------------------- | ---------------------------- | -------------------------------------------------------------------------------------- | ------- |
|
|
71
75
|
| Max Session Turns | `model.maxSessionTurns` | Maximum number of user/model/tool turns to keep in a session. -1 means unlimited. | `-1` |
|
|
72
|
-
| Compression Threshold | `model.compressionThreshold` | The fraction of context usage at which to trigger context compression (e.g. 0.2, 0.3). | `0.
|
|
76
|
+
| Compression Threshold | `model.compressionThreshold` | The fraction of context usage at which to trigger context compression (e.g. 0.2, 0.3). | `0.5` |
|
|
73
77
|
| Skip Next Speaker Check | `model.skipNextSpeakerCheck` | Skip the next speaker check. | `true` |
|
|
74
78
|
|
|
75
79
|
### Context
|
|
@@ -85,29 +89,40 @@ they appear in the UI.
|
|
|
85
89
|
|
|
86
90
|
### Tools
|
|
87
91
|
|
|
88
|
-
| UI Label | Setting | Description | Default
|
|
89
|
-
| -------------------------------- | ------------------------------------ | --------------------------------------------------------------------------------------------------------------- |
|
|
90
|
-
| Enable Interactive Shell | `tools.shell.enableInteractiveShell` | Use node-pty for an interactive shell experience. Fallback to child_process still applies. | `true`
|
|
91
|
-
| Show Color | `tools.shell.showColor` | Show color in shell output. | `false`
|
|
92
|
-
| Auto Accept | `tools.autoAccept` | Automatically accept and execute tool calls that are considered safe (e.g., read-only operations). | `false`
|
|
93
|
-
| Use Ripgrep | `tools.useRipgrep` | Use ripgrep for file content search instead of the fallback implementation. Provides faster search performance. | `true`
|
|
94
|
-
| Enable Tool Output Truncation | `tools.enableToolOutputTruncation` | Enable truncation of large tool outputs. | `true`
|
|
95
|
-
| Tool Output Truncation Threshold | `tools.truncateToolOutputThreshold` | Truncate tool output if it is larger than this many characters. Set to -1 to disable. | `
|
|
96
|
-
| Tool Output Truncation Lines | `tools.truncateToolOutputLines` | The number of lines to keep when truncating tool output. | `
|
|
92
|
+
| UI Label | Setting | Description | Default |
|
|
93
|
+
| -------------------------------- | ------------------------------------ | --------------------------------------------------------------------------------------------------------------- | --------- |
|
|
94
|
+
| Enable Interactive Shell | `tools.shell.enableInteractiveShell` | Use node-pty for an interactive shell experience. Fallback to child_process still applies. | `true` |
|
|
95
|
+
| Show Color | `tools.shell.showColor` | Show color in shell output. | `false` |
|
|
96
|
+
| Auto Accept | `tools.autoAccept` | Automatically accept and execute tool calls that are considered safe (e.g., read-only operations). | `false` |
|
|
97
|
+
| Use Ripgrep | `tools.useRipgrep` | Use ripgrep for file content search instead of the fallback implementation. Provides faster search performance. | `true` |
|
|
98
|
+
| Enable Tool Output Truncation | `tools.enableToolOutputTruncation` | Enable truncation of large tool outputs. | `true` |
|
|
99
|
+
| Tool Output Truncation Threshold | `tools.truncateToolOutputThreshold` | Truncate tool output if it is larger than this many characters. Set to -1 to disable. | `4000000` |
|
|
100
|
+
| Tool Output Truncation Lines | `tools.truncateToolOutputLines` | The number of lines to keep when truncating tool output. | `1000` |
|
|
97
101
|
|
|
98
102
|
### Security
|
|
99
103
|
|
|
100
|
-
| UI Label
|
|
101
|
-
|
|
|
102
|
-
| Disable YOLO Mode
|
|
103
|
-
|
|
|
104
|
-
|
|
|
105
|
-
|
|
|
106
|
-
|
|
|
104
|
+
| UI Label | Setting | Description | Default |
|
|
105
|
+
| ------------------------------------- | ----------------------------------------------- | ------------------------------------------------------------------------------- | ------- |
|
|
106
|
+
| Disable YOLO Mode | `security.disableYoloMode` | Disable YOLO mode, even if enabled by a flag. | `false` |
|
|
107
|
+
| Allow Permanent Tool Approval | `security.enablePermanentToolApproval` | Enable the "Allow for all future sessions" option in tool confirmation dialogs. | `false` |
|
|
108
|
+
| Blocks extensions from Git | `security.blockGitExtensions` | Blocks installing and loading extensions from Git. | `false` |
|
|
109
|
+
| Folder Trust | `security.folderTrust.enabled` | Setting to track whether Folder trust is enabled. | `false` |
|
|
110
|
+
| Enable Environment Variable Redaction | `security.environmentVariableRedaction.enabled` | Enable redaction of environment variables that may contain secrets. | `false` |
|
|
107
111
|
|
|
108
112
|
### Experimental
|
|
109
113
|
|
|
110
|
-
| UI Label | Setting | Description
|
|
111
|
-
| ----------------------------------- | ------------------------------------------------------- |
|
|
112
|
-
|
|
|
113
|
-
| Codebase Investigator
|
|
114
|
+
| UI Label | Setting | Description | Default |
|
|
115
|
+
| ----------------------------------- | ------------------------------------------------------- | ----------------------------------------------------------------------------------- | ------- |
|
|
116
|
+
| Agent Skills | `experimental.skills` | Enable Agent Skills (experimental). | `false` |
|
|
117
|
+
| Enable Codebase Investigator | `experimental.codebaseInvestigatorSettings.enabled` | Enable the Codebase Investigator agent. | `true` |
|
|
118
|
+
| Codebase Investigator Max Num Turns | `experimental.codebaseInvestigatorSettings.maxNumTurns` | Maximum number of turns for the Codebase Investigator agent. | `10` |
|
|
119
|
+
| Use OSC 52 Paste | `experimental.useOSC52Paste` | Use OSC 52 sequence for pasting instead of clipboardy (useful for remote sessions). | `false` |
|
|
120
|
+
| Enable CLI Help Agent | `experimental.cliHelpAgentSettings.enabled` | Enable the CLI Help Agent. | `true` |
|
|
121
|
+
|
|
122
|
+
### Hooks
|
|
123
|
+
|
|
124
|
+
| UI Label | Setting | Description | Default |
|
|
125
|
+
| ------------------ | --------------------- | ------------------------------------------------ | ------- |
|
|
126
|
+
| Hook Notifications | `hooks.notifications` | Show visual indicators when hooks are executing. | `true` |
|
|
127
|
+
|
|
128
|
+
<!-- SETTINGS-AUTOGEN:END -->
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
# Agent Skills
|
|
2
|
+
|
|
3
|
+
_Note: This is an experimental feature enabled via `experimental.skills`. You
|
|
4
|
+
can also search for "Skills" within the `/settings` interactive UI to toggle
|
|
5
|
+
this and manage other skill-related settings._
|
|
6
|
+
|
|
7
|
+
Agent Skills allow you to extend Gemini CLI with specialized expertise,
|
|
8
|
+
procedural workflows, and task-specific resources. Based on the
|
|
9
|
+
[Agent Skills](https://agentskills.io) open standard, a "skill" is a
|
|
10
|
+
self-contained directory that packages instructions and assets into a
|
|
11
|
+
discoverable capability.
|
|
12
|
+
|
|
13
|
+
## Overview
|
|
14
|
+
|
|
15
|
+
Unlike general context files ([`GEMINI.md`](./gemini-md.md)), which provide
|
|
16
|
+
persistent project-wide background, Skills represent **on-demand expertise**.
|
|
17
|
+
This allows Gemini to maintain a vast library of specialized capabilities—such
|
|
18
|
+
as security auditing, cloud deployments, or codebase migrations—without
|
|
19
|
+
cluttering the model's immediate context window.
|
|
20
|
+
|
|
21
|
+
Gemini autonomously decides when to employ a skill based on your request and the
|
|
22
|
+
skill's description. When a relevant skill is identified, the model "pulls in"
|
|
23
|
+
the full instructions and resources required to complete the task using the
|
|
24
|
+
`activate_skill` tool.
|
|
25
|
+
|
|
26
|
+
## Key Benefits
|
|
27
|
+
|
|
28
|
+
- **Shared Expertise:** Package complex workflows (like a specific team's PR
|
|
29
|
+
review process) into a folder that anyone can use.
|
|
30
|
+
- **Repeatable Workflows:** Ensure complex multi-step tasks are performed
|
|
31
|
+
consistently by providing a procedural framework.
|
|
32
|
+
- **Resource Bundling:** Include scripts, templates, or example data alongside
|
|
33
|
+
instructions so the agent has everything it needs.
|
|
34
|
+
- **Progressive Disclosure:** Only skill metadata (name and description) is
|
|
35
|
+
loaded initially. Detailed instructions and resources are only disclosed when
|
|
36
|
+
the model explicitly activates the skill, saving context tokens.
|
|
37
|
+
|
|
38
|
+
## Skill Discovery Tiers
|
|
39
|
+
|
|
40
|
+
Gemini CLI discovers skills from three primary locations:
|
|
41
|
+
|
|
42
|
+
1. **Project Skills** (`.gemini/skills/`): Project-specific skills that are
|
|
43
|
+
typically committed to version control and shared with the team.
|
|
44
|
+
2. **User Skills** (`~/.gemini/skills/`): Personal skills available across all
|
|
45
|
+
your projects.
|
|
46
|
+
3. **Extension Skills**: Skills bundled within installed
|
|
47
|
+
[extensions](../extensions/index.md).
|
|
48
|
+
|
|
49
|
+
**Precedence:** If multiple skills share the same name, higher-precedence
|
|
50
|
+
locations override lower ones: **Project > User > Extension**.
|
|
51
|
+
|
|
52
|
+
## Managing Skills
|
|
53
|
+
|
|
54
|
+
### In an Interactive Session
|
|
55
|
+
|
|
56
|
+
Use the `/skills` slash command to view and manage available expertise:
|
|
57
|
+
|
|
58
|
+
- `/skills list` (default): Shows all discovered skills and their status.
|
|
59
|
+
- `/skills disable <name>`: Prevents a specific skill from being used.
|
|
60
|
+
- `/skills enable <name>`: Re-enables a disabled skill.
|
|
61
|
+
- `/skills reload`: Refreshes the list of discovered skills from all tiers.
|
|
62
|
+
|
|
63
|
+
_Note: `/skills disable` and `/skills enable` default to the `user` scope. Use
|
|
64
|
+
`--scope project` to manage project-specific settings._
|
|
65
|
+
|
|
66
|
+
### From the Terminal
|
|
67
|
+
|
|
68
|
+
The `gemini skills` command provides management utilities:
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
# List all discovered skills
|
|
72
|
+
gemini skills list
|
|
73
|
+
|
|
74
|
+
# Enable/disable skills. Can use --scope to specify project or user
|
|
75
|
+
gemini skills enable my-expertise
|
|
76
|
+
gemini skills disable my-expertise
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
## Creating a Skill
|
|
80
|
+
|
|
81
|
+
A skill is a directory containing a `SKILL.md` file at its root. This file uses
|
|
82
|
+
YAML frontmatter for metadata and Markdown for instructions.
|
|
83
|
+
|
|
84
|
+
### Basic Structure
|
|
85
|
+
|
|
86
|
+
```markdown
|
|
87
|
+
---
|
|
88
|
+
name: <unique-name>
|
|
89
|
+
description: <what the skill does and when Gemini should use it>
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
<your instructions for how the agent should behave / use the skill>
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
- **`name`**: A unique identifier (lowercase, alphanumeric, and dashes).
|
|
96
|
+
- **`description`**: The most critical field. Gemini uses this to decide when
|
|
97
|
+
the skill is relevant. Be specific about the expertise provided.
|
|
98
|
+
- **Body**: Everything below the second `---` is injected as expert procedural
|
|
99
|
+
guidance for the model.
|
|
100
|
+
|
|
101
|
+
### Example: Team Code Reviewer
|
|
102
|
+
|
|
103
|
+
```markdown
|
|
104
|
+
---
|
|
105
|
+
name: code-reviewer
|
|
106
|
+
description:
|
|
107
|
+
Expertise in reviewing code for style, security, and performance. Use when the
|
|
108
|
+
user asks for "feedback," a "review," or to "check" their changes.
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
# Code Reviewer
|
|
112
|
+
|
|
113
|
+
You are an expert code reviewer. When reviewing code, follow this workflow:
|
|
114
|
+
|
|
115
|
+
1. **Analyze**: Review the staged changes or specific files provided. Ensure
|
|
116
|
+
that the changes are scoped properly and represent minimal changes required
|
|
117
|
+
to address the issue.
|
|
118
|
+
2. **Style**: Ensure code follows the project's conventions and idiomatic
|
|
119
|
+
patterns as described in the `GEMINI.md` file.
|
|
120
|
+
3. **Security**: Flag any potential security vulnerabilities.
|
|
121
|
+
4. **Tests**: Verify that new logic has corresponding test coverage and that
|
|
122
|
+
the test coverage adequately validates the changes.
|
|
123
|
+
|
|
124
|
+
Provide your feedback as a concise bulleted list of "Strengths" and
|
|
125
|
+
"Opportunities."
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
### Resource Conventions
|
|
129
|
+
|
|
130
|
+
While you can structure your skill directory however you like, the Agent Skills
|
|
131
|
+
standard encourages these conventions:
|
|
132
|
+
|
|
133
|
+
- **`scripts/`**: Executable scripts (bash, python, node) the agent can run.
|
|
134
|
+
- **`references/`**: Static documentation, schemas, or example data for the
|
|
135
|
+
agent to consult.
|
|
136
|
+
- **`assets/`**: Code templates, boilerplate, or binary resources.
|
|
137
|
+
|
|
138
|
+
When a skill is activated, Gemini CLI provides the model with a tree view of the
|
|
139
|
+
entire skill directory, allowing it to discover and utilize these assets.
|
|
140
|
+
|
|
141
|
+
## How it Works (Security & Privacy)
|
|
142
|
+
|
|
143
|
+
1. **Discovery**: At the start of a session, Gemini CLI scans the discovery
|
|
144
|
+
tiers and injects the name and description of all enabled skills into the
|
|
145
|
+
system prompt.
|
|
146
|
+
2. **Activation**: When Gemini identifies a task matching a skill's
|
|
147
|
+
description, it calls the `activate_skill` tool.
|
|
148
|
+
3. **Consent**: You will see a confirmation prompt in the UI detailing the
|
|
149
|
+
skill's name, purpose, and the directory path it will gain access to.
|
|
150
|
+
4. **Injection**: Upon your approval:
|
|
151
|
+
- The `SKILL.md` body and folder structure is added to the conversation
|
|
152
|
+
history.
|
|
153
|
+
- The skill's directory is added to the agent's allowed file paths, granting
|
|
154
|
+
it permission to read any bundled assets.
|
|
155
|
+
5. **Execution**: The model proceeds with the specialized expertise active. It
|
|
156
|
+
is instructed to prioritize the skill's procedural guidance within reason.
|
|
@@ -297,7 +297,7 @@ Captures startup configuration and user prompt submissions.
|
|
|
297
297
|
|
|
298
298
|
#### Tools
|
|
299
299
|
|
|
300
|
-
Captures tool executions, output truncation, and
|
|
300
|
+
Captures tool executions, output truncation, and Edit behavior.
|
|
301
301
|
|
|
302
302
|
- `gemini_cli.tool_call`: Emitted for each tool (function) call.
|
|
303
303
|
- **Attributes**:
|
|
@@ -325,11 +325,11 @@ Captures tool executions, output truncation, and Smart Edit behavior.
|
|
|
325
325
|
- `lines` (int)
|
|
326
326
|
- `prompt_id` (string)
|
|
327
327
|
|
|
328
|
-
- `gemini_cli.
|
|
328
|
+
- `gemini_cli.edit_strategy`: Edit strategy chosen.
|
|
329
329
|
- **Attributes**:
|
|
330
330
|
- `strategy` (string)
|
|
331
331
|
|
|
332
|
-
- `gemini_cli.
|
|
332
|
+
- `gemini_cli.edit_correction`: Edit correction result.
|
|
333
333
|
- **Attributes**:
|
|
334
334
|
- `correction` ("success" | "failure")
|
|
335
335
|
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
# Getting Started with Agent Skills
|
|
2
|
+
|
|
3
|
+
Agent Skills allow you to extend Gemini CLI with specialized expertise. This
|
|
4
|
+
tutorial will guide you through creating your first skill, enabling it, and
|
|
5
|
+
using it in a session.
|
|
6
|
+
|
|
7
|
+
## 1. Enable Agent Skills
|
|
8
|
+
|
|
9
|
+
Agent Skills are currently an experimental feature and must be enabled in your
|
|
10
|
+
settings.
|
|
11
|
+
|
|
12
|
+
### Via the interactive UI
|
|
13
|
+
|
|
14
|
+
1. Start a Gemini CLI session by running `gemini`.
|
|
15
|
+
2. Type `/settings` to open the interactive settings dialog.
|
|
16
|
+
3. Search for "Skills".
|
|
17
|
+
4. Toggle **Agent Skills** to `true`.
|
|
18
|
+
5. Press `Esc` to save and exit. You may need to restart the CLI for the
|
|
19
|
+
changes to take effect.
|
|
20
|
+
|
|
21
|
+
### Via `settings.json`
|
|
22
|
+
|
|
23
|
+
Alternatively, you can manually edit your global settings file at
|
|
24
|
+
`~/.gemini/settings.json` (create it if it doesn't exist):
|
|
25
|
+
|
|
26
|
+
```json
|
|
27
|
+
{
|
|
28
|
+
"experimental": {
|
|
29
|
+
"skills": true
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## 2. Create Your First Skill
|
|
35
|
+
|
|
36
|
+
A skill is a directory containing a `SKILL.md` file. Let's create an **API
|
|
37
|
+
Auditor** skill that helps you verify if local or remote endpoints are
|
|
38
|
+
responding correctly.
|
|
39
|
+
|
|
40
|
+
1. **Create the skill directory structure:**
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
mkdir -p .gemini/skills/api-auditor/scripts
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
2. **Create the `SKILL.md` file:** Create a file at
|
|
47
|
+
`.gemini/skills/api-auditor/SKILL.md` with the following content:
|
|
48
|
+
|
|
49
|
+
```markdown
|
|
50
|
+
---
|
|
51
|
+
name: api-auditor
|
|
52
|
+
description:
|
|
53
|
+
Expertise in auditing and testing API endpoints. Use when the user asks to
|
|
54
|
+
"check", "test", or "audit" a URL or API.
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
# API Auditor Instructions
|
|
58
|
+
|
|
59
|
+
You act as a QA engineer specialized in API reliability. When this skill is
|
|
60
|
+
active, you MUST:
|
|
61
|
+
|
|
62
|
+
1. **Audit**: Use the bundled `scripts/audit.js` utility to check the
|
|
63
|
+
status of the provided URL.
|
|
64
|
+
2. **Report**: Analyze the output (status codes, latency) and explain any
|
|
65
|
+
failures in plain English.
|
|
66
|
+
3. **Secure**: Remind the user if they are testing a sensitive endpoint
|
|
67
|
+
without an `https://` protocol.
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
3. **Create the bundled Node.js script:** Create a file at
|
|
71
|
+
`.gemini/skills/api-auditor/scripts/audit.js`. This script will be used by
|
|
72
|
+
the agent to perform the actual check:
|
|
73
|
+
|
|
74
|
+
```javascript
|
|
75
|
+
// .gemini/skills/api-auditor/scripts/audit.js
|
|
76
|
+
const url = process.argv[2];
|
|
77
|
+
|
|
78
|
+
if (!url) {
|
|
79
|
+
console.error('Usage: node audit.js <url>');
|
|
80
|
+
process.exit(1);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
console.log(`Auditing ${url}...`);
|
|
84
|
+
fetch(url, { method: 'HEAD' })
|
|
85
|
+
.then((r) => console.log(`Result: Success (Status ${r.status})`))
|
|
86
|
+
.catch((e) => console.error(`Result: Failed (${e.message})`));
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
## 3. Verify the Skill is Discovered
|
|
90
|
+
|
|
91
|
+
Use the `/skills` slash command (or `gemini skills list` from your terminal) to
|
|
92
|
+
see if Gemini CLI has found your new skill.
|
|
93
|
+
|
|
94
|
+
In a Gemini CLI session:
|
|
95
|
+
|
|
96
|
+
```
|
|
97
|
+
/skills list
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
You should see `api-auditor` in the list of available skills.
|
|
101
|
+
|
|
102
|
+
## 4. Use the Skill in a Chat
|
|
103
|
+
|
|
104
|
+
Now, let's see the skill in action. Start a new session and ask a question about
|
|
105
|
+
an endpoint.
|
|
106
|
+
|
|
107
|
+
**User:** "Can you audit http://geminili.com"
|
|
108
|
+
|
|
109
|
+
Gemini will recognize the request matches the `api-auditor` description and will
|
|
110
|
+
ask for your permission to activate it.
|
|
111
|
+
|
|
112
|
+
**Model:** (After calling `activate_skill`) "I've activated the **api-auditor**
|
|
113
|
+
skill. I'll run the audit script now..."
|
|
114
|
+
|
|
115
|
+
Gemini will then use the `run_shell_command` tool to execute your bundled Node
|
|
116
|
+
script:
|
|
117
|
+
|
|
118
|
+
`node .gemini/skills/api-auditor/scripts/audit.js http://geminili.com`
|
|
119
|
+
|
|
120
|
+
## Next Steps
|
|
121
|
+
|
|
122
|
+
- Explore [Agent Skills Authoring Guide](../skills.md#creating-a-skill) to learn
|
|
123
|
+
about more advanced skill features.
|
|
124
|
+
- Learn how to share skills via [Extensions](../../extensions/index.md).
|
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
This page contains tutorials for interacting with Gemini CLI.
|
|
4
4
|
|
|
5
|
+
## Agent Skills
|
|
6
|
+
|
|
7
|
+
- [Getting Started with Agent Skills](./tutorials/skills-getting-started.md)
|
|
8
|
+
|
|
5
9
|
## Setting up a Model Context Protocol (MCP) server
|
|
6
10
|
|
|
7
11
|
> [!CAUTION] Before using a third-party MCP server, ensure you trust its source
|
|
@@ -258,8 +258,9 @@ The Gemini CLI ships with a set of default policies to provide a safe
|
|
|
258
258
|
out-of-the-box experience.
|
|
259
259
|
|
|
260
260
|
- **Read-only tools** (like `read_file`, `glob`) are generally **allowed**.
|
|
261
|
-
- **Agent delegation** (like `delegate_to_agent`)
|
|
262
|
-
|
|
261
|
+
- **Agent delegation** (like `delegate_to_agent`) defaults to **`ask_user`** to
|
|
262
|
+
ensure remote agents can prompt for confirmation, but local sub-agent actions
|
|
263
|
+
are executed silently and checked individually.
|
|
263
264
|
- **Write tools** (like `write_file`, `run_shell_command`) default to
|
|
264
265
|
**`ask_user`**.
|
|
265
266
|
- In **`yolo`** mode, a high-priority rule allows all tools.
|
|
@@ -165,7 +165,7 @@ The file has the following structure:
|
|
|
165
165
|
- `version`: The version of the extension.
|
|
166
166
|
- `mcpServers`: A map of MCP servers to settings. The key is the name of the
|
|
167
167
|
server, and the value is the server configuration. These servers will be
|
|
168
|
-
loaded on startup just like MCP servers
|
|
168
|
+
loaded on startup just like MCP servers settings in a
|
|
169
169
|
[`settings.json` file](../get-started/configuration.md). If both an extension
|
|
170
170
|
and a `settings.json` file settings an MCP server with the same name, the
|
|
171
171
|
server defined in the `settings.json` file takes precedence.
|
|
@@ -226,13 +226,13 @@ key. The value will be saved to a `.env` file in the extension's directory
|
|
|
226
226
|
You can view a list of an extension's settings by running:
|
|
227
227
|
|
|
228
228
|
```
|
|
229
|
-
gemini extensions
|
|
229
|
+
gemini extensions list
|
|
230
230
|
```
|
|
231
231
|
|
|
232
232
|
and you can update a given setting using:
|
|
233
233
|
|
|
234
234
|
```
|
|
235
|
-
gemini extensions
|
|
235
|
+
gemini extensions config <extension name> [setting name] [--scope <scope>]
|
|
236
236
|
```
|
|
237
237
|
|
|
238
238
|
- `--scope`: The scope to set the setting in (`user` or `workspace`). This is
|
|
@@ -263,6 +263,54 @@ Would provide these commands:
|
|
|
263
263
|
- `/deploy` - Shows as `[gcp] Custom command from deploy.toml` in help
|
|
264
264
|
- `/gcs:sync` - Shows as `[gcp] Custom command from sync.toml` in help
|
|
265
265
|
|
|
266
|
+
### Hooks
|
|
267
|
+
|
|
268
|
+
Extensions can provide [hooks](../hooks/index.md) to intercept and customize
|
|
269
|
+
Gemini CLI behavior at specific lifecycle events. Hooks provided by an extension
|
|
270
|
+
must be defined in a `hooks/hooks.json` file within the extension directory.
|
|
271
|
+
|
|
272
|
+
> [!IMPORTANT] Hooks are not defined directly in `gemini-extension.json`. The
|
|
273
|
+
> CLI specifically looks for the `hooks/hooks.json` file.
|
|
274
|
+
|
|
275
|
+
#### Directory structure
|
|
276
|
+
|
|
277
|
+
```
|
|
278
|
+
.gemini/extensions/my-extension/
|
|
279
|
+
├── gemini-extension.json
|
|
280
|
+
└── hooks/
|
|
281
|
+
└── hooks.json
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
#### `hooks/hooks.json` format
|
|
285
|
+
|
|
286
|
+
The `hooks.json` file contains a `hooks` object where keys are
|
|
287
|
+
[event names](../hooks/reference.md#supported-events) and values are arrays of
|
|
288
|
+
[hook definitions](../hooks/reference.md#hook-definition).
|
|
289
|
+
|
|
290
|
+
```json
|
|
291
|
+
{
|
|
292
|
+
"hooks": {
|
|
293
|
+
"before_agent": [
|
|
294
|
+
{
|
|
295
|
+
"hooks": [
|
|
296
|
+
{
|
|
297
|
+
"type": "command",
|
|
298
|
+
"command": "node ${extensionPath}/scripts/setup.js",
|
|
299
|
+
"name": "Extension Setup"
|
|
300
|
+
}
|
|
301
|
+
]
|
|
302
|
+
}
|
|
303
|
+
]
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
#### Supported variables
|
|
309
|
+
|
|
310
|
+
Just like `gemini-extension.json`, the `hooks/hooks.json` file supports
|
|
311
|
+
[variable substitution](#variables). This is particularly useful for referencing
|
|
312
|
+
scripts within the extension directory using `${extensionPath}`.
|
|
313
|
+
|
|
266
314
|
### Conflict resolution
|
|
267
315
|
|
|
268
316
|
Extension commands have the lowest precedence. When a conflict occurs with user
|
|
@@ -278,11 +326,12 @@ For example, if both a user and the `gcp` extension define a `deploy` command:
|
|
|
278
326
|
- `/gcp.deploy` - Executes the extension's deploy command (marked with `[gcp]`
|
|
279
327
|
tag)
|
|
280
328
|
|
|
281
|
-
|
|
329
|
+
### Variables
|
|
282
330
|
|
|
283
|
-
Gemini CLI extensions allow variable substitution in
|
|
284
|
-
This can be useful if e.g., you
|
|
285
|
-
|
|
331
|
+
Gemini CLI extensions allow variable substitution in both
|
|
332
|
+
`gemini-extension.json` and `hooks/hooks.json`. This can be useful if e.g., you
|
|
333
|
+
need the current directory to run an MCP server or hook script using
|
|
334
|
+
`"cwd": "${extensionPath}${/}run.ts"`.
|
|
286
335
|
|
|
287
336
|
**Supported variables:**
|
|
288
337
|
|
|
@@ -291,3 +340,4 @@ using `"cwd": "${extensionPath}${/}run.ts"`.
|
|
|
291
340
|
| `${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. |
|
|
292
341
|
| `${workspacePath}` | The fully-qualified path of the current workspace. |
|
|
293
342
|
| `${/} or ${pathSeparator}` | The path separator (differs per OS). |
|
|
343
|
+
| `${process.execPath}` | The path to the Node.js binary executing the CLI. |
|