1
00:00:00,266 --> 00:00:02,266
This video will teach you Codex.

2
00:00:02,266 --> 00:00:07,533
I'll go through all of the important features, show you how to set it up and install it, and assume no prior knowledge.

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

4
00:00:10,600 --> 00:00:14,266
Now I'm going to be covering things like computer use or browser control.

5
00:00:14,266 --> 00:00:22,966
I'm going to show you how to set it up for coding model selection, all of the different commands like slash goal, and a lot of the new features that I haven't seen many people cover.

6
00:00:23,000 --> 00:00:24,700
So with that said, stick around.

7
00:00:24,700 --> 00:00:27,133
Let's get into it and let me teach you Codex.

8
00:00:27,133 --> 00:00:29,333
So let's start by discussing what Codex is.

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

10
00:00:32,433 --> 00:00:34,833
And then I'll start going through all of the different features.

11
00:00:34,833 --> 00:00:37,533
There'll be timestamps down below in case you want to skip forward.

12
00:00:37,533 --> 00:00:40,433
And keep in mind I like to make things really thorough in detailed.

13
00:00:40,433 --> 00:00:44,400
So if you feel like I'm going to slow, fast forward to the next section okay.

14
00:00:44,433 --> 00:00:46,266
So first what is Codex?

15
00:00:46,266 --> 00:00:50,533
Well Codex is essentially OpenAI's answer to tools like Claude code.

16
00:00:50,533 --> 00:00:57,266
It's actually much more involved than Claude code I would say it has a lot more features, and a lot of people don't know about what you can do with it.

17
00:00:57,266 --> 00:01:03,700
Now, the basics is that you can use it to write code because it will give you access to their top models like GPT 5.5.

18
00:01:03,733 --> 00:01:10,500
However, you can also use it to control your computer, to automate tasks, to perform something repetitive for you.

19
00:01:10,500 --> 00:01:14,000
And you can even do something like tell it to play a song on Spotify for you.

20
00:01:14,000 --> 00:01:17,000
And it can go and do that by controlling your computer.

21
00:01:17,000 --> 00:01:19,700
So there's a lot of cool features that are not just related to coding.

22
00:01:19,700 --> 00:01:22,100
I'm going to try to cover all of those in this video.

23
00:01:22,100 --> 00:01:26,900
So what I want to do is quickly cover how you can use Codex, because there's a lot of different ways.

24
00:01:26,900 --> 00:01:33,600
And OpenAI has been very confusing with the naming of Codex because they had models called Codex like their actual LLMs.

25
00:01:33,600 --> 00:01:38,466
Now they have the tool called Codex, and you can use it in like many different fashions.

26
00:01:38,466 --> 00:01:42,866
So for this video we're going to be using the stand alone desktop application.

27
00:01:42,900 --> 00:01:45,833
The way this works is you download it and install it on your computer.

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

29
00:01:49,133 --> 00:01:50,400
So just Windows or Mac.

30
00:01:50,400 --> 00:01:53,666
Now you'll sign into this using your ChatGPT subscription.

31
00:01:53,666 --> 00:01:57,133
You can use it, I believe, as low as $20 per month on the plus plan.

32
00:01:57,133 --> 00:02:02,400
Just keep in mind I do have the $200 per month plan, so my usage limits will be significantly higher.

33
00:02:02,433 --> 00:02:04,400
Now the limits are typically very generous.

34
00:02:04,400 --> 00:02:07,300
You're probably going to get 5 or 10 times the amount of usage.

35
00:02:07,300 --> 00:02:11,933
Then you would compare it to something like Claude Code, so I wouldn't be too concerned with ripping through it.

36
00:02:11,933 --> 00:02:15,266
Unless you use the highest end models and you're running it 24 over seven.

37
00:02:15,266 --> 00:02:17,666
Now you can also use this with an OpenAI API key.

38
00:02:17,666 --> 00:02:21,100
I definitely do not recommend that because that's going to be very expensive.

39
00:02:21,100 --> 00:02:33,066
So first up, if you don't want to be downloaded and installed Codex, I'll leave a link to it in the description sign in with your ChatGPT account, then you're good to go now as well as the desktop app, which again is what we're going to be using.

40
00:02:33,100 --> 00:02:35,033
They also have an IDE extension.

41
00:02:35,033 --> 00:02:43,100
You can install this in the popular editors like cursor, Visual Studio Code and Windsurf and have access to the same Codex interface inside of that editor.

42
00:02:43,100 --> 00:02:45,000
If you're a developer, you may want to do that.

43
00:02:45,000 --> 00:02:46,400
We also have CLI.

44
00:02:46,400 --> 00:02:54,000
Now this is a command line interface more familiar to something like cloud Code, where you're not in kind of a nice graphical user interface, which you'll see in a minute.

45
00:02:54,000 --> 00:03:00,866
But the advantage here is that you can run this on something like Linux or a server, and you can have this as a remote machine that's running 24 over seven.

46
00:03:00,900 --> 00:03:01,299
Same thing.

47
00:03:01,299 --> 00:03:02,533
You can sign in with your account.

48
00:03:02,533 --> 00:03:06,233
And then we have the cloud version which is running directly in your browser.

49
00:03:06,233 --> 00:03:12,266
It's better if you can use the desktop version, but if you want to do it from the browser on your phone or something, you can do that.

50
00:03:12,300 --> 00:03:14,500
Okay, so those are the surfaces for Codex.

51
00:03:14,500 --> 00:03:19,066
Again, what we want to do is download the desktop application, which is where we're going to be working.

52
00:03:19,066 --> 00:03:20,666
And now let's open up that app.

53
00:03:20,666 --> 00:03:27,833
So just open up the desktop application, which is where we're going to be working and where I recommend you use Codex because does the most number of features.

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

55
00:03:29,866 --> 00:03:32,800
You can understand what all of these buttons actually do.

56
00:03:32,800 --> 00:03:35,066
And then I promise we'll go through all of the features.

57
00:03:35,066 --> 00:03:37,066
So here you have your main chat window.

58
00:03:37,066 --> 00:03:44,233
There's a few things you want to pay attention to, like the model selector which we'll look at in a minute, the voice dictation in case you want to use that the approval modes.

59
00:03:44,233 --> 00:03:47,000
So ask for approval approved for me or full access.

60
00:03:47,000 --> 00:03:50,100
And then being able to add different skills context.

61
00:03:50,100 --> 00:03:53,733
And then if you want you can actually run commands by using this slash.

62
00:03:53,833 --> 00:03:58,066
So if you do forward slash you be able to see a list of all of this stuff available which will be going through.

63
00:03:58,100 --> 00:04:01,466
You also have the ability to organize different chats into projects.

64
00:04:01,466 --> 00:04:03,333
So you can see I have a few projects here.

65
00:04:03,333 --> 00:04:05,933
You can make a new one, but we'll look at that in a few minutes.

66
00:04:05,933 --> 00:04:09,600
Now from the right hand side you'll also notice that you have these toggle bars.

67
00:04:09,600 --> 00:04:12,833
So if you click on the right it's going to show you a browser and a terminal.

68
00:04:12,833 --> 00:04:17,600
That's because Codex can automatically control a browser for you and test your applications.

69
00:04:17,600 --> 00:04:23,233
And then you can also toggle up the terminal or the shell, which again Codex can control and use for you.

70
00:04:23,266 --> 00:04:27,533
You typically don't need to do this, but I'm just showing you those views exist from the left hand side.

71
00:04:27,533 --> 00:04:32,900
You can also toggle this sidebar where you have some of the important I don't know, buttons or views.

72
00:04:33,166 --> 00:04:36,433
If you want to access the settings menu, you can click on your profile.

73
00:04:36,433 --> 00:04:39,433
You can go to profile or to settings for settings.

74
00:04:39,433 --> 00:04:43,500
If you are someone who's not going to do any coding, you can switch this over to the everyday work mode.

75
00:04:43,500 --> 00:04:50,200
So it's going to be a little bit less technical, but for most of us, we're going to want to stay here where we have access the browser, the terminal and some other features.

76
00:04:50,233 --> 00:04:51,433
There's a ton of settings.

77
00:04:51,433 --> 00:04:54,266
Feel free to look through these and change any of them if you want.

78
00:04:54,266 --> 00:04:56,233
But again, I'll go through them one by one.

79
00:04:56,233 --> 00:05:03,733
And then last thing, if you go and look at usage and billing, you'll be able to see your usage, the plan that you're currently on, if you have any balance or anything.

80
00:05:03,733 --> 00:05:05,833
Again, these are very generous limits.

81
00:05:05,833 --> 00:05:09,666
It's very unlikely that you're going to hit them, especially if you're doing something somewhat normal.

82
00:05:09,666 --> 00:05:11,433
So I wouldn't stress out about it too much.

83
00:05:11,433 --> 00:05:13,933
Okay, so now that we've gone through that, let's start looking at the models.

84
00:05:13,933 --> 00:05:20,200
Let's start running a few chats and setting up some plugins so I can show you things like the computer control, which is super cool.

85
00:05:20,200 --> 00:05:24,266
But first, just a quick word from our sponsor boot dev.

86
00:05:24,300 --> 00:05:29,400
Now this is one of the best learning platforms out there and actually a long term partner of this channel.

87
00:05:29,400 --> 00:05:33,266
Now, one of the biggest problems that I see with people learning to code is boredom.

88
00:05:33,266 --> 00:05:38,333
They watch tutorials, copy code, feel productive for a week, and then they quit now.

89
00:05:38,333 --> 00:05:40,900
But dev takes a completely different approach.

90
00:05:40,900 --> 00:05:45,066
It's very hands on and honestly, it feels more like a game than a course.

91
00:05:45,100 --> 00:05:50,066
Now you're learning backend development by actually building things, not just watching videos.

92
00:05:50,066 --> 00:05:58,000
You work through real challenges in Python SQL and go earn level up five bosses and progress through a full backend curriculum.

93
00:05:58,000 --> 00:06:04,266
Now it sounds a bit gimmicky, but I promise you it actually works because you're doing the same kind of problem solving that you do on the job.

94
00:06:04,266 --> 00:06:14,833
Now they also have an AI tutor called boots, which doesn't just dump answers on you, it asks follow up questions and helps you reason through problems when you get stuck, which is way closer to how you actually learn.

95
00:06:14,833 --> 00:06:22,933
Now, all of the content is free to read and watch, and if you want the interactive coding, the progress tracking, and the AI assistance, that's part of the paid plan.

96
00:06:23,000 --> 00:06:29,233
If you want to check it out, go to dev and use my code tech with Tim to get 25% off your first year.

97
00:06:29,266 --> 00:06:31,633
Big thanks to Boot Dev for sponsoring this video.

98
00:06:31,633 --> 00:06:33,266
Now let's get back into it.

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

100
00:06:35,933 --> 00:06:37,400
Now, for some reason you don't see this view.

101
00:06:37,400 --> 00:06:40,300
You can always just press a new chat and it will bring this up.

102
00:06:40,300 --> 00:06:47,033
Now from here if you go to model selector you're going to see that you have a reasoning level light medium high and extra high.

103
00:06:47,066 --> 00:06:54,066
Now of course you want to use the best reasoning whenever you possibly can, but keep in mind that this is going to take significantly longer.

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

105
00:06:58,133 --> 00:07:06,633
Of course, the higher reasoning, the better responses and results that you're typically going to get, but it can increase the time by like 4 or 5, sometimes ten x.

106
00:07:06,633 --> 00:07:10,800
I've had tasks here taken 30 minutes to run in extra high reasonings.

107
00:07:10,800 --> 00:07:11,833
If you want something fast.

108
00:07:11,833 --> 00:07:17,333
If you're asking a quick question, you don't need super high reasoning and you can put this in light or medium mode.

109
00:07:17,400 --> 00:07:20,333
Now, when it comes to the model itself, you have a few options.

110
00:07:20,333 --> 00:07:23,333
GPT 5.5 is kind of the best one.

111
00:07:23,333 --> 00:07:27,500
The frontier coding model, the one you're going to want to use for pretty much everything.

112
00:07:27,533 --> 00:07:32,400
GPT 5.4 is just the generation before that that has kind of cheaper usage limits.

113
00:07:32,400 --> 00:07:34,627
I would never use this one.

114
00:07:34,627 --> 00:07:35,700
GPT 5.4 mini.

115
00:07:35,733 --> 00:07:42,400
This can be used for small, fast, kind of efficient things where you're asking a question or you just want, you know, quick UI change or something.

116
00:07:42,400 --> 00:07:50,200
And then 5.3 Codec Spark is just an extremely fast model that you use again, for very minor things that don't require a lot of intelligence.

117
00:07:50,200 --> 00:07:54,133
And specifically when you're running out of the usage on GPT 5.5.

118
00:07:54,133 --> 00:07:57,600
So for 99% of you, you just keep GPT 5.5 on.

119
00:07:57,600 --> 00:07:59,533
Probably throw it in medium reasoning.

120
00:07:59,533 --> 00:08:02,933
If you have enough credits, you can turn on this fast mode so it'll run faster.

121
00:08:02,933 --> 00:08:08,700
I pretty much always leave that on, and then if you start running out of the usage, you can switch to some of these other models.

122
00:08:08,700 --> 00:08:14,300
You can change the speed back to default and you can adjust the reasoning, but most of the time 5.5 medium.

123
00:08:14,300 --> 00:08:15,633
This is what you're going to keep it in.

124
00:08:15,633 --> 00:08:20,666
And if you're doing something more complicated, switch up the reasoning level here to high or extra high.

125
00:08:20,700 --> 00:08:23,400
You can play around with it, but that's pretty much all you need to know.

126
00:08:23,400 --> 00:08:26,066
Okay, so of course we're going to use this and I'm going to show you a bunch of prompts.

127
00:08:26,066 --> 00:08:30,433
But I want to show you how to set this up so we can do some really interesting things with Codex.

128
00:08:30,433 --> 00:08:33,033
So what we're going to do here is go to plugins.

129
00:08:33,033 --> 00:08:37,833
Now this is one of my favorite features of Codex is all of the plugins that it has by default.

130
00:08:37,833 --> 00:08:47,066
And the fact that it can control your computer, control your browser, control spreadsheets, access Google Drive, and do this in a really interactive and intuitive way.

131
00:08:47,100 --> 00:08:54,866
Now, most of your tools like this like cloud code, they can do the same thing, but I find Codex performs a lot better and it's just way easier to understand.

132
00:08:54,866 --> 00:09:00,533
So what we're going to want to do here is go to plugins and start installing some of the ones that you see on my computer right now.

133
00:09:00,533 --> 00:09:02,666
So the first one is computer use.

134
00:09:02,666 --> 00:09:05,700
If you don't already have this installed, you can install it and activate it.

135
00:09:05,700 --> 00:09:07,466
It may ask for some permissions here.

136
00:09:07,466 --> 00:09:09,933
And this is going to allow you to control your computer.

137
00:09:09,933 --> 00:09:14,466
So you can tell it to open up an application go to your browser, access Spotify.

138
00:09:14,500 --> 00:09:16,233
We're going to look at that in one second.

139
00:09:16,233 --> 00:09:18,333
Next plug in we're going to want is Chrome.

140
00:09:18,333 --> 00:09:20,466
So we're going to want to install this Chrome plug in here.

141
00:09:20,466 --> 00:09:23,333
And then open up this Chrome extension okay.

142
00:09:23,333 --> 00:09:24,600
This Codex Chrome extension.

143
00:09:24,600 --> 00:09:26,600
You can see I already have mine installed here.

144
00:09:26,600 --> 00:09:29,900
And if I go to the view you can see we have Codex and it's connected.

145
00:09:29,900 --> 00:09:32,533
And this will allow Codex to control your browser.

146
00:09:32,533 --> 00:09:33,633
So it can open up a tab.

147
00:09:33,633 --> 00:09:34,921
It can search for something.

148
00:09:34,921 --> 00:09:36,300
It can debug your application.

149
00:09:36,300 --> 00:09:37,866
Make sure that you get that set up again.

150
00:09:37,866 --> 00:09:41,400
If you just press this open button you can install the extension and link it.

151
00:09:41,433 --> 00:09:44,300
Another extension that I highly recommend is GitHub.

152
00:09:44,300 --> 00:09:49,400
If you're unfamiliar with git and GitHub, this is essentially a version control software for code.

153
00:09:49,433 --> 00:09:53,866
This means that you can save your changes, that you can recover them later on.

154
00:09:53,900 --> 00:09:58,333
You can store them in the clouds, you can use them from a different device and you can share them with your teammates.

155
00:09:58,400 --> 00:10:02,033
This is a standard anytime you're building even a medium sized project.

156
00:10:02,033 --> 00:10:04,633
Really any type of coding project, you should be using this.

157
00:10:04,633 --> 00:10:06,866
So create a free GitHub account.

158
00:10:06,866 --> 00:10:07,400
Very easy.

159
00:10:07,400 --> 00:10:11,833
You can just go to github.com and then you can connect your GitHub account here inside of Codex.

160
00:10:11,833 --> 00:10:18,933
So it can automatically make what's called a repository, which is just storing your code effectively and upload it to the clouds that you're not going to lose it.

161
00:10:18,933 --> 00:10:23,300
You can access it from other devices and you can revert back in case Codex makes a change.

162
00:10:23,333 --> 00:10:25,800
It breaks whatever the version of your project is.

163
00:10:25,800 --> 00:10:35,533
I'm not going to be teaching git in GitHub too much, but I do highly recommend that you set up that plugin and you can see we have a few other ones here like Google Drive, presentations, spreadsheets, slack, Gmail.

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

165
00:10:38,900 --> 00:10:43,300
So now that we have the computer plugin installed, I want to show you how to use this.

166
00:10:43,300 --> 00:10:50,666
So if I go and I use this at symbol, you can see that I can actually reference different applications and specifically this computer.

167
00:10:50,700 --> 00:10:51,066
Right.

168
00:10:51,066 --> 00:10:54,400
So from computer what I can do is ask it to do something.

169
00:10:54,666 --> 00:10:56,900
So let's start by doing something simple.

170
00:10:56,900 --> 00:11:05,266
Open up notepad, close any of the existing windows that are there, and then write a simple note and describe your ideal day.

171
00:11:05,266 --> 00:11:07,933
I know you're a computer, but just come up with something, okay?

172
00:11:07,933 --> 00:11:09,833
I'm just giving it kind of random prompt.

173
00:11:09,833 --> 00:11:14,233
By the way, if you're wondering what I'm using to prompt here, I always use this tool called Whisper Flow.

174
00:11:14,400 --> 00:11:17,200
Very good for voice dictation, especially in AI tools.

175
00:11:17,200 --> 00:11:18,585
I'll leave a link to it so you can check it out.

176
00:11:18,585 --> 00:11:19,133
In the description.

177
00:11:19,133 --> 00:11:21,933
You can see that I use it a ton based on my usage.

178
00:11:21,933 --> 00:11:23,733
Very very good and free to try out.

179
00:11:23,733 --> 00:11:27,100
Okay, so let's run this and let's see what we get here.

180
00:11:27,100 --> 00:11:29,233
And you can see that it's going to use the computer plugin.

181
00:11:29,233 --> 00:11:31,233
And it should control my computer.

182
00:11:31,233 --> 00:11:36,233
And keep in mind that while it's controlling my computer, I can still use the computer myself.

183
00:11:36,233 --> 00:11:38,027
So I can navigate into an application.

184
00:11:38,027 --> 00:11:39,066
I can close something.

185
00:11:39,066 --> 00:11:44,033
I don't need to have it kind of freely using the mouse, because it will actually use its own cursor.

186
00:11:44,033 --> 00:11:49,033
Okay, apologies, because it had a note there that I didn't want you guys to see, so I had to kind of rerun this.

187
00:11:49,033 --> 00:11:54,600
But you can see that it actually just opened up my computer here, open up notepad and wrote this note inside for me.

188
00:11:54,633 --> 00:11:54,833
Okay.

189
00:11:54,833 --> 00:11:59,514
So now if I want to say something, can you continue this node and make it like double or triple the length?

190
00:11:59,514 --> 00:12:00,600
Don't worry if it's unsaved.

191
00:12:00,600 --> 00:12:01,833
Just keep writing okay.

192
00:12:01,833 --> 00:12:02,700
And let's hit enter.

193
00:12:02,700 --> 00:12:06,333
And again you'll see that we kind of get that blue hue around our computer.

194
00:12:06,333 --> 00:12:17,100
And it's able to take over and do anything that we want, which can be super useful, especially for automating, kind of like testing a website, going through a form, running a task repetitively.

195
00:12:17,100 --> 00:12:17,866
You get the idea.

196
00:12:17,866 --> 00:12:18,942
So let's see how it works.

197
00:12:18,942 --> 00:12:20,433
And you can see that just opened it.

198
00:12:20,433 --> 00:12:22,233
And then did it extend the note?

199
00:12:22,233 --> 00:12:26,033
I guess not, says thinking okay, maybe it will take over again in a second.

200
00:12:26,200 --> 00:12:29,600
But when it does that you also see it's kind of cursor appearing, which I think is pretty cool.

201
00:12:29,633 --> 00:12:31,833
Okay, so for some reason it didn't keep controlling the note.

202
00:12:31,833 --> 00:12:33,266
But let's just do another example here.

203
00:12:33,266 --> 00:12:40,133
I'm going to say computer, open up Spotify, find Drake's most popular song, and then tell me what it is and play it okay.

204
00:12:40,200 --> 00:12:42,733
And let's just do this as an example so we can see okay.

205
00:12:42,733 --> 00:12:45,500
So it actually found that Spotify wasn't installed on my computer.

206
00:12:45,500 --> 00:12:48,266
And it's going to now do this from Chrome which is what I was trying to show.

207
00:12:48,266 --> 00:12:51,400
So I'm going to allow this to access my Chrome browser okay.

208
00:12:51,433 --> 00:12:56,833
So we can see it opened this, it actually started playing the song, I just paused, I don't want to get the copyright strike and it found the song for me.

209
00:12:56,833 --> 00:12:59,500
And then if I go here it says that this is the most popular one.

210
00:12:59,500 --> 00:13:01,733
Okay, I don't know if that's true, but at least that's what it gave us.

211
00:13:01,733 --> 00:13:04,933
So the point is it can control Chrome, it can control its own devices.

212
00:13:04,933 --> 00:13:05,700
So keep that in mind.

213
00:13:05,700 --> 00:13:06,666
That's super useful.

214
00:13:06,666 --> 00:13:09,800
But now let's move to some more coding related features okay.

215
00:13:09,833 --> 00:13:14,533
So if we're done with the current chat here, what we can do is just press new chat and open up a new one here.

216
00:13:14,533 --> 00:13:18,066
And what I'm going to do now is I'm actually going to create a new project.

217
00:13:18,066 --> 00:13:21,033
Now, whenever you're coding, I recommend that you make a new projects.

218
00:13:21,033 --> 00:13:26,333
You can organize all of your chats for that specific project, and you can go back and find them easily.

219
00:13:26,400 --> 00:13:29,100
It's not required to do this, but it's kind of a good practice.

220
00:13:29,100 --> 00:13:30,933
So you can see that I can make new project.

221
00:13:30,933 --> 00:13:32,700
I can use an existing folder.

222
00:13:32,700 --> 00:13:35,466
So maybe I have an existing code repo that I want to use.

223
00:13:35,466 --> 00:13:36,266
I can open that up.

224
00:13:36,266 --> 00:13:38,133
And that's kind of what a project is.

225
00:13:38,133 --> 00:13:40,233
It's really just a folder on your computer.

226
00:13:40,233 --> 00:13:41,866
Or I can start one from scratch.

227
00:13:41,866 --> 00:13:45,633
So I'm going to start one from scratch, and I'm just going to call this I don't know chess game.

228
00:13:45,633 --> 00:13:50,033
And what we'll do is we'll try to make like an interactive chess game here using Codex.

229
00:13:50,033 --> 00:13:52,066
So you can see that it's made a new project for me.

230
00:13:52,066 --> 00:13:53,333
It's called Chess Game.

231
00:13:53,333 --> 00:13:56,233
And notice that we have a few options here for the project.

232
00:13:56,233 --> 00:13:59,400
Now I have the ability to connect to Codex Web.

233
00:13:59,400 --> 00:14:04,500
This would essentially send all of the kind of info to the cloud, which is a little bit more complicated.

234
00:14:04,533 --> 00:14:09,033
We can work locally, which just means we're working on our own computer, which is what we're going to do here.

235
00:14:09,033 --> 00:14:11,133
Or we can create something called a work tree.

236
00:14:11,133 --> 00:14:19,500
Now we're going to look at work trees later, but essentially this is a clone of this kind of project so that we can work on multiple things at the same time without having a conflict.

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

238
00:14:22,733 --> 00:14:25,466
You'll notice that it automatically is connecting to get.

239
00:14:25,466 --> 00:14:27,466
So it's created a branch called main.

240
00:14:27,466 --> 00:14:30,466
And you can make different branches if you're familiar with git.

241
00:14:30,466 --> 00:14:31,800
But we're not going to look at that for right now.

242
00:14:31,800 --> 00:14:35,533
I'm also just going to move this to full access mode, just so I don't need to keep approving things.

243
00:14:35,533 --> 00:14:38,200
And you can see it's pretty straightforward what you do here with those.

244
00:14:38,200 --> 00:14:40,000
So now let me give this a simple prompt.

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

246
00:14:42,000 --> 00:14:50,200
I want to have a back end which is using WebSockets and kind of keeping track of scores and ratings and stuff in a database in people's usernames.

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

248
00:14:53,200 --> 00:14:57,266
I want it to be multiplayer, so I want two people to be able to play against each other.

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

250
00:15:01,533 --> 00:15:01,666
Okay.

251
00:15:01,666 --> 00:15:04,833
So I'm just giving it kind of, you know, prompt on what I, what it is that I want it to do.

252
00:15:04,833 --> 00:15:06,433
I want it to build something out here.

253
00:15:06,433 --> 00:15:08,266
And we're going to go ahead and press enter.

254
00:15:08,266 --> 00:15:10,066
And I just want to show you how this works okay.

255
00:15:10,066 --> 00:15:12,200
So we can see here the Codex is now working.

256
00:15:12,200 --> 00:15:13,466
It's making multiple files.

257
00:15:13,466 --> 00:15:14,733
We can see what it's doing.

258
00:15:14,733 --> 00:15:17,633
And I can kind of go into this and inspect the different commands.

259
00:15:17,633 --> 00:15:19,400
But I want to see what's actually running.

260
00:15:19,400 --> 00:15:21,266
If I expand this right toggle.

261
00:15:21,266 --> 00:15:23,666
Now you'll notice that it's giving me a preview tab.

262
00:15:23,666 --> 00:15:26,666
We don't see anything right now because we're just waiting for it to finish the files.

263
00:15:26,666 --> 00:15:32,400
But we will be able to see all of the different files, code changes and all this stuff going on here in one second.

264
00:15:32,400 --> 00:15:39,266
And then if I go here to this kind of little, I don't know, to do list icon, you can see that we have a bunch of options.

265
00:15:39,266 --> 00:15:40,866
So I can change where I want it to work.

266
00:15:40,866 --> 00:15:44,100
I can change the branch I can commit or push directly to GitHub.

267
00:15:44,133 --> 00:15:47,433
Now it's not giving us any results because it's not available online right now.

268
00:15:47,433 --> 00:15:49,033
It's just locally on our computer.

269
00:15:49,033 --> 00:15:49,833
But you get the idea.

270
00:15:49,833 --> 00:15:52,033
And then we can view the changes which is making right now.

271
00:15:52,033 --> 00:15:53,633
So we're just waiting for those to finish.

272
00:15:53,633 --> 00:15:56,700
So there's a lot that will start happening when you actually write code.

273
00:15:56,700 --> 00:15:58,729
And then I can also toggle open the terminal.

274
00:15:58,729 --> 00:15:59,000
Right.

275
00:15:59,000 --> 00:16:01,233
So I can run commands or see what's happening there.

276
00:16:01,233 --> 00:16:02,633
Let's go back into this view.

277
00:16:02,633 --> 00:16:06,200
And then I can open this in any of the tools that are shown here.

278
00:16:06,200 --> 00:16:11,233
So if I wanted to open this in cursor and view all of the code in IDE, I can press that button and do so.

279
00:16:11,233 --> 00:16:12,200
So let's wait a second for it.

280
00:16:12,200 --> 00:16:19,600
To finish writing this code, you can see that it's starting to show me some of the files that we have inside of this folder, and then we'll review it and see what we get okay.

281
00:16:19,633 --> 00:16:21,533
So just finished the first pass here.

282
00:16:21,533 --> 00:16:24,800
It says that it built the multiplayer chess MVP and started locally.

283
00:16:24,800 --> 00:16:29,300
And if I press on any of the links here, you'll notice that they'll actually open directly in Codex.

284
00:16:29,300 --> 00:16:31,266
So you can see that it's opened up right here.

285
00:16:31,266 --> 00:16:32,400
We kind of have this view.

286
00:16:32,400 --> 00:16:35,066
I can change the view, make it large or small or whatever.

287
00:16:35,066 --> 00:16:38,133
So let's give a username maybe like Tim okay.

288
00:16:38,200 --> 00:16:39,400
And join the game.

289
00:16:39,400 --> 00:16:41,733
And then let's try to find a game okay.

290
00:16:41,733 --> 00:16:43,800
And then I'm just going to open up another browser here.

291
00:16:43,800 --> 00:16:46,900
So you can see I can press this plus button go browser.

292
00:16:46,900 --> 00:16:48,833
We can actually manually type.

293
00:16:48,833 --> 00:16:51,200
So localhost 3000 okay.

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

295
00:16:55,866 --> 00:16:56,251
Okay.

296
00:16:56,251 --> 00:16:58,100
Join in and find a game.

297
00:16:58,100 --> 00:17:01,033
And you can see that we find a game and then we can start playing.

298
00:17:01,033 --> 00:17:04,733
So I don't know let me try to move here and see if it moves on this side.

299
00:17:04,733 --> 00:17:05,800
And it looks like it's working.

300
00:17:05,800 --> 00:17:12,100
So let's make a move like that I'm not going to play the full thing out, but you guys get the idea that it is indeed working.

301
00:17:12,100 --> 00:17:13,579
We have a track of all the moves.

302
00:17:13,579 --> 00:17:14,700
We have some leaderboard.

303
00:17:14,700 --> 00:17:24,233
And then maybe if I resign, you can see now the ELO has updated and I want so says white wins by resignation I mean pretty cool that that worked that fast.

304
00:17:24,266 --> 00:17:27,266
Now within this browser view there's a few buttons you should be aware of.

305
00:17:27,266 --> 00:17:31,133
So if you have a look at this right hand side, you can see that you can actually take a screenshot.

306
00:17:31,133 --> 00:17:33,000
If you do that, it will save it to the clipboard.

307
00:17:33,000 --> 00:17:41,066
And then you can copy that screenshot or paste it sorry, into the chat in case you want to capture what's going on inside of this window rather than doing it manually.

308
00:17:41,066 --> 00:17:44,900
And of course, ChatGPT and GPT here can do image generation.

309
00:17:44,900 --> 00:17:46,000
It can view images.

310
00:17:46,000 --> 00:17:47,933
So that's I mean it should be straightforward.

311
00:17:47,933 --> 00:17:49,066
You also can annotate.

312
00:17:49,066 --> 00:17:53,200
So if you annotate this will allow you to select different HTML elements.

313
00:17:53,200 --> 00:17:57,866
So for example maybe I'm going to select this and I can say something like I don't really like this title.

314
00:17:57,866 --> 00:18:01,366
I think we can make it look a lot better and put a chess logo okay.

315
00:18:01,433 --> 00:18:06,533
And then we can go here and we can actually just update any of the values directly on screen.

316
00:18:06,533 --> 00:18:10,433
I'm not going to do that because I would prefer just to prompt it, but I'm just going to run that.

317
00:18:10,466 --> 00:18:14,633
You can see we now have an annotation in chat and I can start adding other annotations.

318
00:18:14,633 --> 00:18:22,600
So maybe I'm going to say can we change the color of the board or have like a white or dark mode, or maybe change the square colors?

319
00:18:22,800 --> 00:18:25,033
I'm just giving random prompts going to show you this works.

320
00:18:25,033 --> 00:18:28,333
And you can see we have annotations and I can say like go or something.

321
00:18:28,333 --> 00:18:35,066
And now it's going to have the annotations that we made in the browser, and it's going to make those changes which are a lot more targeted.

322
00:18:35,100 --> 00:18:35,295
Okay.

323
00:18:35,295 --> 00:18:37,833
So I just refresh because I want to see what this was doing live.

324
00:18:37,833 --> 00:18:42,200
And you can see if I go here now and I refresh, we've kind of changed what the board looks like.

325
00:18:42,233 --> 00:18:43,498
Obviously we've disconnected.

326
00:18:43,498 --> 00:18:44,633
Now we're waiting to join.

327
00:18:44,633 --> 00:18:49,100
We can see we have the kind of chess icon and it's essentially followed the annotations we asked for.

328
00:18:49,133 --> 00:18:49,333
Okay.

329
00:18:49,333 --> 00:18:54,700
So hopefully that gave you a bit of information on how the general kind of coding works inside of Codex.

330
00:18:54,733 --> 00:18:56,033
It's very good for me.

331
00:18:56,033 --> 00:18:59,100
I really like this user interface, and I like using this application.

332
00:18:59,100 --> 00:19:03,866
And I mean, you can see that it gives us pretty good results, even though I didn't do anything crazy.

333
00:19:03,866 --> 00:19:06,066
So now let's move to a few more advanced features.

334
00:19:06,066 --> 00:19:08,633
Let's start by having a look at some basic commands.

335
00:19:08,633 --> 00:19:11,633
So commands are just anything that start with a slash.

336
00:19:11,633 --> 00:19:16,600
And there's a ton of built in commands inside of cloud code or not cloud code inside of Codex.

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

338
00:19:20,466 --> 00:19:24,600
So first, if we do slash, we're going to want to look at status.

339
00:19:24,633 --> 00:19:26,866
Now status will just show you your usage limit.

340
00:19:26,866 --> 00:19:29,700
So you can see that for a five hour limit I'm at 98%.

341
00:19:29,700 --> 00:19:32,433
And for my seven day limit I'm at 99%.

342
00:19:32,433 --> 00:19:34,400
It also gives me my context limit.

343
00:19:34,400 --> 00:19:39,466
Now the context can be viewed using this little kind of circular icon down here.

344
00:19:39,466 --> 00:19:45,866
It won't give you a detailed breakdown, but you'll be able to see how much you've used, how much is left, and how many tokens are there.

345
00:19:45,900 --> 00:19:59,933
Now, depending on the models you're using, the context size can change, but this is something that's useful to be aware of because if the context gets too large, which means you have too many, you know, too much conversation, history, tool calls, etc., you will need to compact that.

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

347
00:20:02,266 --> 00:20:04,066
It's called slash compact.

348
00:20:04,066 --> 00:20:09,800
Now what slash compact will do is it will take everything that you have in your current conversation history.

349
00:20:09,800 --> 00:20:21,133
So all of the tool calls, all of the code, anything that it's understood in this whole conversation that we've had, and it will generate a summary of that and then add that to kind of a new, fresh conversation that you'll start.

350
00:20:21,133 --> 00:20:27,200
So you'll notice that after I did that, we now if we look at the what is it context use here, we've only used for percent.

351
00:20:27,200 --> 00:20:29,100
So it's taken 22% there.

352
00:20:29,100 --> 00:20:31,633
It's condensed it down given us a summary.

353
00:20:31,633 --> 00:20:33,000
And now we can continue.

354
00:20:33,000 --> 00:20:37,933
Now it's not a great idea to compact super early because you want to use up the context window.

355
00:20:37,933 --> 00:20:46,133
But as soon as you start getting to 70%, 80%, 90% context, you typically want to compacted because you're going to get better results.

356
00:20:46,133 --> 00:20:50,066
Because as the model fills up with context, it performs worse.

357
00:20:50,100 --> 00:20:51,233
This is pretty well known.

358
00:20:51,233 --> 00:20:52,900
I'm not going to go into all of the details.

359
00:20:52,900 --> 00:20:54,700
Just be aware that command exists.

360
00:20:54,700 --> 00:21:00,300
You can use it in Codex will automatically compact for you if you're going to go past your context.

361
00:21:00,300 --> 00:21:05,300
So you may want to do it at a time that you decide, rather than waiting for it to do it automatically.

362
00:21:05,333 --> 00:21:08,933
Now, another thing that we can do, which is sometimes useful, is we can fork this.

363
00:21:08,933 --> 00:21:16,533
Now you can see that if we type slash fork, it will allow us to fork this chat into a local or new work tree, which we're going to look at effectively.

364
00:21:16,533 --> 00:21:26,033
What this will do is take everything that we've done and just create a complete copy of it, so we can work in multiple agents at the same time without them having any conflict.

365
00:21:26,033 --> 00:21:33,066
So they both will kind of work in their own copy of the code base, and then they can go and kind of joy in everything together.

366
00:21:33,100 --> 00:21:34,700
Fix any of the merge conflicts.

367
00:21:34,700 --> 00:21:39,266
When we get to the final version again, we'll look at fork in a minute, but that is a command to be aware of.

368
00:21:39,266 --> 00:21:40,803
You have the fast mode feedback.

369
00:21:40,803 --> 00:21:42,100
We're not going to do that.

370
00:21:42,100 --> 00:21:45,833
A NIT goal and some other kind of modes that we'll look at here in a second.

371
00:21:45,866 --> 00:21:46,933
Few last things to be aware of.

372
00:21:46,933 --> 00:21:48,100
You can also pin chats.

373
00:21:48,100 --> 00:21:50,433
So if we want this chat to be available we can pin it.

374
00:21:50,433 --> 00:21:53,200
And then we can create new chats inside of the same project.

375
00:21:53,200 --> 00:21:54,800
So you can see it's in chess game here.

376
00:21:54,800 --> 00:22:00,033
And we can decide how we want to work and just have another agent either running at the same time or in a new chat.

377
00:22:00,033 --> 00:22:05,054
If we want to ask for something different and kind of forget the previous conversation history we had here.

378
00:22:05,054 --> 00:22:07,333
Anyways, let's go to a new chat.

379
00:22:07,333 --> 00:22:12,733
Now we're inside of chess game, and let's use a new mode that we haven't seen yet, which is plan.

380
00:22:12,733 --> 00:22:16,133
So if we use slash plan, we can enable plan mode.

381
00:22:16,133 --> 00:22:17,733
You'll see that it's here and now.

382
00:22:17,733 --> 00:22:22,200
With plan mode, what we can do is we can ask this something a little bit more detailed.

383
00:22:22,200 --> 00:22:23,800
We can describe what we want.

384
00:22:23,800 --> 00:22:30,233
And Codex will prompt us with different questions and kind of clarifying details before it goes and executes the plan.

385
00:22:30,266 --> 00:22:34,400
Pretty straightforward, but typically you want to make a plan before you do something too complex.

386
00:22:34,400 --> 00:22:39,200
So really for our chess game, we should have started in plan mode, built the plan, and then execute it.

387
00:22:39,200 --> 00:22:42,100
I was just saving it for later because it's a little bit more complex.

388
00:22:42,100 --> 00:22:44,933
So now maybe I want to expand this chess game.

389
00:22:44,933 --> 00:22:45,936
I want to have puzzles.

390
00:22:45,936 --> 00:22:47,200
I want to have a leaderboard.

391
00:22:47,200 --> 00:22:50,400
I want to have maybe a big UI, I want to have whatever accounts.

392
00:22:50,400 --> 00:22:52,400
So let's start generating a plan for that.

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

394
00:22:54,700 --> 00:23:03,900
I want to have a better landing page so that a user can see their stats, and they have the ability to either play a game or play a puzzle or go to like a practice board.

395
00:23:03,900 --> 00:23:09,833
I want to generate a few different game modes, and I want to really polish this up and make it kind of like a Chess.com clone.

396
00:23:09,866 --> 00:23:11,733
Let's start with just the MVP features.

397
00:23:11,733 --> 00:23:13,133
Can you generate a plan for this?

398
00:23:13,133 --> 00:23:18,000
Ask me any questions you need to okay, so let's go here and press enter.

399
00:23:18,000 --> 00:23:21,066
And because it's in plan mode it's going to map everything out.

400
00:23:21,066 --> 00:23:26,100
And it should start asking us some questions and prompting us so that it can generate that for us.

401
00:23:26,133 --> 00:23:26,400
Okay.

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

403
00:23:29,433 --> 00:23:34,133
So it says for the first MVP pass, which mode set should the landing page launch?

404
00:23:34,233 --> 00:23:40,066
We can have add bot game, add time modes or core three ship the landing page, live game, daily star puzzles.

405
00:23:40,066 --> 00:23:41,033
Let's go with that.

406
00:23:41,033 --> 00:23:43,400
How should the user stats work for an MVP?

407
00:23:43,400 --> 00:23:44,400
Let's just go.

408
00:23:44,400 --> 00:23:45,196
Username.

409
00:23:45,196 --> 00:23:46,433
Profiles okay.

410
00:23:46,433 --> 00:23:47,360
Username.

411
00:23:47,360 --> 00:23:47,978
Login.

412
00:23:47,978 --> 00:23:49,318
Expand stats.

413
00:23:49,318 --> 00:23:49,833
Okay.

414
00:23:49,866 --> 00:23:52,466
How deep should the puzzle mode be an MVP?

415
00:23:52,466 --> 00:23:53,633
Let's just do.

416
00:23:54,633 --> 00:23:54,900
Yes.

417
00:23:54,900 --> 00:23:58,500
Small bundled puzzled library that looks good and that we continue.

418
00:23:58,533 --> 00:24:03,333
Now while it's doing this, also mention that if you open up the sidebar here, you'll see a few more options.

419
00:24:03,333 --> 00:24:07,400
Because we're in this kind of coding environment, we can now view all of the files.

420
00:24:07,400 --> 00:24:09,433
If we want to look at this, we see we have the database.

421
00:24:09,433 --> 00:24:11,100
We can open up the server right.

422
00:24:11,100 --> 00:24:15,900
And you can modify the code, or you can add comments directly inside of here or tag different things.

423
00:24:15,900 --> 00:24:18,300
And now you'll see that it's generating the plan.

424
00:24:18,300 --> 00:24:20,466
I believe the plan will be stored in this repo.

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

426
00:24:23,666 --> 00:24:29,466
So if I want to look at the plan here, you can see we can open it up and it gives us everything that needs to be done.

427
00:24:29,500 --> 00:24:29,900
Okay.

428
00:24:29,900 --> 00:24:33,600
So I could just implement this plan right and just start running with that.

429
00:24:33,600 --> 00:24:45,100
But what I want to show you now is another mode that's super useful, that is going to get things done a lot more efficiently for us without us having to keep approving things or prompting the model multiple times.

430
00:24:45,100 --> 00:24:47,033
And that is called goal.

431
00:24:47,033 --> 00:24:50,700
So there is this slash command called slash goal.

432
00:24:50,733 --> 00:24:54,600
Now if we use this let me just actually type it out.

433
00:24:54,633 --> 00:24:59,733
What will happen is that codex will run until a goal is achieved.

434
00:24:59,733 --> 00:25:04,733
Now this is kind of that agent loops that you may have heard about recently that everyone's talking about.

435
00:25:04,800 --> 00:25:06,033
They have that built in now.

436
00:25:06,033 --> 00:25:09,200
So what we can do is we can say, hey, here's the goal.

437
00:25:09,200 --> 00:25:14,433
And we just set a high level objective, and Codex will keep going until the goal is achieved.

438
00:25:14,433 --> 00:25:18,066
So it will plan, it will execute and then it will review if it's achieved the goal.

439
00:25:18,066 --> 00:25:20,400
And if it hasn't, it will just keep running.

440
00:25:20,400 --> 00:25:24,000
So it's not just going to do one pass or implement one set of features.

441
00:25:24,000 --> 00:25:26,300
It will go until the goal is achieved.

442
00:25:26,300 --> 00:25:32,000
Now, in order to use this effectively, you need to set a good goal and the conditions for the goal to be achieved.

443
00:25:32,033 --> 00:25:38,300
Now, in our case, we already have the plan so we can effectively just say keep running until the entire plan is implemented.

444
00:25:38,300 --> 00:25:40,333
It will then run check if the plan is done.

445
00:25:40,333 --> 00:25:41,900
If it's not, it will keep going.

446
00:25:41,900 --> 00:25:43,400
If it is, it will finish.

447
00:25:43,400 --> 00:25:48,233
So this will allow it to run for a long period of time, which also will use a lot of usage.

448
00:25:48,233 --> 00:25:49,733
So keep that in mind.

449
00:25:49,733 --> 00:25:55,666
So for the goal I'm going to say okay, keep running and implement the entire plan until the plan is fully finished.

450
00:25:55,666 --> 00:26:00,333
Everything is tested, everything is working and we are confident to deploy this.

451
00:26:00,633 --> 00:26:03,666
Again, not the best prompt in the world, but I'm just showing you the usage here.

452
00:26:03,666 --> 00:26:07,000
And now that the plan is enabled, we have goal set.

453
00:26:07,066 --> 00:26:11,633
I can press enter and you can see that it's going to pursue this goal and start running.

454
00:26:11,633 --> 00:26:13,466
And we can view this is the goal.

455
00:26:13,466 --> 00:26:15,466
And it's going through all of the different steps.

456
00:26:15,466 --> 00:26:19,633
And it will just be this infinite loop which can take a very long time to run.

457
00:26:19,666 --> 00:26:19,933
All right.

458
00:26:19,933 --> 00:26:22,900
So the goal has just finished it built this application for us.

459
00:26:22,900 --> 00:26:26,133
I don't know if it's fully working, but you guys get the idea and it's done.

460
00:26:26,200 --> 00:26:29,900
So now let's have a look at some more features and start going through it okay.

461
00:26:29,933 --> 00:26:31,000
So first things first.

462
00:26:31,000 --> 00:26:34,600
If you look at any of these chats you have the ability to right click them.

463
00:26:34,600 --> 00:26:36,833
You can pin them rename them.

464
00:26:36,833 --> 00:26:40,733
You can also fork them into a local version or a new work tray.

465
00:26:40,733 --> 00:26:48,233
Now I want to really briefly discuss what a work tree is, because it's a little bit complicated, and we'll save the full usage for a part two.

466
00:26:48,266 --> 00:26:51,100
So let me know if you guys want to see that in the comments down below.

467
00:26:51,100 --> 00:26:53,866
Now, if I try to open a new project here, right.

468
00:26:53,866 --> 00:26:54,700
So I've gone sorry.

469
00:26:54,700 --> 00:26:55,266
New chat.

470
00:26:55,266 --> 00:26:56,501
Okay, so I want new chat.

471
00:26:56,501 --> 00:26:58,033
And then I selected Chess Game.

472
00:26:58,033 --> 00:27:02,066
And then what I did is rather than selecting work locally, I selected new work tree.

473
00:27:02,066 --> 00:27:05,266
I have the ability to create a local environment.

474
00:27:05,300 --> 00:27:15,466
Now the reason this is important is that if you want to run parallel agents at the same time, they should be working in their own copy of the repository or the project that you have.

475
00:27:15,533 --> 00:27:22,633
If they work on the same files, there can be conflicts because they're touching the same information at the same time, and that's not good.

476
00:27:22,666 --> 00:27:25,466
So the solution to this is a work tree.

477
00:27:25,466 --> 00:27:27,466
This is provided by git.

478
00:27:27,466 --> 00:27:31,000
Again it's a little bit complicated to setup and a bit confusing to use.

479
00:27:31,000 --> 00:27:32,933
So I'm not going to go through all of the details.

480
00:27:32,933 --> 00:27:39,933
But if you do want to run parallel agents at the same time, you have multiple tasks going, this is what you would use.

481
00:27:39,933 --> 00:27:47,800
You have to configure the environment first, which you can ask Codex to help you do, and then you can change the branches and stuff in order to work on the different features.

482
00:27:47,800 --> 00:27:54,633
And now you'll have different agents because you can run multiple at the same time, working in these kind of copies of the same repo.

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

484
00:27:58,800 --> 00:28:01,133
Now, another feature that's somewhat related to this.

485
00:28:01,133 --> 00:28:02,733
Let's go back to local copy.

486
00:28:02,733 --> 00:28:05,700
Here is this tool called Slash Review.

487
00:28:05,700 --> 00:28:13,733
Now this is a code review that can automatically compare any changes that have been made in the current session against what's in GitHub.

488
00:28:13,800 --> 00:28:14,266
Okay.

489
00:28:14,266 --> 00:28:22,000
So if I go to maybe this right now and I go slash review, you can see that I can review this against a base branch.

490
00:28:22,000 --> 00:28:26,400
So a branch in git if you're familiar with that or review any uncommitted changes.

491
00:28:26,400 --> 00:28:39,300
So if I go slash review right and then uncommitted changes it's going to start looking at all of the changes that it made here and automatically review them to make sure that they're good before we push them to get or before we commit them.

492
00:28:39,300 --> 00:28:47,600
This is a pretty useful feature that Codex has, and this is something you should always do after you've done a large amount of changes before you push them to remote repository.

493
00:28:47,600 --> 00:28:49,066
And if you don't know what that means, don't worry.

494
00:28:49,066 --> 00:28:55,400
But if you're a developer, you'll understand the value of having a built in shortcut that will do all of those passes and checks for you.

495
00:28:55,433 --> 00:28:58,833
Okay, so you can see that it's done the review and it's given us some comments now.

496
00:28:58,833 --> 00:29:02,233
And it said, hey, these are errors that I found after doing the code review.

497
00:29:02,266 --> 00:29:02,545
Right.

498
00:29:02,545 --> 00:29:04,266
So let me go ahead and fix them okay.

499
00:29:04,266 --> 00:29:07,866
So let's move to the next feature which is memory and context.

500
00:29:07,900 --> 00:29:13,900
Now this is less maybe, I don't know demo wise and more me explaining how this works because I want you to understand this.

501
00:29:13,900 --> 00:29:16,833
So if I make a new chat right here okay.

502
00:29:16,833 --> 00:29:20,466
And we go into this and I'm working locally, I want you to see something.

503
00:29:20,600 --> 00:29:25,100
What did I do in my last session when I was working on the chess game?

504
00:29:25,200 --> 00:29:36,433
Now, the reason why I'm going to run this prompt and show you the result, is that you need to understand that by default, Codex doesn't remember things that you worked on in the past.

505
00:29:36,433 --> 00:29:47,866
Anytime you create a new chat, what it's doing is reviewing anything that you have in your current repo, kind of trying to load in information and find any context that's relevant and then give you an answer.

506
00:29:47,866 --> 00:29:50,933
But by default it doesn't remember everything that you did.

507
00:29:50,933 --> 00:29:53,500
So it won't have the full conversation history.

508
00:29:53,500 --> 00:29:59,066
It won't know maybe preferences that you told it, and it can forget things because it doesn't remember by default.

509
00:29:59,100 --> 00:30:07,433
The only reason this actually just gave me a response is because it looked inside of my project here that I'm inside of and was able to find that information.

510
00:30:07,433 --> 00:30:13,233
But if I go to a new chat and I say and I remove the project, what did I work on for my chess game?

511
00:30:13,400 --> 00:30:17,033
And I just ask it something really vague like that, it shouldn't know.

512
00:30:17,200 --> 00:30:20,800
At least I don't think it will know because it's not going to have any of that context.

513
00:30:20,833 --> 00:30:27,800
The reason why I'm mentioning this is that you need to understand that anytime you make a new session, you're effectively starting from scratch.

514
00:30:27,800 --> 00:30:31,633
And anything that you want this to know, it has to already exist as a file.

515
00:30:31,633 --> 00:30:34,700
It has to be saved persistently so Codex can read it in.

516
00:30:34,700 --> 00:30:39,333
And you can see here that it's not able to really find the information very well for me here.

517
00:30:39,333 --> 00:30:46,233
And it has to actually go and look through the different conversation history and threads to find this information so it can find it.

518
00:30:46,233 --> 00:30:51,433
But the only reason it can do that is because it's searching through the threads and it's very slow.

519
00:30:51,433 --> 00:30:53,900
And again, it's not going to remember everything by default.

520
00:30:53,900 --> 00:31:01,233
The reason why I'm mentioning this is that you can fix this problem by creating something called an agent dot file.

521
00:31:01,233 --> 00:31:15,800
Now this is something that's common in all of your code base tools, CLI based tools, whatever AI agents where you can make effectively a memory file that will always be loaded into the prompt or into the model before you start working with it.

522
00:31:15,800 --> 00:31:25,133
Now this is a really good file to create, especially when you're working on larger projects with multiple people, because you can store preferences, different tools or stacks that you want to use.

523
00:31:25,200 --> 00:31:31,400
I wouldn't say credentials, but you can store just important info that you don't want to have to keep telling the model over and over again.

524
00:31:31,433 --> 00:31:33,466
So for example, I can tell this.

525
00:31:33,466 --> 00:31:43,266
I would like you to create an agent file with all of the conventions for this project, specifically the tech stack that we're using, how to run it, and what we've set up so far.

526
00:31:43,900 --> 00:31:44,400
Okay.

527
00:31:44,400 --> 00:31:48,300
And what this will do now is create a new file for us called agents.

528
00:31:48,833 --> 00:31:50,000
You'll see it in a second.

529
00:31:50,000 --> 00:31:52,433
It's automatically making it starts with all capitals.

530
00:31:52,433 --> 00:31:55,666
And it's going to fill this file with important info then.

531
00:31:55,666 --> 00:32:04,066
Now we're never going to forget or Codex will never forget because this is by default automatically load it into Codex anytime we make a new conversation.

532
00:32:04,066 --> 00:32:06,833
So let's give this a second to make the file and see what it looks like.

533
00:32:06,833 --> 00:32:13,400
So let's open this up and you can see that it gives us project conventions, direction, tech stack, how to run it, etc..

534
00:32:13,433 --> 00:32:18,400
So now if we make a new conversation, I go, what are the project conventions?

535
00:32:18,400 --> 00:32:22,033
It's not going to have to search through a bunch of files to find this.

536
00:32:22,066 --> 00:32:28,033
It can just get it directly from its kind of system info now, because it will have been loaded in and MD.

537
00:32:28,033 --> 00:32:30,433
So you can see it just immediately gives us the result.

538
00:32:30,433 --> 00:32:35,233
It doesn't need to read anything because it was already loaded in when we started the conversation.

539
00:32:35,233 --> 00:32:42,333
If we look at the context, you can see the context is slightly higher usage than normal because it's started by loading that file.

540
00:32:42,500 --> 00:32:43,800
I hope that that makes sense to you.

541
00:32:43,800 --> 00:32:56,100
I know that's not the best explanation possible, but anything that you want to be kind of long term, persistent info that's going to be used all of the time, you want to put it in this agents MD file and tell Codex to create that for you.

542
00:32:56,100 --> 00:33:02,466
And you can continually update this to improve the performance of the model you use in a particular project.

543
00:33:02,500 --> 00:33:06,900
Okay, so that is kind of the agents, the in memory info that you need to know.

544
00:33:06,900 --> 00:33:09,200
And the last thing we'll look at is scheduled tasks.

545
00:33:09,200 --> 00:33:19,933
Now I'm not going to actually create these, but I'm just going to mention that they exist just like cloud code or other tools that you may have used, you can create scheduled tasks that run automatically for you, assuming your computer is on.

546
00:33:19,933 --> 00:33:26,000
So you can make a daily brief where every morning it opens your computer, searches the news and gives you some info.

547
00:33:26,000 --> 00:33:29,200
You can do a weekly review where it tells you all the things you worked on.

548
00:33:29,200 --> 00:33:32,233
You can do project monitor where if something changes, we do this.

549
00:33:32,233 --> 00:33:39,466
So if I do create via chat, for example, I can make it to set up a scheduled task for me automatically, or I can go to templates and I can pick one.

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

551
00:33:41,933 --> 00:33:45,466
I want to run it in this chat or in a work tree.

552
00:33:45,833 --> 00:33:47,266
I want to in this project.

553
00:33:47,266 --> 00:33:49,300
I want it to repeat at this time.

554
00:33:49,300 --> 00:33:50,800
Then this is the model that I want to use.

555
00:33:50,800 --> 00:33:51,042
Okay.

556
00:33:51,042 --> 00:33:52,400
So again you can make these.

557
00:33:52,400 --> 00:33:59,133
You can have them set to run and you can set this up to kind of automatically do things for you, which is useful if you want some automations.

558
00:33:59,133 --> 00:34:00,428
But for me I don't really need any.

559
00:34:00,428 --> 00:34:01,833
So I don't have those setup as of now.

560
00:34:01,833 --> 00:34:10,733
And then of course, you can search through all of your chats and a bunch of other stuff, and we can go crazy and we can go to add MCP servers.

561
00:34:10,733 --> 00:34:12,333
We can control the browser use.

562
00:34:12,333 --> 00:34:16,633
We can do computer use, hooks, connections, git environments, work trees.

563
00:34:16,633 --> 00:34:19,333
There is a lot more to go over, but I'm going to save that for a part two.

564
00:34:19,333 --> 00:34:32,700
If you guys let me know in the comments that you want to see an advanced version of this that is going to wrap up this video, that was a pretty comprehensive overview of Codex, a lot of the features, how to use it, some good demos, setting up a lot of the important plugins.

565
00:34:32,700 --> 00:34:35,900
At this point, you know, probably 90% of Codex.

566
00:34:35,966 --> 00:34:39,633
If you want the extra 10%, let me know and I will happily make an advanced version.

567
00:34:39,633 --> 00:34:43,666
For those of you that are devs and are kind of past some of the beginner stuff that I showed here.

568
00:34:43,666 --> 00:34:44,900
Anyway, I hope you enjoyed.

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