1
00:00:00,000 --> 00:00:01,200
Welcome to the show everyone!

2
00:00:01,240 --> 00:00:03,517
I'm Lachlan Reed, here with James Turner.

3
00:00:03,557 --> 00:00:08,388
And James, mate, if you're managing a team
of developers using Claude Code,

4
00:00:08,420 --> 00:00:11,673
Anthropic just handed you a massive win
for your sanity.

5
00:00:11,737 --> 00:00:15,517
They've introduced proper configuration
scopes and version gating.

6
00:00:15,650 --> 00:00:20,086
No more wild west with developers running
whatever rogue version they stepped on.

7
00:00:21,000 --> 00:00:21,956
Oh, thank goodness.

8
00:00:22,544 --> 00:00:24,357
Because security drift is real.

9
00:00:24,469 --> 00:00:30,034
When you have fifty devs running fifty
different versions of an agentic CLI tool,

10
00:00:30,074 --> 00:00:32,590
keeping your compliance straight is a
total nightmare.

11
00:00:32,777 --> 00:00:34,511
So how are they centralizing this?

12
00:00:35,000 --> 00:00:37,165
It's all about managed configuration
scopes.

13
00:00:37,289 --> 00:00:41,719
Platform teams can now lock down the exact
version range of Claude Code that's

14
00:00:41,739 --> 00:00:42,760
allowed to run.

15
00:00:42,840 --> 00:00:47,397
They do this by setting two specific JSON
properties in a global file:

16
00:00:47,437 --> 00:00:51,163
`requiredMinimumVersion` and
`requiredMaximumVersion`.

17
00:00:51,403 --> 00:00:55,798
If a dev tries to spin up Claude Code and
their local install falls outside that

18
00:00:55,848 --> 00:00:58,434
bracket, it flat out refuses to run.

19
00:00:59,000 --> 00:01:00,521
Wait, it just blocks them?

20
00:01:01,239 --> 00:01:01,959
I love that.

21
00:01:02,172 --> 00:01:05,483
No gentle suggestions, just "go update
your tool."

22
00:01:05,663 --> 00:01:08,118
But where does this config actually live?

23
00:01:08,168 --> 00:01:11,881
Because if it's just in the user's home
directory, a dev can just delete it or

24
00:01:11,938 --> 00:01:12,763
change it, right?

25
00:01:13,000 --> 00:01:14,762
Spot on, and that's the clever bit.

26
00:01:15,002 --> 00:01:20,034
It reads from system-wide directories that
regular users shouldn't have write access

27
00:01:20,114 --> 00:01:20,354
to.

28
00:01:20,701 --> 00:01:26,443
On Linux, you're dropping a file called
`managed-settings.json` into

29
00:01:26,470 --> 00:01:28,285
`/etc/claude-code/`.

30
00:01:28,605 --> 00:01:31,084
On macOS, it goes into

31
00:01:31,217 --> 00:10:12,920
`/Library/Application

32
00:10:12,920 --> 00:10:16,118
Support/claude-code/managed-settings.json`.

33
00:10:17,000 --> 00:10:19,480
Ah, root-owned directories.

34
00:10:19,948 --> 00:10:24,283
So unless your devs have local admin and
want to actively bypass company policy,

35
00:10:24,299 --> 00:10:27,201
they're locked into whatever version the
platform team vetted.

36
00:10:27,257 --> 00:10:30,921
That's a massive checkbox ticked for
enterprise security compliance.

37
00:10:30,985 --> 00:10:32,763
What does the actual JSON look like?

38
00:10:32,843 --> 00:10:33,962
Just a basic object?

39
00:10:34,000 --> 00:10:34,882
Dead simple, mate.

40
00:10:35,042 --> 00:10:37,365
It's literally just a JSON object.

41
00:10:37,485 --> 00:10:39,046
You open curly braces, write
`"requiredMinimumVersion": "0.2.0"`,

42
00:10:39,046 --> 00:10:39,046
comma, `"requiredMaximumVersion":
"0.2.5"`, and close it.

43
00:10:39,046 --> 00:10:39,046
That's it.

44
00:10:39,046 --> 00:10:39,046
When the CLI boots up, it checks this
system path first, parses those semantic

45
00:10:39,046 --> 00:10:39,046
version strings, and compares it against
its own build.

46
00:10:40,000 --> 00:10:40,878
That's super clean.

47
00:10:42,848 --> 00:10:47,026
But speaking of versions, what about the
developer experience when they actually do

48
00:10:47,074 --> 00:10:48,146
need to update?

49
00:10:48,176 --> 00:10:52,230
Because nothing is worse than typing
`claude update` and just praying it doesn't

50
00:10:52,270 --> 00:10:53,194
break your environment.

51
00:10:54,000 --> 00:10:55,478
They actually fixed that!

52
00:10:55,996 --> 00:10:58,632
They added some great quality-of-life
tweaks.

53
00:10:58,852 --> 00:11:04,317
Now, when you run `claude update`, the CLI
explicitly prints the exact destination

54
00:11:04,367 --> 00:11:07,988
version it's about to grab before it
starts downloading anything.

55
00:11:08,175 --> 00:11:11,510
It gives you that final chance to look at
it and go, "Wait,

56
00:11:11,617 --> 00:11:15,429
no, my project's node version isn't ready
for that," and hit cancel.

57
00:11:16,000 --> 00:11:16,761
Yes!

58
00:11:17,161 --> 00:11:19,199
No more blind downloads.

59
00:11:19,279 --> 00:11:22,798
And I heard they also fixed how slash
commands behave in the terminal.

60
00:11:22,910 --> 00:11:24,877
That was driving me slightly crazy.

61
00:11:25,000 --> 00:11:26,434
Oh, the autocomplete behavior?

62
00:11:26,482 --> 00:11:28,113
Yeah, absolute lifesaver.

63
00:11:28,193 --> 00:11:32,680
Previously, if you used autocomplete on a
slash command, it would just fire off

64
00:11:32,744 --> 00:11:33,400
instantly.

65
00:11:33,600 --> 00:11:37,078
Now, it populates the command into your
prompt line first.

66
00:11:38,000 --> 00:11:42,475
So you actually get to look at the
populated command, edit the arguments,

67
00:11:42,528 --> 00:11:44,877
or back out before pressing enter.

68
00:11:45,504 --> 00:11:48,640
It's the little things that keep us from
accidentally nuking a directory.

69
00:11:49,000 --> 00:11:49,760
Exactly.

70
00:11:49,827 --> 00:11:51,883
It gives you back control.

71
00:11:52,203 --> 00:11:54,604
Well, that's us for today.

72
00:11:54,737 --> 00:11:57,477
Go lock down those Claude Code versions,
mates.

73
00:11:57,617 --> 00:11:58,757
See you next time!

74
00:11:59,000 --> 00:11:59,560
Catch you later!

