1
00:00:00,240 --> 00:00:02,100
This video will teach you codex.

2
00:00:02,340 --> 00:00:04,260
I'll go through all of the important features,

3
00:00:04,260 --> 00:00:07,600
show you how to set it up and install it and assume no prior knowledge.

4
00:00:07,600 --> 00:00:10,440
So even if you're a complete beginner, you'll be able to follow along.

5
00:00:10,740 --> 00:00:14,340
Now I'm going to be covering things like computer use or browser control.

6
00:00:14,340 --> 00:00:17,440
I'm going to show you how to set up for coding model selection,

7
00:00:17,440 --> 00:00:19,860
all of the different commands like slash goal.

8
00:00:19,960 --> 00:00:22,860
And a lot of the new features that I haven't seen many people cover.

9
00:00:23,140 --> 00:00:25,560
So with that said, stick around, let's get into it.

10
00:00:25,560 --> 00:00:27,060
And let me teach you codex.

11
00:00:27,240 --> 00:00:29,340
So let's start by discussing what codex is.

12
00:00:29,340 --> 00:00:32,340
We'll look at how we can use it because there's actually many different ways.

13
00:00:32,340 --> 00:00:34,600
And then I'll start going through all of the different features.

14
00:00:34,720 --> 00:00:38,300
There'll be timestamps down below in case you want to skip forward and keep in mind,

15
00:00:38,380 --> 00:00:40,420
I like to make things really thorough and detailed.

16
00:00:40,520 --> 00:00:43,560
So if you feel like I'm going too slow, fast forward to the next section.

17
00:00:44,100 --> 00:00:44,320
Okay.

18
00:00:44,500 --> 00:00:46,040
So first, what is Codex?

19
00:00:46,320 --> 00:00:50,320
Well, Codex is essentially OpenAI's answer to tools like Claude Code.

20
00:00:50,560 --> 00:00:52,980
It's actually much more involved than Claude Code.

21
00:00:52,980 --> 00:00:57,200
I would say it has a lot more features and a lot of people don't know about what you can do with it.

22
00:00:57,200 --> 00:01:01,420
Now, the basics is that you can use it to write code because it will give you access to their top

23
00:01:01,420 --> 00:01:07,960
bottles like GPT 5.5. However, you can also use it to control your computer, to automate tasks,

24
00:01:07,960 --> 00:01:12,160
to, you know, perform something repetitive for you. And you can even do something like tell it

25
00:01:12,160 --> 00:01:16,840
to play a song on Spotify for you. And it can go and do that by controlling your computer.

26
00:01:17,140 --> 00:01:20,580
So there's a lot of cool features that are not just related to coding. I'm going to try to cover

27
00:01:20,580 --> 00:01:25,600
all of those in this video. So what I want to do is quickly cover how you can use codex because

28
00:01:25,600 --> 00:01:28,900
Cause there's a lot of different ways and open AI has been very confusing with

29
00:01:28,900 --> 00:01:32,840
the naming of codecs because they had models called codecs, like their actual

30
00:01:32,840 --> 00:01:33,460
LLMs.

31
00:01:33,720 --> 00:01:37,540
Now they have the tool called codecs and you can use it in like many

32
00:01:37,540 --> 00:01:38,420
different fashions.

33
00:01:38,680 --> 00:01:42,660
So for this video, we're going to be using the standalone desktop application.

34
00:01:43,000 --> 00:01:45,800
The way this works is you download it and install it on your computer.

35
00:01:45,920 --> 00:01:49,140
You can get it for windows Mac, and then they don't have it for Linux right now.

36
00:01:49,140 --> 00:01:50,140
So just windows are back.

37
00:01:50,440 --> 00:01:53,560
Now you'll sign into this, using your chat GPT subscription.

38
00:01:53,560 --> 00:01:54,380
You can use it.

39
00:01:54,380 --> 00:01:57,040
I believe as low as $20 per month on the plus plan.

40
00:01:57,220 --> 00:01:59,860
Just keep in mind, I do have the $200 per month plan.

41
00:01:59,860 --> 00:02:02,260
So my usage limits will be significantly higher.

42
00:02:02,560 --> 00:02:04,460
And the limits are typically very generous.

43
00:02:04,460 --> 00:02:07,200
You're probably going to get five or 10 times the amount of usage

44
00:02:07,380 --> 00:02:09,460
than you would compared to something like Claude code.

45
00:02:09,580 --> 00:02:12,780
So I wouldn't be too concerned with ripping through it unless you use

46
00:02:12,960 --> 00:02:15,200
the highest end models and you're running it 24 seven.

47
00:02:15,260 --> 00:02:17,580
Now you can also use this with an open AI API key.

48
00:02:17,620 --> 00:02:20,920
I definitely do not recommend that because that's going to be very expensive.

49
00:02:21,220 --> 00:02:25,560
So first step, if you don't already download and install codex, I'll leave a link to it in the

50
00:02:25,560 --> 00:02:30,560
description, sign in with your chat GPT account, then you're good to go. Now, as well as the

51
00:02:30,560 --> 00:02:35,340
desktop app, which again is what we're going to be using. They also have an IDE extension. You can

52
00:02:35,340 --> 00:02:40,080
install this in the popular editors like cursor, visual studio code, and windsurf, and have access

53
00:02:40,080 --> 00:02:44,780
to the same codex interface inside of that editor. If you're a developer, you may want to do that.

54
00:02:44,820 --> 00:02:49,660
We also have CLI. Now this is a command line interface, more familiar to something like

55
00:02:49,660 --> 00:02:53,240
cloud code where you're not in kind of a nice graphical user interface, which

56
00:02:53,240 --> 00:02:55,960
you'll see in a minute, but the advantage here is that you can run this on

57
00:02:55,960 --> 00:02:59,320
something like Linux or server, and you can have this as a remote machine.

58
00:02:59,480 --> 00:03:01,280
That's running 24 seven, same thing.

59
00:03:01,280 --> 00:03:02,540
You can sign in with your account.

60
00:03:02,840 --> 00:03:06,180
And then we have the cloud version, which is running directly in your browser.

61
00:03:06,340 --> 00:03:09,460
It's better if you can use the desktop version, but if you want to do it from

62
00:03:09,460 --> 00:03:12,120
the browser on your phone or something, you can do that.

63
00:03:12,340 --> 00:03:12,600
Okay.

64
00:03:12,600 --> 00:03:14,320
So those are the surfaces for codex.

65
00:03:14,540 --> 00:03:18,000
Again, what we want to do is download the desktop application, which is where

66
00:03:18,000 --> 00:03:19,040
we're going to be working.

67
00:03:19,040 --> 00:03:20,600
And now let's open up that app.

68
00:03:20,760 --> 00:03:22,740
So I've just opened up the desktop application,

69
00:03:22,740 --> 00:03:24,100
which is where we're going to be working

70
00:03:24,100 --> 00:03:26,000
and where I recommend you use Codex

71
00:03:26,000 --> 00:03:27,680
because that's the most number of features.

72
00:03:27,820 --> 00:03:29,860
Now let's start by going through the user interface.

73
00:03:29,960 --> 00:03:32,720
You can understand what all of these buttons actually do.

74
00:03:32,840 --> 00:03:34,780
And then I promise we'll go through all of the features.

75
00:03:35,000 --> 00:03:36,920
So here you have your main chat window.

76
00:03:37,120 --> 00:03:38,760
There's a few things you want to pay attention to,

77
00:03:38,800 --> 00:03:40,680
like the model selector, which we'll look at in a minute,

78
00:03:41,000 --> 00:03:42,960
the voice dictation in case you want to use that,

79
00:03:43,240 --> 00:03:44,220
the approval modes.

80
00:03:44,220 --> 00:03:46,860
So ask for approval, approve for me or full access,

81
00:03:46,860 --> 00:03:51,600
and then being able to add different skills, context. And then if you want, you can actually

82
00:03:51,600 --> 00:03:55,700
run commands by using this slash. So if you do forward slash, you'll be able to see a list of

83
00:03:55,700 --> 00:03:59,620
all of the stuff available, which will be going through. You also have the ability to organize

84
00:03:59,620 --> 00:04:04,280
different chats into projects. So you can see, I have a few projects here. You can make a new one,

85
00:04:04,440 --> 00:04:07,920
but we'll look at that in a few minutes. Now from the right hand side, you'll also notice that you

86
00:04:07,920 --> 00:04:12,220
have these toggleable bars. So if you click on the right, it's going to show you a browser and

87
00:04:12,220 --> 00:04:16,000
a terminal that's because codecs can automatically control a browser for you

88
00:04:16,000 --> 00:04:17,380
and test your applications.

89
00:04:17,520 --> 00:04:21,360
And then you can also toggle up the terminal or the shell, which again,

90
00:04:21,480 --> 00:04:23,240
codecs can control and use for you.

91
00:04:23,280 --> 00:04:26,400
You typically don't need to do this, but I'm just showing you those views exist

92
00:04:26,400 --> 00:04:27,620
from the left-hand side.

93
00:04:27,620 --> 00:04:30,800
You can also toggle this sidebar where you have some of the important,

94
00:04:30,800 --> 00:04:32,640
I don't know, buttons or views.

95
00:04:32,880 --> 00:04:36,260
And if you want to access the settings menu, you can click on your profile,

96
00:04:36,380 --> 00:04:39,380
can go to profile or two settings for settings.

97
00:04:39,380 --> 00:04:41,120
If you are someone who's not going to do any coding,

98
00:04:41,120 --> 00:04:44,660
you could switch this over to the everyday work mode. So it's going to be a little bit less

99
00:04:44,660 --> 00:04:48,440
technical, but for most of us, we're going to want to stay here where we have access to the browser,

100
00:04:48,540 --> 00:04:52,480
the terminal and some other features. There's a ton of settings. Feel free to look through these

101
00:04:52,480 --> 00:04:56,840
and change any of them if you want, but again, I'll go through them one by one. And then last

102
00:04:56,840 --> 00:05:01,300
thing, if you go and look at usage and billing, you'll be able to see your usage, the plan that

103
00:05:01,300 --> 00:05:05,800
you're currently on. If you have any balance or anything, again, these are very generous limits.

104
00:05:05,840 --> 00:05:09,140
It's very unlikely that you're going to hit them, especially if you're doing something somewhat

105
00:05:09,140 --> 00:05:12,680
normal. So I wouldn't stress out about it too much. Okay. So now that we've gone through that,

106
00:05:12,740 --> 00:05:16,580
let's start looking at the models. Let's start running a few chats and setting up some plugins

107
00:05:16,580 --> 00:05:20,840
so I can show you things like the computer control, which is super cool. But first,

108
00:05:20,920 --> 00:05:26,780
just a quick word from our sponsor boot.dev. Now this is one of the best learning platforms out

109
00:05:26,780 --> 00:05:30,780
there and actually a long-term partner of this channel. Now, one of the biggest problems that

110
00:05:30,780 --> 00:05:36,020
I see with people learning to code is boredom. They watch tutorials, copy code, feel productive

111
00:05:36,020 --> 00:05:37,740
for a week and then they quit.

112
00:05:38,280 --> 00:05:40,720
Now boot.dev takes a completely different approach.

113
00:05:40,880 --> 00:05:44,880
It's very hands-on and honestly, it feels more like a game than a course.

114
00:05:45,040 --> 00:05:48,380
Now you're learning backend development by actually building things,

115
00:05:48,420 --> 00:05:49,760
not just watching videos.

116
00:05:49,860 --> 00:05:54,960
You work through real challenges in Python, SQL, and go earn XP, level up,

117
00:05:55,140 --> 00:05:57,780
fight bosses, and progress through a full backend curriculum.

118
00:05:57,920 --> 00:06:01,100
Now it sounds a bit gimmicky, but I promise you it actually works because

119
00:06:01,100 --> 00:06:04,040
you're doing the same kind of problem solving that you do on the job.

120
00:06:04,460 --> 00:06:08,220
Now they also have an AI tutor called boots, which doesn't just dump answers on you.

121
00:06:08,520 --> 00:06:12,180
It asks follow-up questions and helps you reason through problems when you get stuck,

122
00:06:12,460 --> 00:06:14,600
which is way closer to how you actually learn.

123
00:06:14,960 --> 00:06:17,080
Now all of the content is free to read and watch.

124
00:06:17,280 --> 00:06:21,240
And if you want the interactive coding, the progress tracking and the AI assistance,

125
00:06:21,600 --> 00:06:22,780
that's part of the paid plan.

126
00:06:23,140 --> 00:06:28,120
If you want to check it out, go to boot.dev and use my code tech with Tim to get 25% off

127
00:06:28,120 --> 00:06:29,000
your first year.

128
00:06:29,340 --> 00:06:31,540
Big thanks to boot.dev for sponsoring this video.

129
00:06:31,660 --> 00:06:33,060
Now let's get back into it.

130
00:06:33,340 --> 00:06:35,920
So like I was saying, let's have a look at the model selection.

131
00:06:35,940 --> 00:06:37,380
Now, for some reason, you don't see this view.

132
00:06:37,380 --> 00:06:40,060
You can always just press a new shot and it will bring this up.

133
00:06:40,480 --> 00:06:43,560
Now from here, if you go to model selector, you're going to see that you have a

134
00:06:43,560 --> 00:06:46,880
reasoning level, light, medium, high, and extra high.

135
00:06:47,240 --> 00:06:50,700
Now, of course you want to use the best reasoning whenever you possibly can,

136
00:06:50,820 --> 00:06:54,000
but keep in mind that this is going to take significantly longer.

137
00:06:54,220 --> 00:06:58,000
So the reasoning can kind of come down to how long this is going to take.

138
00:06:58,160 --> 00:07:01,580
Of course, the higher reasoning, the better responses and results that you're

139
00:07:01,580 --> 00:07:06,460
typically going to get, but it can increase the time by like four or five, sometimes 10 X.

140
00:07:06,600 --> 00:07:11,380
I've had tasks here taking a 30 minutes to run in extra high reasoning. So if you want something

141
00:07:11,380 --> 00:07:16,040
fast, if you're asking a quick question, you don't need super high reasoning and you can put this in

142
00:07:16,040 --> 00:07:21,960
light or medium mode. Now, when it comes to the model itself, you have a few options. GPT 5.5 is

143
00:07:21,960 --> 00:07:25,720
kind of the best one, you know, the frontier coding model, the one you're going to want to

144
00:07:25,720 --> 00:07:31,320
use for pretty much everything. GPT 5.4 is just the generation before that, that has kind of

145
00:07:31,320 --> 00:07:33,660
cheaper usage limits. I would never use this one.

146
00:07:33,980 --> 00:07:38,880
GPT 5.4 mini. This can be used for small, fast, kind of efficient things where

147
00:07:38,880 --> 00:07:42,340
you're asking a question or you just want, you know, quick UI change or something.

148
00:07:42,600 --> 00:07:47,220
And then 5.3 codec spark is just an extremely fast model that you use again,

149
00:07:47,220 --> 00:07:50,200
for very minor things that don't require a lot of intelligence.

150
00:07:50,420 --> 00:07:54,020
And specifically when you're running out of the usage on GPT 5.5.

151
00:07:54,260 --> 00:07:59,420
So for 99% of you, you just keep GPT 5.5 on probably throw it in medium reasoning.

152
00:07:59,600 --> 00:08:00,000
If you have

153
00:08:00,000 --> 00:08:02,000
If you have enough credits, you can turn on this fast mode.

154
00:08:02,000 --> 00:08:03,000
So we'll run faster.

155
00:08:03,000 --> 00:08:04,840
I pretty much always leave that on.

156
00:08:04,840 --> 00:08:08,820
And then if you start running out of the usage, you can switch to some of these other models.

157
00:08:08,820 --> 00:08:12,540
You can change the speed back to default and you can adjust the reasoning, but most of

158
00:08:12,540 --> 00:08:14,600
the time, 5.5 medium.

159
00:08:14,600 --> 00:08:17,400
is what you're going to keep it in. And if you're doing something more complicated,

160
00:08:17,680 --> 00:08:21,680
switch up the reasoning level here to high or extra high, you can play around with it,

161
00:08:21,680 --> 00:08:24,640
but that's pretty much all you need to know. Okay. So of course we're going to use this.

162
00:08:24,640 --> 00:08:27,720
I'm going to show you a bunch of prompts, but I want to show you how to set this up

163
00:08:27,720 --> 00:08:30,240
so we can do some really interesting things with codex.

164
00:08:30,540 --> 00:08:32,840
So what we're going to do here is go to plugins.

165
00:08:33,160 --> 00:08:37,800
Now this is one of my favorite features of codex is all of the plugins that it has by default.

166
00:08:37,960 --> 00:08:41,900
And the fact that it can control your computer, control your browser, control

167
00:08:41,900 --> 00:08:47,440
spreadsheets, access Google drive and do this in a really interactive and intuitive way. Now,

168
00:08:47,480 --> 00:08:51,500
most of your tools like this, like cloud code, they can do the same thing, but I find codex

169
00:08:51,500 --> 00:08:55,840
performs a lot better and it's just way easier to understand. So what we're going to want to do

170
00:08:55,840 --> 00:09:00,440
here is go to plugins and start installing some of the ones that you see on my computer right now.

171
00:09:00,480 --> 00:09:05,040
So the first one is computer use. If you don't already have this installed, you can install it

172
00:09:05,040 --> 00:09:09,180
and activate it. It may ask for some permissions here, and this is going to allow you to control

173
00:09:09,180 --> 00:09:14,420
your computer. So you can tell it to open up an application, go to your browser, access Spotify.

174
00:09:14,620 --> 00:09:18,660
We're going to look at that in one second. Next plugin we're going to want is Chrome. So we're

175
00:09:18,660 --> 00:09:23,560
going to want to install this Chrome plugin here and then open up this Chrome extension. Okay. This

176
00:09:23,560 --> 00:09:27,900
codex Chrome extension, you can see, I already have mine installed here. And if I go to the view,

177
00:09:28,000 --> 00:09:32,520
you can see we have codex and it's connected and this will allow codex to control your browser.

178
00:09:32,520 --> 00:09:35,960
So it can open up a tab. It can search for something. It can debug your application,

179
00:09:35,960 --> 00:09:39,220
make sure that you get that set up. Again, if you just press this open button,

180
00:09:39,520 --> 00:09:43,960
you can install the extension and link it. Another extension that I highly recommend is GitHub.

181
00:09:44,220 --> 00:09:49,180
If you're unfamiliar with Git and GitHub, this is essentially a version control software for code.

182
00:09:49,300 --> 00:09:53,740
This means that you can save your changes that, you know, you can recover them later on.

183
00:09:53,820 --> 00:09:57,280
You can store them in the clouds. You can use them from a different device and you can share

184
00:09:57,280 --> 00:10:01,560
them with your teammates. This is a standard. Anytime you're building even a medium-sized

185
00:10:01,560 --> 00:10:05,760
project, really any type of coding project, you should be using this. So create a free

186
00:10:05,760 --> 00:10:10,320
GitHub account, very easy. You can just go to github.com and then you can connect your GitHub

187
00:10:10,320 --> 00:10:14,120
account here inside of codex. So it can automatically make what's called a repository,

188
00:10:14,120 --> 00:10:18,500
which is just storing your code effectively and upload it to the cloud. So you're not going to

189
00:10:18,500 --> 00:10:23,260
lose it. You can access it from other devices and you can revert back in case codex makes a change.

190
00:10:23,260 --> 00:10:26,680
It breaks, you know, whatever the version of your project is. I'm not going to be teaching

191
00:10:26,680 --> 00:10:31,440
get in GitHub too much, but I do highly recommend that you set up that plugin. And you can see we

192
00:10:31,440 --> 00:10:35,480
have a few other ones here, like Google drive presentations, spreadsheets, Slack, Gmail,

193
00:10:35,480 --> 00:10:38,740
you can add as many of these as you want, but I'm going to stick with these for right now.

194
00:10:38,900 --> 00:10:44,200
So now that we have the computer plugin installed, I want to show you how to use this. So if I go

195
00:10:44,200 --> 00:10:48,360
and I use this at symbol, you can see that I can actually reference different applications

196
00:10:48,360 --> 00:10:54,040
and specifically this computer, right? So from computer, what I can do is ask it to do something.

197
00:10:54,680 --> 00:11:00,280
So let's start by doing something simple, open up notepad, close any of the existing windows that

198
00:11:00,280 --> 00:11:06,120
are there. And then write a simple note and describe your ideal day. I know you're a computer,

199
00:11:06,240 --> 00:11:09,620
but just come up with something. Okay. I'm just giving it kind of, you know, random prompt,

200
00:11:09,700 --> 00:11:13,140
by the way, if you're wondering what I'm using to prompt here, I always use this tool called

201
00:11:13,140 --> 00:11:17,940
whisper flow. Very good for voice dictation, especially in AI tools. I'll leave a link to it.

202
00:11:17,960 --> 00:11:21,800
So you can check it out in the description. You can see that I use it a ton based on my usage.

203
00:11:21,860 --> 00:11:27,180
Very, very good and free to try out. Okay. So let's run this and let's see what we get here.

204
00:11:27,180 --> 00:11:29,880
And you can see that it's going to use the computer plugin and it should

205
00:11:29,880 --> 00:11:33,780
control my computer and keep in mind that while it's controlling my computer,

206
00:11:33,780 --> 00:11:38,160
I can still use the computer myself so I can navigate into an application.

207
00:11:38,160 --> 00:11:39,080
I can close something.

208
00:11:39,080 --> 00:11:42,720
I don't need to have it kind of freely using the most because it will actually

209
00:11:42,720 --> 00:11:44,360
use its own cursor. Okay.

210
00:11:44,380 --> 00:11:47,800
Apologies because it had a note there that I didn't want you guys to see.

211
00:11:47,800 --> 00:11:48,940
So I had to kind of rerun this,

212
00:11:49,080 --> 00:11:51,840
but you can see that it actually just opened up my computer here,

213
00:11:51,840 --> 00:11:54,860
open up notepad and wrote this note inside for me. Okay.

214
00:11:54,860 --> 00:11:58,700
So now if I want to say something, can you continue this note and make it like double

215
00:11:58,700 --> 00:11:59,420
or triple the length?

216
00:11:59,460 --> 00:12:01,220
Don't worry if it's unsaved, just keep writing.

217
00:12:01,580 --> 00:12:01,840
Okay.

218
00:12:01,840 --> 00:12:02,660
And let's hit enter.

219
00:12:02,860 --> 00:12:06,660
And again, you'll see that we kind of get that blue hue around our computer and it's

220
00:12:06,660 --> 00:12:11,240
able to take over and do anything that we want, which can be super useful, especially

221
00:12:11,240 --> 00:12:16,960
for automating, kind of like testing a website, going through a form, running a task repetitively,

222
00:12:16,980 --> 00:12:17,840
you get the idea.

223
00:12:17,940 --> 00:12:18,660
So let's see how it works.

224
00:12:18,660 --> 00:12:19,960
And you can see that just opened it.

225
00:12:20,460 --> 00:12:21,840
And then did it extend the note?

226
00:12:22,100 --> 00:12:23,020
I guess not.

227
00:12:23,020 --> 00:12:27,480
says thinking, okay, maybe it will take over again in a second, but when it does that, you also see

228
00:12:27,480 --> 00:12:30,860
it's kind of cursor appearing, which I think is pretty cool. Okay. So for some reason it didn't

229
00:12:30,860 --> 00:12:34,340
keep controlling the note, but let's just do another example here. I'm going to say computer,

230
00:12:34,800 --> 00:12:39,360
open up Spotify, find Drake's most popular song, and then tell me what it is and play it.

231
00:12:39,940 --> 00:12:44,040
Okay. And let's just do this as an example so we can see. Okay. So it actually found that Spotify

232
00:12:44,040 --> 00:12:47,680
wasn't installed on my computer and it's going to now do this from Chrome, which is what I was

233
00:12:47,680 --> 00:12:51,900
trying to show. So I'm going to allow this to access my Chrome browser. Okay. So we can see

234
00:12:51,900 --> 00:12:54,360
it opened this, it actually started playing the song. I just paused it. Cause

235
00:12:54,360 --> 00:12:57,060
I don't want to get the copyright strike and it found the song for me. And then

236
00:12:57,060 --> 00:13:00,120
if I go here, it says that this is the most popular one. Okay. I don't know if

237
00:13:00,120 --> 00:13:03,000
that's true, but at least that's what it gave us. So the point is it can control

238
00:13:03,000 --> 00:13:06,140
Chrome, it can control its own devices. So keep that in mind. That's super

239
00:13:06,140 --> 00:13:10,080
useful, but now let's move to some more coding related features. Okay. So if

240
00:13:10,080 --> 00:13:13,200
we're done with the current chat here, what we can do is just press new chat

241
00:13:13,240 --> 00:13:16,700
and open up a new one here. And what I'm going to do now is I'm actually going to

242
00:13:16,700 --> 00:13:20,480
create a new project. Now, whenever you're coding, I recommend that you make a new

243
00:13:20,480 --> 00:13:25,280
projects. You can organize all of your chats for that specific project, and you can go back and

244
00:13:25,280 --> 00:13:29,680
find them easily. It's not required to do this, but it's kind of a good practice. So you can see

245
00:13:29,680 --> 00:13:34,840
that I can make new project. I can use an existing folder. So maybe I have an existing code repo that

246
00:13:34,840 --> 00:13:39,260
I want to use. I can open that up and that's kind of what a project is. It's really just a folder

247
00:13:39,260 --> 00:13:43,540
on your computer, or I can start one from scratch. So I'm going to start one from scratch and I'm

248
00:13:43,540 --> 00:13:47,660
just going to call this, I don't know, chess game. And what we'll do is we'll try to make like an

249
00:13:47,660 --> 00:13:49,940
interactive chess game here using codex.

250
00:13:50,180 --> 00:13:51,980
So you can see that's made a new project for me.

251
00:13:52,100 --> 00:13:53,360
It's called chess game.

252
00:13:53,520 --> 00:13:56,240
And notice that we have a few options here for the project.

253
00:13:56,440 --> 00:13:59,280
Now I have the ability to connect to codex web.

254
00:13:59,480 --> 00:14:03,020
This would essentially send all of the kind of info to the cloud,

255
00:14:03,020 --> 00:14:04,400
which is a little bit more complicated.

256
00:14:04,660 --> 00:14:07,640
We can work locally, which just means we're working on our own computer,

257
00:14:07,640 --> 00:14:10,840
which is what we're going to do here, or we can create something called a work

258
00:14:10,840 --> 00:14:13,760
tree. Now we're going to look at work trees later, but essentially this is a

259
00:14:13,760 --> 00:14:17,540
clone of this kind of project so that we can work on multiple things.

260
00:14:17,540 --> 00:14:19,380
at the same time without having a conflict.

261
00:14:19,620 --> 00:14:22,640
So for now, we're going to leave it in the current location that it's in.

262
00:14:22,860 --> 00:14:25,500
You'll notice that it automatically is connecting to get.

263
00:14:25,500 --> 00:14:29,360
So it's created a branch called main and you can make different branches

264
00:14:29,380 --> 00:14:31,700
if you're familiar with get, but we're not going to look at that for right now.

265
00:14:31,820 --> 00:14:34,280
I'm also just going to move this to full access mode, just so I don't

266
00:14:34,280 --> 00:14:35,580
need to keep approving things.

267
00:14:35,780 --> 00:14:38,140
And you can see it's pretty straightforward what you do here with those.

268
00:14:38,340 --> 00:14:39,860
So now let me give this a simple prompt.

269
00:14:40,180 --> 00:14:42,000
I want to create a simple chess game.

270
00:14:42,040 --> 00:14:46,380
I want to have a backend, which is using web sockets and kind of keeping

271
00:14:46,380 --> 00:14:50,220
track of scores and ratings and stuff in a database and people's usernames.

272
00:14:50,520 --> 00:14:53,080
And then I want to have a front end where we can actually play this.

273
00:14:53,340 --> 00:14:54,580
I want it to be multiplayer.

274
00:14:54,580 --> 00:14:57,220
So I want two people to be able to play against each other.

275
00:14:57,340 --> 00:15:01,260
We can keep it simple, have an MVP to start and then build everything out.

276
00:15:01,600 --> 00:15:03,500
Okay. So I'm just giving it kind of, you know, prompt on what I,

277
00:15:03,540 --> 00:15:04,780
what it is that I wanted to do.

278
00:15:05,000 --> 00:15:08,280
I wanted to build something out here and we're going to go ahead and press enter.

279
00:15:08,280 --> 00:15:10,060
And I just want to show you how this works. Okay.

280
00:15:10,060 --> 00:15:13,700
So we can see here, the codex is now working. It's making multiple files.

281
00:15:13,700 --> 00:15:15,620
We can see what it's doing and I can kind of, you know,

282
00:15:15,620 --> 00:15:19,100
go into this and inspect the different commands, but I want to see what's actually running.

283
00:15:19,320 --> 00:15:24,240
If I expand this right toggle, now you'll notice it is giving me a preview tab. We don't see

284
00:15:24,240 --> 00:15:27,960
anything right now because we're just waiting for it to finish the files, but we will be able to see

285
00:15:27,960 --> 00:15:32,320
all of the different files, code changes, and all this stuff going on here in one second.

286
00:15:32,540 --> 00:15:38,440
And then if I go here to this kind of little, I don't know, to-do list icon, you can see that we

287
00:15:38,440 --> 00:15:42,360
have a bunch of options. So I can change where I want it to work. I can change the branch. I can

288
00:15:42,360 --> 00:15:43,560
commit or push directly to

289
00:15:43,560 --> 00:15:44,980
GitHub. Now it's not giving

290
00:15:44,980 --> 00:15:45,980
us any results because it's

291
00:15:45,980 --> 00:15:47,320
not available online right

292
00:15:47,320 --> 00:15:48,260
now. It's just locally on

293
00:15:48,260 --> 00:15:49,460
our computer, but you get

294
00:15:49,460 --> 00:15:50,300
the idea. And then we can

295
00:15:50,300 --> 00:15:51,400
view the changes, which is

296
00:15:51,400 --> 00:15:52,280
making right now. So we're

297
00:15:52,280 --> 00:15:53,160
just waiting for those to

298
00:15:53,160 --> 00:15:54,400
finish. So there's a lot

299
00:15:54,400 --> 00:15:55,260
that will start happening

300
00:15:55,260 --> 00:15:56,360
when you actually write

301
00:15:56,360 --> 00:15:57,660
code. And then I can also

302
00:15:57,660 --> 00:15:58,800
toggle open the terminal,

303
00:15:58,800 --> 00:15:59,540
right? So I can run

304
00:15:59,540 --> 00:15:59,980
command.

305
00:16:00,000 --> 00:16:01,200
So I can run commands or see what's happening there.

306
00:16:01,260 --> 00:16:05,540
Let's go back into this view and then I can open this in any of the tools

307
00:16:05,540 --> 00:16:06,200
that are shown here.

308
00:16:06,200 --> 00:16:09,560
So if I wanted to open this in cursor and view all of the code in IDE,

309
00:16:09,700 --> 00:16:11,200
I can press that button and do so.

310
00:16:11,260 --> 00:16:13,140
So let's wait a second for it to finish writing this code.

311
00:16:13,140 --> 00:16:15,900
You can see that it's starting to show me some of the files that we have

312
00:16:15,900 --> 00:16:18,980
inside of this folder, and then we'll review it and see what we get.

313
00:16:19,340 --> 00:16:21,500
Okay. So it just finished the first pass here.

314
00:16:21,500 --> 00:16:24,700
It says that it built the multiplayer chess MVP and started locally.

315
00:16:24,900 --> 00:16:27,800
And if I press on any of the links here, you'll notice that they'll actually

316
00:16:27,800 --> 00:16:29,440
open directly in codex.

317
00:16:29,440 --> 00:16:31,240
So you can see that it's opened up right here.

318
00:16:31,240 --> 00:16:32,380
We kind of have this view.

319
00:16:32,380 --> 00:16:34,940
I can, you know, change the view, make it larger, smaller, whatever.

320
00:16:35,180 --> 00:16:37,800
So let's give a username, maybe like Tim.

321
00:16:37,800 --> 00:16:39,640
Okay. And join the game.

322
00:16:39,640 --> 00:16:41,580
And then let's try to find a game.

323
00:16:41,580 --> 00:16:41,840
Okay.

324
00:16:41,840 --> 00:16:43,820
And then I'm just going to open up another browser here.

325
00:16:43,880 --> 00:16:46,600
So you can see, I can press this plus button, go browser.

326
00:16:46,840 --> 00:16:48,260
We can actually manually type.

327
00:16:48,760 --> 00:16:50,180
So localhost 3000.

328
00:16:50,820 --> 00:16:51,180
Okay.

329
00:16:51,180 --> 00:16:55,280
And let's see, maybe we can change this as, I don't know, Joe or something.

330
00:16:55,860 --> 00:16:56,180
Okay.

331
00:16:56,320 --> 00:16:58,060
Join and find a game.

332
00:16:58,120 --> 00:17:00,980
And you can see that we find a game and then we can start playing.

333
00:17:01,100 --> 00:17:01,720
So I don't know.

334
00:17:01,780 --> 00:17:05,720
Let me try to move here and see if it moves on this side and it looks like it's working.

335
00:17:05,720 --> 00:17:07,500
So let's make a move like that.

336
00:17:07,980 --> 00:17:11,640
I'm not going to play the full thing out, but you guys get the idea that it is indeed

337
00:17:11,640 --> 00:17:16,020
working. We have a track of all the moves. We have some leaderboard. And then maybe if I resign,

338
00:17:16,360 --> 00:17:21,820
you can see now the ELO has updated and I want, so it says white wins by resignation. I mean,

339
00:17:21,960 --> 00:17:26,300
pretty cool that that worked that fast. Now within this browser view, there's a few buttons

340
00:17:26,300 --> 00:17:29,720
you should be aware of. So if you have a look at this right-hand side, you can see that you can

341
00:17:29,720 --> 00:17:33,620
actually take a screenshot. If you do that, it will save it to the clipboard. And then you can

342
00:17:33,620 --> 00:17:38,840
copy that screenshot or paste it, sorry, into the chat in case you want to capture what's going on

343
00:17:38,840 --> 00:17:42,200
inside of this window rather than doing it manually. And of course, chat,

344
00:17:42,200 --> 00:17:45,920
GBT and you know, GBT here can do image generation. It can view images.

345
00:17:46,160 --> 00:17:49,040
So that's, I mean, should be straightforward. You also can annotate.

346
00:17:49,040 --> 00:17:53,000
So if you annotate, this will allow you to select different HTML elements.

347
00:17:53,280 --> 00:17:53,960
So for example,

348
00:17:53,960 --> 00:17:57,280
maybe I'm going to select this and I can say something like I don't really like

349
00:17:57,300 --> 00:18:00,100
this title. I think we can make it look a lot better and put a chess logo.

350
00:18:00,940 --> 00:18:01,460
Okay.

351
00:18:01,780 --> 00:18:04,980
And then we can go here and we can actually just update any of the values

352
00:18:04,980 --> 00:18:06,220
directly on screen.

353
00:18:06,740 --> 00:18:08,860
I'm not going to do that because I would prefer just to prompt it,

354
00:18:09,100 --> 00:18:10,140
but I'm just going to run that.

355
00:18:10,520 --> 00:18:13,980
You can see, we now have an annotation in chat and I can start adding other

356
00:18:13,980 --> 00:18:18,520
annotations. So maybe I'm going to say, can we change the color of the board or

357
00:18:18,520 --> 00:18:22,180
have like a white or dark mode, or maybe change the square colors.

358
00:18:22,680 --> 00:18:24,920
I'm just giving random prompts to kind of show you how this works.

359
00:18:25,300 --> 00:18:28,200
And you can see we have annotations and I can say like go or something.

360
00:18:28,340 --> 00:18:31,640
And now it's going to have the annotations that we made in the browser.

361
00:18:31,920 --> 00:18:35,360
And it's going to make those changes, which are a lot more targeted. Okay.

362
00:18:35,360 --> 00:18:37,880
So I just refreshed, cause I want to see what this was doing live.

363
00:18:37,880 --> 00:18:41,280
And you can see if I go here now and I refresh, we've kind of changed

364
00:18:41,280 --> 00:18:42,240
what the board looks like.

365
00:18:42,240 --> 00:18:44,640
Obviously we've disconnected now we're waiting to join.

366
00:18:44,640 --> 00:18:47,480
We can see we have the kind of chess icon and it's essentially

367
00:18:47,480 --> 00:18:49,120
followed the annotations we asked for.

368
00:18:49,160 --> 00:18:49,360
Okay.

369
00:18:49,360 --> 00:18:52,720
So hopefully that gave you a bit of information on how the general kind of

370
00:18:52,720 --> 00:18:56,000
coding works inside of codex is very good for me.

371
00:18:56,000 --> 00:18:59,000
I really like this user interface and I like using this application.

372
00:18:59,200 --> 00:19:02,000
And I mean, you can see that it gives us pretty good results,

373
00:19:02,000 --> 00:19:03,720
even though I didn't do anything crazy.

374
00:19:03,720 --> 00:19:05,880
So now let's move to a few more advanced features.

375
00:19:06,040 --> 00:19:08,460
Let's start by having a look at some basic commands.

376
00:19:08,680 --> 00:19:13,520
So commands are just anything that start with a slash, and there's a ton of built-in commands

377
00:19:13,520 --> 00:19:16,540
inside of Claude code or not Claude code inside of codex.

378
00:19:16,620 --> 00:19:20,360
I'm not going to go over all of them, but I'll show you a few that you should be aware of.

379
00:19:20,460 --> 00:19:24,360
So first, if we do slash, we're going to want to look at status.

380
00:19:24,500 --> 00:19:26,860
Now status will just show you your usage limits.

381
00:19:26,940 --> 00:19:29,600
You can see that for my five hour limit, I'm at 98%.

382
00:19:29,600 --> 00:19:32,220
And for my seven day limit, I'm at 99%.

383
00:19:32,220 --> 00:19:34,320
It also gives me my context limit.

384
00:19:34,500 --> 00:19:36,040
Now the context can be viewed

385
00:19:36,040 --> 00:19:39,340
using this little kind of circular icon down here.

386
00:19:39,420 --> 00:19:41,240
It won't give you a detailed breakdown,

387
00:19:41,240 --> 00:19:43,500
but you'll be able to see how much you've used,

388
00:19:43,740 --> 00:19:45,820
how much is left and how many tokens are there.

389
00:19:45,880 --> 00:19:47,400
Now, depending on the models you're using,

390
00:19:47,440 --> 00:19:48,920
the context size can change,

391
00:19:49,040 --> 00:19:51,020
but this is something that's useful to be aware of

392
00:19:51,020 --> 00:19:52,760
because if the context gets too large,

393
00:19:52,760 --> 00:19:54,200
which means you have too many,

394
00:19:54,560 --> 00:19:57,500
you know, too much conversation, history, tool calls, et cetera,

395
00:19:57,620 --> 00:19:59,460
you will need to compact that.

396
00:20:00,100 --> 00:20:02,120
Now there's actually a command that can do this for you.

397
00:20:02,220 --> 00:20:03,840
It's called slash compact.

398
00:20:04,000 --> 00:20:08,320
Now what slash compact will do is it will take everything that you have in your current

399
00:20:08,320 --> 00:20:09,560
conversation history.

400
00:20:09,660 --> 00:20:13,720
So all of the tool calls, all of the code, anything that it's understood in this whole

401
00:20:13,720 --> 00:20:18,480
conversation that we've had, and it will generate a summary of that and then add that to kind

402
00:20:18,480 --> 00:20:21,040
of a new fresh conversation that you'll start.

403
00:20:21,160 --> 00:20:24,780
So you'll notice that after I did that, we now, if we look at the, uh, what is it?

404
00:20:24,840 --> 00:20:27,100
Context use here, we've only used 4%.

405
00:20:27,100 --> 00:20:28,980
So it's taken 22% there.

406
00:20:28,980 --> 00:20:32,760
It's condensed it down, given us a summary, and now we can continue.

407
00:20:32,880 --> 00:20:37,820
Now, it's not a great idea to compact super early because you want to use up the context window.

408
00:20:38,000 --> 00:20:44,260
But as soon as you start getting to 70%, 80%, 90% context, you typically want to compact it

409
00:20:44,260 --> 00:20:48,480
because you're going to get better results because as the model fills up with context,

410
00:20:48,480 --> 00:20:53,600
it performs worse. This is pretty well known. Not going to go into all of the details. Just be aware

411
00:20:53,600 --> 00:20:58,820
that command exists. You can use it in codex will automatically compact for you. If you're going to

412
00:20:58,820 --> 00:21:04,320
go past your context. So you may want to do it at a time that you decide rather than waiting for it

413
00:21:04,320 --> 00:21:08,540
to do it automatically. Now, another thing that we can do, which is sometimes useful is we can fork

414
00:21:08,540 --> 00:21:12,980
this. Now you can see that if we type slash fork, it will allow us to fork this chat into a local

415
00:21:12,980 --> 00:21:18,040
or new work tree, which we're going to look at effectively. What this will do is take everything

416
00:21:18,040 --> 00:21:23,020
that we've done and just create a complete copy of it. So we can work in multiple agents at the

417
00:21:23,020 --> 00:21:28,520
same time without them having any conflict. So they both will kind of work in their own copy of

418
00:21:28,520 --> 00:21:34,040
the code base, and then they can go and kind of join everything together, fix any of the merge

419
00:21:34,040 --> 00:21:37,880
conflicts. When we get to the final version, again, we'll look at fork in a minute, but that

420
00:21:37,880 --> 00:21:42,560
is a command to be aware of. You have the fast mode feedback. We're not going to do that. A knit

421
00:21:42,560 --> 00:21:46,840
goal and some other kind of modes that we'll look at here in a second, a few last things to be aware

422
00:21:46,840 --> 00:21:50,940
of. You can also pin chats. So if we want this chat to be available, we can pin it. And then we

423
00:21:50,940 --> 00:21:55,340
can create new chats inside of the same projects. You can see it's in chess game here, and we can

424
00:21:55,340 --> 00:21:59,500
decide how we want to work and just have another agent either running at the same time or in a new

425
00:21:59,500 --> 00:22:03,560
chat. If we want to ask for something different and kind of forget the previous conversation

426
00:22:03,560 --> 00:22:09,620
history we had here. Anyways, let's go to a new chat. Now we're inside of chess game and let's

427
00:22:09,620 --> 00:22:15,920
use a new mode that we haven't seen yet, which is plan. So if we use slash plan, we can enable plan

428
00:22:15,920 --> 00:22:20,920
mode. You'll see that it's here. And now with plan mode, what we can do is we can ask this something

429
00:22:20,920 --> 00:22:25,660
a little bit more detailed. We can describe what we want and codex will prompt us with different

430
00:22:25,660 --> 00:22:30,860
questions and kind of clarifying details before it goes and executes the plan pretty straightforward,

431
00:22:30,860 --> 00:22:35,540
but typically you want to make a plan before you do something too complex. So really for our chess

432
00:22:35,540 --> 00:22:40,140
game, we should have started in plan mode, built the plan and then executed. I was just saving it

433
00:22:40,140 --> 00:22:44,760
for later because it's a little bit more complex. So now maybe I want to expand this chess game.

434
00:22:44,880 --> 00:22:49,280
I want to have puzzles. I want to have a leaderboard. I want to have maybe a big UI. I want

435
00:22:49,280 --> 00:22:50,300
to have whatever accounts.

436
00:22:50,540 --> 00:22:52,160
So let's start generating a plan for that.

437
00:22:52,700 --> 00:22:54,680
I want to expand our chess game.

438
00:22:54,740 --> 00:22:59,540
I want to have a better landing page so that a user can see their stats and they

439
00:22:59,540 --> 00:23:03,440
have the ability to either play a game or play a puzzle or go to like a practice

440
00:23:03,440 --> 00:23:06,460
board. I want to generate a few different game modes, and I want to really

441
00:23:06,460 --> 00:23:09,680
polish this up and make it kind of like a chess.com clone.

442
00:23:09,920 --> 00:23:11,760
Let's start with just the MVP features.

443
00:23:11,760 --> 00:23:13,100
Can you generate a plan for this?

444
00:23:13,160 --> 00:23:14,540
Ask me any questions you need to.

445
00:23:15,400 --> 00:23:15,840
Okay.

446
00:23:16,280 --> 00:23:18,020
So let's go here and press enter.

447
00:23:18,020 --> 00:23:22,160
And because it's in plan mode, it's going to map everything out and it should start

448
00:23:22,160 --> 00:23:25,860
asking us some questions and prompting us so that it can generate that for us.

449
00:23:26,180 --> 00:23:26,420
Okay.

450
00:23:26,420 --> 00:23:29,420
So we can see that it's now prompting us with a few questions in the bottom here.

451
00:23:29,420 --> 00:23:33,920
So it says for the first MVP pass, which mode set should the landing page launch?

452
00:23:34,420 --> 00:23:38,660
We can have add bot game, add time modes or core three ship, the landing page

453
00:23:38,660 --> 00:23:40,080
live game, daily stuff puzzles.

454
00:23:40,080 --> 00:23:40,820
Let's go with that.

455
00:23:41,120 --> 00:23:43,220
How should the user stats work for an MVP?

456
00:23:43,420 --> 00:23:45,680
Let's just go username profiles.

457
00:23:45,720 --> 00:23:46,180
Okay.

458
00:23:46,180 --> 00:23:49,080
Um, username, login, expand stats.

459
00:23:49,200 --> 00:23:49,500
Okay.

460
00:23:49,780 --> 00:23:51,840
How deep should the puzzle mode be an MVP?

461
00:23:52,480 --> 00:23:53,500
Let's just do.

462
00:23:54,146 --> 00:23:58,506
mode be an MVP? Let's just do yeah. Small bundled puzzled library that looks good. And now we continue

463
00:23:58,506 --> 00:24:02,906
now, while it's doing this also mentioned that if you open up the sidebar here, you'll see a few more

464
00:24:02,906 --> 00:24:07,306
options because we're in this kind of coding environment. We can now view all of the files.

465
00:24:07,306 --> 00:24:11,166
If we want to look at this, we see, we have the database, we can open up the server, right?

466
00:24:11,186 --> 00:24:15,346
And you can modify the code, or you can add comments directly inside of here, tag different

467
00:24:15,346 --> 00:24:15,766
things.

468
00:24:15,886 --> 00:24:18,066
And now you'll see that it's generating the plan.

469
00:24:18,186 --> 00:24:20,446
I believe the plan will be stored in this repo.

470
00:24:20,486 --> 00:24:23,666
I might just need to refresh, but we should be able to view it.

471
00:24:23,726 --> 00:24:27,566
So if I want to look at the plan here, you can see, we can open it up and it gives us

472
00:24:27,566 --> 00:24:29,166
everything that needs to be done.

473
00:24:29,506 --> 00:24:29,866
Okay.

474
00:24:29,926 --> 00:24:32,366
So I could just implement this plan, right?

475
00:24:32,366 --> 00:24:33,566
And just start running with that.

476
00:24:33,566 --> 00:24:39,526
But what I want to show you now is another mode that's super useful, that is going to get things

477
00:24:39,526 --> 00:24:43,966
done a lot more efficiently for us without us having to keep approving things or prompting the

478
00:24:43,966 --> 00:24:50,526
model multiple times. And that is called goal. So there is this slash command called slash goal.

479
00:24:50,946 --> 00:24:57,346
If we use this, let me just actually type it out. What will happen is that codecs will run

480
00:24:57,346 --> 00:25:02,766
until a goal is achieved. Now, this is kind of that agentic loops that you may have heard about

481
00:25:02,766 --> 00:25:07,726
recently that everyone's talking about, they have that built in now. So what we can do is we can say,

482
00:25:07,806 --> 00:25:13,906
Hey, here's the goal. And we just set a high level objective and codecs will keep going until the goal

483
00:25:13,906 --> 00:25:17,966
is achieved. So it will plan, it will execute, and then it will review if it's achieved the goal.

484
00:25:18,266 --> 00:25:22,766
And if it hasn't, it will just keep running. So it's not just going to do one pass or implement

485
00:25:22,766 --> 00:25:27,946
one set of features. It will go until the goal is achieved. Now, in order to use this effectively,

486
00:25:27,946 --> 00:25:32,806
you need to set a good goal and the conditions for the goal to be achieved. Now, in our case,

487
00:25:32,826 --> 00:25:37,606
we already have the plan, so we can effectively just say, keep running until the entire plan is

488
00:25:37,606 --> 00:25:42,326
implemented. It will then run, check if the plan is done. If it's not, it will keep going. If it

489
00:25:42,326 --> 00:25:47,586
is, it will finish. So this will allow it to run for a long period of time, which also will use a

490
00:25:47,586 --> 00:25:52,626
lot of usage. So keep that in mind. So for the goal, I'm going to say, okay, keep running and

491
00:25:52,626 --> 00:25:57,446
implement the entire plan until the plan is fully finished. Everything is tested. Everything is

492
00:25:57,446 --> 00:26:01,946
working and we are confident to deploy this again, not the best prompt in the

493
00:26:01,946 --> 00:26:05,566
world, but I'm just showing you the usage here. And now that the plan is enabled,

494
00:26:05,626 --> 00:26:09,826
we have goal set. I can press enter and you can see that it's going to pursue

495
00:26:09,826 --> 00:26:14,206
this goal and start running and we can view, this is the goal and it's going

496
00:26:14,206 --> 00:26:17,606
through all of the different steps and it will just be this infinite loop,

497
00:26:17,726 --> 00:26:21,566
which can take a very long time to run. All right. So the goal has just finished.

498
00:26:21,566 --> 00:26:24,146
It built this application for us. I don't know if it's fully working,

499
00:26:24,146 --> 00:26:26,006
but you guys get the idea and it's done.

500
00:26:26,006 --> 00:26:30,666
So now let's have a look at some more features and start going through it. Okay. So first things

501
00:26:30,666 --> 00:26:35,606
first, if you look at any of these chats, you have the ability to right-click them. You can pin them,

502
00:26:35,726 --> 00:26:41,806
rename them. You can also fork them into a local version or a new work tree. Now I want to really

503
00:26:41,806 --> 00:26:46,986
briefly discuss what a work tree is because it's a little bit complicated and we'll save the full

504
00:26:46,986 --> 00:26:50,866
usage for a part two. So let me know if you guys want to see that in the comments down below.

505
00:26:51,086 --> 00:26:55,846
Now, if I try to open a new project here, right? So I've gone, sorry, new chat. Okay. So I went

506
00:26:55,846 --> 00:27:00,586
new chat and then I selected chess game. And then what I did is rather than selecting work locally,

507
00:27:00,586 --> 00:27:06,246
I selected new work tree. I have the ability to create a local environment. Now, the reason this

508
00:27:06,246 --> 00:27:11,206
is important is that if you want to run parallel agents at the same time, they should be working

509
00:27:11,206 --> 00:27:17,506
in their own copy of the repository or the project that you have. If they work on the same files,

510
00:27:17,626 --> 00:27:22,026
there can be conflicts because they're touching the same information at the same time. And that's

511
00:27:22,026 --> 00:27:28,526
not good. So the solution to this is a work tree. This is provided by Git. Again, it's a little bit

512
00:27:28,526 --> 00:27:32,886
complicated to set up and a bit confusing to use. So I'm not going to go through all of the details,

513
00:27:32,886 --> 00:27:38,406
but if you do want to run parallel agents at the same time, you have multiple tasks going,

514
00:27:38,706 --> 00:27:43,006
this is what you would use. You have to configure the environment first, which you can ask codecs

515
00:27:43,006 --> 00:27:47,086
to help you do. And then you can change the branches and stuff in order to work on the

516
00:27:47,086 --> 00:27:50,746
different features. And now you'll have different agents because you can run multiple at the same

517
00:27:50,746 --> 00:27:54,586
time working in these kinds of copies of the same repo.

518
00:27:54,586 --> 00:27:58,626
Again, this is a more advanced developer feature, so I'm not going to dive into it too much.

519
00:27:58,626 --> 00:28:02,986
Now, another feature that's somewhat related to this, let's go back to local copy here

520
00:28:02,986 --> 00:28:05,466
is this tool called slash review.

521
00:28:05,646 --> 00:28:10,346
Now, this is a code review that can automatically compare any changes that have been made in

522
00:28:10,346 --> 00:28:13,606
the current session against what's in GitHub.

523
00:28:13,826 --> 00:28:14,086
Okay.

524
00:28:14,226 --> 00:28:19,986
So if I go to maybe this right now and I go slash review, you can see that I can review

525
00:28:19,986 --> 00:28:25,226
this against a base branch. So a branch and get, if you're familiar with that or review any

526
00:28:25,226 --> 00:28:30,626
uncommitted changes. So if I go slash review, right. And then uncommitted changes, it's going

527
00:28:30,626 --> 00:28:35,266
to start looking at all of the changes that it made here and automatically review them to make

528
00:28:35,266 --> 00:28:40,326
sure that they're good before we push them to get, or before we commit them, this is a pretty useful

529
00:28:40,326 --> 00:28:44,526
feature that codex has. And this is something you should always do after you've done a large

530
00:28:44,526 --> 00:28:48,526
amount of changes before you push them to remote repository. And if you don't know what that means,

531
00:28:48,526 --> 00:28:49,026
Don't worry.

532
00:28:49,166 --> 00:28:51,906
But if you're a developer, you'll understand the value of having a built-in

533
00:28:51,906 --> 00:28:55,186
shortcut that will do all of those passes and checks for you.

534
00:28:55,446 --> 00:28:55,706
Okay.

535
00:28:55,706 --> 00:28:58,826
So you can see that it's done the review and it's given us some comments now.

536
00:28:58,826 --> 00:29:02,266
And it said, Hey, these are errors that I found after doing the code review.

537
00:29:02,266 --> 00:29:02,446
Right?

538
00:29:02,446 --> 00:29:03,586
So let me go ahead and fix them.

539
00:29:03,826 --> 00:29:04,086
Okay.

540
00:29:04,406 --> 00:29:07,826
So let's move to the next feature, which is memory and context.

541
00:29:08,086 --> 00:29:12,226
Now this is less, maybe, I don't know, demo wise and more me explaining how

542
00:29:12,226 --> 00:29:13,786
this works because I want you to understand this.

543
00:29:14,066 --> 00:29:16,546
So if I make a new, um, chat right here.

544
00:29:16,546 --> 00:29:16,846
Okay.

545
00:29:16,846 --> 00:29:18,886
And we go into this and I'm working locally.

546
00:29:19,046 --> 00:29:20,126
I want you to see something.

547
00:29:20,666 --> 00:29:24,746
What did I do in my last session when I was working on the chess game?

548
00:29:25,546 --> 00:29:28,906
Now, the reason why I'm going to run this prompt and show you the result is that

549
00:29:28,906 --> 00:29:35,146
you need to understand that by default codex doesn't remember things that you

550
00:29:35,146 --> 00:29:36,286
worked on in the past.

551
00:29:36,646 --> 00:29:41,266
Anytime you create a new chat, what it's doing is reviewing anything that you

552
00:29:41,266 --> 00:29:44,966
have in your current repo, kind of trying to load in information and find

553
00:29:44,966 --> 00:29:49,926
any context that's relevant and then give you an answer. But by default, it doesn't remember

554
00:29:49,926 --> 00:29:54,346
everything that you did. So it won't have the full conversation history. It won't know maybe

555
00:29:54,346 --> 00:29:58,906
preferences that you told it, and it can forget things because it doesn't remember by default.

556
00:29:59,166 --> 00:30:03,346
The only reason this actually just gave me a response is because it looked inside of my,

557
00:30:03,466 --> 00:30:08,446
you know, project here that I'm inside of and was able to find that information. But if I go to a

558
00:30:08,446 --> 00:30:13,926
new chat and I say, and I removed the project, what did I work on for my chess game? And I just

559
00:30:13,926 --> 00:30:18,266
ask it something really vague like that. It shouldn't know. At least I don't think it will

560
00:30:18,266 --> 00:30:22,486
know because it's not going to have any of that context. The reason why I'm mentioning this is

561
00:30:22,486 --> 00:30:27,266
that you need to understand that anytime you make a new session, you're effectively starting from

562
00:30:27,266 --> 00:30:32,126
scratch and anything that you want this to know, it has to already exist as a file. It has to be

563
00:30:32,126 --> 00:30:37,206
saved persistently. So codecs can read it in. And you can see here that it's not able to really

564
00:30:37,206 --> 00:30:41,746
find the information very well for me here. And it has to actually go and look through the different

565
00:30:41,746 --> 00:30:46,686
conversation history and threads to find this information. So it can find it, but the only

566
00:30:46,686 --> 00:30:51,766
reason it can do that is because it's searching through the threads and it's very slow. And again,

567
00:30:51,766 --> 00:30:55,846
it's not going to remember everything by default. The reason why I'm mentioning this is that you

568
00:30:55,846 --> 00:31:02,146
can fix this problem by creating something called an agent.md file. Now, this is something that's

569
00:31:02,146 --> 00:31:08,246
common in all of your code-based tools, CLI-based tools, whatever AI agents, where you can make

570
00:31:08,246 --> 00:31:14,426
effectively a memory file that will always be loaded into the prompt or into the model before

571
00:31:14,426 --> 00:31:18,466
you start working with it. Now, this is a really good file to create, especially when you're working

572
00:31:18,466 --> 00:31:23,646
on larger projects with multiple people, because you can store preferences, different tools or

573
00:31:23,646 --> 00:31:28,166
stacks that you want to use. I wouldn't say credentials, but you can store just important

574
00:31:28,166 --> 00:31:32,306
info that you don't want to have to keep telling the model over and over again. So for example,

575
00:31:32,306 --> 00:31:37,026
I can tell this, I'd like you to create an agents.md file with all of the conventions

576
00:31:37,026 --> 00:31:42,086
support for this project, specifically the tech stack that we're using, how to run it and what

577
00:31:42,086 --> 00:31:48,726
we've set up so far. Okay. And what this will do now is create a new file for us called agents.md.

578
00:31:48,846 --> 00:31:52,946
You'll see it in a second. It's automatically making it starts with all capitals and it's

579
00:31:52,946 --> 00:31:54,066
going to fill this file.

580
00:31:54,686 --> 00:32:00,166
info that now we're never going to forget or codex will never forget because this is by default

581
00:32:00,166 --> 00:32:05,146
automatically loaded into codex anytime we make a new conversation. So let's give this a second

582
00:32:05,146 --> 00:32:09,786
to make the file and see what it looks like. So let's open this up and you can see that it gives

583
00:32:09,786 --> 00:32:14,946
us project conventions, direction, tech stack, how to run it, et cetera. So now if we make a new

584
00:32:14,946 --> 00:32:19,646
conversation, I go, what are the project conventions? It's not going to have to search

585
00:32:19,646 --> 00:32:25,486
through a bunch of files to find this. It can just get it directly from its kind of system info now,

586
00:32:25,486 --> 00:32:30,186
because it will have been loaded in agents.md. So you can see it just immediately gives us the

587
00:32:30,186 --> 00:32:34,646
result. It doesn't need to read anything because it was already loaded in when we started the

588
00:32:34,646 --> 00:32:39,946
conversation. If we look at the context, you can see the context is slightly higher usage than

589
00:32:39,946 --> 00:32:44,206
normal because it started by loading that file. I hope that that makes sense to you. I know that's

590
00:32:44,206 --> 00:32:48,846
not the best explanation possible, but anything that you want to be kind of long-term persistent

591
00:32:48,846 --> 00:32:54,326
info that's going to be used all of the time, you want to put it in this agents.md file and tell

592
00:32:54,326 --> 00:32:59,426
codecs to create that for you. And you can continually update this to improve the performance

593
00:32:59,426 --> 00:33:05,586
of the model you use in a particular project. Okay. So that is kind of the agents.md and memory

594
00:33:05,586 --> 00:33:09,606
info that you need to know. And the last thing we'll look at is scheduled tasks. Now I'm not

595
00:33:09,606 --> 00:33:12,906
going to actually create these, but I'm just going to mention that they exist just like

596
00:33:12,906 --> 00:33:17,186
cloud code or other tools that you may have used. You can create scheduled tasks that run

597
00:33:17,186 --> 00:33:22,286
automatically for you, assuming your computer is on. So you can make a daily brief where every

598
00:33:22,286 --> 00:33:25,946
morning it, you know, opens your computer, searches the news and gives you some info.

599
00:33:25,946 --> 00:33:29,186
You can do a weekly review where it tells you all the things you worked on.

600
00:33:29,186 --> 00:33:32,246
You can do project monitor where if something changes, we do this.

601
00:33:32,246 --> 00:33:36,426
So if I do create via chat, for example, I can make it to set up a scheduled task

602
00:33:36,426 --> 00:33:39,466
for me automatically, or I can go to templates and I can pick one.

603
00:33:39,466 --> 00:33:41,886
So maybe like this, this is what I want to do.

604
00:33:42,106 --> 00:33:45,206
I want to run it in, you know, this chat or in a work tree.

605
00:33:45,826 --> 00:33:48,766
I want to in this project, I want it to repeat at this time.

606
00:33:49,386 --> 00:33:50,746
Then this is the model that I want to use.

607
00:33:50,746 --> 00:33:51,306
Okay.

608
00:33:51,306 --> 00:33:54,766
So again, you can make these, you can have them set to run and you can set this up

609
00:33:54,766 --> 00:33:56,886
to kind of automatically do things for you,

610
00:33:56,966 --> 00:33:59,146
which is useful if you want some automations.

611
00:33:59,146 --> 00:34:00,466
But for me, I don't really need any.

612
00:34:00,526 --> 00:34:01,866
So I don't have those set up as of now.

613
00:34:01,906 --> 00:34:02,966
And then of course you can search

614
00:34:02,966 --> 00:34:04,186
through all of your chats

615
00:34:04,186 --> 00:34:05,246
and a bunch of other stuff.

616
00:34:05,826 --> 00:34:07,006
And we can go crazy

617
00:34:07,006 --> 00:34:10,666
and we can go to, you know, add MCP servers.

618
00:34:10,806 --> 00:34:12,326
We can control the browser use.

619
00:34:12,386 --> 00:34:14,886
We can do computer use, hooks, connections,

620
00:34:15,046 --> 00:34:16,366
get environments, work trees.

621
00:34:16,546 --> 00:34:17,726
There is a lot more to go over,

622
00:34:17,786 --> 00:34:19,286
but I'm going to save that for a part two.

623
00:34:19,386 --> 00:34:20,726
If you guys let me know in the comments

624
00:34:20,726 --> 00:34:23,166
that you want to see an advanced version of this.

625
00:34:23,646 --> 00:34:25,086
That is going to wrap up this video.

626
00:34:25,286 --> 00:34:27,846
That was a pretty comprehensive overview of codex.

627
00:34:27,926 --> 00:34:30,766
A lot of the features, how to use it, some good demos,

628
00:34:30,766 --> 00:34:33,726
setting up a lot of the important plugins at this point, you know,

629
00:34:33,726 --> 00:34:35,846
probably 90% of codex.

630
00:34:36,046 --> 00:34:37,686
If you want the extra 10%, let me know.

631
00:34:37,686 --> 00:34:41,146
And I will happily make an advanced version for those of you that are devs

632
00:34:41,146 --> 00:34:43,566
and are kind of past some of the beginner stuff that I showed here.

633
00:34:43,886 --> 00:34:44,886
Anyways, I hope you enjoyed.

634
00:34:44,886 --> 00:34:48,286
If you did leave a like subscribe and I will see you in the next one.

635
00:34:53,166 --> 00:34:55,166
Now let's get started.
