This video will teach you codex. I'll go through all of the important features, show you how to set it up and install it and assume no prior knowledge. So even if you're a complete beginner, you'll be able to follow along. Now I'm going to be covering things like computer use or browser control. I'm going to show you how to set up for coding model selection, all of the different commands like slash goal. And a lot of the new features that I haven't seen many people cover. So with that said, stick around, let's get into it. And let me teach you codex. So let's start by discussing what codex is. We'll look at how we can use it because there's actually many different ways. And then I'll start going through all of the different features. There'll be timestamps down below in case you want to skip forward and keep in mind, I like to make things really thorough and detailed. So if you feel like I'm going too slow, fast forward to the next section. Okay. So first, what is Codex? Well, Codex is essentially OpenAI's answer to tools like Claude Code. It's actually much more involved than Claude Code. I would say it has a lot more features and a lot of people don't know about what you can do with it. Now, the basics is that you can use it to write code because it will give you access to their top bottles like GPT 5.5. However, you can also use it to control your computer, to automate tasks, to, you know, perform something repetitive for you. And you can even do something like tell it to play a song on Spotify for you. And it can go and do that by controlling your computer. So there's a lot of cool features that are not just related to coding. I'm going to try to cover all of those in this video. So what I want to do is quickly cover how you can use codex because Cause there's a lot of different ways and open AI has been very confusing with the naming of codecs because they had models called codecs, like their actual LLMs. Now they have the tool called codecs and you can use it in like many different fashions. So for this video, we're going to be using the standalone desktop application. The way this works is you download it and install it on your computer. You can get it for windows Mac, and then they don't have it for Linux right now. So just windows are back. Now you'll sign into this, using your chat GPT subscription. You can use it. I believe as low as $20 per month on the plus plan. Just keep in mind, I do have the $200 per month plan. So my usage limits will be significantly higher. And the limits are typically very generous. You're probably going to get five or 10 times the amount of usage than you would compared to something like Claude code. So I wouldn't be too concerned with ripping through it unless you use the highest end models and you're running it 24 seven. Now you can also use this with an open AI API key. I definitely do not recommend that because that's going to be very expensive. So first step, if you don't already download and install codex, I'll leave a link to it in the description, sign in with your chat GPT account, then you're good to go. Now, as well as the desktop app, which again is what we're going to be using. They also have an IDE extension. You can install this in the popular editors like cursor, visual studio code, and windsurf, and have access to the same codex interface inside of that editor. If you're a developer, you may want to do that. We also have CLI. Now this is a command line interface, more familiar to something like cloud code where you're not in kind of a nice graphical user interface, which you'll see in a minute, but the advantage here is that you can run this on something like Linux or server, and you can have this as a remote machine. That's running 24 seven, same thing. You can sign in with your account. And then we have the cloud version, which is running directly in your browser. It's better if you can use the desktop version, but if you want to do it from the browser on your phone or something, you can do that. Okay. So those are the surfaces for codex. Again, what we want to do is download the desktop application, which is where we're going to be working. And now let's open up that app. So I've just opened up the desktop application, which is where we're going to be working and where I recommend you use Codex because that's the most number of features. Now let's start by going through the user interface. You can understand what all of these buttons actually do. And then I promise we'll go through all of the features. So here you have your main chat window. There's a few things you want to pay attention to, like the model selector, which we'll look at in a minute, the voice dictation in case you want to use that, the approval modes. So ask for approval, approve for me or full access, and then being able to add different skills, context. And then if you want, you can actually run commands by using this slash. So if you do forward slash, you'll be able to see a list of all of the stuff available, which will be going through. You also have the ability to organize different chats into projects. So you can see, I have a few projects here. You can make a new one, but we'll look at that in a few minutes. Now from the right hand side, you'll also notice that you have these toggleable bars. So if you click on the right, it's going to show you a browser and a terminal that's because codecs can automatically control a browser for you and test your applications. And then you can also toggle up the terminal or the shell, which again, codecs can control and use for you. You typically don't need to do this, but I'm just showing you those views exist from the left-hand side. You can also toggle this sidebar where you have some of the important, I don't know, buttons or views. And if you want to access the settings menu, you can click on your profile, can go to profile or two settings for settings. If you are someone who's not going to do any coding, you could switch this over to the everyday work mode. So it's going to be a little bit less technical, but for most of us, we're going to want to stay here where we have access to the browser, the terminal and some other features. There's a ton of settings. Feel free to look through these and change any of them if you want, but again, I'll go through them one by one. And then last thing, if you go and look at usage and billing, you'll be able to see your usage, the plan that you're currently on. If you have any balance or anything, again, these are very generous limits. It's very unlikely that you're going to hit them, especially if you're doing something somewhat normal. So I wouldn't stress out about it too much. Okay. So now that we've gone through that, let's start looking at the models. Let's start running a few chats and setting up some plugins so I can show you things like the computer control, which is super cool. But first, just a quick word from our sponsor boot.dev. Now this is one of the best learning platforms out there and actually a long-term partner of this channel. Now, one of the biggest problems that I see with people learning to code is boredom. They watch tutorials, copy code, feel productive for a week and then they quit. Now boot.dev takes a completely different approach. It's very hands-on and honestly, it feels more like a game than a course. Now you're learning backend development by actually building things, not just watching videos. You work through real challenges in Python, SQL, and go earn XP, level up, fight bosses, and progress through a full backend curriculum. Now it sounds a bit gimmicky, but I promise you it actually works because you're doing the same kind of problem solving that you do on the job. Now they also have an AI tutor called boots, which doesn't just dump answers on you. It asks follow-up questions and helps you reason through problems when you get stuck, which is way closer to how you actually learn. Now all of the content is free to read and watch. And if you want the interactive coding, the progress tracking and the AI assistance, that's part of the paid plan. If you want to check it out, go to boot.dev and use my code tech with Tim to get 25% off your first year. Big thanks to boot.dev for sponsoring this video. Now let's get back into it. So like I was saying, let's have a look at the model selection. Now, for some reason, you don't see this view. You can always just press a new shot and it will bring this up. Now from here, if you go to model selector, you're going to see that you have a reasoning level, light, medium, high, and extra high. Now, of course you want to use the best reasoning whenever you possibly can, but keep in mind that this is going to take significantly longer. So the reasoning can kind of come down to how long this is going to take. Of course, the higher reasoning, the better responses and results that you're typically going to get, but it can increase the time by like four or five, sometimes 10 X. I've had tasks here taking a 30 minutes to run in extra high reasoning. So if you want something fast, if you're asking a quick question, you don't need super high reasoning and you can put this in light or medium mode. Now, when it comes to the model itself, you have a few options. GPT 5.5 is kind of the best one, you know, the frontier coding model, the one you're going to want to use for pretty much everything. GPT 5.4 is just the generation before that, that has kind of cheaper usage limits. I would never use this one. GPT 5.4 mini. This can be used for small, fast, kind of efficient things where you're asking a question or you just want, you know, quick UI change or something. And then 5.3 codec spark is just an extremely fast model that you use again, for very minor things that don't require a lot of intelligence. And specifically when you're running out of the usage on GPT 5.5. So for 99% of you, you just keep GPT 5.5 on probably throw it in medium reasoning. If you have If you have enough credits, you can turn on this fast mode. So we'll run faster. I pretty much always leave that on. And then if you start running out of the usage, you can switch to some of these other models. You can change the speed back to default and you can adjust the reasoning, but most of the time, 5.5 medium. is what you're going to keep it in. And if you're doing something more complicated, switch up the reasoning level here to high or extra high, you can play around with it, but that's pretty much all you need to know. Okay. So of course we're going to use this. I'm going to show you a bunch of prompts, but I want to show you how to set this up so we can do some really interesting things with codex. So what we're going to do here is go to plugins. Now this is one of my favorite features of codex is all of the plugins that it has by default. And the fact that it can control your computer, control your browser, control spreadsheets, access Google drive and do this in a really interactive and intuitive way. Now, most of your tools like this, like cloud code, they can do the same thing, but I find codex performs a lot better and it's just way easier to understand. So what we're going to want to do here is go to plugins and start installing some of the ones that you see on my computer right now. So the first one is computer use. If you don't already have this installed, you can install it and activate it. It may ask for some permissions here, and this is going to allow you to control your computer. So you can tell it to open up an application, go to your browser, access Spotify. We're going to look at that in one second. Next plugin we're going to want is Chrome. So we're going to want to install this Chrome plugin here and then open up this Chrome extension. Okay. This codex Chrome extension, you can see, I already have mine installed here. And if I go to the view, you can see we have codex and it's connected and this will allow codex to control your browser. So it can open up a tab. It can search for something. It can debug your application, make sure that you get that set up. Again, if you just press this open button, you can install the extension and link it. Another extension that I highly recommend is GitHub. If you're unfamiliar with Git and GitHub, this is essentially a version control software for code. This means that you can save your changes that, you know, you can recover them later on. You can store them in the clouds. You can use them from a different device and you can share them with your teammates. This is a standard. Anytime you're building even a medium-sized project, really any type of coding project, you should be using this. So create a free GitHub account, very easy. You can just go to github.com and then you can connect your GitHub account here inside of codex. So it can automatically make what's called a repository, which is just storing your code effectively and upload it to the cloud. So you're not going to lose it. You can access it from other devices and you can revert back in case codex makes a change. It breaks, you know, whatever the version of your project is. I'm not going to be teaching get in GitHub too much, but I do highly recommend that you set up that plugin. And you can see we have a few other ones here, like Google drive presentations, spreadsheets, Slack, Gmail, you can add as many of these as you want, but I'm going to stick with these for right now. So now that we have the computer plugin installed, I want to show you how to use this. So if I go and I use this at symbol, you can see that I can actually reference different applications and specifically this computer, right? So from computer, what I can do is ask it to do something. So let's start by doing something simple, open up notepad, close any of the existing windows that are there. And then write a simple note and describe your ideal day. I know you're a computer, but just come up with something. Okay. I'm just giving it kind of, you know, random prompt, by the way, if you're wondering what I'm using to prompt here, I always use this tool called whisper flow. Very good for voice dictation, especially in AI tools. I'll leave a link to it. So you can check it out in the description. You can see that I use it a ton based on my usage. Very, very good and free to try out. Okay. So let's run this and let's see what we get here. And you can see that it's going to use the computer plugin and it should control my computer and keep in mind that while it's controlling my computer, I can still use the computer myself so I can navigate into an application. I can close something. I don't need to have it kind of freely using the most because it will actually use its own cursor. Okay. Apologies because it had a note there that I didn't want you guys to see. So I had to kind of rerun this, but you can see that it actually just opened up my computer here, open up notepad and wrote this note inside for me. Okay. So now if I want to say something, can you continue this note and make it like double or triple the length? Don't worry if it's unsaved, just keep writing. Okay. And let's hit enter. And again, you'll see that we kind of get that blue hue around our computer and it's able to take over and do anything that we want, which can be super useful, especially for automating, kind of like testing a website, going through a form, running a task repetitively, you get the idea. So let's see how it works. And you can see that just opened it. And then did it extend the note? I guess not. says thinking, okay, maybe it will take over again in a second, but when it does that, you also see it's kind of cursor appearing, which I think is pretty cool. Okay. So for some reason it didn't keep controlling the note, but let's just do another example here. I'm going to say computer, open up Spotify, find Drake's most popular song, and then tell me what it is and play it. Okay. And let's just do this as an example so we can see. Okay. So it actually found that Spotify wasn't installed on my computer and it's going to now do this from Chrome, which is what I was trying to show. So I'm going to allow this to access my Chrome browser. Okay. So we can see it opened this, it actually started playing the song. I just paused it. Cause I don't want to get the copyright strike and it found the song for me. And then if I go here, it says that this is the most popular one. Okay. I don't know if that's true, but at least that's what it gave us. So the point is it can control Chrome, it can control its own devices. So keep that in mind. That's super useful, but now let's move to some more coding related features. Okay. So if we're done with the current chat here, what we can do is just press new chat and open up a new one here. And what I'm going to do now is I'm actually going to create a new project. Now, whenever you're coding, I recommend that you make a new projects. You can organize all of your chats for that specific project, and you can go back and find them easily. It's not required to do this, but it's kind of a good practice. So you can see that I can make new project. I can use an existing folder. So maybe I have an existing code repo that I want to use. I can open that up and that's kind of what a project is. It's really just a folder on your computer, or I can start one from scratch. So I'm going to start one from scratch and I'm just going to call this, I don't know, chess game. And what we'll do is we'll try to make like an interactive chess game here using codex. So you can see that's made a new project for me. It's called chess game. And notice that we have a few options here for the project. Now I have the ability to connect to codex web. This would essentially send all of the kind of info to the cloud, which is a little bit more complicated. We can work locally, which just means we're working on our own computer, which is what we're going to do here, or we can create something called a work tree. Now we're going to look at work trees later, but essentially this is a clone of this kind of project so that we can work on multiple things. at the same time without having a conflict. So for now, we're going to leave it in the current location that it's in. You'll notice that it automatically is connecting to get. So it's created a branch called main and you can make different branches if you're familiar with get, but we're not going to look at that for right now. I'm also just going to move this to full access mode, just so I don't need to keep approving things. And you can see it's pretty straightforward what you do here with those. So now let me give this a simple prompt. I want to create a simple chess game. I want to have a backend, which is using web sockets and kind of keeping track of scores and ratings and stuff in a database and people's usernames. And then I want to have a front end where we can actually play this. I want it to be multiplayer. So I want two people to be able to play against each other. We can keep it simple, have an MVP to start and then build everything out. Okay. So I'm just giving it kind of, you know, prompt on what I, what it is that I wanted to do. I wanted to build something out here and we're going to go ahead and press enter. And I just want to show you how this works. Okay. So we can see here, the codex is now working. It's making multiple files. We can see what it's doing and I can kind of, you know, go into this and inspect the different commands, but I want to see what's actually running. If I expand this right toggle, now you'll notice it is giving me a preview tab. We don't see anything right now because we're just waiting for it to finish the files, but we will be able to see all of the different files, code changes, and all this stuff going on here in one second. And then if I go here to this kind of little, I don't know, to-do list icon, you can see that we have a bunch of options. So I can change where I want it to work. I can change the branch. I can commit or push directly to GitHub. Now it's not giving us any results because it's not available online right now. It's just locally on our computer, but you get the idea. And then we can view the changes, which is making right now. So we're just waiting for those to finish. So there's a lot that will start happening when you actually write code. And then I can also toggle open the terminal, right? So I can run command. So I can run commands or see what's happening there. Let's go back into this view and then I can open this in any of the tools that are shown here. So if I wanted to open this in cursor and view all of the code in IDE, I can press that button and do so. So let's wait a second for it to finish writing this code. You can see that it's starting to show me some of the files that we have inside of this folder, and then we'll review it and see what we get. Okay. So it just finished the first pass here. It says that it built the multiplayer chess MVP and started locally. And if I press on any of the links here, you'll notice that they'll actually open directly in codex. So you can see that it's opened up right here. We kind of have this view. I can, you know, change the view, make it larger, smaller, whatever. So let's give a username, maybe like Tim. Okay. And join the game. And then let's try to find a game. Okay. And then I'm just going to open up another browser here. So you can see, I can press this plus button, go browser. We can actually manually type. So localhost 3000. Okay. And let's see, maybe we can change this as, I don't know, Joe or something. Okay. Join and find a game. And you can see that we find a game and then we can start playing. So I don't know. Let me try to move here and see if it moves on this side and it looks like it's working. So let's make a move like that. I'm not going to play the full thing out, but you guys get the idea that it is indeed working. We have a track of all the moves. We have some leaderboard. And then maybe if I resign, you can see now the ELO has updated and I want, so it says white wins by resignation. I mean, pretty cool that that worked that fast. Now within this browser view, there's a few buttons you should be aware of. So if you have a look at this right-hand side, you can see that you can actually take a screenshot. If you do that, it will save it to the clipboard. And then you can copy that screenshot or paste it, sorry, into the chat in case you want to capture what's going on inside of this window rather than doing it manually. And of course, chat, GBT and you know, GBT here can do image generation. It can view images. So that's, I mean, should be straightforward. You also can annotate. So if you annotate, this will allow you to select different HTML elements. So for example, maybe I'm going to select this and I can say something like I don't really like this title. I think we can make it look a lot better and put a chess logo. Okay. And then we can go here and we can actually just update any of the values directly on screen. I'm not going to do that because I would prefer just to prompt it, but I'm just going to run that. You can see, we now have an annotation in chat and I can start adding other annotations. So maybe I'm going to say, can we change the color of the board or have like a white or dark mode, or maybe change the square colors. I'm just giving random prompts to kind of show you how this works. And you can see we have annotations and I can say like go or something. And now it's going to have the annotations that we made in the browser. And it's going to make those changes, which are a lot more targeted. Okay. So I just refreshed, cause I want to see what this was doing live. And you can see if I go here now and I refresh, we've kind of changed what the board looks like. Obviously we've disconnected now we're waiting to join. We can see we have the kind of chess icon and it's essentially followed the annotations we asked for. Okay. So hopefully that gave you a bit of information on how the general kind of coding works inside of codex is very good for me. I really like this user interface and I like using this application. And I mean, you can see that it gives us pretty good results, even though I didn't do anything crazy. So now let's move to a few more advanced features. Let's start by having a look at some basic commands. So commands are just anything that start with a slash, and there's a ton of built-in commands inside of Claude code or not Claude code inside of codex. I'm not going to go over all of them, but I'll show you a few that you should be aware of. So first, if we do slash, we're going to want to look at status. Now status will just show you your usage limits. You can see that for my five hour limit, I'm at 98%. And for my seven day limit, I'm at 99%. It also gives me my context limit. Now the context can be viewed using this little kind of circular icon down here. It won't give you a detailed breakdown, but you'll be able to see how much you've used, how much is left and how many tokens are there. Now, depending on the models you're using, the context size can change, but this is something that's useful to be aware of because if the context gets too large, which means you have too many, you know, too much conversation, history, tool calls, et cetera, you will need to compact that. Now there's actually a command that can do this for you. It's called slash compact. Now what slash compact will do is it will take everything that you have in your current conversation history. So all of the tool calls, all of the code, anything that it's understood in this whole conversation that we've had, and it will generate a summary of that and then add that to kind of a new fresh conversation that you'll start. So you'll notice that after I did that, we now, if we look at the, uh, what is it? Context use here, we've only used 4%. So it's taken 22% there. It's condensed it down, given us a summary, and now we can continue. Now, it's not a great idea to compact super early because you want to use up the context window. But as soon as you start getting to 70%, 80%, 90% context, you typically want to compact it because you're going to get better results because as the model fills up with context, it performs worse. This is pretty well known. Not going to go into all of the details. Just be aware that command exists. You can use it in codex will automatically compact for you. If you're going to go past your context. So you may want to do it at a time that you decide rather than waiting for it to do it automatically. Now, another thing that we can do, which is sometimes useful is we can fork this. Now you can see that if we type slash fork, it will allow us to fork this chat into a local or new work tree, which we're going to look at effectively. What this will do is take everything that we've done and just create a complete copy of it. So we can work in multiple agents at the same time without them having any conflict. So they both will kind of work in their own copy of the code base, and then they can go and kind of join everything together, fix any of the merge conflicts. When we get to the final version, again, we'll look at fork in a minute, but that is a command to be aware of. You have the fast mode feedback. We're not going to do that. A knit goal and some other kind of modes that we'll look at here in a second, a few last things to be aware of. You can also pin chats. So if we want this chat to be available, we can pin it. And then we can create new chats inside of the same projects. You can see it's in chess game here, and we can decide how we want to work and just have another agent either running at the same time or in a new chat. If we want to ask for something different and kind of forget the previous conversation history we had here. Anyways, let's go to a new chat. Now we're inside of chess game and let's use a new mode that we haven't seen yet, which is plan. So if we use slash plan, we can enable plan mode. You'll see that it's here. And now with plan mode, what we can do is we can ask this something a little bit more detailed. We can describe what we want and codex will prompt us with different questions and kind of clarifying details before it goes and executes the plan pretty straightforward, but typically you want to make a plan before you do something too complex. So really for our chess game, we should have started in plan mode, built the plan and then executed. I was just saving it for later because it's a little bit more complex. So now maybe I want to expand this chess game. I want to have puzzles. I want to have a leaderboard. I want to have maybe a big UI. I want to have whatever accounts. So let's start generating a plan for that. I want to expand our chess game. I want to have a better landing page so that a user can see their stats and they have the ability to either play a game or play a puzzle or go to like a practice board. I want to generate a few different game modes, and I want to really polish this up and make it kind of like a chess.com clone. Let's start with just the MVP features. Can you generate a plan for this? Ask me any questions you need to. Okay. So let's go here and press enter. And because it's in plan mode, it's going to map everything out and it should start asking us some questions and prompting us so that it can generate that for us. Okay. So we can see that it's now prompting us with a few questions in the bottom here. So it says for the first MVP pass, which mode set should the landing page launch? We can have add bot game, add time modes or core three ship, the landing page live game, daily stuff puzzles. Let's go with that. How should the user stats work for an MVP? Let's just go username profiles. Okay. Um, username, login, expand stats. Okay. How deep should the puzzle mode be an MVP? Let's just do. mode be an MVP? Let's just do yeah. Small bundled puzzled library that looks good. And now we continue now, while it's doing this also mentioned that if you open up the sidebar here, you'll see a few more options because we're in this kind of coding environment. We can now view all of the files. If we want to look at this, we see, we have the database, we can open up the server, right? And you can modify the code, or you can add comments directly inside of here, tag different things. And now you'll see that it's generating the plan. I believe the plan will be stored in this repo. I might just need to refresh, but we should be able to view it. So if I want to look at the plan here, you can see, we can open it up and it gives us everything that needs to be done. Okay. So I could just implement this plan, right? And just start running with that. But what I want to show you now is another mode that's super useful, that is going to get things done a lot more efficiently for us without us having to keep approving things or prompting the model multiple times. And that is called goal. So there is this slash command called slash goal. If we use this, let me just actually type it out. What will happen is that codecs will run until a goal is achieved. Now, this is kind of that agentic loops that you may have heard about recently that everyone's talking about, they have that built in now. So what we can do is we can say, Hey, here's the goal. And we just set a high level objective and codecs will keep going until the goal is achieved. So it will plan, it will execute, and then it will review if it's achieved the goal. And if it hasn't, it will just keep running. So it's not just going to do one pass or implement one set of features. It will go until the goal is achieved. Now, in order to use this effectively, you need to set a good goal and the conditions for the goal to be achieved. Now, in our case, we already have the plan, so we can effectively just say, keep running until the entire plan is implemented. It will then run, check if the plan is done. If it's not, it will keep going. If it is, it will finish. So this will allow it to run for a long period of time, which also will use a lot of usage. So keep that in mind. So for the goal, I'm going to say, okay, keep running and implement the entire plan until the plan is fully finished. Everything is tested. Everything is working and we are confident to deploy this again, not the best prompt in the world, but I'm just showing you the usage here. And now that the plan is enabled, we have goal set. I can press enter and you can see that it's going to pursue this goal and start running and we can view, this is the goal and it's going through all of the different steps and it will just be this infinite loop, which can take a very long time to run. All right. So the goal has just finished. It built this application for us. I don't know if it's fully working, but you guys get the idea and it's done. So now let's have a look at some more features and start going through it. Okay. So first things first, if you look at any of these chats, you have the ability to right-click them. You can pin them, rename them. You can also fork them into a local version or a new work tree. Now I want to really briefly discuss what a work tree is because it's a little bit complicated and we'll save the full usage for a part two. So let me know if you guys want to see that in the comments down below. Now, if I try to open a new project here, right? So I've gone, sorry, new chat. Okay. So I went new chat and then I selected chess game. And then what I did is rather than selecting work locally, I selected new work tree. I have the ability to create a local environment. Now, the reason this is important is that if you want to run parallel agents at the same time, they should be working in their own copy of the repository or the project that you have. If they work on the same files, there can be conflicts because they're touching the same information at the same time. And that's not good. So the solution to this is a work tree. This is provided by Git. Again, it's a little bit complicated to set up and a bit confusing to use. So I'm not going to go through all of the details, but if you do want to run parallel agents at the same time, you have multiple tasks going, this is what you would use. You have to configure the environment first, which you can ask codecs to help you do. And then you can change the branches and stuff in order to work on the different features. And now you'll have different agents because you can run multiple at the same time working in these kinds of copies of the same repo. Again, this is a more advanced developer feature, so I'm not going to dive into it too much. Now, another feature that's somewhat related to this, let's go back to local copy here is this tool called slash review. Now, this is a code review that can automatically compare any changes that have been made in the current session against what's in GitHub. Okay. So if I go to maybe this right now and I go slash review, you can see that I can review this against a base branch. So a branch and get, if you're familiar with that or review any uncommitted changes. So if I go slash review, right. And then uncommitted changes, it's going to start looking at all of the changes that it made here and automatically review them to make sure that they're good before we push them to get, or before we commit them, this is a pretty useful feature that codex has. And this is something you should always do after you've done a large amount of changes before you push them to remote repository. And if you don't know what that means, Don't worry. But if you're a developer, you'll understand the value of having a built-in shortcut that will do all of those passes and checks for you. Okay. So you can see that it's done the review and it's given us some comments now. And it said, Hey, these are errors that I found after doing the code review. Right? So let me go ahead and fix them. Okay. So let's move to the next feature, which is memory and context. Now this is less, maybe, I don't know, demo wise and more me explaining how this works because I want you to understand this. So if I make a new, um, chat right here. Okay. And we go into this and I'm working locally. I want you to see something. What did I do in my last session when I was working on the chess game? Now, the reason why I'm going to run this prompt and show you the result is that you need to understand that by default codex doesn't remember things that you worked on in the past. Anytime you create a new chat, what it's doing is reviewing anything that you have in your current repo, kind of trying to load in information and find any context that's relevant and then give you an answer. But by default, it doesn't remember everything that you did. So it won't have the full conversation history. It won't know maybe preferences that you told it, and it can forget things because it doesn't remember by default. The only reason this actually just gave me a response is because it looked inside of my, you know, project here that I'm inside of and was able to find that information. But if I go to a new chat and I say, and I removed the project, what did I work on for my chess game? And I just ask it something really vague like that. It shouldn't know. At least I don't think it will know because it's not going to have any of that context. The reason why I'm mentioning this is that you need to understand that anytime you make a new session, you're effectively starting from scratch and anything that you want this to know, it has to already exist as a file. It has to be saved persistently. So codecs can read it in. And you can see here that it's not able to really find the information very well for me here. And it has to actually go and look through the different conversation history and threads to find this information. So it can find it, but the only reason it can do that is because it's searching through the threads and it's very slow. And again, it's not going to remember everything by default. The reason why I'm mentioning this is that you can fix this problem by creating something called an agent.md file. Now, this is something that's common in all of your code-based tools, CLI-based tools, whatever AI agents, where you can make effectively a memory file that will always be loaded into the prompt or into the model before you start working with it. Now, this is a really good file to create, especially when you're working on larger projects with multiple people, because you can store preferences, different tools or stacks that you want to use. I wouldn't say credentials, but you can store just important info that you don't want to have to keep telling the model over and over again. So for example, I can tell this, I'd like you to create an agents.md file with all of the conventions support for this project, specifically the tech stack that we're using, how to run it and what we've set up so far. Okay. And what this will do now is create a new file for us called agents.md. You'll see it in a second. It's automatically making it starts with all capitals and it's going to fill this file. info that now we're never going to forget or codex will never forget because this is by default automatically loaded into codex anytime we make a new conversation. So let's give this a second to make the file and see what it looks like. So let's open this up and you can see that it gives us project conventions, direction, tech stack, how to run it, et cetera. So now if we make a new conversation, I go, what are the project conventions? It's not going to have to search through a bunch of files to find this. It can just get it directly from its kind of system info now, because it will have been loaded in agents.md. So you can see it just immediately gives us the result. It doesn't need to read anything because it was already loaded in when we started the conversation. If we look at the context, you can see the context is slightly higher usage than normal because it started by loading that file. I hope that that makes sense to you. I know that's not the best explanation possible, but anything that you want to be kind of long-term persistent info that's going to be used all of the time, you want to put it in this agents.md file and tell codecs to create that for you. And you can continually update this to improve the performance of the model you use in a particular project. Okay. So that is kind of the agents.md and memory info that you need to know. And the last thing we'll look at is scheduled tasks. Now I'm not going to actually create these, but I'm just going to mention that they exist just like cloud code or other tools that you may have used. You can create scheduled tasks that run automatically for you, assuming your computer is on. So you can make a daily brief where every morning it, you know, opens your computer, searches the news and gives you some info. You can do a weekly review where it tells you all the things you worked on. You can do project monitor where if something changes, we do this. So if I do create via chat, for example, I can make it to set up a scheduled task for me automatically, or I can go to templates and I can pick one. So maybe like this, this is what I want to do. I want to run it in, you know, this chat or in a work tree. I want to in this project, I want it to repeat at this time. Then this is the model that I want to use. Okay. So again, you can make these, you can have them set to run and you can set this up to kind of automatically do things for you, which is useful if you want some automations. But for me, I don't really need any. So I don't have those set up as of now. And then of course you can search through all of your chats and a bunch of other stuff. And we can go crazy and we can go to, you know, add MCP servers. We can control the browser use. We can do computer use, hooks, connections, get environments, work trees. There is a lot more to go over, but I'm going to save that for a part two. If you guys let me know in the comments that you want to see an advanced version of this. That is going to wrap up this video. That was a pretty comprehensive overview of codex. A lot of the features, how to use it, some good demos, setting up a lot of the important plugins at this point, you know, probably 90% of codex. If you want the extra 10%, let me know. And I will happily make an advanced version for those of you that are devs and are kind of past some of the beginner stuff that I showed here. Anyways, I hope you enjoyed. If you did leave a like subscribe and I will see you in the next one. Now let's get started.