WEBVTT

00:00:00.000 --> 00:00:02.407
So, Codex is an absolutely incredible super app.

00:00:02.407 --> 00:00:05.851
I've been using it a lot more lately, and I'm not saying that I'm ditching Claude Code.

00:00:05.851 --> 00:00:09.378
I still use them both regularly because they're both good at different things.

00:00:09.378 --> 00:00:18.950
So, today's video, I'm going to break down every single important thing that you need to know about Codex to be able to, you know, open up the app for the first time and then actually have finished automations and websites and whatever you want to do

00:00:18.960 --> 00:00:21.070
in Codex done by the end of this video.

00:00:21.080 --> 00:00:27.271
So, whether you've never opened up a tool like this before or if you're already kind of used to using Claude Code, I'm going to break down everything as simple as I can.

00:00:27.271 --> 00:00:36.513
So, first of all, if you fit in this bucket of someone that uses ChatGPT just on the web or uses Claude, you are going to get this really quick because what we're looking at right here is ChatGPT.

00:00:36.513 --> 00:00:44.232
We have the ability to make new chats, we can search through chats, we can have different projects, we can have all of our different chats over here, and then we talk to chat right here.

00:00:44.232 --> 00:00:49.695
And if I open up the Codex app, which is what we're going to be using today for the entire video, it looks pretty much the exact same.

00:00:49.695 --> 00:00:54.480
We have projects on the left, we have chats on the left, and then we can talk to ChatGPT right here.

00:00:54.480 --> 00:00:59.670
We use this toggle to change the model whether we want to use GPT 5.5, 5.4, or other models.

00:00:59.670 --> 00:01:02.910
We can change the speed, and then we can also change the intelligence.

00:01:02.910 --> 00:01:04.911
So, low, medium, high, or extra high.

00:01:04.911 --> 00:01:08.054
And I'll get into this stuff a little bit later in more depth.

00:01:08.054 --> 00:01:15.877
And this is also very similar to the Claude Code desktop app where we have the ability to chat with Claude right here, and then on the left-hand side we can see our chats and our projects.

00:01:15.877 --> 00:01:17.187
So, that is the interface.

00:01:17.187 --> 00:01:18.310
Don't get overwhelmed.

00:01:18.320 --> 00:01:26.710
So, I'm going to get you guys all familiar with the interface and go over all the settings that you need to know, and then I'm going to show you a full project from beginning to end building skills, connecting to things, building

00:01:26.720 --> 00:01:29.859
automations, and then deploying on some sort of website.

00:01:29.859 --> 00:01:30.571
So, buckle up.

00:01:30.571 --> 00:01:32.440
All right, so what actually is Codex?

00:01:32.440 --> 00:01:35.270
Codex is basically a massive super app.

00:01:35.270 --> 00:01:43.602
We can use ChatGPT same way you talk to it on the web, but now we work in projects, and Codex can create Excel sheets, read Excel sheets, look through all your local files.

00:01:43.602 --> 00:01:49.369
It can do basically anything on your computer including using the mouse and keyboard and clicking around and automating a browser.

00:01:49.369 --> 00:01:51.632
It also lets us build these reusable skills.

00:01:51.632 --> 00:01:59.514
We can build websites, we can build apps, we can build video games, and then we can automate and push all that stuff so that it actually runs while we're sleeping every night.

00:01:59.514 --> 00:02:03.035
So, the main difference here between web chat is that you're basically just talking.

00:02:03.035 --> 00:02:06.395
And you have these connectors in chat GPT now, so you can get a little bit more functionality.

00:02:06.395 --> 00:02:10.070
You can give that AI brain a bit more of like hands.

00:02:10.080 --> 00:02:13.030
But, in Codex, it can do everything.

00:02:13.040 --> 00:02:18.438
It's one of those things where Codex can do everything that chat can do, but chat cannot do nearly as much as what Codex can do.

00:02:18.438 --> 00:02:21.022
So, you might as well just switch over to something like Codex.

00:02:21.022 --> 00:02:25.565
And if you are curious about the Claude code versus Codex difference, they're different harnesses, right?

00:02:25.565 --> 00:02:28.958
So, they fundamentally work a little bit different, but very similarly.

00:02:28.958 --> 00:02:30.588
They also use different models.

00:02:30.588 --> 00:02:37.110
So, Claude code natively under the hood uses Opus and Sonnet and Haiku, and Codex under the hood uses the different chat GPT models.

00:02:37.120 --> 00:02:42.666
Now, I did do a full breakdown where I actually tested Opus 4.7 against GPT 5.5, and I got some really interesting results.

00:02:42.666 --> 00:02:45.575
So, if you guys want to check out this video next, I'll tag that right up here.

00:02:45.575 --> 00:02:47.901
I definitely think it's worth just at least skimming through.

00:02:47.901 --> 00:02:53.009
Because ultimately, these models have very different strengths is what I've noticed after playing with them non-stop.

00:02:53.009 --> 00:02:59.747
I really like Claude for being sort of like exploratory and brainstorming and helping me get creative and think through things and plan.

00:02:59.747 --> 00:03:02.430
But then, I really like Codex for being pragmatic.

00:03:02.440 --> 00:03:06.944
And it feels like it does better at following my plan if the plan grows longer and longer.

00:03:06.944 --> 00:03:14.098
And it's really good at executing, and it's really good at finding issues and troubleshooting things that sometimes Claude, for some reason, can't handle.

00:03:14.098 --> 00:03:16.850
So, I'm not in here saying that I love Codex more than Claude code.

00:03:16.850 --> 00:03:20.589
I'm saying that I'm using them both, and I'm learning more about both every day.

00:03:20.589 --> 00:03:25.494
And one other thing I really like about Codex is you can see my little pet down here, which I'll tell you guys how you get this later.

00:03:25.494 --> 00:03:30.526
But this pet, while you're working, it stays in the bottom of your screen, and it tells you what it's working on.

00:03:30.526 --> 00:03:34.430
So, it's really nice to be able to multitask and see what's happening inside of Codex.

00:03:34.440 --> 00:03:35.770
And the pet's kind of funny.

00:03:35.770 --> 00:03:37.117
And it's more than just having chats.

00:03:37.117 --> 00:03:39.959
It's the ability to have everything organized on your workspace.

00:03:39.959 --> 00:03:49.512
So, if you guys watch my recent video about Claude code operating system, or you've seen my executive assistant video, this is my heart two project, which is basically where I live inside of Claude code.

00:03:49.512 --> 00:03:52.029
And all of this is is a bunch of folders and files.

00:03:52.029 --> 00:03:53.388
I've got a bunch of files here.

00:03:53.388 --> 00:03:54.727
I've got a bunch of different folders.

00:03:54.727 --> 00:03:55.401
I've got settings.

00:03:55.401 --> 00:03:56.114
I've got skills.

00:03:56.114 --> 00:03:56.849
I've got agents.

00:03:56.849 --> 00:03:57.798
I've got projects.

00:03:57.798 --> 00:03:59.898
I've got all these things that I'm working on.

00:03:59.898 --> 00:04:02.430
And all this is is a bunch of local files.

00:04:02.440 --> 00:04:06.942
Which means I can have Codex work inside of this directory and do everything as well.

00:04:06.942 --> 00:04:11.729
All that we're doing when we're using these different models is we're organizing things into a structure.

00:04:11.729 --> 00:04:13.803
A structure that different agent harnesses can understand.

00:04:13.803 --> 00:04:20.590
And whether you want to use Codex or Claude Code or Cursor or, you know, Open Claw, whatever it is, they can all work out of that directory.

00:04:20.600 --> 00:04:25.170
As long as you have some sort of instructions and guidelines over what actually lives where.

00:04:25.170 --> 00:04:30.732
Okay, so basically what I'm going to be building with you guys today is a bit of a YouTube comment intelligence system.

00:04:30.732 --> 00:04:34.179
So we want to be able to pull in YouTube comments from my channel.

00:04:34.179 --> 00:04:35.986
We want to be able to have those be analyzed.

00:04:35.986 --> 00:04:37.241
We want a workbook in Excel.

00:04:37.241 --> 00:04:39.184
We want like some data visualization.

00:04:39.184 --> 00:04:44.306
And we want a dashboard that lives somewhere on the web so I could go check it on my phone if I'm out on a walk.

00:04:44.306 --> 00:04:46.701
And I'm going to show you how we ship and deploy all of that.

00:04:46.701 --> 00:04:50.356
So basically from zero to a working project is what I'm going to show you guys today.

00:04:50.356 --> 00:04:53.923
So, let me go ahead and open up the Codex app and show you guys how this works.

00:04:53.923 --> 00:04:57.550
Now real quick, what you have to do is have some sort of ChatGPT plan.

00:04:57.560 --> 00:05:00.322
The good news is if you're on free, you can still try out Codex.

00:05:00.322 --> 00:05:01.907
You have limited Codex access.

00:05:01.907 --> 00:05:05.420
But I would recommend just hopping on the $20 a month plan to get started.

00:05:05.420 --> 00:05:09.670
And if you're running into your limits pretty quickly, then maybe you want to upgrade to Pro.

00:05:09.680 --> 00:05:16.364
Now what else is really nice about ChatGPT subscription is you can plug it into Open Claw or Hermes Agent, which is really really nice.

00:05:16.364 --> 00:05:21.197
Because obviously it's so much more expensive to pay per token rather than being on some sort of subscription.

00:05:21.197 --> 00:05:25.663
And then you're just going to go ahead and go to Codex and then just download the app for your operating system.

00:05:25.663 --> 00:05:27.908
That's the way that we're going to be using it today.

00:05:27.908 --> 00:05:34.635
Ultimately, you will be getting more full functionality if you're using Codex in VS Code extension or in the terminal.

00:05:34.635 --> 00:05:39.110
But for the sake of the video, using the app is going to get you super far either way.

00:05:39.120 --> 00:05:42.433
There's just a few little things you want to keep in mind, which is why I'm making this YouTube video.

00:05:42.433 --> 00:05:44.707
All right, so let's go ahead and get started.

00:05:44.707 --> 00:05:51.028
So, on the left-hand side you can see I've got one project open, and this project is actually how I built the slide deck that you were looking at earlier.

00:05:51.028 --> 00:05:59.449
So, this slide deck I built right here in this project, and you can see because I'm in the app, Codex lets us basically navigate this right here in this little localhost browser.

00:05:59.449 --> 00:06:08.030
And this is also where if I said, "Hey, can you use browser use and test out this slide deck to make sure everything looks good and make sure it functionally like clicks and moves?"

00:06:08.040 --> 00:06:13.849
Then it would bring up a mouse over here, and we would see it move around, and we would see it click, which I'll show you guys later in the video.

00:06:13.849 --> 00:06:23.791
But anyways, what we're going to do is we're going to start a new project because over here you can see we have a bunch of random chats, which can still do things like building games and building automations and simulators.

00:06:23.791 --> 00:06:32.393
But what we want to do is we want to work inside of an actual project because these chats, any deliverable that we create doesn't really have a home, you know, it just lives somewhere random in our documents.

00:06:32.393 --> 00:06:43.310
But when we're working in a certain project, I can actually grab the local working directory, so I copy that, and if I go into my file explorer and paste that in, now I'm inside of the actual project that we're working on in

00:06:43.320 --> 00:06:43.638
Codex.

00:06:43.638 --> 00:06:47.053
So, now I can see different assets that live in this project, all these images.

00:06:47.053 --> 00:06:53.315
I can see different guides, and I can have a little bit more organization to this ongoing project in my business.

00:06:53.315 --> 00:06:55.315
All right, so we're going to start a new project.

00:06:55.315 --> 00:07:03.249
I'm going to click on new chat in the top, and then right here you can see I'm inside of the Codex 95% project, but we're going to go ahead and add a new project.

00:07:03.249 --> 00:07:08.752
So, that's going to open up a little um file explorer over here, and then you choose where you want this to live.

00:07:08.752 --> 00:07:20.747
So, for this example, I'm going to go to my desktop, I'm going to go into a folder called Codex YouTube, and I'm going to create a new folder inside of this folder just called um YouTube analytics demo.

00:07:20.747 --> 00:07:27.697
And we're going to go ahead and open up this folder and select that, and now you can see it's a new project over here on this left-hand side that we're going to be working in.

00:07:27.697 --> 00:07:29.744
Now, right here you can see I have something called full access.

00:07:29.744 --> 00:07:32.950
By default, you won't see this, it'll just be on default permissions.

00:07:32.960 --> 00:07:36.814
So, I'm going to kick off some sort of chat here, and then I'll show you how we actually get that set up.

00:07:36.814 --> 00:07:45.058
Real quick, guys, I know we're going over a ton of information in this video, so what I did is I threw all of this into a complete PDF resource guide that you can use and reference later.

00:07:45.058 --> 00:07:47.423
All you have to do to get that is join my free school community.

00:07:47.423 --> 00:07:48.897
The link for that is down in the description.

00:07:48.897 --> 00:08:00.230
And once you get in here, go to the classroom and click on all YouTube resources, and you'll be able to find all of my repos, all of my skills, resource guides, everything that I've ever dropped inside of here is completely free, and anything I've shown

00:08:00.240 --> 00:08:01.910
on YouTube is usually dropped in here.

00:08:01.920 --> 00:08:04.698
So, join the community, link in the description, and let's get back to the video.

00:08:04.698 --> 00:08:05.171
Thanks, guys.

00:08:05.171 --> 00:08:12.783
All right, so the first thing that I want to do in this project is I want it to be able to just kind of familiarize with self with my workspace and with who I am.

00:08:12.783 --> 00:08:16.586
And the way that I'm going to do that is I have a project locally.

00:08:16.586 --> 00:08:25.834
If I go to my um if I go to my desktop and I go into a project here called YouTube OS, I have like all of my transcripts right here from some YouTube videos.

00:08:25.834 --> 00:08:28.308
So, what I'm going to do is I'm not going to give it that file path.

00:08:28.308 --> 00:08:35.709
I'm just going to say, "Hey, in my desktop, look inside my YouTube OS folder, and just pull in 10 of my raw transcripts and analyze them."

00:08:35.719 --> 00:08:42.727
This is just to show you guys how good it's going to be at finding different files locally and being able to organize them, move them, delete them, whatever you want.

00:08:42.727 --> 00:08:44.702
In this case, I'm just telling it to read them.

00:08:44.702 --> 00:08:52.712
All right, so I want you to go onto my desktop, and I want you to look at a folder called YouTube OS, and I just want you to familiarize yourself with me.

00:08:52.712 --> 00:08:59.375
I make YouTube videos on AI automation, and inside of this folder, I have a bunch of my raw transcripts.

00:08:59.375 --> 00:09:04.350
So, I just want you to read through like 5 to 10 of those just to familiarize yourself with the type of content that I make.

00:09:04.350 --> 00:09:05.655
You shouldn't do any organization.

00:09:05.655 --> 00:09:07.432
I just want you to read those for context.

00:09:07.432 --> 00:09:11.762
Now, what's cool about this is Codex, once again, is an agent that lives locally.

00:09:11.762 --> 00:09:22.251
So, just because it's working inside of one project, which is our, you know, um YouTube sort of demo folder, that doesn't mean that it can't navigate anywhere else inside of your local files.

00:09:22.251 --> 00:09:24.816
And because we're telling it to do so, it's going to search.

00:09:24.816 --> 00:09:27.318
Right here, you can see it's searching inside of my desktop.

00:09:27.318 --> 00:09:30.903
And then it's going to find the YouTube OS, and it's going to drill down into that folder.

00:09:30.903 --> 00:09:33.950
And it's going to keep searching until it finds what it wants.

00:09:33.960 --> 00:09:35.028
Now, a quick warning.

00:09:35.028 --> 00:09:38.621
This is not the most effective use of Codex or of your tokens.

00:09:38.621 --> 00:09:44.200
The more effective use would be to say, "Hey, this is the folder right here with all my raw transcripts.

00:09:44.200 --> 00:09:54.268
I'm going to copy this path, and I'm now just going to give Codex this exact path, so it can just look in there instead of having to search for it on its own." But I just wanted to show you how it's able to do this.

00:09:54.268 --> 00:09:59.339
Because you can see right here, inside of my transcripts folder, I have one called raw, and that's the one that I wanted it to look at.

00:09:59.339 --> 00:10:02.888
And right here it says there are two files, raw and then processed.

00:10:02.888 --> 00:10:05.091
So it doesn't know which one to look through.

00:10:05.091 --> 00:10:09.078
So anyways, the more specific you can be with your prompting and with your pointing, the better.

00:10:09.078 --> 00:10:12.569
Now let's also, while this is running, talk about the model stuff over here.

00:10:12.569 --> 00:10:14.829
So right now you've noticed that we're on extra high.

00:10:14.829 --> 00:10:18.560
And I would say that extra high is probably overkill for that sort of job.

00:10:18.560 --> 00:10:22.738
For the most part, I'm using medium to do all of my planning and my brainstorming.

00:10:22.738 --> 00:10:27.138
And then every once in a while, if I'm doing a huge build or some massive scale, I'll switch to high.

00:10:27.138 --> 00:10:33.510
I'm honestly hardly using extra high unless I'm hitting some sort of bug or issue that it's not able to solve.

00:10:33.520 --> 00:10:38.226
Anyways, it has read nine transcripts, so it has a little bit of a better of an idea now about who we are.

00:10:38.226 --> 00:10:44.105
But just to show you guys, this is still the folder that we're working in, the YouTube Analytics Demo, and there's nothing that exists here.

00:10:44.105 --> 00:10:51.202
So even though it knows this, this knowledge only really lives in our overall ChatGPT memory, and in this specific chat window.

00:10:51.202 --> 00:10:55.357
If I opened up a new chat, it probably wouldn't still have the knowledge about this.

00:10:55.357 --> 00:10:59.916
So what I'd probably want to do is say, "What I want you to do is set up an agents.md file.

00:10:59.916 --> 00:11:03.876
This should have context about me and about what the goal of this project is.

00:11:03.876 --> 00:11:13.310
Ultimately, what we're going to do here is we're going to build a dashboard that's going to be pushed to dashboard that's going to be pushed to Vercel, and it's going to have information about my channel and some analytics around the

00:11:13.320 --> 00:11:14.717
comments and stuff like that.

00:11:14.717 --> 00:11:15.661
So that's the end goal.

00:11:15.661 --> 00:11:20.474
We're going to have to connect to YouTube, we're going to have to pull in data, we're going to set up some skills and some automations.

00:11:20.474 --> 00:11:24.498
But I just want you to get us started here with a quick agents.md file.

00:11:24.498 --> 00:11:27.110
And now I'm going to go ahead and shoot that off."

00:11:27.120 --> 00:11:29.114
Now, why do we need to create an agents.md file?

00:11:29.114 --> 00:11:34.537
Well, if you're coming over from Cloud Code, you know that we always want to start a project with a Claude.md file.

00:11:34.537 --> 00:11:40.430
And this is just agents.md, it's the same thing, but Codex expects a different terminology.

00:11:40.440 --> 00:11:43.830
And what this agents file does is it's basically like it's onboarding doc.

00:11:43.840 --> 00:11:54.883
Every time you open up a new chat, it's first of all going to read the agents.md file and it's going to get organized with what is my goal, what is this user doing, and how do I help them as effectively as possible.

00:11:54.883 --> 00:11:56.433
So, this document has been created.

00:11:56.433 --> 00:11:58.649
If I click on open, we're going to be able to read it right here.

00:11:58.649 --> 00:12:00.460
And it's just a very simple markdown file.

00:12:00.460 --> 00:12:02.013
This is the project right here.

00:12:02.013 --> 00:12:04.443
This is about Nate's, Nate Herc does this.

00:12:04.443 --> 00:12:05.950
This is the project goal.

00:12:05.960 --> 00:12:07.183
This is the product direction.

00:12:07.183 --> 00:12:11.790
So, we're just giving it really important information that it needs to know about our project.

00:12:11.800 --> 00:12:17.852
And you can see now if I pull the file explorer over, it has created this agents markdown folder, which is exactly what we wanted.

00:12:17.852 --> 00:12:19.150
Sorry, not folder, file.

00:12:19.160 --> 00:12:23.510
Okay, so now that that's out of the way, I'm going to go ahead and close back out of that, and we're going to get started.

00:12:23.520 --> 00:12:26.705
So, what I'm going to do is I'm going to click on this button and I'm going to turn on plan mode.

00:12:26.705 --> 00:12:31.071
Plan mode is what I like to start with when I am creating some sort of plan.

00:12:31.071 --> 00:12:38.328
That basically means that Codex won't actually execute anything, it's just going to brainstorm and help you guys get clear on what you want to build before you actually build it.

00:12:38.328 --> 00:12:40.230
So, I always start with plan mode.

00:12:40.240 --> 00:12:41.390
Now, I'm just going to start yapping.

00:12:41.400 --> 00:12:45.957
And by the way, if you guys are curious about the tool I use for voice-to-text, check it out in the description, it's called Glido.

00:12:45.957 --> 00:12:48.732
I'm now an official member of the Glido team, which is super exciting.

00:12:48.732 --> 00:12:56.530
I've fully switched over from Whisper to Glido because it's faster, it's more private, and it is a way more agentic tool, and we've got a really cool vision.

00:12:56.530 --> 00:12:57.913
So, check it out in the description.

00:12:57.913 --> 00:13:06.192
Okay, so now that you understand that context, the first hurdle for us to overcome is how do you actually connect to my YouTube in order to be able to pull in my data.

00:13:06.192 --> 00:13:11.270
I want you to be able to specifically at this point be able to pull in a bunch of comments so that you can analyze them.

00:13:11.280 --> 00:13:14.670
So, help me figure out how we do that, and then explain it to me step-by-step.

00:13:14.680 --> 00:13:24.710
And that's really the mindset shift with tools like Codex or Claude Code is if you don't know something's possible, instead of defaulting to oh, I need to go to YouTube or oh, I want to book in a consulting call with an expert, just ask

00:13:24.720 --> 00:13:26.266
Codex or Claude Code.

00:13:26.266 --> 00:13:28.514
Ask it to do research and explain things to you.

00:13:28.514 --> 00:13:31.350
And that's basically how I learned everything that I know.

00:13:31.360 --> 00:13:35.947
So while this is running, I wanted to explain something real quick, which is called plugins.

00:13:35.947 --> 00:13:39.544
Plugins, MCP servers, skills, connectors, whatever you want to call them.

00:13:39.544 --> 00:13:43.473
We kind of have this interface inside of Codex to do stuff like this.

00:13:43.473 --> 00:13:46.028
And what you'll notice is there's a bunch of different plugins here.

00:13:46.028 --> 00:13:50.072
We've got hugging face, we've got Vercel, we've got GitHub, we've got Game Studio.

00:13:50.072 --> 00:13:54.235
We've got a bunch down here for design, Remotion, Figma, Hyperframes, Canva.

00:13:54.235 --> 00:14:00.190
We've got stuff for lifestyle, productivity, and this lets us basically connect to a lot of the tools that we already know and love.

00:14:00.200 --> 00:14:05.433
Google Drive, Slack, SharePoint, Teams, whatever you may need, a lot of that stuff is available here.

00:14:05.433 --> 00:14:06.966
And if you can't find it, you can go ahead and search.

00:14:06.966 --> 00:14:08.618
So like Slack, we have it right there.

00:14:08.618 --> 00:14:13.190
But look, if I search YouTube, there is no default plugin right here.

00:14:13.200 --> 00:14:18.377
And that's why I had to ask Codex, okay, so there's no plugin, how do I actually access YouTube data?

00:14:18.377 --> 00:14:21.550
And so it comes back here and it asks us some questions.

00:14:21.560 --> 00:14:28.110
It says for the first comment analysis milestone, which connection path should we plan around, API key, OAuth, or both?

00:14:28.120 --> 00:14:33.190
Um I'm just going to go with his recommendation cuz let's say I don't know what I need to do, and I'm going to click on API key.

00:14:33.200 --> 00:14:34.870
What should the first comment pull focus on?

00:14:34.870 --> 00:14:36.670
I'm just going to say recent videos.

00:14:36.680 --> 00:14:40.470
And now if it has any other questions, it'll go ahead and ask us those first.

00:14:40.480 --> 00:14:49.710
Now one thing you'll notice is because it already was searching through my other folders and projects, it did find an API key in a different project, but I'm still going to show you guys how you would get this set up because it comes

00:14:49.720 --> 00:14:52.790
back here with a plan, which we can go ahead and read.

00:14:52.800 --> 00:14:59.270
So what it wants to use is it it found an API key, so not full OAuth, and then it needs to actually convert everything.

00:14:59.280 --> 00:15:09.750
So what I'm just going to say is instead of implementing, I'm going to say, "I'm glad that you found that API key, but let's set up a fresh one because in my Google Cloud, I want to have a separate API key for Codex and a

00:15:09.760 --> 00:15:11.069
separate one for Claude code.

00:15:11.069 --> 00:15:16.388
So let's just go ahead and assume that we're going to create a complete new one from scratch." And now I'm able to shoot off those changes.

00:15:16.388 --> 00:15:19.087
Codex is going to review the plan and then edit it.

00:15:19.087 --> 00:15:22.345
And then once we're aligned on the plan, we'll go ahead and start executing.

00:15:22.345 --> 00:15:26.230
So now it's come back and it has okay, we're going to do a brand new Google Cloud API key.

00:15:26.240 --> 00:15:32.070
If you wanted to read through all of this step-by-step, you could, but I'm just going to go ahead and say submit, implement the plan.

00:15:32.080 --> 00:15:33.835
So, there's some stuff that we're going to have to do here.

00:15:33.835 --> 00:15:43.619
We're going to have to go into Google Cloud Console, and we're going to have to create this new project, um enable this API, and then grab the API key, and then get it configured inside of Codex.

00:15:43.619 --> 00:15:50.630
So, if this part of the tutorial isn't very interesting to you, you don't want to watch me get it set up, maybe you want to do some stuff first with the native plugins, which is much easier.

00:15:50.640 --> 00:15:58.670
Typically, these plugins you just basically sign in, the same way where you would open up Slack and sign in, or the same way you would open up Gmail and sign in, and that's a lot lot easier.

00:15:58.680 --> 00:16:02.150
Okay, so I have to go to Google Cloud and get everything set up in a project.

00:16:02.160 --> 00:16:08.169
If I didn't know exactly how to do this, it would tell me step-by-step as you guys saw on the plan, but what it's going to do is it created another file for us.

00:16:08.169 --> 00:16:10.016
So, it created this one called for us.

00:16:10.016 --> 00:16:11.550
So, it created this one called .env.local.

00:16:11.560 --> 00:16:14.536
So, what I'm going to do is head over to my Google Cloud Console.

00:16:14.536 --> 00:16:18.550
I'm signed in with my YouTube account, and I'm going to go ahead and create a new project.

00:16:18.560 --> 00:16:21.799
So, I'm going to call this one um Codex demo.

00:16:21.799 --> 00:16:26.304
I'm just going to go ahead and create this project, and once that's spun up, it's pretty simple.

00:16:26.304 --> 00:16:31.376
We just have to create a connection to YouTube Data API, and then we're going to create an API key.

00:16:31.376 --> 00:16:32.542
So, I'm going to select this project.

00:16:32.542 --> 00:16:42.650
The first thing I'm going to do is search up here at the top for YouTube is search up here at the top for YouTube Data, and we're going to grab the YouTube Data API v3, and then I'm going to go ahead and click enable.

00:16:42.650 --> 00:16:51.196
And once that has been enabled, it should pull up a new screen that looks like this, and then I'm going to go down here to credentials, and I'm going to just create a new API key.

00:16:51.196 --> 00:16:52.295
So, create API key.

00:16:52.295 --> 00:16:56.331
This is just going to be called Codex YouTube demo.

00:16:56.331 --> 00:16:59.522
And then right here for the restrictions, I'm just going to once again type in YouTube.

00:16:59.522 --> 00:17:03.858
We're going to check YouTube Data API v3, and then we're going to go ahead and create that API key.

00:17:03.858 --> 00:17:05.946
And it gives me this value that I'm going to go ahead and copy.

00:17:05.946 --> 00:17:18.058
So, I'm going to copy that, and then I'm going to pull in that file that it created, the .env.local, and I'm just going to open this file real quick with um my notepad, and here is where I'm going to put my YouTube API key.

00:17:18.058 --> 00:17:19.829
I'm just going to paste that in right there.

00:17:19.839 --> 00:17:25.790
Hit save and then I can close out of that because what we need to get next is we need to get our YouTube channel ID.

00:17:25.800 --> 00:17:27.476
I'm not actually going to do the uploads playlist.

00:17:27.476 --> 00:17:31.085
I don't think it needs that, but I am going to go find the YouTube channel ID.

00:17:31.085 --> 00:17:32.460
Oh, but this is actually cool.

00:17:32.460 --> 00:17:38.548
My YouTube channel ID is already in there and the playlist ID is already in there because it was able to just pull it from a different project.

00:17:38.548 --> 00:17:44.497
So obviously if you didn't have that already set up, it wouldn't do that, but it would explain to you exactly how to do that if you needed to.

00:17:44.497 --> 00:17:48.470
So now that we have that API key put in, let's just see if it works.

00:17:48.480 --> 00:17:52.750
Okay, so I've given you the API key in that local.env.

00:17:52.760 --> 00:17:55.198
Can you go ahead and test it to see if that connection works?

00:17:55.198 --> 00:17:57.317
And if not, then we'll have to make some changes.

00:17:57.317 --> 00:18:05.678
Okay, now while this is running, what you guys might notice when you hop into Codex is that it might pause a lot to actually ask you questions and like approve things.

00:18:05.678 --> 00:18:08.355
And that's what happens when you're on default permissions.

00:18:08.355 --> 00:18:11.310
So if you want to be able to change that, you're going to go up here to your settings.

00:18:11.320 --> 00:18:14.857
And then in general, you can see right here, auto review or full access.

00:18:14.857 --> 00:18:16.849
And this by default will be turned off.

00:18:16.849 --> 00:18:25.539
So if I turn this on, then when we're back in our chat, we now have the ability, see right here, this is exact example, allow network access and I want to say yeah, allow it.

00:18:25.539 --> 00:18:30.772
Or if I switch this to full access, now it's just going to do everything without asking for permission.

00:18:30.772 --> 00:18:36.828
So obviously it comes up as orange here because there's sometimes where you might not want full autonomous access.

00:18:36.828 --> 00:18:43.049
And I think it's best practice when you're first getting started and you're first building some automations to maybe just leave it on default.

00:18:43.049 --> 00:18:50.791
But once you start getting a hang of your skills and you start getting a hang of the flow, then moving to full access is going to save you a lot of time so that you can actually not have to baby sit it.

00:18:50.791 --> 00:18:58.333
But I had to call that out because, you know, we've seen horror stories of agents deleting databases or sending out mass emails and stuff like that.

00:18:58.333 --> 00:18:59.832
So you just want to be safe with it.

00:18:59.832 --> 00:19:02.395
I personally have never had any sort of problem like that.

00:19:02.395 --> 00:19:08.437
That usually comes from context rot or very vague instructions or or just not being super smart with your planning.

00:19:08.437 --> 00:19:11.013
So you can see what's happening here is it's trying it out, right?

00:19:11.013 --> 00:19:12.303
And it's running into some issues.

00:19:12.303 --> 00:19:17.096
But what's great about this agentic loop is that it's going to keep trying things until it actually goes through.

00:19:17.096 --> 00:19:17.599
There we go.

00:19:17.599 --> 00:19:23.512
You can see nice the key works for channel data, and I'm going to do one more test to make sure that I can pull comments from recent videos.

00:19:23.512 --> 00:19:34.950
So a big mindset shift when you're using any of these tools is to just let it run, let it try things, help steer in the right direction, ask questions, be curious, and just take a look at what it's doing because it tells

00:19:34.960 --> 00:19:36.870
you every single thing that it's trying.

00:19:36.880 --> 00:19:38.830
But now we can see I've tested the key.

00:19:38.840 --> 00:19:42.776
I can get comments from your recent videos, and it's completely working as expected.

00:19:42.776 --> 00:19:49.150
However, PowerShell's built-in web request had a local TLS issue, but Node and Python both connected cleanly.

00:19:49.160 --> 00:19:50.618
For the project, that's fine.

00:19:50.618 --> 00:19:54.110
We'll use Node and server-side code for the dashboard anyway.

00:19:54.120 --> 00:19:56.390
Now, here's something to think about.

00:19:56.400 --> 00:19:58.430
I don't really know what that means.

00:19:58.440 --> 00:20:07.430
But what I want to make sure is that that doesn't happen again, or I want to make sure that this project doesn't lose this knowledge because it it it it ran into a failure.

00:20:07.430 --> 00:20:14.136
And whenever you run into a failure, you want to treat that as golden knowledge because it means you have more data to make sure that it doesn't do it again.

00:20:14.136 --> 00:20:17.934
So all I'm going to say is, "Okay, thanks for testing that.

00:20:17.934 --> 00:20:23.529
I want to make sure that you don't ever run into that issue again, and I want to make sure that that knowledge is saved in this project.

00:20:23.529 --> 00:20:31.590
So can you just throw together a quick file somewhere in your memory, somewhere in this project to make sure that you already know that so that next time it doesn't happen again."

00:20:31.600 --> 00:20:41.390
And doing stuff like this, having this sort of habit, is how you actually make these systems get smarter over time rather than just feeling like you're always repeating yourself or that you're always running into the same issues.

00:20:41.400 --> 00:20:43.105
Another mindset shift for you right there.

00:20:43.105 --> 00:20:45.643
So here it decided to add this into the agents.md.

00:20:45.643 --> 00:20:55.904
Right now, I have no objections to that, but as your projects grow, you don't want to put everything in the agents.md because if that agents.md file gets really huge, it's going to use more of your tokens.

00:20:55.904 --> 00:20:56.150
Okay.

00:20:56.160 --> 00:21:00.790
So before we keep going, I did want to point out one other thing down here, which is this little bar.

00:21:00.800 --> 00:21:04.500
This shows you how much of your context window is currently filled up.

00:21:04.500 --> 00:21:08.058
Now, if If were using Claude Code and you're using Opus, you have a million.

00:21:08.058 --> 00:21:11.491
So, it's, you know, about four times as much as this in Codex.

00:21:11.491 --> 00:21:16.838
However, Codex automatically compacts just like Opus does and just like Cloud Code does.

00:21:16.838 --> 00:21:17.595
So, it's really nice.

00:21:17.595 --> 00:21:23.085
You don't have to worry about it too much, but you still want to be thinking about some general context management tips.

00:21:23.085 --> 00:21:27.386
I've got some videos on my channel about that that are agnostic to whatever tool you want to use.

00:21:27.386 --> 00:21:32.735
I'm not going to dive super deep into context window management in this video, but just wanted to point that out as well.

00:21:32.735 --> 00:21:33.929
Okay, so what's next?

00:21:33.929 --> 00:21:40.429
What I want to do is I want to show you guys that it's able to pull comments and that we're able to create an actual deliverable from it.

00:21:40.429 --> 00:21:42.803
So, let me just once again go back to plan mode.

00:21:42.803 --> 00:21:49.200
All right, so what I want you to do is pull in, you know, about 100 or 200 of my most recent comments and I want you to analyze them.

00:21:49.200 --> 00:21:54.247
I want you to find patterns and I want you to display all of this in a Excel sheet.

00:21:54.247 --> 00:22:05.670
And I want it to be a visual representation of this data that has interesting insights for me as a content creator so that I can keep making content that people want and I can keep answering questions that are coming up frequently.

00:22:05.680 --> 00:22:10.633
So, go ahead and do a plan for this and structure what the Excel sheet deliverable will look like.

00:22:10.633 --> 00:22:11.342
So, I shot that off.

00:22:11.342 --> 00:22:15.006
I'm going to let you guys know when we have a plan or if it asks me any questions.

00:22:15.006 --> 00:22:17.607
A couple questions here to make sure that it understands what we want.

00:22:17.607 --> 00:22:19.328
It's asking about the recent comments.

00:22:19.328 --> 00:22:21.078
I'm just going to say across recent videos.

00:22:21.078 --> 00:22:22.310
How many should we pull?

00:22:22.320 --> 00:22:23.078
Let's say 200.

00:22:23.078 --> 00:22:25.476
How should we classify and summarize the comments?

00:22:25.476 --> 00:22:27.030
I'm just going with all of its recommendations.

00:22:27.040 --> 00:22:27.796
Those were pretty good.

00:22:27.796 --> 00:22:32.962
And so, if I switch over to a different tab, let's say we're back on our slides, you can see my pet down here has a little one next to it.

00:22:32.962 --> 00:22:39.388
Well, the one's gone because I switched back into Codex, but that little one, if I would have hovered over it, it would show me what it's working on.

00:22:39.388 --> 00:22:43.390
So, now I can keep tabs on my workflow while I'm doing other things.

00:22:43.400 --> 00:22:45.622
And Codex makes multitasking really easy.

00:22:45.622 --> 00:22:49.102
Because of the fact that I could open up a new chat in this project and work on something else.

00:22:49.102 --> 00:22:51.660
Then I could open up a new chat in this project and work on something else.

00:22:51.660 --> 00:22:57.597
And it will color code and give you like a little blue dot or yellow dot on the side here if one of these sessions needs attention.

00:22:57.597 --> 00:22:58.822
So, anyways, here is the plan.

00:22:58.822 --> 00:23:01.593
What I would recommend is at this point you read through it.

00:23:01.593 --> 00:23:06.941
You make any changes to specific sections if you want, but for the sake of the video I'm just going to go ahead and submit that plan.

00:23:06.941 --> 00:23:11.125
But while this is running real quick, I wanted to show you a few other things that we can look at.

00:23:11.125 --> 00:23:15.270
So, if you do {slash} inside of this chat, there's things that you can actually look at.

00:23:15.280 --> 00:23:22.430
So, we've got auto review, code review, feedback, MCP, memories, model, personality, pet, plan mode, reasoning.

00:23:22.440 --> 00:23:29.110
There's all of these different skills that we can use like browser use, GitHub, Higgs Field, PDF, skill creator.

00:23:29.120 --> 00:23:31.799
The {slash} is going to open up a lot of different things for you.

00:23:31.799 --> 00:23:34.174
And of course, what you can do is you can also tag things.

00:23:34.174 --> 00:23:40.433
So, if I do an {at}, this is going to let us tag either specific plugins or specific files that live somewhere in this project.

00:23:40.433 --> 00:23:49.603
So, if you're ever trying to reference a specific plugin or something specific, then it's probably best to try using the {slash} or using the {at} to actually tag that in your chat.

00:23:49.603 --> 00:23:57.888
Now, the reason I wanted to bring up the {slash} is because you'll see one right here called {slash} personality, which if I shot that off, it would actually let it, you know, do something.

00:23:57.888 --> 00:24:01.470
So, what I can show you is I don't want to interrupt this main don't want to interrupt this main session.

00:24:01.480 --> 00:24:04.164
I could come up here and I could click on open side chat.

00:24:04.164 --> 00:24:09.478
And that opens up a different little conversation here that still lives in this chat, still lives in this project.

00:24:09.478 --> 00:24:13.830
So, if you're coming over from Cloud Code, this is pretty similar to {slash} by the way.

00:24:13.840 --> 00:24:16.209
So, what I can do over here is I can do {slash} personality.

00:24:16.209 --> 00:24:19.755
And now I can set if I want the personality to be friendly or pragmatic.

00:24:19.755 --> 00:24:25.975
And I guess I didn't actually need to switch over here because it just opens like this, but right now we're on friendly.

00:24:25.975 --> 00:24:27.633
I'm actually going to switch this to pragmatic.

00:24:27.633 --> 00:24:31.174
You can see this says concise, task-focused, and direct.

00:24:31.174 --> 00:24:34.774
And honestly, most of the time I'd probably prefer pragmatic.

00:24:34.774 --> 00:24:37.390
So, I'm usually working on pragmatic by default.

00:24:37.400 --> 00:24:40.414
But now that we've opened the side chat, let me just show you guys something else.

00:24:40.414 --> 00:24:46.008
Um, give me a quick update about my YouTube channel and, you know, the type of videos I've been making recently.

00:24:46.008 --> 00:24:55.990
Just to show you guys that, okay, if you have your agent working right here on something and you don't want to interrupt it, but you have some sort of side question that is relevant to this project or maybe relevant to something that you guys were working on

00:24:56.000 --> 00:24:57.852
earlier, you can ask over here.

00:24:57.852 --> 00:25:02.150
Because right here you can see it has the context of what we talked about already.

00:25:02.160 --> 00:25:05.964
And I could go back and forth a little bit, and then I could just close out of the side chat whenever I'm done.

00:25:05.964 --> 00:25:07.464
Okay, so that has been created.

00:25:07.464 --> 00:25:15.992
It pulled in 200 recent comments across three recent videos, and I could open it up right here in this dashboard sort of view right in CodaX, which is awesome.

00:25:15.992 --> 00:25:20.570
And I could actually make some follow-ups and chat with it right here, but it's a little bit finicky to be honest.

00:25:20.570 --> 00:25:25.124
So what I'm going to do is close out of that, and I'm just going to open up our folder again, which was right here.

00:25:25.124 --> 00:25:26.936
And you can see there's a lot more that lives in here now.

00:25:26.936 --> 00:25:34.454
Not only do we have our agents and our .env, but we have scripts, and we have outputs, and we have different nodes and modules, which has a lot of stuff.

00:25:34.454 --> 00:25:42.950
So if at any point this starts to feel a little bit unorganized and you don't understand the structure, all you have to do is come into CodaX and say, have to do is come into CodaX and say, "Hey, help me like reorganize this, or maybe

00:25:42.960 --> 00:25:45.510
give me a document that helps me navigate it a little bit better."

00:25:45.520 --> 00:25:51.334
Because of course this lives in a local directory, and CodaX can touch it, read it, organize it, edit it.

00:25:51.334 --> 00:25:56.367
So if I go to the outputs and I go to the YouTube comment insights, we see all of these different stuff that it did.

00:25:56.367 --> 00:26:00.855
So it took some screenshots as you can see, but then it also created the actual Excel sheet.

00:26:00.855 --> 00:26:03.826
So I'll open this up right here, and we can take a look.

00:26:03.826 --> 00:26:05.485
All right, so we and we can take a look.

00:26:05.485 --> 00:26:12.595
All right, so we have YouTube comment insights, 200 newest public comments across recent Nate Hurt videos, generated May 5th, 11:00 a.m.

00:26:12.595 --> 00:26:17.670
So we can see the question rate, the content requested rate, top mention tools CodaCode.

00:26:17.670 --> 00:26:18.066
Uh-oh.

00:26:18.066 --> 00:26:22.203
We've got high priority stuff, top patterns, skip video, stuff like that.

00:26:22.203 --> 00:26:24.611
It even started to create some visuals here, which is awesome.

00:26:24.611 --> 00:26:27.124
So this is content category mix over here.

00:26:27.124 --> 00:26:31.596
It shows the mix between general feedback or questions with um actual values.

00:26:31.596 --> 00:26:34.688
So 55 were general feedback, 53 were questions.

00:26:34.688 --> 00:26:39.415
Some of these were access, positive feedback, tool comparison, pricing stuff.

00:26:39.415 --> 00:26:41.055
Over here we have different tools.

00:26:41.055 --> 00:26:43.278
So CodaCode, Higgs Field, CodaX API.

00:26:43.278 --> 00:26:45.501
And then over here we have some other stats as you can see.

00:26:45.501 --> 00:26:47.254
Now we have a bunch of different tabs as well.

00:26:47.254 --> 00:26:48.635
So we have creator insights.

00:26:48.635 --> 00:26:51.496
So ranked comment patterns and recommended creator actions.

00:26:51.496 --> 00:26:58.867
So I'm able to see the percentage breakdown of different types of comments and it also gives me recommended actions with priority scores.

00:26:58.867 --> 00:27:00.138
So, that's pretty cool.

00:27:00.138 --> 00:27:01.640
I also can see frequent questions.

00:27:01.640 --> 00:27:03.913
So, things that are coming up as patterns.

00:27:03.913 --> 00:27:08.190
It's giving me content ideas now as well because it's analyzing those comments.

00:27:08.200 --> 00:27:12.444
It's giving me nice reply opportunities and then it's giving me just the raw comments.

00:27:12.444 --> 00:27:16.696
So, this should be 200 rows of our actual comments that it pulled.

00:27:16.696 --> 00:27:21.273
204 as you can see because the first three or four were just nonsense.

00:27:21.273 --> 00:27:22.487
So, that is awesome.

00:27:22.487 --> 00:27:25.628
And what you guys might be thinking is okay, is this actually useful?

00:27:25.628 --> 00:27:29.916
Maybe not because we just said, "Hey, give me analytics." Right?

00:27:29.916 --> 00:27:32.567
If you guys remember my actual prompt, it was very, very vague.

00:27:32.567 --> 00:27:44.230
So, if we would have spent more time in the planning phase or if we had certain analytics that we're tracking very heavy or certain comments that we're really looking out for, we would give that to Codex as knowledge and it would make this actual, um, you

00:27:44.240 --> 00:27:48.359
know, insights, it would make it much know, insights, it would make it much more customized and tailored.

00:27:48.359 --> 00:27:50.696
So, now let's talk about how do we turn this into a skill?

00:27:50.696 --> 00:27:52.200
So, first of all, what is a skill?

00:27:52.200 --> 00:27:53.110
So, first of all, what is a skill?

00:27:53.120 --> 00:27:55.405
Well, a skill is basically a repeatable recipe.

00:27:55.405 --> 00:27:58.949
So, if I come back in here and I click on plugins, we saw all these plugins, right?

00:27:58.949 --> 00:28:06.698
These are actual like connections and potentially MCP servers and kind of like some other, you know, it's a package that people are able to install and use.

00:28:06.698 --> 00:28:09.969
But, skills are more of just like instructions.

00:28:09.969 --> 00:28:11.850
So, there's an image gen skill.

00:28:11.850 --> 00:28:13.950
There is a OpenAI doc skill.

00:28:13.960 --> 00:28:17.295
There's a GitHub review follow-up skill, a document skill.

00:28:17.295 --> 00:28:23.271
And these are all basically just markdown file instructions that tell Codex how to do something better.

00:28:23.271 --> 00:28:27.497
So, how to design a website better or how to, you know, give you a morning brief.

00:28:27.497 --> 00:28:32.882
And so, what we want to do is we want to turn this, exactly what we just did, into a skill.

00:28:32.882 --> 00:28:41.544
So, that anytime I say, "Hey, go give me more YouTube insights." It knows what endpoints to hit, it knows how to pull them in, it knows how to make the Excel sheet, it knows how to do all this.

00:28:41.544 --> 00:28:52.454
And the best way that I like to make skills is I just basically brainstorm with with Codex to do something and then after I get an output I like, I say, "Okay, turn that into a skill." So, this was the ultimate deliverable, right?

00:28:52.454 --> 00:28:55.641
So, what you just did is you helped me pull in data from my YouTube.

00:28:55.641 --> 00:29:00.169
You got comments, you ran an analysis, and you created me an awesome Excel sheet deliverable.

00:29:00.169 --> 00:29:09.889
I want you to turn that into a skill so that every time I say to grab my YouTube comments and give me some insights, you do this exact flow, and that makes it more consistent.

00:29:09.889 --> 00:29:14.021
So, I'm going to shoot off that message, and while it's doing that, just think about it like this.

00:29:14.021 --> 00:29:23.630
If someone asked you to create or not create If someone asked you to make them chocolate chip pancakes, you're going to open up your cookbook or pull up your phone, and you're going to read a recipe, and you're going to follow it to

00:29:23.640 --> 00:29:23.788
a T.

00:29:23.788 --> 00:29:28.550
You're going to follow the measurements, the ingredients, and the temperature, and the timing, and temperature, and the timing, and whatever.

00:29:28.560 --> 00:29:35.405
And then next time someone asked you to make chocolate chip cookies or pancakes, you would just use that same recipe, and they'd come out pretty much the exact same way.

00:29:35.405 --> 00:29:42.623
Because if you didn't use the recipe, you would just be guessing, and you'd be you'd be sort of measuring, and you'd be feeling, and it just wouldn't be consistent.

00:29:42.623 --> 00:29:47.957
And the cool thing is, now that you have this recipe to use, every time you use the recipe, you might be able to make it better.

00:29:47.957 --> 00:29:53.512
If one time you experiment, and you add some more chocolate chips, you either like that or you don't, you update the recipe.

00:29:53.512 --> 00:29:56.820
Maybe one time you realize that you're actually leaving too much raw batter inside.

00:29:56.820 --> 00:29:57.744
So, what do you do?

00:29:57.744 --> 00:30:09.230
You update the recipe to say, "Okay, you leave it on 4 minutes on each side rather than 3 and 1/2 minutes on each side." You're able to, each time you use the recipe, have it be updated, and that is the power of building these skills.

00:30:09.240 --> 00:30:13.914
And you can see that it's able to work backwards and reverse engineer a skill from our output.

00:30:13.914 --> 00:30:25.312
And what it does is it puts them in a file called the dot Codex, which kind of lives globally, which means whenever you're working inside of any Codex project, you're going to be able to use that skill.

00:30:25.312 --> 00:30:28.897
And all you have to do to call it is you'll do a slash command, and then you will just name the skill.

00:30:28.897 --> 00:30:31.372
So, if you guys remember, down here we have all these other ones.

00:30:31.372 --> 00:30:37.551
I could do slash browser use slash image gen slash PDF, and that's how I could be able to call them.

00:30:37.551 --> 00:30:40.867
The other way you can call them is you can actually just have them be natural language.

00:30:40.867 --> 00:30:48.870
So, just to show you guys another example, if I go to my Herc 2 project, and I know this is more optimized for cloud code, but we have a dot cloud folder, which is local.

00:30:48.880 --> 00:30:55.677
So, if I click into here, I can see I have a folder called skills, and all of these are my different skills that currently live inside of my AI OS.

00:30:55.677 --> 00:31:00.711
So, let's say here I have a morning coffee skill, and I'm going to open this up real quick in my notepad just to show you guys.

00:31:00.711 --> 00:31:02.192
All this is is a markdown file.

00:31:02.192 --> 00:31:04.680
We have the name of the skill, we have the description.

00:31:04.680 --> 00:31:16.521
So, here it says, "Use when someone asks for morning coffee to prep or plan their day." So, anytime in cloud code I say, "Hey, can you help me plan my day?" cloud code will grab this morning coffee skill, read it, and then execute it.

00:31:16.521 --> 00:31:24.441
And it says, "Okay, here's the context, here's the recurring meetings, here is the meeting prep, here are these different reference IDs, here's everything you need to know, and the order.

00:31:24.441 --> 00:31:26.719
So, step one, step two, step three.

00:31:26.719 --> 00:31:32.186
Here is what you do whenever Nate asks for a morning coffee skill." So, that is all that is happening right here.

00:31:32.186 --> 00:31:37.117
You can see it created this skill called YouTube comment insights, and it did this at the global level.

00:31:37.117 --> 00:31:42.549
What I mean by that is this lives locally in our directory directory that sits across any Codex project ever.

00:31:42.549 --> 00:31:53.199
So, if I open up this other project, I could use the skill, or we could put it locally in our project, which would mean I could only use the skill in this specific YouTube analytics demo project.

00:31:53.199 --> 00:32:01.364
And all you have to do to change that differentiation is say, "Hey, instead of putting that global, put that locally in this project." Or, instead of having that locally in this project, make that global.

00:32:01.364 --> 00:32:06.030
So, now if I do a slash and I do YouTube comment insights, we have this right here.

00:32:06.040 --> 00:32:10.670
YouTube comment insights analyze comments into an Excel report.

00:32:10.680 --> 00:32:13.100
Which is the skill that we just built together, so that is awesome.

00:32:13.100 --> 00:32:20.199
All right, so before we move on to the next step of this, I wanted to talk about pets real quick just because I know you guys are dying to understand how you can get this.

00:32:20.199 --> 00:32:25.805
It's really simple, you go to your settings, and then you're going to go to your appearance and scroll all the way down, and you can see right here we have pets.

00:32:25.805 --> 00:32:27.755
And we can choose between different ones.

00:32:27.755 --> 00:32:34.103
So, right now I'm just using the Codex pet, but I could choose Dewey, or CD, or Beasod, or Stacky.

00:32:34.103 --> 00:32:38.069
So, I'm just going to go ahead and switch this to Fireball for fun, and you can see down here it changes.

00:32:38.069 --> 00:32:49.473
And yes, it's kind of a fun little UI thing, but remember if I'm not inside of Codex and I'm in this dashboard over here, we can still see the pet and it will tell us when it's working on things and when it's done with things.

00:32:49.473 --> 00:32:51.578
So, it is a little bit practical as well.

00:32:51.578 --> 00:32:52.150
All right.

00:32:52.160 --> 00:32:54.422
So, now we have a deliverable.

00:32:54.422 --> 00:32:58.738
We have an Excel sheet and we're going to use that as the back end that basically powers this next section.

00:32:58.738 --> 00:33:03.726
So, I'm going to open up a new project because we're kind of starting a new goal, a new a new deliverable.

00:33:03.726 --> 00:33:09.670
So, I want to open up a new chat and this will still be able to access everything that's in this folder.

00:33:09.680 --> 00:33:11.562
So, I'm going to go ahead and switch over to plan mode here.

00:33:11.562 --> 00:33:13.209
Okay, so here's the idea I have.

00:33:13.209 --> 00:33:19.189
You have access to a file inside of this project and what I'm going to do is actually reference the exact file.

00:33:19.189 --> 00:33:27.150
So, I'm going to look for the YouTube comment insights right here and I'm going to tag that right here and I'm going to tag that file.

00:33:27.160 --> 00:33:38.710
So, what I want you to do is create me a dashboard, spin this up on a local host, and I want it to have really nice UI elements and, you know, charts and graphics and things, so visualizing my data and I want to be able to see

00:33:38.720 --> 00:33:41.670
different insights about my YouTube different insights about my YouTube comments.

00:33:41.680 --> 00:33:48.068
What I want you to do here is I want you to use GPT image 2 and create some really nice concepts of how this dashboard should look.

00:33:48.068 --> 00:34:00.631
And also, if you want to use it for maybe like a nice logo in the top or any of the other UI elements, utilize GPT image 2 to make this thing just look really polished and really aesthetic and really fun at the same time.

00:34:00.631 --> 00:34:02.510
So, that is the idea I have.

00:34:02.520 --> 00:34:07.968
I want you to help plan this out, ask me any questions you have about this, and then we'll go ahead and execute.

00:34:07.968 --> 00:34:13.019
And so also, this default switch to extra high again, I'm just going to go ahead and switch that back to medium and then shoot that off.

00:34:13.019 --> 00:34:17.766
And you can see down here the pet has started to think and it's talking a little bit.

00:34:17.766 --> 00:34:21.608
But, the reason why you want to be careful about which models you're using, there's two reasons.

00:34:21.608 --> 00:34:27.590
The first one is because sometimes if you chuck extra high at a task that's really simple, like over engineers it.

00:34:27.600 --> 00:34:31.992
And the second piece is because each of these cost you different amounts of your tokens or your session.

00:34:31.992 --> 00:34:34.591
Obviously, low cost the least and extra high cost the most.

00:34:34.591 --> 00:34:41.859
If you go over here to your settings and you click on rate limits remaining, it shows you how much of your session you have left and when it expires.

00:34:41.859 --> 00:34:51.110
So, every 5 hours it resets and right now I have 97% remaining and then every week it resets and right now I have 99% remaining there.

00:34:51.120 --> 00:35:02.663
And so, it's really nice to be able to keep tabs on that right here, but that's why you want to be careful about, you know, your context window management and your planning and your prompting and your model usage down here.

00:35:02.663 --> 00:35:09.571
In general though, I have seen that my session is lasting way longer in Codex than it is in Claude Code.

00:35:09.571 --> 00:35:18.105
And a big part of that is because ChatGPT 5.5 is really, really efficient with tokens, with output tokens and input tokens.

00:35:18.105 --> 00:35:27.257
And if you guys go watch that video that I was talking about, you will see that exact experiment and it's really interesting to understand and look at, but I've generally found that it's really efficient with tokens.

00:35:27.257 --> 00:35:28.625
Now, we have some feedback here.

00:35:28.625 --> 00:35:34.390
It says, "Which visual direction should guide the GPT image two concepts and the final dashboard UI?"

00:35:34.400 --> 00:35:37.270
Creator Ops, Playful Studio or Executive Clean.

00:35:37.270 --> 00:35:39.001
I'm just going to go with the recommendation.

00:35:39.001 --> 00:35:42.112
For this first version, how should the dashboard get its YouTube comment data?

00:35:42.112 --> 00:35:46.340
I'm going to say to use the existing output, which was the um Excel file.

00:35:46.340 --> 00:35:49.356
And then what should the first screen prioritize most?

00:35:49.356 --> 00:35:51.431
Reply and ideas, analytics overview.

00:35:51.431 --> 00:35:54.257
I'm actually going to go with analytics overview for this one.

00:35:54.257 --> 00:36:00.691
And by the way, if you're in the app and you want to get rid of the pet really quick, you can just do {slash} pet and then that will just tuck it away.

00:36:00.691 --> 00:36:03.356
Okay, so it came up with a plan pretty quickly.

00:36:03.356 --> 00:36:05.962
You can see here that I can expand this and read about it.

00:36:05.962 --> 00:36:15.950
So, we've got like a summary, we've got key changes, we've got all this other stuff and this is where we would once again iterate with Codex before we say, "Yep, go ahead and build that for me." But I'm just going to go ahead and say, "Yep, go

00:36:15.960 --> 00:36:21.057
ahead and build that for me." You can see that it's using the image generation for GPT image two, which is really, really solid.

00:36:21.057 --> 00:36:24.270
And here is one of the kind of versions that it came up with.

00:36:24.280 --> 00:36:35.112
And I've just found if If using Codex to build games or websites or whatever it is, it just helps to give it the ability to test things out and generate some concepts first before it actually designs the rest of the site.

00:36:35.112 --> 00:36:37.571
You can see this is the little logo that it came up with, which is kind of cool.

00:36:37.571 --> 00:36:41.953
It's got like a YouTube play button with some noise and some comments coming in.

00:36:41.953 --> 00:36:51.190
And what it's going to do is it's going to store all of these assets locally somewhere in this project, so that later if we wanted to spin up different versions of the dashboard or a different landing page, it would have access to

00:36:51.200 --> 00:36:52.629
all of these assets already.

00:36:52.629 --> 00:36:53.978
And this is super cool, guys.

00:36:53.978 --> 00:37:01.184
It has like this built-in verification loop where it's going to check its work before it actually gives you an output, which is pretty cool.

00:37:01.184 --> 00:37:04.008
So, it said the automated browser verification passed.

00:37:04.008 --> 00:37:08.384
I'm now doing one visual pass to see what else there might be, what other issues.

00:37:08.384 --> 00:37:11.515
And it found three issues when it did an actual visual scan.

00:37:11.515 --> 00:37:12.772
So, now it's fixing those.

00:37:12.772 --> 00:37:14.341
It says, "Okay, those UI fixes are in.

00:37:14.341 --> 00:37:15.590
I'm going to stop the server.

00:37:15.600 --> 00:37:22.172
I'm going to rebuild, and then I'm going to verify it one more time with screenshots." And then it comes back and says, "Okay, the second visual pass looks a lot better.

00:37:22.172 --> 00:37:28.798
Here is your dashboard to actually go ahead and test out." So, let's just real quick open this up right here locally in the explorer.

00:37:28.798 --> 00:37:30.805
And now we have our creator ops signal desk.

00:37:30.805 --> 00:37:32.635
So, I'm going to expand this a little bit.

00:37:32.635 --> 00:37:34.895
We see the logo up here that it made.

00:37:34.895 --> 00:37:37.870
We see 83% creator replies, 78 total likes.

00:37:37.870 --> 00:37:43.178
We can switch between overview, replies, ideas, questions, and the explorer.

00:37:43.178 --> 00:37:44.317
And this is really cool.

00:37:44.317 --> 00:37:46.284
It looks like every single comment has a link.

00:37:46.284 --> 00:37:49.270
So, if I click on this, does it actually take us Okay, no.

00:37:49.280 --> 00:37:51.820
It didn't actually sync up every single comment to a link.

00:37:51.820 --> 00:37:55.430
But it's cool that it showed us that because that gave us a nice idea of like, "Okay, cool.

00:37:55.430 --> 00:38:04.538
I do actually want a link." Now, you can actually go ahead and work that into the back end code where every single comment should be associated with a link so that I could open it up and respond to it.

00:38:04.538 --> 00:38:14.934
Or we could take it one step further and say, "Okay, what would it look like for me to be able to respond right in this dashboard?" And you actually fire off that API call to YouTube to respond on the right comment.

00:38:14.934 --> 00:38:16.405
Because that is 100% doable.

00:38:16.405 --> 00:38:19.227
You guys have seen how I've automated my comment section a little bit.

00:38:19.227 --> 00:38:21.051
Anyways, let's Let's take a look at the overview.

00:38:21.051 --> 00:38:23.216
We can see we have this really nice chart.

00:38:23.216 --> 00:38:28.563
We have some AI insights over here where I can click on work reply queue and that goes over to the replies.

00:38:28.563 --> 00:38:31.952
I could also click on more content ideas and that takes us to the ideas.

00:38:31.952 --> 00:38:35.405
We can look at top tool mentions, reply priority, common themes.

00:38:35.405 --> 00:38:40.535
We can also see the videos that are driving comments and this would obviously grow as we pull in more and more data.

00:38:40.535 --> 00:38:47.750
So let's say at this point we like this output and we want to actually deploy this because what you'll notice is this says that it's running on a localhost.

00:38:47.760 --> 00:38:53.601
So if I copy this link right here and I go to Chrome and I paste that in, it's going to pull up exactly what we saw, right?

00:38:53.601 --> 00:38:55.670
And it works and it looks fine.

00:38:55.680 --> 00:39:03.144
But if I gave you this localhost and you copy and pasted that into your own browser, you would get nothing because this lives locally.

00:39:03.144 --> 00:39:06.041
It's being served on a server from our codebase.

00:39:06.041 --> 00:39:11.546
So what I'm going to show you how to do now is how do you actually get this from a localhost to the web?

00:39:11.546 --> 00:39:13.722
And what we're going to do is we're going to use two tools.

00:39:13.722 --> 00:39:17.723
We're going to use The first tool is called GitHub and the second tool is called Vercel.

00:39:17.723 --> 00:39:22.504
So the first thing you're going to do is you're going to type in GitHub and you're going to go over here and you're going to make a profile.

00:39:22.504 --> 00:39:25.634
It's completely free to set up, pretty much completely free to maintain.

00:39:25.634 --> 00:39:36.230
Once you've created your GitHub, all you have to do is connect this to Codex and we're going to have Codex help us set up something called a repository which is basically just a collection of your files and folders.

00:39:36.240 --> 00:39:48.390
Remember how if we open up my file explorer and we look inside of our YouTube comment or sorry, YouTube analytics demo folder, all of these files and folders are important and all we have to do is get these off of our local machine or not

00:39:48.400 --> 00:39:50.310
off, they'll still live here locally.

00:39:50.320 --> 00:39:57.594
But we're going to get them into some sort of repository where I can access them publicly or if you wanted to share these with other people, they could access them as well.

00:39:57.594 --> 00:40:06.532
So it's kind of like having a Word doc locally but instead you're putting it on into Microsoft's cloud on OneDrive or something like that so that other people can use it and you could use it from a different machine.

00:40:06.532 --> 00:40:07.771
So that's the first step.

00:40:07.771 --> 00:40:13.561
So let's go back into Codex and what do you do when you don't exactly know how something works?

00:40:13.561 --> 00:40:14.310
You just ask.

00:40:14.320 --> 00:40:15.039
know how something works?

00:40:15.039 --> 00:40:15.412
You just ask.

00:40:15.412 --> 00:40:16.493
So this looks really good.

00:40:16.493 --> 00:40:22.280
What I want to do is I want to sync this code base for this specific dashboard to a GitHub repository.

00:40:22.280 --> 00:40:24.105
So, help me get that signed up.

00:40:24.105 --> 00:40:31.057
Help me get connected here to GitHub, and then I want you to help me create that actual repo and push everything into that repo.

00:40:31.057 --> 00:40:32.924
And it even mentioned that right here.

00:40:32.924 --> 00:40:36.877
Note, this folder is not currently a Git repo, so there is no diff and status to summarize.

00:40:36.877 --> 00:40:41.372
So, I'm going to shoot off that message, and now it's going to help us actually sync up to GitHub.

00:40:41.372 --> 00:40:43.683
Now, there is a difference between Git and GitHub.

00:40:43.683 --> 00:40:49.374
Really the same thing of version control and all this stuff, but Git is local and GitHub is on the cloud.

00:40:49.374 --> 00:40:59.925
And what's important here is that it says, "I'll avoid committing secrets, especially the .env.local." And so, that's why I told you to always paste your keys in that .env, not into some random file called secrets.

00:40:59.925 --> 00:41:11.821
It has to be in the .env because that dot in front of the word env basically tells Codex or Cloud Code or whatever you're using, it tells it to exclude this from any, you know, public commits.

00:41:11.821 --> 00:41:14.102
So, this point I've already set up the GitHub CLI.

00:41:14.102 --> 00:41:17.772
If you haven't, it would just say, "Hey, do you want to set this up?" And you'll say, "Yes." Very simple.

00:41:17.772 --> 00:41:28.390
And then you'll authenticate, which means it'll basically just pop up a browser tab and you'll sign in with the account you used to create GitHub, and then boom, you will be connected to GitHub in Codex.

00:41:28.400 --> 00:41:31.345
And while this is syncing up, let me show you guys the next tool we're going to use.

00:41:31.345 --> 00:41:33.221
This one is called Vercel.

00:41:33.221 --> 00:41:35.310
Now, Vercel has a pretty generous free tier.

00:41:35.320 --> 00:41:36.713
You can see I've got a few products on here.

00:41:36.713 --> 00:41:41.049
You're going to be able to get working on Vercel for free just to get started.

00:41:41.049 --> 00:41:55.078
And what Vercel does is it basically takes that code, it takes, you know, this exact website, which is on the back end, all this is it's code, and it takes this and it serves it on a actual URL, on an actual domain that anyone can access.

00:41:55.078 --> 00:41:59.880
And what's really cool about this is Vercel and GitHub have a really nice partnership.

00:41:59.880 --> 00:42:01.534
They actually like talk to each other.

00:42:01.534 --> 00:42:06.510
So, anytime I make a change to our GitHub repo, Vercel automatically picks that up and deploys it.

00:42:06.510 --> 00:42:12.434
So, I know there's three tools here, Codex, GitHub, and Vercel, but that doesn't mean we have to manage three places.

00:42:12.434 --> 00:42:14.374
All we have to do is manage Codex.

00:42:14.374 --> 00:42:17.168
So it said that it's created a private repo for us.

00:42:17.168 --> 00:42:19.053
If I open this up, I don't want to open this up here.

00:42:19.053 --> 00:42:23.573
And the reason why it doesn't show up here is because this is a private repo and over here I'm not signed in to GitHub.

00:42:23.573 --> 00:42:29.534
So if I open this up in a browser where I am signed in to GitHub, we can see YouTube Analytics Demo.

00:42:29.534 --> 00:42:36.646
This is a private repo and what's in here is all of the different folders and files that we've actually created to spin up this dashboard.

00:42:36.646 --> 00:42:44.537
And now what's really cool is if I go into Vercel and I go ahead and click on add new project, I can connect this to GitHub and it already is connected.

00:42:44.537 --> 00:42:48.074
So you would then just sign in and you would connect your Vercel to GitHub.

00:42:48.074 --> 00:42:50.432
And now you can import any of your repos.

00:42:50.432 --> 00:42:53.710
So right here you can see YouTube Analytics Demo 1 minute ago.

00:42:53.720 --> 00:42:55.111
I'm going to click on import.

00:42:55.111 --> 00:42:56.370
And that's literally that simple.

00:42:56.370 --> 00:43:03.924
I'm going to click on deploy and then in maybe 30 seconds we will have our YouTube Analytics Dashboard, but we'll have it up on a live URL.

00:43:03.924 --> 00:43:04.416
Awesome.

00:43:04.416 --> 00:43:09.486
So it says congratulations, you have deployed a new project and I'm going to go ahead and continue to dashboard.

00:43:09.486 --> 00:43:14.790
And this gives us a youtube-analytics-demo.vercel.app a youtube-analytics-demo.vercel.app domain.

00:43:14.800 --> 00:43:18.030
And if you wanted to switch this off to your own domain, you certainly could.

00:43:18.040 --> 00:43:21.100
You would just basically have to move the DNS records over here.

00:43:21.100 --> 00:43:25.519
But I'm going to click on this so you guys can see that this is the exact same thing we were just looking at.

00:43:25.519 --> 00:43:29.212
Our replies, our ideas, our questions, our explorer, everything here is the same.

00:43:29.212 --> 00:43:31.850
Except for now I could take this URL and I could open it up on my phone.

00:43:31.850 --> 00:43:33.279
Or I could open it up on my laptop.

00:43:33.279 --> 00:43:34.522
Or you guys could open it up.

00:43:34.522 --> 00:43:38.347
And like I said, what's cool about that is we basically are able to then test in Codex.

00:43:38.347 --> 00:43:39.775
We can iterate right here.

00:43:39.775 --> 00:43:40.957
We can make changes.

00:43:40.957 --> 00:43:43.727
But just because we make changes doesn't mean that it's actually going to go live.

00:43:43.727 --> 00:43:49.590
So if I said, "Hey, I want you to change the entire background instead of blue to be red." And it would say, "Okay, cool.

00:43:49.600 --> 00:43:50.488
Here's the red background.

00:43:50.488 --> 00:43:57.230
Here's the localhost to test it out on." And if we like it, we say, "Okay, push those changes to our repo."

00:43:57.240 --> 00:44:01.475
And then as soon as we push those changes, Vercel would automatically deploy those onto the real URL.

00:44:01.475 --> 00:44:02.633
But if we said, "You know what?

00:44:02.633 --> 00:44:03.300
I don't like that.

00:44:03.300 --> 00:44:07.019
Just keep it as is." then our main production site never got touched.

00:44:07.019 --> 00:44:11.175
And that's how we keep a clean separation to test and to have something in production.

00:44:11.175 --> 00:44:12.415
Okay, awesome.

00:44:12.415 --> 00:44:14.092
So, what do we have now?

00:44:14.092 --> 00:44:21.128
We have a working project, and I'm opening up this folder just to show you how much we've actually done in the past, I don't know, 30 to 40 minutes together.

00:44:21.128 --> 00:44:23.474
And we've set up a bunch of different stuff.

00:44:23.474 --> 00:44:26.444
Now, what do I want to talk about next is automations.

00:44:26.444 --> 00:44:29.110
So, already over here you can see this tab called automations.

00:44:29.120 --> 00:44:31.314
Automate work by setting up scheduled chats.

00:44:31.314 --> 00:44:34.352
You can set up things like a status report, release prep.

00:44:34.352 --> 00:44:37.612
There's bunch of different things here that give you sort of some inspiration.

00:44:37.612 --> 00:44:45.950
But, what's really cool is you can turn all of your skills or any of your repeatable workflows into an automation that Codex will run without needing your oversight.

00:44:45.960 --> 00:44:51.245
So, I'm going to open up a new chat in our YouTube Analytics Demo project, and I'm going to go ahead and start chatting to Codex here.

00:44:51.245 --> 00:44:53.793
Okay, so we've just done a lot of stuff together.

00:44:53.793 --> 00:45:01.590
We built a skill that grabs YouTube comments from my YouTube, and it puts them into an Excel sheet after it does some analysis.

00:45:01.600 --> 00:45:03.098
And that's coming out really nice.

00:45:03.098 --> 00:45:12.350
And then we built a dashboard served on then we built a dashboard served on Vercel that actually displays visually all of those analytics and statistics from that Excel sheet.

00:45:12.360 --> 00:45:16.869
Now, what I want to do is I want to set up an automation that just refreshes this every week.

00:45:16.869 --> 00:45:23.498
So, let's just say every Sunday at 5:00 p.m., I want you to run the YouTube comments analytics skill.

00:45:23.498 --> 00:45:34.210
And then what I want you to do with that is update that data on that Excel sheet, you know, add more rows, update the statistics, and that will automatically sync to the GitHub repo.

00:45:34.210 --> 00:45:44.865
So, after you make those changes, you'll have to also reflect those changes onto the actual code base where the dashboard lives, and then you'll push those changes to GitHub so that they automatically get reflected in Vercel.

00:45:44.865 --> 00:45:59.222
So, a lot of moving pieces here, but basically high-level, you need to get more comments, redo the analysis, refresh the data into Excel, and that way I'm always getting a weekly report of what's going on with my YouTube comment replies.

00:45:59.222 --> 00:46:09.670
Okay, so honestly felt like a little bit of a messy prompt, but Codex should be able to do a good job of asking us any questions it has and making sure that it's able to actually set up this automation for us the way we want it.

00:46:09.680 --> 00:46:22.030
Now, something I want you guys to think about here is the way that I approach building AI automations and skills and stuff like this is remember when we talked about skills and I said every time you use it, it's going to get better cuz you can get feedback?

00:46:22.040 --> 00:46:24.391
You should honestly think of these automations in a similar way.

00:46:24.391 --> 00:46:27.035
You should think about it like you're teaching a kid to ride a bike.

00:46:27.035 --> 00:46:35.448
You're not going to just chuck a kid on a bike and say, "Okay, go have fun." You're going to start off by holding the handles and walking alongside the kid and saying, "Okay, you're leaning too much to the right.

00:46:35.448 --> 00:46:43.270
You need to lean more to the left and you need to center your weight and you need to make sure you're pedaling and you need to do all this." And slowly over time you'll start getting more trust and you'll take your hand off the

00:46:43.280 --> 00:46:45.863
handlebars and you'll start to walk a little bit farther behind.

00:46:45.863 --> 00:46:48.662
And eventually maybe you'll take off the training wheels and stuff like that.

00:46:48.662 --> 00:46:53.228
The point I'm making here is don't expect your automations or skills to be perfect on the first shot.

00:46:53.228 --> 00:46:54.375
That's just unrealistic.

00:46:54.375 --> 00:46:59.262
You should be expecting them to get better the more you use them because every time you use them you get more data.

00:46:59.262 --> 00:47:00.939
But look how quickly it set that up.

00:47:00.939 --> 00:47:02.510
It set up a weekly automation.

00:47:02.520 --> 00:47:09.493
It'll run every Sunday at 5:00 p.m. and it will just basically run inside of this project and it will run the YouTube comment insights workflow.

00:47:09.493 --> 00:47:11.324
It will regenerate the Excel workbook.

00:47:11.324 --> 00:47:13.575
It will preserve and merge comment rows.

00:47:13.575 --> 00:47:14.921
It will refresh the workbook.

00:47:14.921 --> 00:47:24.150
It will verify the dashboard and it will commit only those changes to our repo and it will push it to the right branch so that Vercel actually deploys all of that.

00:47:24.160 --> 00:47:25.934
And what you want to do is you come into the automations.

00:47:25.934 --> 00:47:28.929
You can see that we have this one which is Sunday at 5:00 p.m.

00:47:28.929 --> 00:47:32.685
We can click into it to see the actual prompt that it will submit to Codex.

00:47:32.685 --> 00:47:35.409
We could add some stuff here if we wanted, but we don't want to.

00:47:35.409 --> 00:47:39.014
This will get injected into a new Codex chat inside of our project.

00:47:39.014 --> 00:47:44.590
So, just as a test, if I click on run now, you can see that this starts a new chat right here.

00:47:44.600 --> 00:47:51.611
This injected that exact prompt that we looked at with the automation, the ID, the memory, the last run, and the actual prompt.

00:47:51.611 --> 00:47:57.048
And then it starts up this little progress sheet which is kind of like a to-do list and it's going to go down in this order.

00:47:57.048 --> 00:47:59.939
And we have the full Codex Agentic loop going on here.

00:47:59.939 --> 00:48:06.571
So, if you're used to Cloud Code, this is basically the same thing as running a local scheduled routine in Cloud Code or in Cloud Co-work.

00:48:06.571 --> 00:48:16.750
Now, the one thing you're going to have to think about here is because this is kind of a local cron, if you close out of the Codex app or if you turn off your PC or your laptop, this will stop running.

00:48:16.760 --> 00:48:23.957
In order for this to be truly 24/7 all the time, you would have to get this sort of Codex routine on the cloud somehow.

00:48:23.957 --> 00:48:26.830
And that's what Cloud Code just added with their cloud routines.

00:48:26.830 --> 00:48:32.812
Okay, so while this automation is running, and we know we're going to make sure that it's working as expected, and if not, we'll correct it a little bit.

00:48:32.812 --> 00:48:38.330
But, I realized that I wanted to show you guys a little bit more of that kind of computer use and and browser use functionality.

00:48:38.330 --> 00:48:45.550
So, if I go back into the actual um dashboard where it built it, which I believe was this one.

00:48:45.560 --> 00:48:46.350
Yep, it was this one.

00:48:46.350 --> 00:48:52.308
What I'm going to say here is before we kind of keep making changes, I want you to test the UI here.

00:48:52.308 --> 00:48:58.670
I want you to open up this um dashboard, and I want you to open it up in this app so I can watch you do it.

00:48:58.680 --> 00:49:02.051
I want you to use your browser use skill and click around.

00:49:02.051 --> 00:49:03.289
I want you to click on the buttons.

00:49:03.289 --> 00:49:04.842
I want you to try to break this thing.

00:49:04.842 --> 00:49:06.759
I want you to stress test it and QA it.

00:49:06.759 --> 00:49:11.410
And let me know what you find, what bugs you find, and what we might need to improve.

00:49:11.410 --> 00:49:17.246
And so, all I did here is I explained in natural language what I wanted, and we're going to be able to see it use the right skills.

00:49:17.246 --> 00:49:19.002
So, browser use is great for a lot of things.

00:49:19.002 --> 00:49:25.870
It's great for um QA-ing, like you just saw here, because it can find bugs and click around on things that typically it wouldn't be able to do.

00:49:25.880 --> 00:49:27.862
It's also really great for certain automations.

00:49:27.862 --> 00:49:33.885
So, maybe you don't have an API for something, and you want to be able to go in and download reports or go in and change some settings.

00:49:33.885 --> 00:49:38.212
I've done a few of those automations on my channel as well, and browser use can be really, really good for that.

00:49:38.212 --> 00:49:46.370
And you can even use it to just search the web, because you can use browser use in a way where it has like cookies, and it's able to remember your login info.

00:49:46.370 --> 00:49:52.716
So, you could log into something like school, where you'd have to get past the authentication, and then the browser can automate and control things.

00:49:52.716 --> 00:49:56.057
But anyways, what you see right here is the in-app browser open.

00:49:56.057 --> 00:50:01.739
And this little mouse right here, which kind of looks like the ChatGPT Alice logo, is going to click around.

00:50:01.739 --> 00:50:04.390
You guys already saw it switch from overview to replies.

00:50:04.390 --> 00:50:07.070
You can see it's moving around even more now.

00:50:07.080 --> 00:50:13.815
And as it's clicking these different links and moving around, it's going to start to document what might be wrong with this app.

00:50:13.815 --> 00:50:15.974
And then we can obviously say, "Okay, cool.

00:50:15.974 --> 00:50:19.703
Go make all of those changes for us." Right here, it found the thing with the YouTube link.

00:50:19.703 --> 00:50:25.526
So, it said they have the correct URLs, but the in-app browser did not visibly open the new tab after clicking.

00:50:25.526 --> 00:50:28.361
So, that's one of the things that we actually did notice ourselves.

00:50:28.361 --> 00:50:32.670
Now, browser use is pretty, I don't know, it can feel kind of subjective when you're looking at it.

00:50:32.680 --> 00:50:34.409
I mean, this is pretty cool to watch it move live.

00:50:34.409 --> 00:50:39.129
But that also happens in Cloud Code when I use like the Playwright CLI or something.

00:50:39.129 --> 00:50:49.419
But from my testing, Codex browser use has been much more smooth and much more intelligent than any other sort of browser use automations that I've built or used before.

00:50:49.419 --> 00:50:55.650
So, that is something that is really cool about Codex in this app here is that the browser use is really good.

00:50:55.650 --> 00:50:59.614
Now, you could obviously use it still from a CLI or whatever, but it is pretty good.

00:50:59.614 --> 00:51:03.325
And like I said, there's just so many really cool use cases with browser automation.

00:51:03.325 --> 00:51:07.971
If you want to check out a few more, even though this video was Cloud Code, you would set it up the exact same way in Codex.

00:51:07.971 --> 00:51:09.888
I'll tag a video right up here.

00:51:09.888 --> 00:51:10.922
I mean, I love this.

00:51:10.922 --> 00:51:12.672
It's literally going through the filters.

00:51:12.672 --> 00:51:14.336
You guys saw it had something else up here.

00:51:14.336 --> 00:51:15.717
It's changing these check boxes.

00:51:15.717 --> 00:51:16.809
It's changing the stuff.

00:51:16.809 --> 00:51:22.252
It did another search here, and it's really going to actually stress test this app to make sure that it didn't miss anything.

00:51:22.252 --> 00:51:29.271
And what else is really cool is you can build in this sort of QA check into skills or into the knowledge.

00:51:29.271 --> 00:51:38.910
So, next time when you're building another dashboard or next time you're building a game, before it ever comes back to you, it already does a few passes visually and, you know, from like a code perspective, but you can make

00:51:38.920 --> 00:51:47.185
sure that, "Hey, don't ever ever ever come back to me until you've stress tested with your own browser use." And that's how you can really just make this stuff smarter and smarter every day.

00:51:47.185 --> 00:51:49.384
All right, so it decided that it's done testing now.

00:51:49.384 --> 00:51:53.798
You can see that we have a bunch of things that passed, but it found a ton of improvements.

00:51:53.798 --> 00:51:55.345
It ended up finding six things.

00:51:55.345 --> 00:51:58.489
The external links for YouTube aren't really working.

00:51:58.489 --> 00:52:00.533
The empty explorer state is too bare.

00:52:00.533 --> 00:52:01.776
Search is too literal.

00:52:01.776 --> 00:52:03.538
Active tab state is mostly visual.

00:52:03.538 --> 00:52:07.958
And there's some other things that are just coming through awkward and little changes that we need to make to the UI.

00:52:07.958 --> 00:52:18.196
So, what's really cool now is I can say, "Okay, take all of these six changes and build a plan around exactly how you're going to solve those." And then once it comes back with its proper plan, we would go ahead and execute.

00:52:18.196 --> 00:52:22.122
But now that I showed you guys that, let's check back in on our actual automation that's running.

00:52:22.122 --> 00:52:24.244
You can see that it is still going through the checks.

00:52:24.244 --> 00:52:25.491
It's been about 10 minutes.

00:52:25.491 --> 00:52:32.063
So, I will just check back in with you guys once this has been fully committed and we'll see what changes we have on our actual live dashboard.

00:52:32.063 --> 00:52:32.870
Oh my goodness.

00:52:32.880 --> 00:52:40.191
So, this was pushing like 20 minutes, so I stopped it and said, "Why is it taking so long?" And it's because it couldn't overwrite a file that I had open.

00:52:40.191 --> 00:52:41.284
So, don't do that.

00:52:41.284 --> 00:52:44.505
But now we're going to go ahead and just keep this going.

00:52:44.505 --> 00:52:54.470
But honestly, there is a lesson there, which is sometimes it is nice to be able to watch it, especially before, like I said, before we know that this automation is really refined, because if it is going down the wrong path or it's

00:52:54.480 --> 00:53:05.710
hitting some sort of roadblock that you the human should be able to just be able to solve in like a quick 20 seconds, then stop it and ask a question or stop it and steer it in the right way, because it's going to help not only save

00:53:05.720 --> 00:53:07.331
you time, but it's also going to save you session limit.

00:53:07.331 --> 00:53:16.792
Because if it was just burning tokens trying things, when the fix was for me to just close out of the app, then, you know, you'd rather have stopped that earlier before it's going down multiple wrong paths.

00:53:16.792 --> 00:53:27.437
And another thing that I just noticed, which is really important to call out here, is that when you look at the automation, this automation is set up by default to run with GPT 5.2, which obviously we don't want.

00:53:27.437 --> 00:53:37.789
So, you're going to want to make sure that your model is set up correctly, that the reasoning is set up correctly, and all of this other stuff is set up correctly, because that is also a reason why that run was probably taking so long.

00:53:37.789 --> 00:53:43.519
So, I just went ahead and retriggered a new run using GPT 5.5, and I decided to try this one out using high.

00:53:43.519 --> 00:53:48.233
Now, you also might be curious about the speed thing, the difference between standard and fast.

00:53:48.233 --> 00:53:51.226
And honestly, I never really ever touch fast.

00:53:51.226 --> 00:53:57.553
I'm never working in something that's super time-sensitive where I need to go fast, because that also eats up your usage a lot quicker.

00:53:57.553 --> 00:53:58.917
But this is much more like it.

00:53:58.917 --> 00:54:02.918
We can actually see it thinking and now we're going to be able to get this back much quicker.

00:54:02.918 --> 00:54:04.751
Okay, so finally that has finished up.

00:54:04.751 --> 00:54:09.308
You can see that it was able to make changes to that Excel sheet.

00:54:09.308 --> 00:54:11.428
And it says that it analyzed 208 comments.

00:54:11.428 --> 00:54:18.235
Now, because we just did this, you know, earlier today, I'm curious if it actually analyzed 200 of the same or if it knew not to duplicate.

00:54:18.235 --> 00:54:19.748
And that's something that we'll want to take a look at.

00:54:19.748 --> 00:54:22.285
But let's actually head over to my GitHub real quick.

00:54:22.285 --> 00:54:24.087
This is the repo that we just set up, right?

00:54:24.087 --> 00:54:27.683
And if I go ahead and give this a refresh, we should now see that we have two commits.

00:54:27.683 --> 00:54:31.397
So, in the second commit, this shows we refreshed the comments.

00:54:31.397 --> 00:54:34.645
So, every single time that you make a change to this repo, it'll show that here.

00:54:34.645 --> 00:54:37.588
So, you can check at the version control and you can see what's going on.

00:54:37.588 --> 00:54:50.029
But what that means is because our GitHub repo here got a new commit, if we go to Vercel now and we look at this actual project, if I go to deployments, we should be able to see that this just picked up a new change.

00:54:50.029 --> 00:54:52.729
1 minute ago, it picked up this new deployment.

00:54:52.729 --> 00:54:57.027
So, now if we go to the dashboard and I give this a refresh, this has new data.

00:54:57.027 --> 00:55:01.434
So, this used to say 200 videos, or sorry, 200 comments, and now it says 208.

00:55:01.434 --> 00:55:05.407
So, that is just proof that we were able to actually get some fresh insights.

00:55:05.407 --> 00:55:10.413
Now, what's really nice is that it looks like it just basically added on eight new ones.

00:55:10.413 --> 00:55:16.555
It didn't like add on 200 and then 200 more and then eight more, because it realized that they were duplicated.

00:55:16.555 --> 00:55:29.550
And if we actually go and open up the actual source of truth, if I go into our repo, I go to outputs, I go to YouTube comment insights and I click on the Excel sheet that we accidentally had open earlier, we see that the dashboard is exactly the

00:55:29.560 --> 00:55:33.965
same, except for now we've analyzed eight extra comments instead of the original 200.

00:55:33.965 --> 00:55:37.070
But I wanted to show you guys what happened inside of this run.

00:55:37.080 --> 00:55:40.952
So, as you guys know, we ran into that issue where I had the Excel sheet open, right?

00:55:40.952 --> 00:55:42.174
That was the first mistake.

00:55:42.174 --> 00:55:44.593
The second mistake was that this was running with 5.2.

00:55:44.593 --> 00:55:48.254
So, we reset the automation, and now it's running with 5.5 high.

00:55:48.254 --> 00:55:50.537
But then what happened is this was running for quite a while again.

00:55:50.537 --> 00:55:52.891
So, I stopped it and said, "Hey, you've been running for a long time.

00:55:52.891 --> 00:55:54.218
Why is it taking so long?

00:55:54.218 --> 00:55:57.852
This is a very simple task." So, basically, I knew that something went wrong here.

00:55:57.852 --> 00:56:02.150
Because when we built this dashboard from scratch, it only took about 20 minutes.

00:56:02.160 --> 00:56:05.542
But updating it took 40 minutes or probably even longer.

00:56:05.542 --> 00:56:06.847
So, I knew something was going wrong.

00:56:06.847 --> 00:56:09.352
So, I stopped it, and I wanted to dig into it a little bit better.

00:56:09.352 --> 00:56:12.509
And it And I was able to find out that it was stuck on some process.

00:56:12.509 --> 00:56:21.203
So, I said, "What do you need from me in order to make sure that this doesn't happen again, and that you're able to just basically actually give us this deliverable that we're looking for?" And it had me make some confirmations.

00:56:21.203 --> 00:56:25.566
And then as soon as I did that, it took about 7 minutes, and then it was able to make all of those changes.

00:56:25.566 --> 00:56:29.265
So, the reason why I wanted to show you this is because once again, this stuff is not magic.

00:56:29.265 --> 00:56:31.935
You don't deploy something, and you just expect it to work perfectly.

00:56:31.935 --> 00:56:35.237
But what's really cool is I could say, "Awesome.

00:56:35.237 --> 00:56:37.607
So, everything worked as expected on the dashboard.

00:56:37.607 --> 00:56:39.195
The analytics have been updated.

00:56:39.195 --> 00:56:45.870
Now, I want you to dig into what you just did with this automation, and help me understand, are there any opportunities to streamline this automation?

00:56:45.870 --> 00:56:49.053
Are there any opportunities to make this better and more robust?

00:56:49.053 --> 00:56:55.213
Do you have any recommendations here?" And I'll go ahead and fire that off and see if there's any way that we can make this automation better.

00:56:55.213 --> 00:57:05.630
It's really important because there's this concept called dark code, which basically means you're writing a bunch of code when you do your vibe coding, but you don't actually know what's going on in the Python script or whatever

00:57:05.640 --> 00:57:07.195
language you're using there.

00:57:07.195 --> 00:57:13.089
And not to say that you need to understand every line of your code, but you need to understand fundamentally what it's doing and why.

00:57:13.089 --> 00:57:21.433
And if there are any opportunities to get rid of some code, or if you have to, you know, bake in some more guardrails in a certain place, or anything like that.

00:57:21.433 --> 00:57:25.148
So, it's basically looking at this to see if we can make it faster, or if we can make it safer.

00:57:25.148 --> 00:57:28.646
Now, ultimately, as long as it's working, I don't really care how fast it is.

00:57:28.646 --> 00:57:34.021
Because if this is running once a week, I don't care if it happens at 6:00 p.m. or 6:30 p.m. or even 7:00 p.m.

00:57:34.021 --> 00:57:35.460
As long as it's actually working.

00:57:35.460 --> 00:57:38.689
But sometimes speed is a big deal in your automations.

00:57:38.689 --> 00:57:47.817
So, it comes back and says, "Yes, this works, but it is still too agent orchestrated and too heavy for a weekly data refresh." So, we could add one repo script to basically run the builder.

00:57:47.817 --> 00:57:51.230
We could stop running the full next build for these sorts of updates.

00:57:51.240 --> 00:57:57.341
And it's giving us all these different insights that we could then go ahead and push to make our automation and our system better here.

00:57:57.341 --> 00:57:59.851
So, that's how you can kind of keep iterating upon it.

00:57:59.851 --> 00:58:07.187
Even if you yourself don't really know exactly how you would make this better, you can use the AI to figure out and brainstorm.

00:58:07.187 --> 00:58:07.472
Okay.

00:58:07.472 --> 00:58:10.854
So, what you guys saw here is we created this product from scratch, right?

00:58:10.854 --> 00:58:12.335
It was our YouTube analytics demo.

00:58:12.335 --> 00:58:24.950
We connected to YouTube, we set up a skill, we set up an automation, we set up a dashboard, we used some browser use, and now we have an actual system where every week it will pull in more comments, it will update our data, our Excel sheet, and

00:58:24.960 --> 00:58:28.888
then it pushes all of those changes to our actual live dashboard completely automatically.

00:58:28.888 --> 00:58:34.119
So, I hope you guys enjoyed seeing that flow from basically idea, setting up a project, all the way to the end.

00:58:34.119 --> 00:58:41.308
And just remember, what's really important is that this entire project, everything that we just did, is literally just a folder on your computer.

00:58:41.308 --> 00:58:46.259
And what that means is you can customize this folder to be used by OpenClaw or CloudCode or whatever you want.

00:58:46.259 --> 00:58:48.883
Any agent can work inside of this directory now.

00:58:48.883 --> 00:58:53.963
And if I wanted to explicitly do this inside of Codex, well, I could go ahead and click on view.

00:58:53.963 --> 00:58:55.836
I could open up the terminal.

00:58:55.836 --> 00:58:59.730
And now, because we're in this directory, I could call on Claude.

00:58:59.730 --> 00:59:04.511
And so, right here, I could be working with ClaudeCode inside of this actual repository.

00:59:04.511 --> 00:59:10.115
So, maybe right here I'm using Claude to help brainstorm, and it creates me a brainstorming file inside of this project somewhere.

00:59:10.115 --> 00:59:15.589
And then what I could do is I could just go back up here to Codex, and I could go ahead and tag that file.

00:59:15.589 --> 00:59:20.523
So, say, "Hey, here is a planning file, a brainstorm file that I just generated with Claude.

00:59:20.523 --> 00:59:26.986
I want you to be the one who actually takes this file and executes it for me." So, you can really start to play with these together and mix and match.

00:59:26.986 --> 00:59:38.448
Just like I've shown you before where we would build something with Cloud Code and then we would actually loop in Codex to do the review on it and to find like security bugs or any just like code-based functionality bugs inside of it.

00:59:38.448 --> 00:59:44.591
So, in my mind it's always about which tool is best for this specific use case, not which tool is best.

00:59:44.591 --> 00:59:46.819
All right, so I really hope that you guys enjoyed that.

00:59:46.819 --> 00:59:49.193
You should have a really good understanding of the interface of Codex.

00:59:49.193 --> 00:59:54.720
You should have a really good understanding of how you come in here, you connect to other tools, you use plugins, you start building skills.

00:59:54.720 --> 00:59:57.864
And really the next unlock is start building more and more skills.

00:59:57.864 --> 01:00:00.695
So, try to think about what are you doing on a daily basis?

01:00:00.695 --> 01:00:02.587
What are you doing on a weekly basis?

01:00:02.587 --> 01:00:07.309
And write down some of those things that are boring and repetitive and that you just wish happened when you slept.

01:00:07.309 --> 01:00:10.552
And then start to bring those into Codex and start to just brainstorm.

01:00:10.552 --> 01:00:14.733
And as you're going through this process, you're going to want to set up kind of your own AI operating system.

01:00:14.733 --> 01:00:18.163
So, I'm going to tag a video right up here that you guys should 100% go watch next.

01:00:18.163 --> 01:00:23.310
This one was kind of based on Cloud Code, but remember everything is just files and folders.

01:00:23.320 --> 01:00:28.630
So, if you follow the steps in this video, you will be able to replicate this in Codex, absolutely no problem.

01:00:28.640 --> 01:00:35.113
And what's really cool is every project that I've moved over from Cloud Code to Codex, I've said, "Hey, this is something I built with Cloud Code.

01:00:35.113 --> 01:00:46.430
Go ahead and analyze it and help me figure out what files you need to create in order to make this compatible with Codex." And all it's going to do is maybe change a few names and maybe change the cloud.md to the agent.md and

01:00:46.440 --> 01:00:47.425
it's really, really simple.

01:00:47.425 --> 01:00:50.468
It'll take like 30 seconds and then you have your project in Codex.

01:00:50.468 --> 01:00:53.773
So, anyways, I'll see you guys over there at that AI operating system video.

01:00:53.773 --> 01:00:55.317
Please give it a like if you enjoyed.

01:00:55.317 --> 01:00:56.191
It helps me out a ton.

01:00:56.191 --> 01:01:00.560
And as always, I appreciate you guys making it to the end of the video.
