
Native Google Cloud Vertex AI Support in Codex CLI 0.165.0
Codex CLI 0.165.0 adds native support for Google Cloud Vertex AI using Application Default Credentials, bypassing custom proxies. We break down the required environment variables, provider caveats, and smaller fixes for reasoning effort, git worktrees, and marketplace URL validation.
Chapter 1
Vertex AI Becomes a Built In Provider
Ethan Park
Morning, everyone. Thanks to Jellypod to help make this daily show a reality. Today's topic is Codex CLI 0.165.0, which shipped on October 27th, 2026. The headline is that Google Cloud Vertex AI is now a built in provider. No gateway in front of it, no custom proxy script. It's pull request 56265, and it lands right after the Amazon Bedrock support we covered in 0.164.0. Same pattern, a second cloud host.
Maya
Let's start with the config, because it's small. In your config.toml under the dot codex folder in your home directory, you set model_provider equals gcp. That's the whole switch. Internally the provider ID is gcp and the display name is Google Cloud Vertex AI. If you'd rather not touch the file, there's also a command line override for the model provider, so you can try it on a single run before you commit it to config.
Maya
Authentication is where the Google side shows up. It uses standard Google Cloud Application Default Credentials. So if you've run gcloud auth application default login on your laptop, or your CI job or workload runs under a service account that ADC can find, Codex picks that up. You don't paste a key into Codex.
Ethan Park
Two environment variables matter next. GOOGLE_CLOUD_PROJECT is your project ID, so billing and quota land on the right project. GOOGLE_CLOUD_LOCATION is the region, and if you leave it unset it defaults to global. That default is fine for trying things out. But if your compliance team cares where inference runs, set a regional location explicitly. Don't rely on the default and assume it matches your policy.
Ethan Park
So a minimal setup is three things. Export your project ID, export a location if you need one, and set model_provider to gcp. Then run codex as usual. Install the release with npm install, dash g, at openai slash codex at 0.165.0, or just update however you installed it.
Maya
Why does this matter? Think about who was blocked before. If you're an engineering org that's committed to Google Cloud, your constraints are things like Model Garden quotas, private network boundaries, IAM controls, and consolidated billing. Before this, routing Codex through that meant standing up something like a LiteLLM gateway, or writing your own translation layer, and then owning it. Now the routing is in the CLI itself, and the thing your security team has to review is a config line and a credential flow they already understand.
Ethan Park
Now the caveats, and they're the part to read before you roll this out. First, model availability is whatever you've provisioned in your Model Garden project. If a model isn't enabled or you don't have quota, Codex can't conjure it. Second, features tied to a direct OpenAI account don't carry over to the raw gcp provider. Native web search, server side image generation, and certain reasoning summary streams are not supported there. That's the same boundary you'd see on other cloud providers, including Bedrock. So if a workflow of yours leans on web search, test it on the gcp provider before you tell a team it's a drop in swap.
Maya
One related fix helps here. PR 56445 makes Codex stop retrying when a provider reports that a model was not found, and it keeps the provider's original error message. That's exactly the failure you'll hit if you point at a model your project doesn't have. Before, you could watch it retry. Now it fails once, and the message tells you what's wrong. One more note on PR 56293: it mentions fixed token fixtures, but those are test fixtures for the Vertex tests. They're not a new feature for your CI, so don't read that as a headless auth option.
Chapter 2
Smaller Changes Worth Knowing
Ethan Park
A few smaller changes in this release are worth a minute. PR 56163 turns on reasoning effort changes during a conversation by default for supported models. In practice you can step effort up when a task gets hard, then step it back down for routine edits, without starting a new session. It's on by default, but only for models that support it.
Maya
If you run parallel agents across linked git worktrees, PR 56308 is for you. The session picker now has a repository filter, and the agent command center groups by directory. That cuts the clutter when you've got a dozen sessions across several checkouts of the same repo.
Ethan Park
Memory v2 is now the default for fresh profiles. PR 56414 adds importing memories from external coding agents, and PR 56462 stops those imports from racing with consolidation. Note the word fresh. This is for new profiles, so check your own setup instead of assuming an existing profile changed.
Maya
Two fixes for anyone who interrupts agents a lot. PR 56330 stops queued agent messages from restarting work after you interrupt, or after you switch to Plan mode. And PR 56132 cancels remote MCP tool requests when the local response future is dropped, so abandoned calls don't keep running on the server.
Ethan Park
Last one is security. PR 56263 rejects backslashes in the user info part of HTTP and HTTPS marketplace URLs. The gap was that Git could connect to a different host than the one checked against your allowed patterns. If you restrict marketplace sources by pattern, that's a reason to update.
Maya
So the practical checklist is short. Update to 0.165.0, set model_provider to gcp, export your project and a location, confirm ADC works, and test any workflow that depends on web search. That's it for today.