#Gemini Cli models not present
1 messages · Page 1 of 1 (latest)
This is expected-ish in newer OpenClaw: the Gemini CLI integration was moved toward canonical google/* model refs with the CLI backend stored separately.
So in 2026.5.7 you usually won’t pick a separate-looking google-gemini-cli/... model the same way as older versions. Use the Google model ref, then the Gemini CLI runtime/auth handles execution.
Try this:
openclaw plugins enable google
npm install -g @google/gemini-cli # if gemini is not already on PATH
openclaw models auth login --provider google-gemini-cli --set-default
openclaw models list --provider google
openclaw models status
Docs say the Gemini CLI path is:
- Provider/auth login:
google-gemini-cli - Default model in current docs:
google/gemini-3.1-pro-preview
- Runtime:
google-gemini-cli - Legacy refs like
google-gemini-cli/*are compatibility aliases now; new config should usegoogle/*+ the CLI runtime.
Docs: https://docs.openclaw.ai/providers/google
If openclaw models list --provider google still shows nothing after the login, paste the output of:
openclaw --version
openclaw models status
openclaw models auth list --provider google-gemini-cli
and we can narrow down whether it’s auth, plugin enablement, or PATH/gemini CLI discovery. 🦞
~ openclaw --version
OpenClaw 2026.5.7 (eeef486)
~ openclaw models status
🦞 OpenClaw 2026.5.7 (eeef486) — I've seen your commit messages. We'll work on that together.
Config : ~\.openclaw\openclaw.json
Agent dir : ~\.openclaw\agents\main\agent
Default : google/gemini-3.1-pro-preview
Fallbacks (0) : -
Image model : -
Image fallbacks (0): -
Aliases (1) : gemini -> google/gemini-3.1-pro-preview
Configured models (1): google/gemini-3.1-pro-preview
Auth overview
Auth store : ~\.openclaw\agents\main\agent\auth-profiles.json
Shell env : off
Providers w/ OAuth/tokens (1): google-gemini-cli (1)
- google effective=env:AIzaSyB1...O4hwIhok | env=AIzaSyB1...O4hwIhok | source=env: GOOGLE_API_KEY
- google-gemini-cli effective=profiles:~\.openclaw\agents\main\agent\auth-profiles.json | profiles=1 (oauth=1, token=0, api_key=0) | google-gemini-cli:siddh.mistry396321@gmail.com=OAuth (siddh.mistry396321@gmail.com)
OAuth/token status
- google-gemini-cli usage: Pro 100% left · Flash 100% left
- google-gemini-cli:siddh.mistry396321@gmail.com (siddh.mistry396321@gmail.com) expiring expires in 49m
~ openclaw models auth list --provider google-gemini-cli
🦞 OpenClaw 2026.5.7 (eeef486) — Hot reload for config, cold sweat for deploys.
Agent: main
Auth state file: ~\.openclaw\agents\main\agent\auth-state.json
Provider: google-gemini-cli
Profiles:
- google-gemini-cli:siddh.mistry396321@gmail.com (siddh.mistry396321@gmail.com) [google-gemini-cli/oauth; expires 2026-05-12T11:09:42.906Z]
Good, this actually shows Gemini CLI auth is present and healthy:
Providers w/ OAuth/tokens (1): google-gemini-cli (1)
The confusing bit is that your configured model is canonical now:
Default: google/gemini-3.1-pro-preview
In 2026.5.x, google-gemini-cli/... is mostly a legacy compatibility ref. If you want that google/gemini-3.1-pro-preview model to run through the local Gemini CLI/OAuth backend instead of the normal Google API key path, add the runtime policy:
openclaw config set agents.defaults.models '{"google/gemini-3.1-pro-preview":{"agentRuntime":{"id":"google-gemini-cli"}}}' --strict-json --merge
openclaw models status
Your status also shows GOOGLE_API_KEY is configured for the normal google provider, so without that runtime policy OpenClaw may just use the direct Gemini API path.
If you want to verify live routing after that, run a tiny test message in a fresh session and then check /status or openclaw models status. If it still doesn’t show/use the CLI runtime, try:
openclaw doctor --fix
openclaw gateway restart
Small note: your Gemini CLI OAuth profile says it expires in ~49 minutes. It should refresh, but if calls start failing around then, rerun:
openclaw models auth login --provider google-gemini-cli --set-default
still the same
If by “same” you mean the picker/list still does not show google-gemini-cli/... as a separate model, that’s expected in 2026.5.7. I checked the current code: the model picker intentionally hides legacy runtime refs like google-gemini-cli/... and shows the canonical google/gemini-... model instead.
The thing to verify is not whether the model name changes, but whether the runtime policy is set.
Run these and paste the output:
openclaw config get agents.defaults.models --json
openclaw config get models.providers.google.agentRuntime --json
openclaw models list --provider google
If you just want to force all google/* agent models through Gemini CLI, use provider-wide runtime config instead:
openclaw config set models.providers.google.agentRuntime '{"id":"google-gemini-cli"}' --strict-json
openclaw gateway restart
openclaw models status
After that, the default may still display as google/gemini-3.1-pro-preview — that part is normal. The CLI/OAuth backend is selected by agentRuntime.id: "google-gemini-cli", not by showing a separate google-gemini-cli/... model in the picker.
i want like this google-gemini-cli/gemini-2.5-flash
Got it. In 2026.5.7, you can still request that route, but OpenClaw may normalize the display away from google-gemini-cli/....
Try the direct legacy ref first:
openclaw models set google-gemini-cli/gemini-2.5-flash
openclaw models status
If it normalizes back to google/..., set the equivalent new-style config explicitly:
openclaw config set agents.defaults.model '{"primary":"google/gemini-2.5-flash","fallbacks":[]}' --strict-json
openclaw config set agents.defaults.models '{"google/gemini-2.5-flash":{"alias":"gemini-cli-flash","agentRuntime":{"id":"google-gemini-cli"}}}' --strict-json --merge
openclaw gateway restart
openclaw models status
That means: model = google/gemini-2.5-flash, execution backend = Gemini CLI OAuth.
Important: if your goal is for the UI/status picker to literally show google-gemini-cli/gemini-2.5-flash, that’s the part that changed — 2026.5.x intentionally hides legacy runtime refs in the picker and prefers canonical google/* names. The routing should be controlled by agentRuntime.id: "google-gemini-cli" now.
PowerShell 7.6.1
Use 'Show-Help' to display help
Loading personal and system profiles took 1893ms.
~ openclaw config set agents.defaults.model '{"primary":"google/gemini-2.5-flash","fallbacks":[]}' --strict-json
🦞 OpenClaw 2026.5.7 (eeef486) — I'm the assistant your terminal demanded, not the one your sleep schedule requested.
Config overwrite: C:\Users\mistr\.openclaw\openclaw.json (sha256 91a4eb073c95aae5cdd647e2ce1e159d87be5db1d77af0ba6d2a374aee75a4fc -> 795a286f2120b78379cf783bfbd021d3629b175ce678b87d27fae4f2b2f2c59c, backup=C:\Users\mistr\.openclaw\openclaw.json.bak)
Updated agents.defaults.model. Restart the gateway to apply.
~ openclaw config set agents.defaults.models '{"google/gemini-2.5-flash":{"alias":"gemini-cli-flash","agentRuntime":{"id":"google-gemini-cli"}}}' --strict-json --merge
🦞 OpenClaw 2026.5.7 (eeef486) — Powered by open source, sustained by spite and good documentation.
Error: Config validation failed: agents.defaults.models.google/gemini-2.5-flash: Unrecognized key: "agentRuntime"
~ openclaw gateway restart
🦞 OpenClaw 2026.5.7 (eeef486) — I'll do the boring stuff while you dramatically stare at the logs like it's cinema.
Restarted Scheduled Task: OpenClaw Gateway
~ openclaw models status
🦞 OpenClaw 2026.5.7 (eeef486) — You had me at 'openclaw gateway start.'
Config : ~\.openclaw\openclaw.json
Agent dir : ~\.openclaw\agents\main\agent
Default : google/gemini-2.5-flash
Fallbacks (0) : -
Image model : -
Image fallbacks (0): -
Aliases (0) : -
Configured models (1): google-gemini-cli/gemini-2.5-flash
Auth overview
Auth store : ~\.openclaw\agents\main\agent\auth-profiles.json
Shell env : off
Providers w/ OAuth/tokens (1): google-gemini-cli (1)
- google effective=env:AIzaSyB1...O4hwIhok | env=AIzaSyB1...O4hwIhok | source=env: GOOGLE_API_KEY
- google-gemini-cli effective=profiles:~\.openclaw\agents\main\agent\auth-profiles.json | profiles=1 (oauth=1, token=0, api_key=0) | google-gemini-cli:siddh.mistry396321@gmail.com=OAuth (siddh.mistry396321@gmail.com)
OAuth/token status
- google-gemini-cli usage: Pro 100% left · Flash 100% left
- google-gemini-cli:siddh.mistry396321@gmail.com (siddh.mistry396321@gmail.com) expiring expires in 52m
Nice — you’re basically there now.
This line is the important one:
Configured models (1): google-gemini-cli/gemini-2.5-flash
So OpenClaw has the Gemini CLI model configured. The Default: google/gemini-2.5-flash display is the newer normalization layer showing the canonical Google model name, while the configured entry still preserves the Gemini CLI route.
The command I gave with agentRuntime was wrong for your exact 2026.5.7 schema — sorry, claws slipped there. Your version rejects agents.defaults.models.*.agentRuntime, so don’t use that path on 2026.5.7.
To make sure it’s selected, run:
openclaw models set google-gemini-cli/gemini-2.5-flash
openclaw models status
If status still says:
Configured models (1): google-gemini-cli/gemini-2.5-flash
Providers w/ OAuth/tokens: google-gemini-cli
then you’re set. If actual replies still use the API-key path instead of CLI OAuth, temporarily remove/disable GOOGLE_API_KEY from the gateway environment and restart — right now you have both google API key auth and google-gemini-cli OAuth available, which can make routing look ambiguous.
Error: spawn gemini ENOENT while chatting
Yep, that error is clear now: spawn gemini ENOENT means the gateway process cannot find the gemini executable on PATH.
On Windows this is common because the OpenClaw Gateway runs as a Scheduled Task and may not inherit your PowerShell PATH.
Do this in PowerShell:
npm install -g @google/gemini-cli
Get-Command gemini
That should print a path, usually something like:
C:\Users\mistr\AppData\Roaming
pm\gemini.cmd
Then tell OpenClaw to use that absolute path:
openclaw config set agents.defaults.cliBackends.google-gemini-cli.command '"C:\Users\mistr\AppData\Roaming
pm\gemini.cmd"' --strict-json
openclaw gateway restart
If Get-Command gemini prints a different path, use that exact path instead.
On Linux the equivalent is:
which gemini
openclaw config set agents.defaults.cliBackends.google-gemini-cli.command '"/full/path/from/which/gemini"' --strict-json
openclaw gateway restart