WEBVTT

00:00:00.240 --> 00:00:02.100
This video will teach you codex.

00:00:02.340 --> 00:00:04.260
I'll go through all of the important features,

00:00:04.260 --> 00:00:07.600
show you how to set it up and install it and assume no prior knowledge.

00:00:07.600 --> 00:00:10.440
So even if you're a complete beginner, you'll be able to follow along.

00:00:10.740 --> 00:00:14.340
Now I'm going to be covering things like computer use or browser control.

00:00:14.340 --> 00:00:17.440
I'm going to show you how to set up for coding model selection,

00:00:17.440 --> 00:00:19.860
all of the different commands like slash goal.

00:00:19.960 --> 00:00:22.860
And a lot of the new features that I haven't seen many people cover.

00:00:23.140 --> 00:00:25.560
So with that said, stick around, let's get into it.

00:00:25.560 --> 00:00:27.060
And let me teach you codex.

00:00:27.240 --> 00:00:29.340
So let's start by discussing what codex is.

00:00:29.340 --> 00:00:32.340
We'll look at how we can use it because there's actually many different ways.

00:00:32.340 --> 00:00:34.600
And then I'll start going through all of the different features.

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,

00:00:38.380 --> 00:00:40.420
I like to make things really thorough and detailed.

00:00:40.520 --> 00:00:43.560
So if you feel like I'm going too slow, fast forward to the next section.

00:00:44.100 --> 00:00:44.320
Okay.

00:00:44.500 --> 00:00:46.040
So first, what is Codex?

00:00:46.320 --> 00:00:50.320
Well, Codex is essentially OpenAI's answer to tools like Claude Code.

00:00:50.560 --> 00:00:52.980
It's actually much more involved than Claude Code.

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.

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

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,

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

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.

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

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

00:01:25.600 --> 00:01:28.900
Cause there's a lot of different ways and open AI has been very confusing with

00:01:28.900 --> 00:01:32.840
the naming of codecs because they had models called codecs, like their actual

00:01:32.840 --> 00:01:33.460
LLMs.

00:01:33.720 --> 00:01:37.540
Now they have the tool called codecs and you can use it in like many

00:01:37.540 --> 00:01:38.420
different fashions.

00:01:38.680 --> 00:01:42.660
So for this video, we're going to be using the standalone desktop application.

00:01:43.000 --> 00:01:45.800
The way this works is you download it and install it on your computer.

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.

00:01:49.140 --> 00:01:50.140
So just windows are back.

00:01:50.440 --> 00:01:53.560
Now you'll sign into this, using your chat GPT subscription.

00:01:53.560 --> 00:01:54.380
You can use it.

00:01:54.380 --> 00:01:57.040
I believe as low as $20 per month on the plus plan.

00:01:57.220 --> 00:01:59.860
Just keep in mind, I do have the $200 per month plan.

00:01:59.860 --> 00:02:02.260
So my usage limits will be significantly higher.

00:02:02.560 --> 00:02:04.460
And the limits are typically very generous.

00:02:04.460 --> 00:02:07.200
You're probably going to get five or 10 times the amount of usage

00:02:07.380 --> 00:02:09.460
than you would compared to something like Claude code.

00:02:09.580 --> 00:02:12.780
So I wouldn't be too concerned with ripping through it unless you use

00:02:12.960 --> 00:02:15.200
the highest end models and you're running it 24 seven.

00:02:15.260 --> 00:02:17.580
Now you can also use this with an open AI API key.

00:02:17.620 --> 00:02:20.920
I definitely do not recommend that because that's going to be very expensive.

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

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

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

00:02:35.340 --> 00:02:40.080
install this in the popular editors like cursor, visual studio code, and windsurf, and have access

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.

00:02:44.820 --> 00:02:49.660
We also have CLI. Now this is a command line interface, more familiar to something like

00:02:49.660 --> 00:02:53.240
cloud code where you're not in kind of a nice graphical user interface, which

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

00:02:55.960 --> 00:02:59.320
something like Linux or server, and you can have this as a remote machine.

00:02:59.480 --> 00:03:01.280
That's running 24 seven, same thing.

00:03:01.280 --> 00:03:02.540
You can sign in with your account.

00:03:02.840 --> 00:03:06.180
And then we have the cloud version, which is running directly in your browser.

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

00:03:09.460 --> 00:03:12.120
the browser on your phone or something, you can do that.

00:03:12.340 --> 00:03:12.600
Okay.

00:03:12.600 --> 00:03:14.320
So those are the surfaces for codex.

00:03:14.540 --> 00:03:18.000
Again, what we want to do is download the desktop application, which is where

00:03:18.000 --> 00:03:19.040
we're going to be working.

00:03:19.040 --> 00:03:20.600
And now let's open up that app.

00:03:20.760 --> 00:03:22.740
So I've just opened up the desktop application,

00:03:22.740 --> 00:03:24.100
which is where we're going to be working

00:03:24.100 --> 00:03:26.000
and where I recommend you use Codex

00:03:26.000 --> 00:03:27.680
because that's the most number of features.

00:03:27.820 --> 00:03:29.860
Now let's start by going through the user interface.

00:03:29.960 --> 00:03:32.720
You can understand what all of these buttons actually do.

00:03:32.840 --> 00:03:34.780
And then I promise we'll go through all of the features.

00:03:35.000 --> 00:03:36.920
So here you have your main chat window.

00:03:37.120 --> 00:03:38.760
There's a few things you want to pay attention to,

00:03:38.800 --> 00:03:40.680
like the model selector, which we'll look at in a minute,

00:03:41.000 --> 00:03:42.960
the voice dictation in case you want to use that,

00:03:43.240 --> 00:03:44.220
the approval modes.

00:03:44.220 --> 00:03:46.860
So ask for approval, approve for me or full access,

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

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

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

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,

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

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

00:04:12.220 --> 00:04:16.000
a terminal that's because codecs can automatically control a browser for you

00:04:16.000 --> 00:04:17.380
and test your applications.

00:04:17.520 --> 00:04:21.360
And then you can also toggle up the terminal or the shell, which again,

00:04:21.480 --> 00:04:23.240
codecs can control and use for you.

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

00:04:26.400 --> 00:04:27.620
from the left-hand side.

00:04:27.620 --> 00:04:30.800
You can also toggle this sidebar where you have some of the important,

00:04:30.800 --> 00:04:32.640
I don't know, buttons or views.

00:04:32.880 --> 00:04:36.260
And if you want to access the settings menu, you can click on your profile,

00:04:36.380 --> 00:04:39.380
can go to profile or two settings for settings.

00:04:39.380 --> 00:04:41.120
If you are someone who's not going to do any coding,

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

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,

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

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

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

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.

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

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,

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

00:05:16.580 --> 00:05:20.840
so I can show you things like the computer control, which is super cool. But first,

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

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

00:05:30.780 --> 00:05:36.020
I see with people learning to code is boredom. They watch tutorials, copy code, feel productive

00:05:36.020 --> 00:05:37.740
for a week and then they quit.

00:05:38.280 --> 00:05:40.720
Now boot.dev takes a completely different approach.

00:05:40.880 --> 00:05:44.880
It's very hands-on and honestly, it feels more like a game than a course.

00:05:45.040 --> 00:05:48.380
Now you're learning backend development by actually building things,

00:05:48.420 --> 00:05:49.760
not just watching videos.

00:05:49.860 --> 00:05:54.960
You work through real challenges in Python, SQL, and go earn XP, level up,

00:05:55.140 --> 00:05:57.780
fight bosses, and progress through a full backend curriculum.

00:05:57.920 --> 00:06:01.100
Now it sounds a bit gimmicky, but I promise you it actually works because

00:06:01.100 --> 00:06:04.040
you're doing the same kind of problem solving that you do on the job.

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.

00:06:08.520 --> 00:06:12.180
It asks follow-up questions and helps you reason through problems when you get stuck,

00:06:12.460 --> 00:06:14.600
which is way closer to how you actually learn.

00:06:14.960 --> 00:06:17.080
Now all of the content is free to read and watch.

00:06:17.280 --> 00:06:21.240
And if you want the interactive coding, the progress tracking and the AI assistance,

00:06:21.600 --> 00:06:22.780
that's part of the paid plan.

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

00:06:28.120 --> 00:06:29.000
your first year.

00:06:29.340 --> 00:06:31.540
Big thanks to boot.dev for sponsoring this video.

00:06:31.660 --> 00:06:33.060
Now let's get back into it.

00:06:33.340 --> 00:06:35.920
So like I was saying, let's have a look at the model selection.

00:06:35.940 --> 00:06:37.380
Now, for some reason, you don't see this view.

00:06:37.380 --> 00:06:40.060
You can always just press a new shot and it will bring this up.

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

00:06:43.560 --> 00:06:46.880
reasoning level, light, medium, high, and extra high.

00:06:47.240 --> 00:06:50.700
Now, of course you want to use the best reasoning whenever you possibly can,

00:06:50.820 --> 00:06:54.000
but keep in mind that this is going to take significantly longer.

00:06:54.220 --> 00:06:58.000
So the reasoning can kind of come down to how long this is going to take.

00:06:58.160 --> 00:07:01.580
Of course, the higher reasoning, the better responses and results that you're

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.

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

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

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

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

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

00:07:31.320 --> 00:07:33.660
cheaper usage limits. I would never use this one.

00:07:33.980 --> 00:07:38.880
GPT 5.4 mini. This can be used for small, fast, kind of efficient things where

00:07:38.880 --> 00:07:42.340
you're asking a question or you just want, you know, quick UI change or something.

00:07:42.600 --> 00:07:47.220
And then 5.3 codec spark is just an extremely fast model that you use again,

00:07:47.220 --> 00:07:50.200
for very minor things that don't require a lot of intelligence.

00:07:50.420 --> 00:07:54.020
And specifically when you're running out of the usage on GPT 5.5.

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.

00:07:59.600 --> 00:08:00.000
If you have

00:08:00.000 --> 00:08:02.000
If you have enough credits, you can turn on this fast mode.

00:08:02.000 --> 00:08:03.000
So we'll run faster.

00:08:03.000 --> 00:08:04.840
I pretty much always leave that on.

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.

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

00:08:12.540 --> 00:08:14.600
the time, 5.5 medium.

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,

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,

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.

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

00:08:27.720 --> 00:08:30.240
so we can do some really interesting things with codex.

00:08:30.540 --> 00:08:32.840
So what we're going to do here is go to plugins.

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.

00:08:37.960 --> 00:08:41.900
And the fact that it can control your computer, control your browser, control

00:08:41.900 --> 00:08:47.440
spreadsheets, access Google drive and do this in a really interactive and intuitive way. Now,

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

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

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.

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

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

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.

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

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

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,

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.

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,

00:09:35.960 --> 00:09:39.220
make sure that you get that set up. Again, if you just press this open button,

00:09:39.520 --> 00:09:43.960
you can install the extension and link it. Another extension that I highly recommend is GitHub.

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.

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.

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

00:09:57.280 --> 00:10:01.560
them with your teammates. This is a standard. Anytime you're building even a medium-sized

00:10:01.560 --> 00:10:05.760
project, really any type of coding project, you should be using this. So create a free

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

00:10:10.320 --> 00:10:14.120
account here inside of codex. So it can automatically make what's called a repository,

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

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.

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

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

00:10:31.440 --> 00:10:35.480
have a few other ones here, like Google drive presentations, spreadsheets, Slack, Gmail,

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.

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

00:10:44.200 --> 00:10:48.360
and I use this at symbol, you can see that I can actually reference different applications

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.

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

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,

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,

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

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.

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.

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.

00:11:27.180 --> 00:11:29.880
And you can see that it's going to use the computer plugin and it should

00:11:29.880 --> 00:11:33.780
control my computer and keep in mind that while it's controlling my computer,

00:11:33.780 --> 00:11:38.160
I can still use the computer myself so I can navigate into an application.

00:11:38.160 --> 00:11:39.080
I can close something.

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

00:11:42.720 --> 00:11:44.360
use its own cursor. Okay.

00:11:44.380 --> 00:11:47.800
Apologies because it had a note there that I didn't want you guys to see.

00:11:47.800 --> 00:11:48.940
So I had to kind of rerun this,

00:11:49.080 --> 00:11:51.840
but you can see that it actually just opened up my computer here,

00:11:51.840 --> 00:11:54.860
open up notepad and wrote this note inside for me. Okay.

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

00:11:58.700 --> 00:11:59.420
or triple the length?

00:11:59.460 --> 00:12:01.220
Don't worry if it's unsaved, just keep writing.

00:12:01.580 --> 00:12:01.840
Okay.

00:12:01.840 --> 00:12:02.660
And let's hit enter.

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

00:12:06.660 --> 00:12:11.240
able to take over and do anything that we want, which can be super useful, especially

00:12:11.240 --> 00:12:16.960
for automating, kind of like testing a website, going through a form, running a task repetitively,

00:12:16.980 --> 00:12:17.840
you get the idea.

00:12:17.940 --> 00:12:18.660
So let's see how it works.

00:12:18.660 --> 00:12:19.960
And you can see that just opened it.

00:12:20.460 --> 00:12:21.840
And then did it extend the note?

00:12:22.100 --> 00:12:23.020
I guess not.

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

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

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,

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.

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

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

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

00:12:51.900 --> 00:12:54.360
it opened this, it actually started playing the song. I just paused it. Cause

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

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

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

00:13:03.000 --> 00:13:06.140
Chrome, it can control its own devices. So keep that in mind. That's super

00:13:06.140 --> 00:13:10.080
useful, but now let's move to some more coding related features. Okay. So if

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

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

00:13:16.700 --> 00:13:20.480
create a new project. Now, whenever you're coding, I recommend that you make a new

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

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

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

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

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

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

00:13:47.660 --> 00:13:49.940
interactive chess game here using codex.

00:13:50.180 --> 00:13:51.980
So you can see that's made a new project for me.

00:13:52.100 --> 00:13:53.360
It's called chess game.

00:13:53.520 --> 00:13:56.240
And notice that we have a few options here for the project.

00:13:56.440 --> 00:13:59.280
Now I have the ability to connect to codex web.

00:13:59.480 --> 00:14:03.020
This would essentially send all of the kind of info to the cloud,

00:14:03.020 --> 00:14:04.400
which is a little bit more complicated.

00:14:04.660 --> 00:14:07.640
We can work locally, which just means we're working on our own computer,

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

00:14:10.840 --> 00:14:13.760
tree. Now we're going to look at work trees later, but essentially this is a

00:14:13.760 --> 00:14:17.540
clone of this kind of project so that we can work on multiple things.

00:14:17.540 --> 00:14:19.380
at the same time without having a conflict.

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.

00:14:22.860 --> 00:14:25.500
You'll notice that it automatically is connecting to get.

00:14:25.500 --> 00:14:29.360
So it's created a branch called main and you can make different branches

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.

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

00:14:34.280 --> 00:14:35.580
need to keep approving things.

00:14:35.780 --> 00:14:38.140
And you can see it's pretty straightforward what you do here with those.

00:14:38.340 --> 00:14:39.860
So now let me give this a simple prompt.

00:14:40.180 --> 00:14:42.000
I want to create a simple chess game.

00:14:42.040 --> 00:14:46.380
I want to have a backend, which is using web sockets and kind of keeping

00:14:46.380 --> 00:14:50.220
track of scores and ratings and stuff in a database and people's usernames.

00:14:50.520 --> 00:14:53.080
And then I want to have a front end where we can actually play this.

00:14:53.340 --> 00:14:54.580
I want it to be multiplayer.

00:14:54.580 --> 00:14:57.220
So I want two people to be able to play against each other.

00:14:57.340 --> 00:15:01.260
We can keep it simple, have an MVP to start and then build everything out.

00:15:01.600 --> 00:15:03.500
Okay. So I'm just giving it kind of, you know, prompt on what I,

00:15:03.540 --> 00:15:04.780
what it is that I wanted to do.

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.

00:15:08.280 --> 00:15:10.060
And I just want to show you how this works. Okay.

00:15:10.060 --> 00:15:13.700
So we can see here, the codex is now working. It's making multiple files.

00:15:13.700 --> 00:15:15.620
We can see what it's doing and I can kind of, you know,

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.

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

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

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.

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

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

00:15:42.360 --> 00:15:43.560
commit or push directly to

00:15:43.560 --> 00:15:44.980
GitHub. Now it's not giving

00:15:44.980 --> 00:15:45.980
us any results because it's

00:15:45.980 --> 00:15:47.320
not available online right

00:15:47.320 --> 00:15:48.260
now. It's just locally on

00:15:48.260 --> 00:15:49.460
our computer, but you get

00:15:49.460 --> 00:15:50.300
the idea. And then we can

00:15:50.300 --> 00:15:51.400
view the changes, which is

00:15:51.400 --> 00:15:52.280
making right now. So we're

00:15:52.280 --> 00:15:53.160
just waiting for those to

00:15:53.160 --> 00:15:54.400
finish. So there's a lot

00:15:54.400 --> 00:15:55.260
that will start happening

00:15:55.260 --> 00:15:56.360
when you actually write

00:15:56.360 --> 00:15:57.660
code. And then I can also

00:15:57.660 --> 00:15:58.800
toggle open the terminal,

00:15:58.800 --> 00:15:59.540
right? So I can run

00:15:59.540 --> 00:15:59.980
command.

00:16:00.000 --> 00:16:01.200
So I can run commands or see what's happening there.

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

00:16:05.540 --> 00:16:06.200
that are shown here.

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,

00:16:09.700 --> 00:16:11.200
I can press that button and do so.

00:16:11.260 --> 00:16:13.140
So let's wait a second for it to finish writing this code.

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

00:16:15.900 --> 00:16:18.980
inside of this folder, and then we'll review it and see what we get.

00:16:19.340 --> 00:16:21.500
Okay. So it just finished the first pass here.

00:16:21.500 --> 00:16:24.700
It says that it built the multiplayer chess MVP and started locally.

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

00:16:27.800 --> 00:16:29.440
open directly in codex.

00:16:29.440 --> 00:16:31.240
So you can see that it's opened up right here.

00:16:31.240 --> 00:16:32.380
We kind of have this view.

00:16:32.380 --> 00:16:34.940
I can, you know, change the view, make it larger, smaller, whatever.

00:16:35.180 --> 00:16:37.800
So let's give a username, maybe like Tim.

00:16:37.800 --> 00:16:39.640
Okay. And join the game.

00:16:39.640 --> 00:16:41.580
And then let's try to find a game.

00:16:41.580 --> 00:16:41.840
Okay.

00:16:41.840 --> 00:16:43.820
And then I'm just going to open up another browser here.

00:16:43.880 --> 00:16:46.600
So you can see, I can press this plus button, go browser.

00:16:46.840 --> 00:16:48.260
We can actually manually type.

00:16:48.760 --> 00:16:50.180
So localhost 3000.

00:16:50.820 --> 00:16:51.180
Okay.

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.

00:16:55.860 --> 00:16:56.180
Okay.

00:16:56.320 --> 00:16:58.060
Join and find a game.

00:16:58.120 --> 00:17:00.980
And you can see that we find a game and then we can start playing.

00:17:01.100 --> 00:17:01.720
So I don't know.

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.

00:17:05.720 --> 00:17:07.500
So let's make a move like that.

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

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,

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,

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

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

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

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

00:17:38.840 --> 00:17:42.200
inside of this window rather than doing it manually. And of course, chat,

00:17:42.200 --> 00:17:45.920
GBT and you know, GBT here can do image generation. It can view images.

00:17:46.160 --> 00:17:49.040
So that's, I mean, should be straightforward. You also can annotate.

00:17:49.040 --> 00:17:53.000
So if you annotate, this will allow you to select different HTML elements.

00:17:53.280 --> 00:17:53.960
So for example,

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

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.

00:18:00.940 --> 00:18:01.460
Okay.

00:18:01.780 --> 00:18:04.980
And then we can go here and we can actually just update any of the values

00:18:04.980 --> 00:18:06.220
directly on screen.

00:18:06.740 --> 00:18:08.860
I'm not going to do that because I would prefer just to prompt it,

00:18:09.100 --> 00:18:10.140
but I'm just going to run that.

00:18:10.520 --> 00:18:13.980
You can see, we now have an annotation in chat and I can start adding other

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

00:18:18.520 --> 00:18:22.180
have like a white or dark mode, or maybe change the square colors.

00:18:22.680 --> 00:18:24.920
I'm just giving random prompts to kind of show you how this works.

00:18:25.300 --> 00:18:28.200
And you can see we have annotations and I can say like go or something.

00:18:28.340 --> 00:18:31.640
And now it's going to have the annotations that we made in the browser.

00:18:31.920 --> 00:18:35.360
And it's going to make those changes, which are a lot more targeted. Okay.

00:18:35.360 --> 00:18:37.880
So I just refreshed, cause I want to see what this was doing live.

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

00:18:41.280 --> 00:18:42.240
what the board looks like.

00:18:42.240 --> 00:18:44.640
Obviously we've disconnected now we're waiting to join.

00:18:44.640 --> 00:18:47.480
We can see we have the kind of chess icon and it's essentially

00:18:47.480 --> 00:18:49.120
followed the annotations we asked for.

00:18:49.160 --> 00:18:49.360
Okay.

00:18:49.360 --> 00:18:52.720
So hopefully that gave you a bit of information on how the general kind of

00:18:52.720 --> 00:18:56.000
coding works inside of codex is very good for me.

00:18:56.000 --> 00:18:59.000
I really like this user interface and I like using this application.

00:18:59.200 --> 00:19:02.000
And I mean, you can see that it gives us pretty good results,

00:19:02.000 --> 00:19:03.720
even though I didn't do anything crazy.

00:19:03.720 --> 00:19:05.880
So now let's move to a few more advanced features.

00:19:06.040 --> 00:19:08.460
Let's start by having a look at some basic commands.

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

00:19:13.520 --> 00:19:16.540
inside of Claude code or not Claude code inside of codex.

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.

00:19:20.460 --> 00:19:24.360
So first, if we do slash, we're going to want to look at status.

00:19:24.500 --> 00:19:26.860
Now status will just show you your usage limits.

00:19:26.940 --> 00:19:29.600
You can see that for my five hour limit, I'm at 98%.

00:19:29.600 --> 00:19:32.220
And for my seven day limit, I'm at 99%.

00:19:32.220 --> 00:19:34.320
It also gives me my context limit.

00:19:34.500 --> 00:19:36.040
Now the context can be viewed

00:19:36.040 --> 00:19:39.340
using this little kind of circular icon down here.

00:19:39.420 --> 00:19:41.240
It won't give you a detailed breakdown,

00:19:41.240 --> 00:19:43.500
but you'll be able to see how much you've used,

00:19:43.740 --> 00:19:45.820
how much is left and how many tokens are there.

00:19:45.880 --> 00:19:47.400
Now, depending on the models you're using,

00:19:47.440 --> 00:19:48.920
the context size can change,

00:19:49.040 --> 00:19:51.020
but this is something that's useful to be aware of

00:19:51.020 --> 00:19:52.760
because if the context gets too large,

00:19:52.760 --> 00:19:54.200
which means you have too many,

00:19:54.560 --> 00:19:57.500
you know, too much conversation, history, tool calls, et cetera,

00:19:57.620 --> 00:19:59.460
you will need to compact that.

00:20:00.100 --> 00:20:02.120
Now there's actually a command that can do this for you.

00:20:02.220 --> 00:20:03.840
It's called slash compact.

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

00:20:08.320 --> 00:20:09.560
conversation history.

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

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

00:20:18.480 --> 00:20:21.040
of a new fresh conversation that you'll start.

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?

00:20:24.840 --> 00:20:27.100
Context use here, we've only used 4%.

00:20:27.100 --> 00:20:28.980
So it's taken 22% there.

00:20:28.980 --> 00:20:32.760
It's condensed it down, given us a summary, and now we can continue.

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.

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

00:20:44.260 --> 00:20:48.480
because you're going to get better results because as the model fills up with context,

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

00:21:59.500 --> 00:22:03.560
chat. If we want to ask for something different and kind of forget the previous conversation

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

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

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

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

00:22:25.660 --> 00:22:30.860
questions and kind of clarifying details before it goes and executes the plan pretty straightforward,

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

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

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.

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

00:22:49.280 --> 00:22:50.300
to have whatever accounts.

00:22:50.540 --> 00:22:52.160
So let's start generating a plan for that.

00:22:52.700 --> 00:22:54.680
I want to expand our chess game.

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

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

00:23:03.440 --> 00:23:06.460
board. I want to generate a few different game modes, and I want to really

00:23:06.460 --> 00:23:09.680
polish this up and make it kind of like a chess.com clone.

00:23:09.920 --> 00:23:11.760
Let's start with just the MVP features.

00:23:11.760 --> 00:23:13.100
Can you generate a plan for this?

00:23:13.160 --> 00:23:14.540
Ask me any questions you need to.

00:23:15.400 --> 00:23:15.840
Okay.

00:23:16.280 --> 00:23:18.020
So let's go here and press enter.

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

00:23:22.160 --> 00:23:25.860
asking us some questions and prompting us so that it can generate that for us.

00:23:26.180 --> 00:23:26.420
Okay.

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.

00:23:29.420 --> 00:23:33.920
So it says for the first MVP pass, which mode set should the landing page launch?

00:23:34.420 --> 00:23:38.660
We can have add bot game, add time modes or core three ship, the landing page

00:23:38.660 --> 00:23:40.080
live game, daily stuff puzzles.

00:23:40.080 --> 00:23:40.820
Let's go with that.

00:23:41.120 --> 00:23:43.220
How should the user stats work for an MVP?

00:23:43.420 --> 00:23:45.680
Let's just go username profiles.

00:23:45.720 --> 00:23:46.180
Okay.

00:23:46.180 --> 00:23:49.080
Um, username, login, expand stats.

00:23:49.200 --> 00:23:49.500
Okay.

00:23:49.780 --> 00:23:51.840
How deep should the puzzle mode be an MVP?

00:23:52.480 --> 00:23:53.500
Let's just do.

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

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

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.

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?

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

00:24:15.346 --> 00:24:15.766
things.

00:24:15.886 --> 00:24:18.066
And now you'll see that it's generating the plan.

00:24:18.186 --> 00:24:20.446
I believe the plan will be stored in this repo.

00:24:20.486 --> 00:24:23.666
I might just need to refresh, but we should be able to view it.

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

00:24:27.566 --> 00:24:29.166
everything that needs to be done.

00:24:29.506 --> 00:24:29.866
Okay.

00:24:29.926 --> 00:24:32.366
So I could just implement this plan, right?

00:24:32.366 --> 00:24:33.566
And just start running with that.

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

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

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.

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

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

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,

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

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.

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

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,

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,

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

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

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

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

00:25:52.626 --> 00:25:57.446
implement the entire plan until the plan is fully finished. Everything is tested. Everything is

00:25:57.446 --> 00:26:01.946
working and we are confident to deploy this again, not the best prompt in the

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,

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

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

00:26:14.206 --> 00:26:17.606
through all of the different steps and it will just be this infinite loop,

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.

00:26:21.566 --> 00:26:24.146
It built this application for us. I don't know if it's fully working,

00:26:24.146 --> 00:26:26.006
but you guys get the idea and it's done.

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

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,

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

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

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.

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

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,

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

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

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,

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

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

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,

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,

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

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

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

00:27:50.746 --> 00:27:54.586
time working in these kinds of copies of the same repo.

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.

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

00:28:02.986 --> 00:28:05.466
is this tool called slash review.

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

00:28:10.346 --> 00:28:13.606
the current session against what's in GitHub.

00:28:13.826 --> 00:28:14.086
Okay.

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

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

00:28:25.226 --> 00:28:30.626
uncommitted changes. So if I go slash review, right. And then uncommitted changes, it's going

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

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

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

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,

00:28:48.526 --> 00:28:49.026
Don't worry.

00:28:49.166 --> 00:28:51.906
But if you're a developer, you'll understand the value of having a built-in

00:28:51.906 --> 00:28:55.186
shortcut that will do all of those passes and checks for you.

00:28:55.446 --> 00:28:55.706
Okay.

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.

00:28:58.826 --> 00:29:02.266
And it said, Hey, these are errors that I found after doing the code review.

00:29:02.266 --> 00:29:02.446
Right?

00:29:02.446 --> 00:29:03.586
So let me go ahead and fix them.

00:29:03.826 --> 00:29:04.086
Okay.

00:29:04.406 --> 00:29:07.826
So let's move to the next feature, which is memory and context.

00:29:08.086 --> 00:29:12.226
Now this is less, maybe, I don't know, demo wise and more me explaining how

00:29:12.226 --> 00:29:13.786
this works because I want you to understand this.

00:29:14.066 --> 00:29:16.546
So if I make a new, um, chat right here.

00:29:16.546 --> 00:29:16.846
Okay.

00:29:16.846 --> 00:29:18.886
And we go into this and I'm working locally.

00:29:19.046 --> 00:29:20.126
I want you to see something.

00:29:20.666 --> 00:29:24.746
What did I do in my last session when I was working on the chess game?

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

00:29:28.906 --> 00:29:35.146
you need to understand that by default codex doesn't remember things that you

00:29:35.146 --> 00:29:36.286
worked on in the past.

00:29:36.646 --> 00:29:41.266
Anytime you create a new chat, what it's doing is reviewing anything that you

00:29:41.266 --> 00:29:44.966
have in your current repo, kind of trying to load in information and find

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

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

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.

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,

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

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

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

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

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

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

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

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

00:30:41.746 --> 00:30:46.686
conversation history and threads to find this information. So it can find it, but the only

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,

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

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

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

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

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

00:31:18.466 --> 00:31:23.646
on larger projects with multiple people, because you can store preferences, different tools or

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

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,

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

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

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.

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

00:31:52.946 --> 00:31:54.066
going to fill this file.

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

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

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

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

00:32:14.946 --> 00:32:19.646
conversation, I go, what are the project conventions? It's not going to have to search

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,

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

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

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

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

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

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

00:32:54.326 --> 00:32:59.426
codecs to create that for you. And you can continually update this to improve the performance

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

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

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

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

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

00:33:22.286 --> 00:33:25.946
morning it, you know, opens your computer, searches the news and gives you some info.

00:33:25.946 --> 00:33:29.186
You can do a weekly review where it tells you all the things you worked on.

00:33:29.186 --> 00:33:32.246
You can do project monitor where if something changes, we do this.

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

00:33:36.426 --> 00:33:39.466
for me automatically, or I can go to templates and I can pick one.

00:33:39.466 --> 00:33:41.886
So maybe like this, this is what I want to do.

00:33:42.106 --> 00:33:45.206
I want to run it in, you know, this chat or in a work tree.

00:33:45.826 --> 00:33:48.766
I want to in this project, I want it to repeat at this time.

00:33:49.386 --> 00:33:50.746
Then this is the model that I want to use.

00:33:50.746 --> 00:33:51.306
Okay.

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

00:33:54.766 --> 00:33:56.886
to kind of automatically do things for you,

00:33:56.966 --> 00:33:59.146
which is useful if you want some automations.

00:33:59.146 --> 00:34:00.466
But for me, I don't really need any.

00:34:00.526 --> 00:34:01.866
So I don't have those set up as of now.

00:34:01.906 --> 00:34:02.966
And then of course you can search

00:34:02.966 --> 00:34:04.186
through all of your chats

00:34:04.186 --> 00:34:05.246
and a bunch of other stuff.

00:34:05.826 --> 00:34:07.006
And we can go crazy

00:34:07.006 --> 00:34:10.666
and we can go to, you know, add MCP servers.

00:34:10.806 --> 00:34:12.326
We can control the browser use.

00:34:12.386 --> 00:34:14.886
We can do computer use, hooks, connections,

00:34:15.046 --> 00:34:16.366
get environments, work trees.

00:34:16.546 --> 00:34:17.726
There is a lot more to go over,

00:34:17.786 --> 00:34:19.286
but I'm going to save that for a part two.

00:34:19.386 --> 00:34:20.726
If you guys let me know in the comments

00:34:20.726 --> 00:34:23.166
that you want to see an advanced version of this.

00:34:23.646 --> 00:34:25.086
That is going to wrap up this video.

00:34:25.286 --> 00:34:27.846
That was a pretty comprehensive overview of codex.

00:34:27.926 --> 00:34:30.766
A lot of the features, how to use it, some good demos,

00:34:30.766 --> 00:34:33.726
setting up a lot of the important plugins at this point, you know,

00:34:33.726 --> 00:34:35.846
probably 90% of codex.

00:34:36.046 --> 00:34:37.686
If you want the extra 10%, let me know.

00:34:37.686 --> 00:34:41.146
And I will happily make an advanced version for those of you that are devs

00:34:41.146 --> 00:34:43.566
and are kind of past some of the beginner stuff that I showed here.

00:34:43.886 --> 00:34:44.886
Anyways, I hope you enjoyed.

00:34:44.886 --> 00:34:48.286
If you did leave a like subscribe and I will see you in the next one.

00:34:53.166 --> 00:34:55.166
Now let's get started.
