Skip to content

feat: add ignoreLocalEnv setting and --ignore-env flag (#2493)#26445

Merged
cocosheng-g merged 3 commits intomainfrom
fix/issue-2493
May 4, 2026
Merged

feat: add ignoreLocalEnv setting and --ignore-env flag (#2493)#26445
cocosheng-g merged 3 commits intomainfrom
fix/issue-2493

Conversation

@cocosheng-g
Copy link
Copy Markdown
Contributor

Summary

Adds advanced.ignoreLocalEnv setting and --ignore-env flag to isolate Gemini CLI from project-specific .env files. This prevents conflicts with local project environment variables (e.g., GOOGLE_CLOUD_PROJECT, NODE_OPTIONS) while still allowing global ~/.env and tool-specific .gemini/.env files.

Details

  • Implemented early argument sniffing for --ignore-env to ensure isolation before full CLI initialization.
  • Updated findEnvFile to skip generic .env files when isolation is active, except for the home directory fallback.
  • Added advanced.ignoreLocalEnv to settingsSchema.ts.
  • Regenerated settings documentation and schema.
  • Added comprehensive unit tests covering hierarchical search, trust whitelists, and flag precedence.

Related Issues

Fixes #2493

How to Validate

  1. Create a project directory with a .env file containing GEMINI_API_KEY=project_key.
  2. Run gemini with --ignore-env or set advanced.ignoreLocalEnv: true in global settings.
  3. Verify that the project-specific API key is ignored (and global/default is used instead).
  4. Verify that .gemini/.env in the same project is STILL loaded.
  5. Run tests: npx vitest run packages/cli/src/config/settings-env-isolation.test.ts

Pre-Merge Checklist

  • Updated relevant documentation and README (if needed)
  • Added/updated tests (if needed)
  • Noted breaking changes (if any)
  • Validated on required platforms/methods:
    • MacOS
      • npm run

@gemini-code-assist
Copy link
Copy Markdown
Contributor

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request enhances the Gemini CLI's environment configuration by providing mechanisms to isolate the tool from local project-specific .env files. By introducing a new setting and a corresponding command-line flag, users can prevent unintended environment variable conflicts while ensuring that necessary global or tool-specific configurations remain accessible. These changes improve the robustness and predictability of the CLI in diverse development environments.

Highlights

  • New Configuration Option: Added advanced.ignoreLocalEnv setting to allow users to opt-out of loading project-specific .env files.
  • New CLI Flag: Introduced the --ignore-env flag to provide a quick way to isolate the CLI from local environment variables during execution.
  • Improved Environment Isolation: Updated the environment loading logic to skip generic project .env files while maintaining support for global and tool-specific configurations.
  • Comprehensive Testing: Added a new test suite to verify hierarchical search, flag precedence, and trust whitelist behavior.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@cocosheng-g cocosheng-g requested review from a team as code owners May 4, 2026 15:39
Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces the advanced.ignoreLocalEnv setting and a corresponding --ignore-env CLI flag, allowing users to bypass generic .env files in the project directory while still loading them from the home directory or the .gemini/ folder. The changes include updates to the settings schema, documentation, and the environment loading logic, along with a new test suite to verify isolation behavior. I have no feedback to provide.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 4, 2026

Size Change: +493 B (0%)

Total Size: 33.9 MB

Filename Size Change
./bundle/chunk-2NYUELT4.js 0 B -2.72 MB (removed) 🏆
./bundle/chunk-45ACX5FA.js 0 B -3.8 kB (removed) 🏆
./bundle/chunk-DIJJRSWM.js 0 B -12.5 kB (removed) 🏆
./bundle/chunk-EDUNVPH3.js 0 B -657 kB (removed) 🏆
./bundle/chunk-KNOM2IUH.js 0 B -3.43 kB (removed) 🏆
./bundle/chunk-ODIOCWI6.js 0 B -14.7 MB (removed) 🏆
./bundle/chunk-PPD56YFM.js 0 B -19.5 kB (removed) 🏆
./bundle/chunk-XNNO7ZMD.js 0 B -49.2 kB (removed) 🏆
./bundle/core-QEQR3OQG.js 0 B -48.4 kB (removed) 🏆
./bundle/devtoolsService-S7H3ZTK6.js 0 B -28 kB (removed) 🏆
./bundle/gemini-EOWUYHUI.js 0 B -582 kB (removed) 🏆
./bundle/interactiveCli-UNDWFVBQ.js 0 B -1.32 MB (removed) 🏆
./bundle/liteRtServerManager-ZAIATVPR.js 0 B -2.11 kB (removed) 🏆
./bundle/oauth2-provider-NJWPAIUH.js 0 B -9.16 kB (removed) 🏆
./bundle/chunk-27VG24RD.js 14.7 MB +14.7 MB (new file) 🆕
./bundle/chunk-4BA7ENQN.js 19.5 kB +19.5 kB (new file) 🆕
./bundle/chunk-5CZJ77DT.js 658 kB +658 kB (new file) 🆕
./bundle/chunk-7BYDXY73.js 3.8 kB +3.8 kB (new file) 🆕
./bundle/chunk-KIKHSGTZ.js 2.72 MB +2.72 MB (new file) 🆕
./bundle/chunk-M73NKMVO.js 12.5 kB +12.5 kB (new file) 🆕
./bundle/chunk-S4OET6D2.js 49.2 kB +49.2 kB (new file) 🆕
./bundle/chunk-ZKO6TUI6.js 3.43 kB +3.43 kB (new file) 🆕
./bundle/core-BLQTSH7N.js 48.4 kB +48.4 kB (new file) 🆕
./bundle/devtoolsService-DQJV5AEL.js 28 kB +28 kB (new file) 🆕
./bundle/gemini-4D5WHLEC.js 582 kB +582 kB (new file) 🆕
./bundle/interactiveCli-ECSMPBAX.js 1.32 MB +1.32 MB (new file) 🆕
./bundle/liteRtServerManager-5GPFKIDL.js 2.11 kB +2.11 kB (new file) 🆕
./bundle/oauth2-provider-WDO76632.js 9.16 kB +9.16 kB (new file) 🆕
ℹ️ View Unchanged
Filename Size Change
./bundle/bundled/third_party/index.js 8 MB 0 B
./bundle/chunk-34MYV7JD.js 2.45 kB 0 B
./bundle/chunk-5AUYMPVF.js 858 B 0 B
./bundle/chunk-5PS3AYFU.js 1.18 kB 0 B
./bundle/chunk-664ZODQF.js 124 kB 0 B
./bundle/chunk-DAHVX5MI.js 206 kB 0 B
./bundle/chunk-DD4MWEAB.js 1.97 MB 0 B
./bundle/chunk-IUUIT4SU.js 56.5 kB 0 B
./bundle/chunk-RJTRUG2J.js 39.8 kB 0 B
./bundle/cleanup-VKDR6L4H.js 0 B -932 B (removed) 🏆
./bundle/devtools-36NN55EP.js 696 kB 0 B
./bundle/dist-T73EYRDX.js 356 B 0 B
./bundle/events-XB7DADIJ.js 418 B 0 B
./bundle/examples/hooks/scripts/on-start.js 188 B 0 B
./bundle/examples/mcp-server/example.js 1.43 kB 0 B
./bundle/gemini.js 5.1 kB 0 B
./bundle/getMachineId-bsd-TXG52NKR.js 1.55 kB 0 B
./bundle/getMachineId-darwin-7OE4DDZ6.js 1.55 kB 0 B
./bundle/getMachineId-linux-SHIFKOOX.js 1.34 kB 0 B
./bundle/getMachineId-unsupported-5U5DOEYY.js 1.06 kB 0 B
./bundle/getMachineId-win-6KLLGOI4.js 1.72 kB 0 B
./bundle/memoryDiscovery-HRURE3F3.js 980 B 0 B
./bundle/multipart-parser-KPBZEGQU.js 11.7 kB 0 B
./bundle/node_modules/@google/gemini-cli-devtools/dist/client/main.js 222 kB 0 B
./bundle/node_modules/@google/gemini-cli-devtools/dist/src/_client-assets.js 229 kB 0 B
./bundle/node_modules/@google/gemini-cli-devtools/dist/src/index.js 13.4 kB 0 B
./bundle/node_modules/@google/gemini-cli-devtools/dist/src/types.js 132 B 0 B
./bundle/sandbox-macos-permissive-open.sb 890 B 0 B
./bundle/sandbox-macos-permissive-proxied.sb 1.31 kB 0 B
./bundle/sandbox-macos-restrictive-open.sb 3.36 kB 0 B
./bundle/sandbox-macos-restrictive-proxied.sb 3.56 kB 0 B
./bundle/sandbox-macos-strict-open.sb 4.82 kB 0 B
./bundle/sandbox-macos-strict-proxied.sb 5.02 kB 0 B
./bundle/src-QVCVGIUX.js 47 kB 0 B
./bundle/start-IBU24OCT.js 0 B -652 B (removed) 🏆
./bundle/tree-sitter-7U6MW5PS.js 274 kB 0 B
./bundle/tree-sitter-bash-34ZGLXVX.js 1.84 MB 0 B
./bundle/cleanup-TDMWA3BY.js 932 B +932 B (new file) 🆕
./bundle/start-4FG7BV5W.js 652 B +652 B (new file) 🆕

compressed-size-action

@gemini-cli gemini-cli Bot added priority/p2 Important but can be addressed in a future release. area/core Issues related to User Interface, OS Support, Core Functionality labels May 4, 2026
@cocosheng-g cocosheng-g added this pull request to the merge queue May 4, 2026
Merged via the queue into main with commit 493b555 May 4, 2026
26 of 27 checks passed
@cocosheng-g cocosheng-g deleted the fix/issue-2493 branch May 4, 2026 19:27
TirthNaik-99 pushed a commit to TirthNaik-99/gemini-cli that referenced this pull request May 4, 2026
@soisyourface
Copy link
Copy Markdown

was this a duplicate of #24473 by chance?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/core Issues related to User Interface, OS Support, Core Functionality priority/p2 Important but can be addressed in a future release.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Isolate Gemini CLI from Project-Specific .env Files

3 participants