Skip to content

feat(core,cli): add support for Gemma 4 models (experimental)#25604

Merged
Abhijit-2592 merged 4 commits intomainfrom
abhijit-2592/gemma-api
Apr 23, 2026
Merged

feat(core,cli): add support for Gemma 4 models (experimental)#25604
Abhijit-2592 merged 4 commits intomainfrom
abhijit-2592/gemma-api

Conversation

@Abhijit-2592
Copy link
Copy Markdown
Contributor

@Abhijit-2592 Abhijit-2592 commented Apr 18, 2026

Summary

This PR adds support for the Gemma 4 models (gemma-4-31b-it and gemma-4-26b-a4b-it). To maintain stability, these models are currently hidden behind an experimental flag.

Key Changes

  • Experimental Gating: Added experimental.gemma (boolean, default: false) to settings. The models are only available when this flag is enabled.
  • Repository Configuration: Enabled experimental.gemma: true in .gemini/settings.json for this repository.
  • UI Updates:
    • Conditionally show Gemma 4 models in the ModelDialog (under the Manual selection) based on the experimental flag.
    • Updated display names to use technical IDs (gemma-4-31b-it) for clarity.
  • Model Configs: Added displayName and technical specs (256K context limit, thinking enabled) to defaultModelConfigs.ts.
  • Test Coverage: Updated isActiveModel logic and expanded unit tests to verify gating behavior and mock configurations.

How to Test

  1. Prepare Environment:
    • Ensure you have a valid Gemini API Key.
    • Start the CLI with: GEMINI_API_KEY="Your API KEY" npm run build-and-start
  2. Verify Default Behavior:
    • Run the CLI with default settings.
    • Open the model selection dialog (type / then select Model).
    • Navigate to the Manual selection view.
    • Confirm that Gemma 4 models are not listed.
  3. Enable Experimental Models:
    • Update your settings (e.g., in ~/.gemini/settings.json) to include:
      {
        "experimental": {
          "gemma": true
        }
      }
  4. Verify Experimental Access:
    • Restart the CLI and open the model selection dialog.
    • Navigate to the Manual selection view.
    • Confirm that gemma-4-31b-it and gemma-4-26b-a4b-it are now available for selection.

@Abhijit-2592 Abhijit-2592 requested a review from a team as a code owner April 18, 2026 00:11
@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 introduces support for the Gemma 4 model family into the Gemini CLI. The changes involve registering the new models within the core configuration, defining their specific capabilities such as 'Thinking' mode, and ensuring they are correctly exposed in the user interface for selection. These updates allow users to leverage the latest Gemma 4 models directly through the CLI.

Highlights

  • Model Integration: Added support for Gemma 4 models (gemma-4-31b-it and gemma-4-26b-a4b-it) to the Gemini CLI.
  • Configuration Updates: Updated model configurations, aliases, and resolution logic to enable advanced 'Thinking' capabilities for the new models.
  • UI Enhancement: Updated the ModelDialog component to include the new Gemma 4 models in the manual selection list.
  • Testing: Added unit tests to verify model resolution, display names, and active status for the new models.
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.

@gemini-cli
Copy link
Copy Markdown
Contributor

gemini-cli Bot commented Apr 18, 2026

Hi @Abhijit-2592, thank you so much for your contribution to Gemini CLI! We really appreciate the time and effort you've put into this.

We're making some updates to our contribution process to improve how we track and review changes. Please take a moment to review our recent discussion post: Improving Our Contribution Process & Introducing New Guidelines.

Key Update: Starting January 26, 2026, the Gemini CLI project will require all pull requests to be associated with an existing issue. Any pull requests not linked to an issue by that date will be automatically closed.

Thank you for your understanding and for being a part of our community!

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Apr 18, 2026

Size Change: +2.66 kB (+0.01%)

Total Size: 33.7 MB

Filename Size Change
./bundle/chunk-2HY24ZCR.js 0 B -49.2 kB (removed) 🏆
./bundle/chunk-4LSVIDUJ.js 0 B -669 kB (removed) 🏆
./bundle/chunk-GIDEWDU6.js 0 B -3.43 kB (removed) 🏆
./bundle/chunk-GUKKSJKX.js 0 B -14.6 MB (removed) 🏆
./bundle/chunk-RB24FEQW.js 0 B -3.8 kB (removed) 🏆
./bundle/chunk-S44IZLUW.js 0 B -2.73 MB (removed) 🏆
./bundle/chunk-UHHRGNIO.js 0 B -1.97 MB (removed) 🏆
./bundle/core-7Z6ZSM2P.js 0 B -47.5 kB (removed) 🏆
./bundle/devtoolsService-PMNETVSV.js 0 B -27.8 kB (removed) 🏆
./bundle/gemini-NT643AIE.js 0 B -578 kB (removed) 🏆
./bundle/interactiveCli-JGVZGPUK.js 0 B -1.29 MB (removed) 🏆
./bundle/liteRtServerManager-HGYTIFAX.js 0 B -2.08 kB (removed) 🏆
./bundle/oauth2-provider-F2HHYFEM.js 0 B -9.16 kB (removed) 🏆
./bundle/chunk-AS55RAEW.js 2.73 MB +2.73 MB (new file) 🆕
./bundle/chunk-CVOYDDWX.js 669 kB +669 kB (new file) 🆕
./bundle/chunk-CXO22GFF.js 49.2 kB +49.2 kB (new file) 🆕
./bundle/chunk-LBCGS3IK.js 14.6 MB +14.6 MB (new file) 🆕
./bundle/chunk-MTD736U4.js 1.97 MB +1.97 MB (new file) 🆕
./bundle/chunk-P2GWVWUV.js 3.43 kB +3.43 kB (new file) 🆕
./bundle/chunk-U7LTXISL.js 3.8 kB +3.8 kB (new file) 🆕
./bundle/core-3QKMSPGO.js 47.7 kB +47.7 kB (new file) 🆕
./bundle/devtoolsService-YNA72K6Q.js 27.8 kB +27.8 kB (new file) 🆕
./bundle/gemini-LBJBJ2IP.js 578 kB +578 kB (new file) 🆕
./bundle/interactiveCli-KZUPSGZF.js 1.29 MB +1.29 MB (new file) 🆕
./bundle/liteRtServerManager-JR4OTCAM.js 2.08 kB +2.08 kB (new file) 🆕
./bundle/oauth2-provider-JGIDD4IR.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-IUUIT4SU.js 56.5 kB 0 B
./bundle/chunk-RJTRUG2J.js 39.8 kB 0 B
./bundle/cleanup-CAYCWKT5.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 4.97 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-CZURD35O.js 0 B -980 B (removed) 🏆
./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-O72MGVM7.js 0 B -622 B (removed) 🏆
./bundle/tree-sitter-7U6MW5PS.js 274 kB 0 B
./bundle/tree-sitter-bash-34ZGLXVX.js 1.84 MB 0 B
./bundle/cleanup-R2RMCRIT.js 932 B +932 B (new file) 🆕
./bundle/memoryDiscovery-NSOLCG4U.js 980 B +980 B (new file) 🆕
./bundle/start-KN35JZKN.js 622 B +622 B (new file) 🆕

compressed-size-action

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 adds support for the gemma-4-31b-it and gemma-4-26b-a4b-it models. The changes include defining model constants, updating configurations with 'thinking' features enabled, adding the models to the UI selection dialog, and expanding test coverage. Feedback was provided to add the displayName property to the model configurations in defaultModelConfigs.ts to ensure consistency with the project's configuration patterns.

Comment thread packages/core/src/config/defaultModelConfigs.ts
@Abhijit-2592 Abhijit-2592 force-pushed the abhijit-2592/gemma-api branch 3 times, most recently from 506a8ea to 317b4e2 Compare April 23, 2026 20:32
@Abhijit-2592 Abhijit-2592 requested a review from a team as a code owner April 23, 2026 20:32
@Abhijit-2592 Abhijit-2592 force-pushed the abhijit-2592/gemma-api branch 3 times, most recently from 3b0551f to 2fc8d43 Compare April 23, 2026 22:00
@Abhijit-2592 Abhijit-2592 changed the title feat(core): add support for Gemma 4 models feat(core,cli): add support for Gemma 4 models (experimental) Apr 23, 2026
@gemini-cli gemini-cli Bot added the status/need-issue Pull requests that need to have an associated issue. label Apr 23, 2026
Added support for gemma-4-31b-it and gemma-4-26b-a4b-it models.
Includes:
- Core model registry and display names
- Generative configuration with ThinkingLevel.HIGH
- UI visibility in ModelDialog
- Token quota management (16k cap) to prevent 429 errors
This change introduces a mechanism to hide recently added Gemma 4 models
behind an 'experimental.gemma' configuration flag.

Changes:
- Added 'experimental.gemma' boolean flag to settingsSchema.ts (default: false).
- Enabled 'experimental.gemma: true' in the repository's .gemini/settings.json.
- Updated core Config class to store and expose the experimentalGemma flag.
- Modified isActiveModel in models.ts to return false for Gemma 4 models
  unless experimentalGemma is explicitly enabled.
- Updated ModelDialog.tsx to conditionally show Gemma 4 models in the UI.
- Updated Gemma 4 display strings to use their technical IDs (e.g., 'gemma-4-31b-it').
- Added/updated tests in models.test.ts to verify the gating logic and display names.
Followed suggestion from gemini-code-assist to include the displayName
property in defaultModelConfigs.ts for Gemma 4 models, ensuring consistency
with established configuration patterns.
@Abhijit-2592 Abhijit-2592 force-pushed the abhijit-2592/gemma-api branch from 2fc8d43 to 2fe690e Compare April 23, 2026 22:34
@Abhijit-2592 Abhijit-2592 added this pull request to the merge queue Apr 23, 2026
Merged via the queue into main with commit d4c5333 Apr 23, 2026
26 of 27 checks passed
@Abhijit-2592 Abhijit-2592 deleted the abhijit-2592/gemma-api branch April 23, 2026 23:13
kimjune01 pushed a commit to kimjune01/gemini-cli-claude that referenced this pull request May 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

status/need-issue Pull requests that need to have an associated issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants