summaryrefslogtreecommitdiff
path: root/packages/cli/src/config/settings.ts
AgeCommit message (Collapse)Author
2025-07-15Enable tool summarization only when explicitly set in settings.json (#4140)anj-s
Co-authored-by: matt korwel <[email protected]>
2025-07-14Add feature flag for IDE integration (#3927)Shreya Keshive
Co-authored-by: Scott Densmore <[email protected]>
2025-07-14feat(cli): add hideBanner setting to disable startup banner (#2803)K
Co-authored-by: Pascal Birchler <[email protected]>
2025-07-11Add support for specifying maxSessionTurns via the settings configuration โ†ตanj-s
(#3507)
2025-07-09Add system-wide settings config for administrators (#3498)christine betts
Co-authored-by: Jack Wotherspoon <[email protected]>
2025-07-07Enable Gemini CLI to reuse user's auth in Cloud Shell (#3070)Marat Boshernitsan
2025-07-07fix: respect env variables in .env for settings.json variable substitution โ†ตJack Wotherspoon
(#3416)
2025-06-29feat(cli): Add hideTips setting (#1524)Marcin Jahn
Co-authored-by: Allen Hutchison <[email protected]>
2025-06-25fix: prepublish changes to package names (#1420)Brandon Keiji
2025-06-24Jacob314/max old space (#1314)Jacob Richman
2025-06-24Refactor usage statistics to be a top-level setting (#1363)Jerop Kipruto
This commit refactors the `usageStatisticsEnabled` setting from a sub-property of the `telemetry` configuration to a top-level setting. This change simplifies the configuration by decoupling usage statistics from the telemetry settings. The documentation has also been updated to reflect this change.
2025-06-22Add setting enableRecursiveFileSearch to control @-file completion (#1290)Billy Biggs
2025-06-20Make checkpoints configurable in settings.json (#1251)Louis Jimenez
2025-06-19Auth First Run (#1207)matt korwel
Co-authored-by: Tommaso Sciortino <[email protected]> Co-authored-by: N. Taylor Mullen <[email protected]>
2025-06-15Add telemetry command and refactor telemetry settings (#1060)Jerop Kipruto
#750 ### Telemetry Settings Refactors telemetry configuration to use a nested `telemetry` object in `settings.json`, for example: ```json { "telemetry": { "enabled": true, "target": "gcp" "log-prompts": "true" }, "sandbox": false } ``` The above includes - Centralized telemetry settings under a `telemetry` object in `settings.json`. - CLI flags for the `gemini` command to override all telemetry sub-settings: - `--telemetry` / `--no-telemetry` - `--telemetry-target <local|gcp>` - `--telemetry-otlp-endpoint <URL>` - `--telemetry-log-prompts` / `--no-telemetry-log-prompts` - Updates `packages/cli/src/config/config.ts` and `packages/core/src/config/config.ts` to read from the new settings structure and respect the new CLI flags. - Modifies `scripts/handle-telemetry.js`, `scripts/local_telemetry.js`, and `scripts/telemetry_utils.js` to align with the new settings structure. - Updates `docs/core/telemetry.md` to reflect the new settings structure, CLI flags, and order of precedence. - Renames `logUserPromptsEnabled` to `logPrompts` for brevity. ### `npm run telemetry` Add a new `npm run telemetry` command that uses `scripts/telemetry.js`, automates the entire process of setting up a local and GCP telemetry pipelines, including configuring the necessary settings in the `.gemini/settings.json` workspace file and installing required binaries (e.g. `otelcol-contrib`). --- ```shell $ npm run telemetry -- --target=gcp > [email protected] telemetry > node scripts/telemetry.js --target=gcp โš™๏ธ Using command-line target: gcp ๐Ÿš€ Running telemetry script for target: gcp. โœจ Starting Local Telemetry Exporter for Google Cloud โœจ โš™๏ธ Enabled telemetry in workspace settings. ๐Ÿ”ง Set telemetry OTLP endpoint to http://localhost:4317. ๐ŸŽฏ Set telemetry target to gcp. โœ… Workspace settings updated. โœ… Using Google Cloud Project ID: foo-bar ๐Ÿ”‘ Please ensure you are authenticated with Google Cloud: - Run `gcloud auth application-default login` OR ensure `GOOGLE_APPLICATION_CREDENTIALS` environment variable points to a valid service account key. - The account needs "Cloud Trace Agent", "Monitoring Metric Writer", and "Logs Writer" roles. โœ… otelcol-contrib already exists at /Users/jerop/github/gemini-cli/.gemini/otel/bin/otelcol-contrib ๐Ÿงน Cleaning up old processes and logs... โœ… Deleted old GCP collector log. ๐Ÿ“„ Wrote OTEL collector config to /Users/jerop/github/gemini-cli/.gemini/otel/collector-gcp.yaml ๐Ÿš€ Starting OTEL collector for GCP... Logs: /Users/jerop/github/gemini-cli/.gemini/otel/collector-gcp.log โณ Waiting for OTEL collector to start (PID: 17013)... โœ… OTEL collector started successfully on port 4317. โœจ Local OTEL collector for GCP is running. ๐Ÿš€ To send telemetry, run the Gemini CLI in a separate terminal window. ๐Ÿ“„ Collector logs are being written to: /Users/jerop/github/gemini-cli/.gemini/otel/collector-gcp.log ๐Ÿ“Š View your telemetry data in Google Cloud Console: - Logs: https://console.cloud.google.com/logs/query;query=logName%3D%22projects%2Ffoo-bar%2Flogs%2Fgemini_cli%22?project=foo-bar - Metrics: https://console.cloud.google.com/monitoring/metrics-explorer?project=foo-bar - Traces: https://console.cloud.google.com/traces/list?project=foo-bar Press Ctrl+C to exit. ^C ๐Ÿ‘‹ Shutting down... โš™๏ธ Disabled telemetry in workspace settings. ๐Ÿ”ง Cleared telemetry OTLP endpoint. ๐ŸŽฏ Cleared telemetry target. โœ… Workspace settings updated. ๐Ÿ›‘ Stopping otelcol-contrib (PID: 17013)... โœ… otelcol-contrib stopped. ```
2025-06-14feat: Add custom URL support for the /bug command (#1017)Allen Hutchison
2025-06-13Add a local telemetry launcher (#1015)Keir Mierle
2025-06-13Update contextFileName to support an optional list of strings (#1001)Billy Biggs
2025-06-13cleanup unused `allowBuildArtifacts` (#1010)Anas H. Sulaiman
2025-06-12remove enable editor flag (#984)Leo
2025-06-11feat: External editor settings (#882)Leo
2025-06-11add excludeTools flag to settings.json config (#957)JingboWang1997-1
2025-06-10Add a window title when CLI is launched (#787)Mark McDonald
2025-06-08feat: Add flow to allow modifying edits during edit tool call (#808)Leo
2025-06-07refactor: rename gemini-code to gemini-cli (#822)cperry-goog
2025-06-06Exit with an error message if parsing settings.json fails. (#747)Jacob Richman
2025-06-06Refactor: Improve env var resolution in settingsjerop
Refactors the `resolveEnvVarsInObject` function in settings to explicitly handle primitive types (null, undefined, boolean, number) at the beginning of the function. This clarifies the logic for subsequent string, array, and object processing.
2025-06-06feat: Enable environment variable substitution in settingsjerop
This commit introduces the ability to use system environment variables within the settings files (e.g., `settings.json`). Users can now reference environment variables using the `${VAR_NAME}` syntax. This enhancement improves security and flexibility, particularly for configurations like MCP server settings, which often require sensitive tokens. Previously, to configure an MCP server, a token might be directly embedded: ```json "mcpServers": { "github": { "env": { "GITHUB_PERSONAL_ACCESS_TOKEN": "pat_abc123" } // ... } } ``` With this change, the same configuration can securely reference an environment variable: ```json "mcpServers": { "github": { "env": { "GITHUB_PERSONAL_ACCESS_TOKEN": "${GITHUB_PERSONAL_ACCESS_TOKEN}" } // ... } } ``` This allows users to avoid storing secrets directly in configuration files.
2025-06-05OpenTelemetry Integration & Telemetry Control Flag (#762)Jerop Kipruto
2025-06-04CLI_TITLE env var for setting the CLI title (#748)Tommaso Sciortino
2025-06-04feat(accessibility): Add option to disable loading phrases (#745)N. Taylor Mullen
2025-06-04Ignore folders files (#651)Keith Ballinger
# Add .gitignore-Aware File Filtering to gemini-cli This pull request introduces .gitignore-based file filtering to the gemini-cli, ensuring that git-ignored files are automatically excluded from file-related operations and suggestions throughout the CLI. The update enhances usability, reduces noise from build artifacts and dependencies, and provides new configuration options for fine-tuning file discovery. Key Improvements .gitignore File Filtering All @ (at) commands, file completions, and core discovery tools now honor .gitignore patterns by default. Git-ignored files (such as node_modules/, dist/, .env, and .git) are excluded from results unless explicitly overridden. The behavior can be customized via a new fileFiltering section in settings.json, including options for: Turning .gitignore respect on/off. Adding custom ignore patterns. Allowing or excluding build artifacts. Configuration & Documentation Updates settings.json schema extended with fileFiltering options. Documentation updated to explain new filtering controls and usage patterns. Testing New and updated integration/unit tests for file filtering logic, configuration merging, and edge cases. Test coverage ensures .gitignore filtering works as intended across different workflows. Internal Refactoring Core file discovery logic refactored for maintainability and extensibility. Underlying tools (ls, glob, read-many-files) now support git-aware filtering out of the box. Co-authored-by: N. Taylor Mullen <[email protected]>
2025-06-02feat(cli): Allow custom title in CLI header (#706)Scott Densmore
2025-06-02feat(cli): add pro model availability check and fallback to flash (#608)Allen Hutchison
2025-05-31feat: allow custom filename for context files (#654)Allen Hutchison
Co-authored-by: N. Taylor Mullen <[email protected]>
2025-05-31Update default & ANSI theme names (#637)Miguel Solorio
2025-05-30Rename server->core (#638)Tommaso Sciortino
2025-05-30feat: add --show_memory_usage flag to display memory usage in status bar (#606)Jacob Richman
2025-05-18allow comments in settings.jsonolcan
2025-05-17ability to override core system prompt (via .gemini/system.md) and specify โ†ตOlcan
core tools via coreTools setting (e.g. coreTools:["ls", "GrepTool", ...]) ; added tests, but did not update docs for now (#413)
2025-05-17added timeout setting to mcp server config, also switched to custom config โ†ตOlcan
type without "stderr" field that does not make sense in settings (#410)
2025-05-16improved mcp support, including standard "mcpServers" setting with multiple โ†ตOlcan
named servers with command/args/env/cwd (#392)
2025-05-05support for mcp toolsolcan
2025-05-05support for discovered tools using project settings for discovery and call โ†ตolcan
commands
2025-05-02sandbox setting and argument (#243)Olcan
2025-05-01mount user settings in sandbox (#239)Olcan
2025-05-01Save settings to ~/.gemini/settings.json and optionally โ†ตJacob Richman
/your/workspace/.gemini/settings.json (#237)