{"id":463090,"date":"2025-06-12T21:00:19","date_gmt":"2025-06-12T21:00:19","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=463090"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=463090","title":{"rendered":"<span>OpenAI Codex: A Software Engineering Agent<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>A few weeks ago, OpenAI announced that Codex is available for Plus users, and I didn\u2019t miss a chance to try it. And today, I\u2019m excited to share a guide to OpenAI\u2019s Codex. As a developer, I\u2019ve found it to be a powerful and practical tool.<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/3f1\/3b5\/15f\/3f13b515f7c10ad232c9e126a2386e9d.png\" alt=\"OpenAI Codex Explained\" title=\"OpenAI Codex Explained\" width=\"700\" height=\"334\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/3f1\/3b5\/15f\/3f13b515f7c10ad232c9e126a2386e9d.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/3f1\/3b5\/15f\/3f13b515f7c10ad232c9e126a2386e9d.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>OpenAI Codex Explained<\/figcaption><\/div>\n<\/figure>\n<h2>What is OpenAI Codex?<\/h2>\n<p>OpenAI Codex is an AI model that turns your plain English instructions into code. It supports dozens of programming languages (including Python, JavaScript, Go, Ruby, and more) and is powerful enough to understand and generate code in those languages. In essence, if you describe a programming task or ask a question about code, Codex will try to produce a helpful answer in the form of code or an explanation.<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/0f2\/797\/0f2\/0f27970f2faa1eb9a907276bcdd17892.png\" width=\"700\" height=\"303\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/0f2\/797\/0f2\/0f27970f2faa1eb9a907276bcdd17892.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/0f2\/797\/0f2\/0f27970f2faa1eb9a907276bcdd17892.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>It\u2019s built upon the GPT (Generative Pre-trained Transformer) family of models, specifically trained on a massive dataset of publicly available source code from GitHub and natural language text.<\/p>\n<p>However, don\u2019t confuse, Codex is not an extension for your IDE, it\u2019s a cloud-based software engineering agent that can work on multiple tasks in parallel. You connect it to your GitHub repository, give it tasks in plain English, and it goes to work. That simple! \ud83d\ude42<\/p>\n<p><strong>It can:<\/strong><\/p>\n<ol>\n<li>\n<p>Read and understand your existing codebase.<\/p>\n<\/li>\n<li>\n<p>Write new code across multiple files: Not just snippets, but actual features or fixes.<\/p>\n<\/li>\n<li>\n<p>Run tests (if you guide it or have them set up).<\/p>\n<\/li>\n<li>\n<p>Debug issues.<\/p>\n<\/li>\n<li>\n<p>Explain parts of your code.<\/p>\n<\/li>\n<li>\n<p>Propose and even draft Pull Requests directly to your GitHub repo!<\/p>\n<\/li>\n<li>\n<p>And more<\/p>\n<\/li>\n<\/ol>\n<h2>Getting Started with Codex<\/h2>\n<p>Alright, theory is nice, but let\u2019s get practical. To try Codex, you will need at least a Plus subscription for ChatGPT and a\u00a0<a href=\"https:\/\/github.com\/proflead\/\" rel=\"noopener noreferrer nofollow\">GitHub account<\/a>.<\/p>\n<p>Simply open\u00a0<a href=\"https:\/\/chatgpt.com\/codex\" rel=\"noopener noreferrer nofollow\">https:\/\/chatgpt.com\/codex<\/a>\u00a0and log in to your account.<\/p>\n<h3>Connecting your GitHub account<\/h3>\n<p><strong>The first big step is connecting your GitHub account<\/strong>. Once you click the \u201cConnect to GitHub\u201d button, you\u2019ll be redirected to GitHub to authorize OpenAI.<\/p>\n<p>GitHub will ask you what repositories you want to grant Codex access to.\u00a0<strong>You can choose:<\/strong><\/p>\n<ul>\n<li>\n<p><strong>All repositories:<\/strong>\u00a0Convenient, but think about security if you have sensitive private repos.<\/p>\n<\/li>\n<li>\n<p><strong>Only select repositories:<\/strong>\u00a0This is what I usually do. I pick the specific repo I want Codex to work on.<\/p>\n<\/li>\n<\/ul>\n<p>Once authorized, you\u2019ll be taken back to the Codex interface.<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/2ff\/bc1\/315\/2ffbc13159f13be97228bf6a2e5d78f4.png\" alt=\"Connecting your GitHub account\" title=\"Connecting your GitHub account\" width=\"700\" height=\"543\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/2ff\/bc1\/315\/2ffbc13159f13be97228bf6a2e5d78f4.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/2ff\/bc1\/315\/2ffbc13159f13be97228bf6a2e5d78f4.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>Connecting your GitHub account<\/figcaption><\/div>\n<\/figure>\n<h3>Creating an Environment<\/h3>\n<p>Codex works with \u201cenvironments.\u201d Think of an environment as a dedicated workspace for a specific repository (or a branch within it).<\/p>\n<p><strong>Select your GitHub organization and repository<\/strong>\u00a0from the dropdowns (these are populated based on the permissions you just gave).<\/p>\n<p>If you want to give Codex access to the internet, you can switch the \u201c<strong>Agent internet access<\/strong>\u201d toggle to \u201c<strong>On<\/strong>\u201d. It will use it during its setup phase, for example, to download packages. After setup, internet access is usually disabled for the actual coding task for safety.<\/p>\n<p>Then click the\u201cCreate environment\u201d button.<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/f5b\/e7b\/8df\/f5be7b8dfe4b5b7974d0851b8a44727c.png\" width=\"700\" height=\"543\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/f5b\/e7b\/8df\/f5be7b8dfe4b5b7974d0851b8a44727c.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/f5b\/e7b\/8df\/f5be7b8dfe4b5b7974d0851b8a44727c.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<h3>Giving Codex Its First Tasks<\/h3>\n<p>Once your environment is ready, you\u2019ll see a main screen with an input box labeled \u201cWhat are we coding next?\u201d This is where the magic happens! You tell Codex what to do in simple English.<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/4df\/fc6\/5ee\/4dffc65eee69d63f8e055017e93fb146.png\" width=\"700\" height=\"225\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/4df\/fc6\/5ee\/4dffc65eee69d63f8e055017e93fb146.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/4df\/fc6\/5ee\/4dffc65eee69d63f8e055017e93fb146.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p><strong>Example tasks:<\/strong><\/p>\n<ul>\n<li>\n<p>\u201cExplain the codebase to a newcomer: What is the general structure, what are the important things to know, and what are some pointers for things to learn next?\u201d<\/p>\n<\/li>\n<li>\n<p>\u201cFind and fix a bug where the jump search algorithm doesn\u2019t handle empty arrays.\u201d<\/p>\n<\/li>\n<li>\n<p>\u201cAdd a web interface for my algorithms repository so I can run the sorting algorithms from a browser.\u201d<\/p>\n<\/li>\n<li>\n<p>Etc<\/p>\n<\/li>\n<\/ul>\n<p><strong>To get the best out of Codex simply follow these simple rules:<\/strong><\/p>\n<ul>\n<li>\n<p><strong>Be Clear and Specific (but not\u00a0<em>too<\/em>\u00a0verbose):\u00a0<\/strong>\u201cRefactor the userService.js file to use async\/await instead of promises for all database calls.\u201d<\/p>\n<\/li>\n<li>\n<p><strong>Break Down Complex Tasks:<\/strong>\u00a0If you want it to build a whole new app, that\u2019s probably too much for one prompt. Start with smaller, manageable chunks.<\/p>\n<\/li>\n<li>\n<p><strong>\u201cCode\u201d and \u201cAsk\u201d Modes:<\/strong>\u00a0<strong>Code:<\/strong>\u00a0You want Codex to make changes to files.\u00a0<strong>Ask:<\/strong>\u00a0You want Codex to explain something or answer questions about the codebase without making changes.<\/p>\n<\/li>\n<\/ul>\n<h3>Reviewing What Codex Did: The Diff and the PR<\/h3>\n<p>You\u2019ll see a list of tasks. Codex will show its progress: \u201cStarting container,\u201d \u201cDownloading repo,\u201d \u201cReading <a href=\"http:\/\/AGENTS.md\" rel=\"noopener noreferrer nofollow\">AGENTS.md<\/a>\u201d (if you have one \u2014 more on that later!), \u201cExploring files,\u201d \u201cThinking,\u201d \u201cRunning a command,\u201d etc.<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/b26\/51b\/246\/b2651b246539ffb5508fb9ded7166460.png\" alt=\"Reviewing What Codex Did\" title=\"Reviewing What Codex Did\" width=\"700\" height=\"545\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/b26\/51b\/246\/b2651b246539ffb5508fb9ded7166460.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/b26\/51b\/246\/b2651b246539ffb5508fb9ded7166460.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>Reviewing What Codex Did<\/figcaption><\/div>\n<\/figure>\n<p>Reviewing is super important. Codex is an agent, not a perfect oracle. You must review its work.<\/p>\n<p>Once a task is done, you\u2019ll usually get a notification or see the status update.<\/p>\n<p>Clicking on a completed task often shows you a \u201cdiff\u201d \u2014 what lines were added (green), what lines were removed (red), just like in a Git diff. This is your first line of defense.<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/ae0\/285\/aa4\/ae0285aa484e8807f134652ff7121a1b.png\" alt=\"Codex diff\" title=\"Codex diff\" width=\"700\" height=\"328\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/ae0\/285\/aa4\/ae0285aa484e8807f134652ff7121a1b.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/ae0\/285\/aa4\/ae0285aa484e8807f134652ff7121a1b.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>Codex diff<\/figcaption><\/div>\n<\/figure>\n<p>There\u2019s usually a \u201cLogs\u201d tab where you can see the step-by-step actions Codex took, commands it ran, and its thought process. This is invaluable for debugging if something went wrong or understanding\u00a0<em>why<\/em>\u00a0it made certain choices.<\/p>\n<h3>Creating a Pull Request:<\/h3>\n<p>If you\u2019re happy with the changes, there\u2019s often a \u201cCreate Pull Request\u201d button right in the Codex interface.<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/841\/daf\/dfb\/841dafdfb35ec6189639f07c93640afa.png\" width=\"700\" height=\"418\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/841\/daf\/dfb\/841dafdfb35ec6189639f07c93640afa.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/841\/daf\/dfb\/841dafdfb35ec6189639f07c93640afa.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>This will create a new branch in your GitHub repo with Codex\u2019s changes and open a PR for you! It even tries to write a decent PR description.<\/p>\n<p>From there, it\u2019s your standard GitHub workflow: review, comment, request changes (you might ask Codex to iterate!), and eventually merge.<\/p>\n<p>For more examples, please watch my video tutorial.<\/p>\n<h2>ChatGPT Codex Tutorial<\/h2>\n<p>In my video tutorial, I\u2019ll take you through all the steps from start to finish.<\/p>\n<div class=\"tm-iframe_temp\" data-src=\"https:\/\/embedd.srv.habr.com\/iframe\/684ae7ff31d93df5d21f796d\" data-style=\"\" id=\"684ae7ff31d93df5d21f796d\" width=\"\"><\/div>\n<p><em>Watch on YouTube:\u00a0<\/em><a href=\"https:\/\/youtu.be\/77SXm9Y_9ow?si=-HU6gCi70kRAixM1\" rel=\"noopener noreferrer nofollow\"><em>Codex OpenAI Agent Tutorial<\/em><\/a><\/p>\n<h2>Conclusion<\/h2>\n<p>The ability to delegate entire chunks of work to an AI that understands the context of your whole project is incredibly powerful. It won\u2019t replace developers, but it will change how we develop. It can handle a lot of the boilerplate, the initial scaffolding, or even complex refactoring tasks, freeing us up to focus on the harder architectural problems and more creative aspects of software engineering. I\u2019ll continue playing with it and see if it becomes my everyday tool.<\/p>\n<p>Please let me know your experiences if you\u2019ve used it!<\/p>\n<p>Cheers! \ud83d\ude42<\/p>\n<p><em>src:\u00a0<\/em><a href=\"https:\/\/proflead.dev\/posts\/openai-chatgpt-codex-tutorial\/\" rel=\"noopener noreferrer nofollow\"><em>https:\/\/proflead.dev\/posts\/openai-chatgpt-codex-tutorial\/<\/em><\/a><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/918002\/\"> https:\/\/habr.com\/ru\/articles\/918002\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>A few weeks ago, OpenAI announced that Codex is available for Plus users, and I didn\u2019t miss a chance to try it. And today, I\u2019m excited to share a guide to OpenAI\u2019s Codex. As a developer, I\u2019ve found it to be a powerful and practical tool.<\/p>\n<figure class=\"full-width\">\n<div><figcaption>OpenAI Codex Explained<\/figcaption><\/div>\n<\/figure>\n<h2>What is OpenAI Codex?<\/h2>\n<p>OpenAI Codex is an AI model that turns your plain English instructions into code. It supports dozens of programming languages (including Python, JavaScript, Go, Ruby, and more) and is powerful enough to understand and generate code in those languages. In essence, if you describe a programming task or ask a question about code, Codex will try to produce a helpful answer in the form of code or an explanation.<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>It\u2019s built upon the GPT (Generative Pre-trained Transformer) family of models, specifically trained on a massive dataset of publicly available source code from GitHub and natural language text.<\/p>\n<p>However, don\u2019t confuse, Codex is not an extension for your IDE, it\u2019s a cloud-based software engineering agent that can work on multiple tasks in parallel. You connect it to your GitHub repository, give it tasks in plain English, and it goes to work. That simple! \ud83d\ude42<\/p>\n<p><strong>It can:<\/strong><\/p>\n<ol>\n<li>\n<p>Read and understand your existing codebase.<\/p>\n<\/li>\n<li>\n<p>Write new code across multiple files: Not just snippets, but actual features or fixes.<\/p>\n<\/li>\n<li>\n<p>Run tests (if you guide it or have them set up).<\/p>\n<\/li>\n<li>\n<p>Debug issues.<\/p>\n<\/li>\n<li>\n<p>Explain parts of your code.<\/p>\n<\/li>\n<li>\n<p>Propose and even draft Pull Requests directly to your GitHub repo!<\/p>\n<\/li>\n<li>\n<p>And more<\/p>\n<\/li>\n<\/ol>\n<h2>Getting Started with Codex<\/h2>\n<p>Alright, theory is nice, but let\u2019s get practical. To try Codex, you will need at least a Plus subscription for ChatGPT and a\u00a0<a href=\"https:\/\/github.com\/proflead\/\" rel=\"noopener noreferrer nofollow\">GitHub account<\/a>.<\/p>\n<p>Simply open\u00a0<a href=\"https:\/\/chatgpt.com\/codex\" rel=\"noopener noreferrer nofollow\">https:\/\/chatgpt.com\/codex<\/a>\u00a0and log in to your account.<\/p>\n<h3>Connecting your GitHub account<\/h3>\n<p><strong>The first big step is connecting your GitHub account<\/strong>. Once you click the \u201cConnect to GitHub\u201d button, you\u2019ll be redirected to GitHub to authorize OpenAI.<\/p>\n<p>GitHub will ask you what repositories you want to grant Codex access to.\u00a0<strong>You can choose:<\/strong><\/p>\n<ul>\n<li>\n<p><strong>All repositories:<\/strong>\u00a0Convenient, but think about security if you have sensitive private repos.<\/p>\n<\/li>\n<li>\n<p><strong>Only select repositories:<\/strong>\u00a0This is what I usually do. I pick the specific repo I want Codex to work on.<\/p>\n<\/li>\n<\/ul>\n<p>Once authorized, you\u2019ll be taken back to the Codex interface.<\/p>\n<figure class=\"full-width\">\n<div><figcaption>Connecting your GitHub account<\/figcaption><\/div>\n<\/figure>\n<h3>Creating an Environment<\/h3>\n<p>Codex works with \u201cenvironments.\u201d Think of an environment as a dedicated workspace for a specific repository (or a branch within it).<\/p>\n<p><strong>Select your GitHub organization and repository<\/strong>\u00a0from the dropdowns (these are populated based on the permissions you just gave).<\/p>\n<p>If you want to give Codex access to the internet, you can switch the \u201c<strong>Agent internet access<\/strong>\u201d toggle to \u201c<strong>On<\/strong>\u201d. It will use it during its setup phase, for example, to download packages. After setup, internet access is usually disabled for the actual coding task for safety.<\/p>\n<p>Then click the\u201cCreate environment\u201d button.<\/p>\n<figure class=\"full-width\"><\/figure>\n<h3>Giving Codex Its First Tasks<\/h3>\n<p>Once your environment is ready, you\u2019ll see a main screen with an input box labeled \u201cWhat are we coding next?\u201d This is where the magic happens! You tell Codex what to do in simple English.<\/p>\n<figure class=\"full-width\"><\/figure>\n<p><strong>Example tasks:<\/strong><\/p>\n<ul>\n<li>\n<p>\u201cExplain the codebase to a newcomer: What is the general structure, what are the important things to know, and what are some pointers for things to learn next?\u201d<\/p>\n<\/li>\n<li>\n<p>\u201cFind and fix a bug where the jump search algorithm doesn\u2019t handle empty arrays.\u201d<\/p>\n<\/li>\n<li>\n<p>\u201cAdd a web interface for my algorithms repository so I can run the sorting algorithms from a browser.\u201d<\/p>\n<\/li>\n<li>\n<p>Etc<\/p>\n<\/li>\n<\/ul>\n<p><strong>To get the best out of Codex simply follow these simple rules:<\/strong><\/p>\n<ul>\n<li>\n<p><strong>Be Clear and Specific (but not\u00a0<em>too<\/em>\u00a0verbose):\u00a0<\/strong>\u201cRefactor the userService.js file to use async\/await instead of promises for all database calls.\u201d<\/p>\n<\/li>\n<li>\n<p><strong>Break Down Complex Tasks:<\/strong>\u00a0If you want it to build a whole new app, that\u2019s probably too much for one prompt. Start with smaller, manageable chunks.<\/p>\n<\/li>\n<li>\n<p><strong>\u201cCode\u201d and \u201cAsk\u201d Modes:<\/strong>\u00a0<strong>Code:<\/strong>\u00a0You want Codex to make changes to files.\u00a0<strong>Ask:<\/strong>\u00a0You want Codex to explain something or answer questions about the codebase without making changes.<\/p>\n<\/li>\n<\/ul>\n<h3>Reviewing What Codex Did: The Diff and the PR<\/h3>\n<p>You\u2019ll see a list of tasks. Codex will show its progress: \u201cStarting container,\u201d \u201cDownloading repo,\u201d \u201cReading <a href=\"http:\/\/AGENTS.md\" rel=\"noopener noreferrer nofollow\">AGENTS.md<\/a>\u201d (if you have one \u2014 more on that later!), \u201cExploring files,\u201d \u201cThinking,\u201d \u201cRunning a command,\u201d etc.<\/p>\n<figure class=\"full-width\">\n<div><figcaption>Reviewing What Codex Did<\/figcaption><\/div>\n<\/figure>\n<p>Reviewing is super important. Codex is an agent, not a perfect oracle. You must review its work.<\/p>\n<p>Once a task is done, you\u2019ll usually get a notification or see the status update.<\/p>\n<p>Clicking on a completed task often shows you a \u201cdiff\u201d \u2014 what lines were added (green), what lines were removed (red), just like in a Git diff. This is your first line of defense.<\/p>\n<figure class=\"full-width\">\n<div><figcaption>Codex diff<\/figcaption><\/div>\n<\/figure>\n<p>There\u2019s usually a \u201cLogs\u201d tab where you can see the step-by-step actions Codex took, commands it ran, and its thought process. This is invaluable for debugging if something went wrong or understanding\u00a0<em>why<\/em>\u00a0it made certain choices.<\/p>\n<h3>Creating a Pull Request:<\/h3>\n<p>If you\u2019re happy with the changes, there\u2019s often a \u201cCreate Pull Request\u201d button right in the Codex interface.<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>This will create a new branch in your GitHub repo with Codex\u2019s changes and open a PR for you! It even tries to write a decent PR description.<\/p>\n<p>From there, it\u2019s your standard GitHub workflow: review, comment, request changes (you might ask Codex to iterate!), and eventually merge.<\/p>\n<p>For more examples, please watch my video tutorial.<\/p>\n<h2>ChatGPT Codex Tutorial<\/h2>\n<p>In my video tutorial, I\u2019ll take you through all the steps from start to finish.<\/p>\n<div class=\"tm-iframe_temp\" data-src=\"https:\/\/embedd.srv.habr.com\/iframe\/684ae7ff31d93df5d21f796d\" data-style=\"\" id=\"684ae7ff31d93df5d21f796d\" width=\"\"><\/div>\n<p><em>Watch on YouTube:\u00a0<\/em><a href=\"https:\/\/youtu.be\/77SXm9Y_9ow?si=-HU6gCi70kRAixM1\" rel=\"noopener noreferrer nofollow\"><em>Codex OpenAI Agent Tutorial<\/em><\/a><\/p>\n<h2>Conclusion<\/h2>\n<p>The ability to delegate entire chunks of work to an AI that understands the context of your whole project is incredibly powerful. It won\u2019t replace developers, but it will change how we develop. It can handle a lot of the boilerplate, the initial scaffolding, or even complex refactoring tasks, freeing us up to focus on the harder architectural problems and more creative aspects of software engineering. I\u2019ll continue playing with it and see if it becomes my everyday tool.<\/p>\n<p>Please let me know your experiences if you\u2019ve used it!<\/p>\n<p>Cheers! \ud83d\ude42<\/p>\n<p><em>src:\u00a0<\/em><a href=\"https:\/\/proflead.dev\/posts\/openai-chatgpt-codex-tutorial\/\" rel=\"noopener noreferrer nofollow\"><em>https:\/\/proflead.dev\/posts\/openai-chatgpt-codex-tutorial\/<\/em><\/a><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/918002\/\"> https:\/\/habr.com\/ru\/articles\/918002\/<\/a><br \/><\/br><\/br><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-463090","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/463090","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=463090"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/463090\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=463090"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=463090"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=463090"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}