From e58fca68ceb33f8540826fe973a5d8d0665c0145 Mon Sep 17 00:00:00 2001 From: Sehoon Shon Date: Wed, 14 Jan 2026 19:07:51 -0500 Subject: [PATCH] feat(config): add 'auto' alias for default model selection (#16661) Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> --- packages/cli/src/config/config.test.ts | 14 ++++++++++++++ packages/cli/src/config/config.ts | 12 +++++++----- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/packages/cli/src/config/config.test.ts b/packages/cli/src/config/config.test.ts index d3040aabf0..78a4847fd2 100644 --- a/packages/cli/src/config/config.test.ts +++ b/packages/cli/src/config/config.test.ts @@ -1313,6 +1313,20 @@ describe('loadCliConfig model selection', () => { expect(config.getModel()).toBe('gemini-2.5-flash-preview'); }); + + it('selects the default auto model if provided via auto alias', async () => { + process.argv = ['node', 'script.js', '--model', 'auto']; + const argv = await parseArguments({} as Settings); + const config = await loadCliConfig( + { + // No model provided via settings. + }, + 'test-session', + argv, + ); + + expect(config.getModel()).toBe('auto-gemini-2.5'); + }); }); describe('loadCliConfig folderTrust', () => { diff --git a/packages/cli/src/config/config.ts b/packages/cli/src/config/config.ts index 40601eea1c..fc21e43fce 100755 --- a/packages/cli/src/config/config.ts +++ b/packages/cli/src/config/config.ts @@ -36,6 +36,7 @@ import { type HookDefinition, type HookEventName, type OutputFormat, + GEMINI_MODEL_ALIAS_AUTO, } from '@google/gemini-cli-core'; import type { Settings } from './settings.js'; import { saveModelChange, loadSettings } from './settings.js'; @@ -617,12 +618,13 @@ export async function loadCliConfig( const defaultModel = settings.general?.previewFeatures ? PREVIEW_GEMINI_MODEL_AUTO : DEFAULT_GEMINI_MODEL_AUTO; - const resolvedModel: string = - argv.model || - process.env['GEMINI_MODEL'] || - settings.model?.name || - defaultModel; + const specifiedModel = + argv.model || process.env['GEMINI_MODEL'] || settings.model?.name; + const resolvedModel = + specifiedModel === GEMINI_MODEL_ALIAS_AUTO + ? defaultModel + : specifiedModel || defaultModel; const sandboxConfig = await loadSandboxConfig(settings, argv); const screenReader = argv.screenReader !== undefined