1
00:00:00,300 --> 00:00:01,080
Morning, everyone.

2
00:00:01,680 --> 00:00:04,920
Thanks to Jellypod to help make this daily
show a reality.

3
00:00:05,720 --> 00:00:12,100
Today's topic is Codex CLI 0.165.0, which
shipped on October

4
00:00:12,300 --> 00:00:13,880
27th, 2026.

5
00:00:14,800 --> 00:00:19,280
The headline is that Google Cloud Vertex
AI is now a built in provider.

6
00:00:20,040 --> 00:00:22,900
No gateway in front of it, no custom proxy
script.

7
00:00:23,580 --> 00:00:30,080
It's pull request 56265, and it lands
right after the Amazon Bedrock support we

8
00:00:30,120 --> 00:00:32,759
covered in 0.164.0.

9
00:00:33,440 --> 00:00:35,280
Same pattern, a second cloud host.

10
00:00:36,168 --> 00:00:38,568
Let's start with the config, because it's
small.

11
00:00:39,248 --> 00:00:43,908
In your config.toml under the dot codex
folder in your home directory,

12
00:00:44,428 --> 00:00:47,488
you set model_provider equals gcp.

13
00:00:47,948 --> 00:00:48,728
That's the whole switch.

14
00:00:49,548 --> 00:00:55,268
Internally the provider ID is gcp and the
display name is Google Cloud Vertex AI.

15
00:00:56,008 --> 00:00:59,548
If you'd rather not touch the file,
there's also a command line override for the

16
00:00:59,588 --> 00:01:03,628
model provider, so you can try it on a
single run before you commit it to config.

17
00:01:04,482 --> 00:01:07,002
Authentication is where the Google side
shows up.

18
00:01:07,502 --> 00:01:10,842
It uses standard Google Cloud Application
Default Credentials.

19
00:01:11,282 --> 00:01:16,162
So if you've run gcloud auth application
default login on your laptop,

20
00:01:16,622 --> 00:01:20,942
or your CI job or workload runs under a
service account that ADC can find,

21
00:01:21,442 --> 00:01:22,462
Codex picks that up.

22
00:01:22,922 --> 00:01:24,542
You don't paste a key into Codex.

23
00:01:25,165 --> 00:01:27,785
Two environment variables matter next.

24
00:01:28,685 --> 00:01:34,125
GOOGLE_CLOUD_PROJECT is your project ID,
so billing and quota land on the right

25
00:01:34,225 --> 00:01:34,645
project.

26
00:01:35,665 --> 00:01:41,025
GOOGLE_CLOUD_LOCATION is the region, and
if you leave it unset it defaults to

27
00:01:41,085 --> 00:01:41,425
global.

28
00:01:42,285 --> 00:01:44,625
That default is fine for trying things
out.

29
00:01:45,185 --> 00:01:49,925
But if your compliance team cares where
inference runs, set a regional location

30
00:01:50,065 --> 00:01:50,765
explicitly.

31
00:01:51,445 --> 00:01:54,545
Don't rely on the default and assume it
matches your policy.

32
00:01:55,480 --> 00:01:57,740
So a minimal setup is three things.

33
00:01:58,540 --> 00:02:05,100
Export your project ID, export a location
if you need one, and set model_provider to

34
00:02:05,160 --> 00:02:05,640
gcp.

35
00:02:06,440 --> 00:02:08,180
Then run codex as usual.

36
00:02:08,980 --> 00:02:15,440
Install the release with npm install, dash
g, at openai slash codex

37
00:02:16,060 --> 00:02:21,460
at 0.165.0, or just update however you
installed it.

38
00:02:22,275 --> 00:02:23,055
Why does this matter?

39
00:02:23,535 --> 00:02:25,235
Think about who was blocked before.

40
00:02:25,915 --> 00:02:28,615
If you're an engineering org that's
committed to Google Cloud,

41
00:02:28,875 --> 00:02:33,175
your constraints are things like Model
Garden quotas, private network boundaries,

42
00:02:33,395 --> 00:02:35,475
IAM controls, and consolidated billing.

43
00:02:36,195 --> 00:02:41,055
Before this, routing Codex through that
meant standing up something like a LiteLLM

44
00:02:41,135 --> 00:02:44,655
gateway, or writing your own translation
layer, and then owning it.

45
00:02:45,355 --> 00:02:49,435
Now the routing is in the CLI itself, and
the thing your security team has to review

46
00:02:49,535 --> 00:02:52,495
is a config line and a credential flow
they already understand.

47
00:02:53,132 --> 00:02:57,252
Now the caveats, and they're the part to
read before you roll this out.

48
00:02:58,092 --> 00:03:02,572
First, model availability is whatever
you've provisioned in your Model Garden

49
00:03:02,652 --> 00:03:03,032
project.

50
00:03:03,712 --> 00:03:08,372
If a model isn't enabled or you don't have
quota, Codex can't conjure it.

51
00:03:09,232 --> 00:03:14,752
Second, features tied to a direct OpenAI
account don't carry over to the raw gcp

52
00:03:14,792 --> 00:03:15,212
provider.

53
00:03:15,852 --> 00:03:20,192
Native web search, server side image
generation, and certain reasoning summary

54
00:03:20,312 --> 00:03:21,912
streams are not supported there.

55
00:03:22,592 --> 00:03:25,432
That's the same boundary you'd see on
other cloud providers,

56
00:03:25,692 --> 00:03:26,492
including Bedrock.

57
00:03:27,092 --> 00:03:31,872
So if a workflow of yours leans on web
search, test it on the gcp provider before

58
00:03:31,912 --> 00:03:33,852
you tell a team it's a drop in swap.

59
00:03:34,640 --> 00:03:36,000
One related fix helps here.

60
00:03:36,620 --> 00:03:42,540
PR 56445 makes Codex stop retrying when a
provider reports that a model was not

61
00:03:42,600 --> 00:03:45,940
found, and it keeps the provider's
original error message.

62
00:03:46,380 --> 00:03:50,140
That's exactly the failure you'll hit if
you point at a model your project doesn't

63
00:03:50,200 --> 00:03:50,480
have.

64
00:03:51,000 --> 00:03:53,000
Before, you could watch it retry.

65
00:03:53,540 --> 00:03:56,140
Now it fails once, and the message tells
you what's wrong.

66
00:03:56,960 --> 00:04:02,000
One more note on PR 56293: it mentions
fixed token fixtures,

67
00:04:02,300 --> 00:04:04,880
but those are test fixtures for the Vertex
tests.

68
00:04:05,260 --> 00:04:09,620
They're not a new feature for your CI, so
don't read that as a headless auth option.

69
00:04:10,278 --> 00:04:13,458
A few smaller changes in this release are
worth a minute.

70
00:04:14,198 --> 00:04:20,958
PR 56163 turns on reasoning effort changes
during a conversation by default

71
00:04:21,138 --> 00:04:22,158
for supported models.

72
00:04:23,118 --> 00:04:28,718
In practice you can step effort up when a
task gets hard, then step it back down for

73
00:04:28,758 --> 00:04:31,278
routine edits, without starting a new
session.

74
00:04:32,038 --> 00:04:35,058
It's on by default, but only for models
that support it.

75
00:04:35,950 --> 00:04:42,410
If you run parallel agents across linked
git worktrees, PR 56308 is for you.

76
00:04:42,970 --> 00:04:47,870
The session picker now has a repository
filter, and the agent command center groups

77
00:04:47,890 --> 00:04:48,510
by directory.

78
00:04:49,010 --> 00:04:52,870
That cuts the clutter when you've got a
dozen sessions across several checkouts of

79
00:04:52,910 --> 00:04:53,570
the same repo.

80
00:04:54,437 --> 00:04:57,417
Memory v2 is now the default for fresh
profiles.

81
00:04:58,097 --> 00:05:03,297
PR 56414 adds importing memories from
external coding agents,

82
00:05:03,777 --> 00:05:09,277
and PR 56462 stops those imports from
racing with consolidation.

83
00:05:10,177 --> 00:05:11,557
Note the word fresh.

84
00:05:12,317 --> 00:05:16,937
This is for new profiles, so check your
own setup instead of assuming an existing

85
00:05:17,037 --> 00:05:17,857
profile changed.

86
00:05:18,597 --> 00:05:21,557
Two fixes for anyone who interrupts agents
a lot.

87
00:05:21,937 --> 00:05:27,557
PR 56330 stops queued agent messages from
restarting work after you interrupt,

88
00:05:27,777 --> 00:05:29,337
or after you switch to Plan mode.

89
00:05:29,937 --> 00:05:36,017
And PR 56132 cancels remote MCP tool
requests when the local response future is

90
00:05:36,057 --> 00:05:39,057
dropped, so abandoned calls don't keep
running on the server.

91
00:05:39,715 --> 00:05:41,135
Last one is security.

92
00:05:41,835 --> 00:05:48,095
PR 56263 rejects backslashes in the user
info part of

93
00:05:48,315 --> 00:05:52,435
HTTP and HTTPS marketplace URLs.

94
00:05:53,275 --> 00:05:58,835
The gap was that Git could connect to a
different host than the one checked against

95
00:05:58,935 --> 00:05:59,955
your allowed patterns.

96
00:06:00,795 --> 00:06:04,875
If you restrict marketplace sources by
pattern, that's a reason to update.

97
00:06:05,732 --> 00:06:07,472
So the practical checklist is short.

98
00:06:07,912 --> 00:06:14,592
Update to 0.165.0, set model_provider to
gcp, export your

99
00:06:14,632 --> 00:06:20,372
project and a location, confirm ADC works,
and test any workflow that depends on web

100
00:06:20,412 --> 00:06:20,672
search.

101
00:06:21,292 --> 00:06:22,012
That's it for today.

