Commit Graph

67 Commits

Author SHA1 Message Date
jerop 8c28250bb3 Refactor: Improve env var resolution in settings
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-06 11:47:37 -04:00
jerop 4e9d365407 feat: Enable environment variable substitution in settings
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-06 11:47:37 -04:00
Jerop Kipruto 2ebf2fbc82
OpenTelemetry Integration & Telemetry Control Flag (#762) 2025-06-05 13:04:25 -07:00
Eddie Santos e02868bb1a
Bump default model to `gemini-2.5-pro-preview-06-05` (#765) 2025-06-05 11:52:36 -07:00
Eddie Santos 422c763a55
Add support for `.geminiignore` file (#757) 2025-06-05 10:15:27 -07:00
Tommaso Sciortino 4192cfb092
CLI_TITLE env var for setting the CLI title (#748) 2025-06-04 10:44:50 -07:00
N. Taylor Mullen 44aff769a3
Bring back 2.5-pro usage (#744)
https://chat.google.com/room/AAQApBm33UQ/8DQw4Ykp8f0/8DQw4Ykp8f0?cls=10
2025-06-04 09:29:14 -07:00
N. Taylor Mullen afc30e314f
feat(accessibility): Add option to disable loading phrases (#745) 2025-06-04 07:46:57 +00:00
Keith Ballinger c313762ba0
Ignore folders files (#651)
# 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 <ntaylormullen@google.com>
2025-06-04 04:40:46 +00:00
Olcan 9df94103ac
remove noop code (#728) 2025-06-03 13:47:53 -07:00
N. Taylor Mullen 080af01715
Fix flash preview (#723) 2025-06-03 18:01:59 +00:00
N. Taylor Mullen c5099e9025
Workaround Gemini API break - Use flash 04-17 (#721) 2025-06-03 17:47:20 +00:00
Scott Densmore 2ab7e3da71
feat(cli): Allow custom title in CLI header (#706) 2025-06-02 17:09:55 -07:00
Allen Hutchison 7f20425c98
feat(cli): add pro model availability check and fallback to flash (#608) 2025-06-02 13:55:54 -07:00
Tolik Malibroda 0795e55f0e
feat: Add --yolo mode that automatically accepts all tools executions (#695)
Co-authored-by: N. Taylor Mullen <ntaylormullen@google.com>
2025-06-02 22:05:45 +02:00
Allen Hutchison 53bf778497
feat: allow custom filename for context files (#654)
Co-authored-by: N. Taylor Mullen <ntaylormullen@google.com>
2025-05-31 12:49:28 -07:00
Miguel Solorio cbc1614b84
Update default & ANSI theme names (#637) 2025-05-31 11:10:52 -07:00
Scott Densmore 7012c86336
Fix/cli version unknown (#642) 2025-05-30 20:45:15 -07:00
Tommaso Sciortino 21fba832d1
Rename server->core (#638) 2025-05-30 18:25:47 -07:00
Jacob Richman 01768d7759
feat: add --show_memory_usage flag to display memory usage in status bar (#606) 2025-05-30 15:18:01 -07:00
Jacob Richman 6a1b94529b
Change Config to use named parameters. (#593) 2025-05-29 13:51:17 -07:00
sasha-gitg 3511e84dc3
fix: default to Gemini API if GEMINI_API_KEY is set and when GOOGLE_GENAI_USE_VERTEXAI is set to True (#566) 2025-05-27 10:00:07 -07:00
Allen Hutchison a008d81780
Refactor(server): Centralize GEMINI.md discovery logic in server (#498) 2025-05-23 08:53:22 -07:00
Allen Hutchison f8c4276e69
Refactor(cli): Move memory add logic to server tool call (#493) 2025-05-23 08:47:19 -07:00
Allen Hutchison 581709df80
Refactor: Streamline memoryUtils and update slash commands (#478) 2025-05-22 10:57:06 -07:00
Allen Hutchison 0c192555bb
Fix: Prevent hang in large directories by using BFS for getFolderStru… (#470)
Co-authored-by: N. Taylor Mullen <ntaylormullen@google.com>
2025-05-22 10:47:21 -07:00
olcan 6cc0087105 allow comments in settings.json 2025-05-18 10:58:20 -07:00
Olcan 3bf0304e31
ability to override core system prompt (via .gemini/system.md) and specify core tools via coreTools setting (e.g. coreTools:["ls", "GrepTool", ...]) ; added tests, but did not update docs for now (#413) 2025-05-17 19:45:16 -07:00
Olcan 76cf5e9fc1
rename env vars GEMINI_CODE_{MODEL,SANDBOX,SANDBOX_IMAGE} (#411) 2025-05-17 17:28:44 -07:00
Olcan 4de4822219
added timeout setting to mcp server config, also switched to custom config type without "stderr" field that does not make sense in settings (#410) 2025-05-17 16:53:22 -07:00
Allen Hutchison 1bdec55fe1
feat: Implement CLI and model memory management (#371)
Co-authored-by: N. Taylor Mullen <ntaylormullen@google.com>
2025-05-16 16:36:50 -07:00
Olcan d9bd2b0e14
improved mcp support, including standard "mcpServers" setting with multiple named servers with command/args/env/cwd (#392) 2025-05-16 16:29:03 -07:00
sasha-gitg 609757f911
feat: Add support for Vertex AI and Vertex express mode (#380) 2025-05-16 08:06:43 -07:00
Olcan 6cd8f66a76
rename full_context as all_files (#366) 2025-05-15 11:44:56 -07:00
Olcan 4cc1dde625
refined cli (#365) 2025-05-15 11:38:33 -07:00
Allen Hutchison 89aa1cad41
Add UI memory indicator. (#348)
Co-authored-by: Gregory Shikhman <shikhman@google.com>
2025-05-14 15:19:45 -07:00
Allen Hutchison 1245fe4885
This commit introduces the hierarchical memory feature, allowing GEMI… (#327) 2025-05-14 12:37:17 -07:00
Taylor Mullen 8537aabba4 feat: Add User-Agent to API requests
This change introduces a User-Agent header to all API requests made by the Gemini CLI.

The User-Agent string includes the CLI version, Node.js version, operating system, and architecture. This will help in tracking usage and identifying potential issues.

Fixes https://b.corp.google.com/issues/416353675

Signed-off-by: Gemini
2025-05-11 14:33:58 -07:00
Taylor Mullen e9274b2ab2 feat: Update default Gemini model to gemini-2.5-pro-preview-05-06
Fixes https://b.corp.google.com/issues/416778280

Signed-off-by: Your Witty AI Assistant
2025-05-09 15:27:51 -07:00
olcan 9742f6e4a2 support for mcp tools 2025-05-05 17:10:45 -07:00
olcan 6b6eef5b80 support for discovered tools using project settings for discovery and call commands 2025-05-05 17:10:45 -07:00
Seth Troisi 415b757d4a
Remove passthroughCommands (#252) 2025-05-05 10:57:06 -07:00
Olcan b809953890
sandbox arg should not default to false but rather undefined (#244) 2025-05-02 10:05:53 -07:00
Olcan a7679db6e9
sandbox setting and argument (#243) 2025-05-02 08:15:46 -07:00
Olcan a386841947
mount user settings in sandbox (#239) 2025-05-01 12:08:24 -07:00
Jacob Richman 7e8f379dfb
Save settings to ~/.gemini/settings.json and optionally /your/workspace/.gemini/settings.json (#237) 2025-05-01 10:34:07 -07:00
Brandon Keiji b27aae26c8
refactor: async-ify yargs (#236) 2025-05-01 01:00:53 +00:00
Allen Hutchison 8cf3e1611e
Adding a full_context command line argument. (#158)
* Adding a full_context command line argument.

* Update packages/cli/src/config/config.ts

Co-authored-by: N. Taylor Mullen <ntaylormullen@google.com>

* lint fix.

---------

Co-authored-by: N. Taylor Mullen <ntaylormullen@google.com>
2025-04-24 16:08:29 -07:00
Olcan aed42a726a
remove target_dir flag (#149) 2025-04-24 10:21:10 -07:00
Allen Hutchison 9bc9c6e6c5
Question flag (#125) 2025-04-22 18:32:03 -07:00