YouTube2Text

OpenAI Codex Complete Tutorial — Transcript

by Telusko · 33,289 words · 4,434 segments · language en · Watch on YouTube

Full transcript

  1. 0:00Hi everyone, my name is On Paria and in
  2. 0:02this complete oneshot video we will talk
  3. 0:04about Codeex. So whether you have used
  4. 0:06Codex before or you are completely new
  5. 0:08to Codeex, this video will help you out
  6. 0:11because we are going to start everything
  7. 0:13from scratch to building our own
  8. 0:15fullstack application using Codeex. So
  9. 0:18with that note let's get started.
  10. 0:22So what is Codeex? See we already know
  11. 0:24that when Chat JD was launched in 2022,
  12. 0:27people used it so aggressively. Not
  13. 0:29because it was something new but because
  14. 0:32it gives them in-person feel. They
  15. 0:34actually feel like that there's someone
  16. 0:36who chatting with them and solving their
  17. 0:38queries based on their questions and
  18. 0:41whatever the response it generate they
  19. 0:43just copy and paste it wherever they
  20. 0:45want to use and even most of the people
  21. 0:47consume AI for the very first time
  22. 0:49because of chat GPD although AI was
  23. 0:51available way back but they were not
  24. 0:53aware about it. And for this type of AI
  25. 0:56workflow, we got the term in AI which is
  26. 0:58known as generative AI. But now in 2026,
  27. 1:02things has changed. AI has evolved a
  28. 1:04lot. This time it's not only about
  29. 1:06generating the response but also letting
  30. 1:09the AI to do the task on the behalf of
  31. 1:11you and also parallelly with you. And
  32. 1:13for these type of capabilities in AI, we
  33. 1:16call it them as AI agents. And Codex is
  34. 1:20one of the AI agent which is built by
  35. 1:22OpenAI. And there are some other AI
  36. 1:23agents also available like we have cloud
  37. 1:26code from anthropic and we have replet
  38. 1:28bolt new and others and all the main
  39. 1:31purpose of this AI agents to do the task
  40. 1:34whatever the instructions you have given
  41. 1:35to it. Now just like we humans when we
  42. 1:37do any task how we actually perform that
  43. 1:39task we first do planning in our mind
  44. 1:41that we gather all the resources that
  45. 1:43are required to take action for that
  46. 1:45task and once we done all the planning
  47. 1:47we start executing it with the help of
  48. 1:49actions. Same like that these agents
  49. 1:52work. So this agents works on these
  50. 1:54three principle. First one is reasoning
  51. 1:57where does the planning and thinking
  52. 1:58based on the task you have given then it
  53. 2:01will do act. Now when it comes to act,
  54. 2:03it actually acts with the help of tools.
  55. 2:05But now what is tools? See tools are
  56. 2:08some external set of programs or
  57. 2:10instructions which help AI agents to get
  58. 2:12the resources outside of your
  59. 2:14environment. Now what does that mean?
  60. 2:15Suppose you are using codeex inside your
  61. 2:17project and inside the project you want
  62. 2:20your codeex to get access to the API
  63. 2:22which is a part of internet. So to get
  64. 2:24access to that API how will it get
  65. 2:26access? It will get access with the help
  66. 2:28of tools. And now it's not only limited
  67. 2:30to the API although if you want to
  68. 2:32access to any file from your project and
  69. 2:34want to edit any code inside that all
  70. 2:36those things will be done with the help
  71. 2:37of tools. In short, tools give the
  72. 2:40capabilities to AI agents to get access
  73. 2:42to that particular thing which is
  74. 2:44required for the task. So it will act
  75. 2:47based on the tools. And now the next
  76. 2:49thing is access memory. So just like we
  77. 2:52human store the things in our mind so
  78. 2:54that later on if you want to do the same
  79. 2:56task again, we do not start everything
  80. 2:58from a scratch. Instead we will get it
  81. 3:01from our memory and then execute it.
  82. 3:03Same like that the AI agents also have
  83. 3:06short-term and long-term memory based on
  84. 3:08the task we have given and later on if
  85. 3:10the same task you want to do it again it
  86. 3:12will do it from its memory instead of
  87. 3:14starting everything from a scratch and
  88. 3:16this reasoning and act we together call
  89. 3:18them as react which basically means
  90. 3:21planning and then taking actions now if
  91. 3:23you want to show the entire workflow of
  92. 3:24AI agents with the help of an example so
  93. 3:27suppose a user ask a question which says
  94. 3:29what's the weather in my city now when
  95. 3:31user ask these type of questions
  96. 3:32The first thing AI agents will do, it
  97. 3:34will do the planning. It will first see
  98. 3:37users didn't specify the city. All the
  99. 3:39plannings it will do. It will see that
  100. 3:41my city determine users locations, need
  101. 3:43weather informations and then plan what
  102. 3:46is the plan. Now here find locations
  103. 3:48fetch weather and summarize the result.
  104. 3:50So these are the planning or the
  105. 3:52thinking your AI agents will do. And
  106. 3:54once this is complete, it will start
  107. 3:56taking an action. Now the first thing is
  108. 3:58that it needs a location of your city
  109. 4:01otherwise how will it get to know the
  110. 4:02weather of it. So it will take the help
  111. 4:04of tool as we discussed before that act
  112. 4:07basically takes the help of tools
  113. 4:09through which it will get access to the
  114. 4:10external resources. So here also it will
  115. 4:13take the help of location tool and it
  116. 4:15will observe that location is XY Z or
  117. 4:19name of the city in India and once it is
  118. 4:21done it will reason again. Now planning
  119. 4:24is required because first we need to
  120. 4:26fetch the location and once that agent
  121. 4:28is done it will now know the city it
  122. 4:31will now fetch the current weather. So
  123. 4:33again action take and here it will call
  124. 4:36weather API and again once the weather
  125. 4:38API get fetched it will do the 34° C
  126. 4:41partially cloud humidity 58%. So this is
  127. 4:44the response it generate for you and
  128. 4:46this is your final result in the form of
  129. 4:48natural language answer and you got the
  130. 4:50response. So this is how the entire AI
  131. 4:52agents actually work and not only with
  132. 4:53the codeex but all the AI agents works
  133. 4:55in the same principle. Now the flow I
  134. 4:57have shown you here it's just a win-win
  135. 4:59flow means everything works successfully
  136. 5:01here but in case if anything gets failed
  137. 5:04in between let's say when it doing the
  138. 5:06action for the calling the weather API
  139. 5:08and in between the weather API gets
  140. 5:10failed due to some catastrophic events
  141. 5:12let's say a network issue or some uh
  142. 5:14HTTPS code whatever the reason if it get
  143. 5:17failed then what will happen it will run
  144. 5:20the loop again it will again do the
  145. 5:22planning just like it does here for the
  146. 5:24planning same if any error occurs in
  147. 5:26between it will do the same thing again
  148. 5:28and that we call them as agentic loop
  149. 5:30means if any error comes in between we
  150. 5:33don't have to uh put the error again
  151. 5:35back to it and then ask that solve this
  152. 5:37error instead it will look at the result
  153. 5:39and based on that it will do the things
  154. 5:41again until it receive the final output
  155. 5:44for us based on our query so this is how
  156. 5:46the AI agents work now if we talk about
  157. 5:48the codeex particularly then codex is
  158. 5:51not only limited to the software
  159. 5:52engineering field that means you are not
  160. 5:54going to use codeex for instruction
  161. 5:56based on your codebase. Even though if
  162. 5:58you are a non-technical person and you
  163. 6:00want the codeex to do some task for your
  164. 6:03work, let's say you want to send email
  165. 6:05to that particular email address through
  166. 6:07your Gmail app and want to send
  167. 6:09particular subject at that time also
  168. 6:11codeex will work there and even though
  169. 6:13if you want to execute the codeex to the
  170. 6:15particular app in your computer then
  171. 6:17also your codeex will work there but the
  172. 6:20thing is that the main purpose of codeex
  173. 6:22is to design or trained in a software
  174. 6:25engineering field that's why openi
  175. 6:27basically use JPD 5.5 5.4 models which
  176. 6:30has specifically trained in software
  177. 6:32engineering field. So it's a win
  178. 6:34situation for people who are using it
  179. 6:36codex for the developer point of view
  180. 6:37but for the nontechnical person it will
  181. 6:39work but not up to the mark or not up to
  182. 6:42the desired output. So that's all about
  183. 6:43the codex. I hope you get the clear
  184. 6:45picture what is codex and how this
  185. 6:47codeex AI agents actually works.
  186. 6:51So as we discussed now that just like
  187. 6:52Codex there are bunch of agents out
  188. 6:54there like cloud code, cursor, copilot
  189. 6:57and few more and when we start exploring
  190. 7:00them only one thing keeps increasing and
  191. 7:02that is confusion. We feel like that why
  192. 7:05all these agents available when they all
  193. 7:07works on the same principle like first
  194. 7:09they do planning then taking actions and
  195. 7:12then storing in the memory for
  196. 7:13reference. See the thing is that
  197. 7:16although these all agents work on the
  198. 7:17same principle there is something which
  199. 7:19makes them different not in terms of
  200. 7:21feature because that of course remains
  201. 7:23same in them but in terms of personality
  202. 7:26while it doing the actions. See there
  203. 7:28are some agents who work on the fast
  204. 7:30environment means as soon as you give
  205. 7:32them the task they do not spend much
  206. 7:34time in reasoning and planning instead
  207. 7:36they start taking action as soon as
  208. 7:38possible. And even though there are some
  209. 7:40agents who works on the local
  210. 7:42environment while there are some agents
  211. 7:44who works on cloud environment too. So
  212. 7:46if we talk about specifically to codeex
  213. 7:48it comes under the fast agent category
  214. 7:50with cloud environment. That means if
  215. 7:53you have given some task with the codeex
  216. 7:55it will take actions without doing much
  217. 7:57research and planning. Now while it do
  218. 7:59so it comes with advantages and
  219. 8:01disadvantages. Now the disadvantage is
  220. 8:04that the output it will generate will
  221. 8:05not up to the mark. It requires more
  222. 8:07iteration to fix the error that it has
  223. 8:09generated in the output. And the reason
  224. 8:11for that is that because it has not
  225. 8:13spent much time in reasoning. It just
  226. 8:15take the actions based on your task as
  227. 8:17soon as possible. But the good part is
  228. 8:19that it will use less token. And the
  229. 8:21reason of using it the less token is
  230. 8:23that because it has not spent much time
  231. 8:25in reasoning. It just take the actions
  232. 8:27based on your task as soon as you have
  233. 8:29given them. Now in the whole room of
  234. 8:32this agents there are two everyone keeps
  235. 8:34comparing and that is codeex and clot
  236. 8:36code and I think their comparison makes
  237. 8:38sense also because if you have ever used
  238. 8:40cloud code before you know how powerful
  239. 8:42it is when it comes to coding and the
  240. 8:44reason of it for being so powerful is
  241. 8:46because it takes more time in planning
  242. 8:49before taking an action and because of
  243. 8:51that the output it will generate will be
  244. 8:53perfect in the one go itself but it
  245. 8:55doesn't mean that you should blindly
  246. 8:56follow cloud code over codecs because
  247. 8:58there are some other factors that you
  248. 9:00need to keep in mind when you are using
  249. 9:01the clot code. It will give you the
  250. 9:03output for sure which is better than
  251. 9:05codeex but it will also use more tokens.
  252. 9:08So if budget is not your concern and you
  253. 9:10are happy with the token usage limit,
  254. 9:12you can definitely go with a clot code.
  255. 9:14But if you could ask me that which one
  256. 9:16is better then I would say no one
  257. 9:19because the question is not which one is
  258. 9:21better or which one is not. The question
  259. 9:23is which one you should prefer based on
  260. 9:25your workflow. See if you think that
  261. 9:27your task requires a less token and
  262. 9:29requires a less planning you can go with
  263. 9:31a codeex to save your tokens. But if
  264. 9:33your task is complex and requires a more
  265. 9:35planning and your output is your
  266. 9:37concern, you can definitely go with the
  267. 9:39cloud code. So decide based on your task
  268. 9:41not based on the performance. So
  269. 9:43although these agents keeps improving
  270. 9:45day by day. So maybe today cloud code is
  271. 9:47better but tomorrow it will be codeex.
  272. 9:49So keep an eye on these agents and based
  273. 9:51on the performance and your workflow you
  274. 9:54should decide which agents you should go
  275. 9:56with. So I hope it is clear to you that
  276. 9:57which agent you should choose while
  277. 9:59giving it to the task.
  278. 10:02So only one last thing is left before we
  279. 10:03start exploring codeex and that is
  280. 10:05understanding its pricing and usage
  281. 10:07limit and it's important to know
  282. 10:09otherwise if a codex stop working in the
  283. 10:11middle of any session you might come
  284. 10:12back and blame me for not explaining how
  285. 10:15Codex usage limit actually works. Jokes
  286. 10:17apart. See basically codeex uses are
  287. 10:19divided into two categories. One is
  288. 10:21subscription based and another one is AP
  289. 10:24based and even we can use codeex for
  290. 10:26free also and later on once we
  291. 10:27understand our requirement we can
  292. 10:29explore any one of these category. So as
  293. 10:31you can see here if you're using codex
  294. 10:32for the lightweight coding task you can
  295. 10:34go with a$18 per month plan with co but
  296. 10:36if you're using codex with extra
  297. 10:38features with the latest model like GPD
  298. 10:405.5 GBD 5.4 four and you also want the
  299. 10:42chipity other features like image
  300. 10:44generation model and video generation
  301. 10:46you can go with the plus plan with $120
  302. 10:48per month and people mostly prefer this
  303. 10:50one because it is affordable and it is
  304. 10:52also more than enough for day-to-day
  305. 10:54task but if you are using codex for more
  306. 10:56than one people then pro plan makes
  307. 10:58sense here with $100 per month but if
  308. 11:01you are not happy with this subscription
  309. 11:03based method where you have to pay the
  310. 11:04specific amount every month then you can
  311. 11:06also explore the API based method where
  312. 11:09you will only pay for the token you will
  313. 11:11consume while using the codeex. Now once
  314. 11:13we understand this pricing then let's
  315. 11:15also see about usage limit. So as you
  316. 11:17can see on the screen previously codex
  317. 11:19keeps the track how much we have used it
  318. 11:21based on the message we have sent to it
  319. 11:22but later in April 2026 it has not
  320. 11:25changed instead of keeping it based on
  321. 11:27the messages they keeps it based on how
  322. 11:29many tokens we have consumed. And if we
  323. 11:31talk about the usage limit in codeex
  324. 11:33then they basically shares a fiveour
  325. 11:35rolling window limit and the weekly
  326. 11:36limit. So let's say if you have consumed
  327. 11:38your entire token within that 5 hour
  328. 11:39window limit then your token will start
  329. 11:41getting reset after 5 hours and the
  330. 11:43token that you will receive after that 5
  331. 11:45hours will be in the rolling window
  332. 11:46manner or we can say that in the sliding
  333. 11:48window manner. Now what this basically
  334. 11:50mean so after 5 hours you will receive
  335. 11:51only those tokens that you have consumed
  336. 11:54exactly 5 hours ago from that time
  337. 11:55period. Okay, I know this sounds
  338. 11:57confusing. So let's take an examples to
  339. 11:58make it more clear. So suppose within a
  340. 12:015 hours budget you have 100% token and
  341. 12:04you have start using codex at 9:00 a.m.
  342. 12:06where you have done the heavy coding
  343. 12:07sessions and you have used 60% of token.
  344. 12:10Now once you use the 60% token then only
  345. 12:1240% will left out of 100. Now let's say
  346. 12:14at 10:30 a.m. you again use codeex and
  347. 12:17you have consumed next 20%. So total 80%
  348. 12:20you have consumed out of 100%. And now
  349. 12:22only 20% is left. Now what will happen
  350. 12:25at 2 p.m. your 60% token will get rolls
  351. 12:28off because that token you have used
  352. 12:30exactly 5 hours ago at 9:00 a.m. So that
  353. 12:3360% will comes back to you and the 20%
  354. 12:36which is left previously 5 hours window
  355. 12:38limit will also sum up in your 60% token
  356. 12:41limit. So total you will get 80% token
  357. 12:43limit at 2 p.m. And then at 3:30 p.m.
  358. 12:46your 20% will also get rolled off that
  359. 12:48you have used at 10:30 a.m. because from
  360. 12:5010:30 a.m. to 3:30 a.m. that 5 hours
  361. 12:53window period also completed. So that
  362. 12:54token will also get rolls off and
  363. 12:56totally you will get 100 tokens limit.
  364. 12:58So you don't have to wait exactly after
  365. 13:005 hours to get your token limit reset.
  366. 13:02It will gradually keeps resetting within
  367. 13:04that 5 hours window limit. Now as I told
  368. 13:06you before that it is not only based on
  369. 13:07the five hour rolling window but also
  370. 13:09the weekly limit which basically means
  371. 13:11that how much token you have consumed
  372. 13:13across that week and you need to also
  373. 13:15make sure that you have enough token in
  374. 13:17that weekly limit otherwise if your
  375. 13:18weekly limit get exhausted then you have
  376. 13:20to wait for the weekly limit get reset
  377. 13:22even though your 5 hour window limit has
  378. 13:24recovered. So it's very important to
  379. 13:26make sure that your weekly limit and
  380. 13:27your five hour rolling window limit both
  381. 13:29has token so that you can continue using
  382. 13:31codeex. Now once we understood how codex
  383. 13:33usage limit actually works. The next
  384. 13:35question comes how we can actually keep
  385. 13:37a track that how many tokens we have
  386. 13:38consumed during session. See in codex
  387. 13:41there is no any built-in system where it
  388. 13:42wants or alerts you when you are about
  389. 13:44to reach the codex limit. But there are
  390. 13:46some ways through which you manually get
  391. 13:48to know that how many tokens you have
  392. 13:49consumed and rest of the information
  393. 13:51about your token limits. So the one way
  394. 13:52of getting the information about this is
  395. 13:54going to the open platform and here you
  396. 13:56can go to the usage section and here you
  397. 13:58will find all the details about overall
  398. 14:00usage and the consumption of your
  399. 14:02tokens. As you can see here I have a
  400. 14:03$120 credits and out of them I have used
  401. 14:06$2.15
  402. 14:08in July and total I have spent $3.18. So
  403. 14:11you can get all those details here. And
  404. 14:13the next way of getting is throw a
  405. 14:15command which is a status command in
  406. 14:17Codex CLI. I'll discuss about this
  407. 14:18command later in the video also. But if
  408. 14:20you use this command then you will get
  409. 14:22the current snapshot of the tokens that
  410. 14:24have used so far. So once you type this
  411. 14:26command it will let you know that how
  412. 14:28many tokens you have used what is the
  413. 14:29your weekly limit has been reached and
  414. 14:31rest of the informations as a current
  415. 14:33snapshot. But if you want a more
  416. 14:34real-time information and in a more
  417. 14:36convenient way then you can use a third
  418. 14:38party tool also but again they are not
  419. 14:40free. You have to pay a onetime
  420. 14:41subscription and one of the tool is
  421. 14:43session watcher which is basically for
  422. 14:44codeex only and only available in Mac
  423. 14:47OS. If you use that tool then it will
  424. 14:49give you the real-time alerts as well as
  425. 14:50all the informations about how much you
  426. 14:52have used the tokens and rest of the
  427. 14:54details. As you can see on the monitor
  428. 14:55also that how it can shows all the
  429. 14:57informations about your token usage and
  430. 14:59the weekly limits. So these are all the
  431. 15:00ways through which you can get to know
  432. 15:02about the codeex pricing and the usage
  433. 15:04limit and how you can monitor it.
  434. 15:07Now there are multiple ways of using
  435. 15:09codeex. We can use it directly through
  436. 15:10codeex app run it as a CLI tool
  437. 15:13integrate it into our ID as an extension
  438. 15:15or we can use directly in the cloud. So
  439. 15:17explore all these approaches one by one
  440. 15:18and later when we dive deeper into Codex
  441. 15:20concept we'll focus mainly on using
  442. 15:22Codex through CLI and ID extension
  443. 15:24because that is what we most often use
  444. 15:26while coding. So let's see the first one
  445. 15:28which is using through codex app. So go
  446. 15:30to the chatgity.com/codex
  447. 15:32and here you will find the download
  448. 15:33button. So click on this download and
  449. 15:35download it based on your operating
  450. 15:36system. And once you download and
  451. 15:38install it then this is how the
  452. 15:40application will look like on your
  453. 15:41desktop. Now although the application
  454. 15:42has a name chat GPT instead of codex
  455. 15:45because codex is a part of chat GPT
  456. 15:47only. So codex will available inside the
  457. 15:49chat GPT app. Now when you open this app
  458. 15:51for the first time it will ask you for
  459. 15:52login. So simply sign in with your chd
  460. 15:54account and once you sign in this is how
  461. 15:56the application will look like. Now
  462. 15:57let's have a quick walk through of this
  463. 15:59entire application. So as you can see
  464. 16:01the first thing we have new task. So
  465. 16:02here you can assign a task to CHGPD or
  466. 16:05the codeex and at the time it is running
  467. 16:07the task you can define a new task also
  468. 16:09which will run parallelly in the
  469. 16:11background. Although we'll come back to
  470. 16:12this part after some time where we can
  471. 16:14assign the task to codeex once we
  472. 16:15understand all the features. So if you
  473. 16:17look at the another thing which is
  474. 16:18schedule task. So if you want to
  475. 16:20schedule a task which should run at a
  476. 16:22particular time every day weekly or the
  477. 16:24custom time you can select here. Now
  478. 16:26there are two ways of creating the
  479. 16:27schedule task. You can just click on
  480. 16:28this create then you can create it with
  481. 16:30chat GPD or you can set up manually. So
  482. 16:32if I go with the setup manually option
  483. 16:34here you can schedule the task title.
  484. 16:36You can describe what chat GP should do
  485. 16:38with the task and you can just do the
  486. 16:40minimal configuration like where it
  487. 16:41should run a new task or in the existing
  488. 16:43task or in which project it should run.
  489. 16:45Then which model it should use and how
  490. 16:47much time it should take in the
  491. 16:48reasoning or planning. You can define
  492. 16:50all those things and you can also set
  493. 16:51the frequency like it should run this
  494. 16:53task on daily basis or in weekly. You
  495. 16:56can define that and at which time it
  496. 16:57should run you can define that also and
  497. 16:59once you can define it so let's say you
  498. 17:01want to get a summary of your calendar
  499. 17:02every day in the morning so you can just
  500. 17:03define a task here and then the next day
  501. 17:05when you open your chat gypty or the
  502. 17:07codeex you will automatically get the
  503. 17:08summary of your calendar which is
  504. 17:09generated by the codeex now if you look
  505. 17:12at the another feature which is plug-in
  506. 17:14so here if you want to use or give the
  507. 17:15access to the tools to codeex you can
  508. 17:17just install that particular plug-in and
  509. 17:19give it access so as you can see here I
  510. 17:21have already installed some of the
  511. 17:22plugins like documents PDF spreadsheets
  512. 17:24and presentations and rest of the tool.
  513. 17:26So just install based on your use case
  514. 17:28like notions and all. As you can see I
  515. 17:30have also installed the computer use
  516. 17:31which basically means if I want to open
  517. 17:33any application I want to give the full
  518. 17:35control to this Mac I can use the
  519. 17:37computer use plug-in which will give
  520. 17:38full access to my Mac. Now another
  521. 17:40feature is sites. Now this is very
  522. 17:42useful when you want to turn your ideas
  523. 17:43into the live website. So let's say you
  524. 17:45want to share something with your
  525. 17:46friends or with the colleagues. You can
  526. 17:48just describe your idea or build
  527. 17:49something which will automatically
  528. 17:51generated by the chat GP itself inside
  529. 17:52this codeex. So you don't have to
  530. 17:54manually go to the hosting platform
  531. 17:55where you will deploy it and generate
  532. 17:57the live URL. The jibility will take
  533. 17:59care of this and which you can share
  534. 18:00with other also. Now the another thing
  535. 18:02is pull request. So here you will review
  536. 18:04and track all the requests that you have
  537. 18:05done in your GitHub account. But you
  538. 18:07need to make sure that your GitHub CLI
  539. 18:08is set up and you have installed it in
  540. 18:10your codeex app. Now the another thing
  541. 18:12is chat. Now this is just a normal chat.
  542. 18:14It's nothing related to the codeex. So
  543. 18:15if you want to do any chat with just
  544. 18:17based on the query and the output
  545. 18:18generation, you can use the chat GPT
  546. 18:20here itself in CEX. Just open it and you
  547. 18:22can just type the chat GPD prompt here.
  548. 18:24You can just ask a query and it will
  549. 18:25generate the output for you. And all the
  550. 18:27entire chat history is available here
  551. 18:28because you're using the same account
  552. 18:30which you have login with the chat GPD.
  553. 18:32So once you understand all these feature
  554. 18:33the next thing is project section. So
  555. 18:35here you can create any project and then
  556. 18:37you can do any task inside that project
  557. 18:39or if you want to use any existing
  558. 18:41project you can select that also. As you
  559. 18:42can see here we have two options. Now
  560. 18:44the next thing is task. So if you don't
  561. 18:46want to create any project or go with
  562. 18:47any existing project, you can just
  563. 18:48simply define or assign a task to Codex
  564. 18:51which will also work here. Now after
  565. 18:52understanding all these features, let's
  566. 18:54go to the profile section also. So if
  567. 18:55you click on here, you can see here the
  568. 18:57first thing we have a usage remaining.
  569. 18:58So this will tell how much you have used
  570. 19:00CEX till now. So if you click on here,
  571. 19:02it will tell that this is your weekly
  572. 19:04limit and I have used 92% out of 100 and
  573. 19:06my weekly limit will get reset on 20
  574. 19:08July. So as we discussed before that
  575. 19:10codex is basically uh track the usage
  576. 19:12limit of your codeex based on two things
  577. 19:15which is a five hour rolling window
  578. 19:16limit as well as weekly limit. So here
  579. 19:18you will only see the weekly limit but
  580. 19:20if you want to see the token limit also
  581. 19:22then we have discussed the ways like/
  582. 19:24status command or the third party tool.
  583. 19:26So you can see from there itself. Now if
  584. 19:28you want to upgrade to pro that also
  585. 19:29option available here. Now there are one
  586. 19:31option available which is four resets.
  587. 19:33So let's say if you have already
  588. 19:35exhausted your limit before the vehicle
  589. 19:36limit reach then you can just have an
  590. 19:39option to reset the limit. As you can
  591. 19:41see here my vehicle limit will get reset
  592. 19:42on 20 July but if I reach my limit
  593. 19:44before then I have an option to reset it
  594. 19:46before 20 July also but that option is
  595. 19:48available only for the four time. So if
  596. 19:50you have used these four options also
  597. 19:52and still you want to uh reset your
  598. 19:54limit before your weekly limit then you
  599. 19:56can add more credit also. So when you
  600. 19:58click on this add credit here you can
  601. 19:59just select any one of the plan let's
  602. 20:01say $120 here you'll get a 500 credits.
  603. 20:04So you can start using codex wherever
  604. 20:05you have left off without upgrading your
  605. 20:06plan. Now the another option we have a
  606. 20:08show pad. Now this is only for the UI.
  607. 20:10So if I click on the show pad you can
  608. 20:11see this we have this cute patch
  609. 20:13available here. You can just drag and
  610. 20:15put it anywhere you want to put it just
  611. 20:17give you the information that what is
  612. 20:18currently running on your codeex uh in
  613. 20:20the form of pop-up or the tool tip. And
  614. 20:22also it looks cute here. So if you want
  615. 20:24to keep you can just keep it or if you
  616. 20:26want to hide just click on hide and it
  617. 20:28will get hide here. Now let's go to the
  618. 20:30settings also. Now in settings we have a
  619. 20:32personal option where you can uh
  620. 20:34personalize your codex based on your
  621. 20:36requirement. And here you can see the
  622. 20:37pets option also available. So as you
  623. 20:39can see right now we are using the
  624. 20:40default codex pet. But if you want to
  625. 20:42use some different pet also you can
  626. 20:43select one of them from here. Now if you
  627. 20:45look at the integration section there
  628. 20:47are four options available which is
  629. 20:48appshot. Now this is very useful because
  630. 20:50if you want to give a snapshot of any
  631. 20:53application let's say you are using
  632. 20:54chrome and you want to ask any question
  633. 20:56to that snapshot you can just take a
  634. 20:58screenshot of that and then put it to
  635. 20:59the chat GPD. Now before this appshot
  636. 21:02feature how we usually do it we just
  637. 21:04take a screenshot and then upload it
  638. 21:05from our system. But with the help of
  639. 21:07appshot you can use the shortcut command
  640. 21:09which will automatically take the
  641. 21:10screenshot and attach it to the chat.
  642. 21:12I'll show you how to do this. So you can
  643. 21:14see here it says a hot key where it will
  644. 21:16says if you use both commands in your
  645. 21:18keyword together then it will capture
  646. 21:19the screenshot and it will attach to the
  647. 21:21chat. So let me open a chrome browser
  648. 21:24here. Let's say if I want to give this
  649. 21:25screenshot to my codeex app. So I can
  650. 21:27just click my both commands together.
  651. 21:29And as you can see here as soon as I
  652. 21:31click it just capture the screenshot and
  653. 21:33automatically attached to my chat. So
  654. 21:34this is very useful and now you can ask
  655. 21:36any questions related to the chat. Let's
  656. 21:38say what is available here and how can I
  657. 21:40fix any UI like what is available here.
  658. 21:42Now let's look at another feature also.
  659. 21:44Now in appshot uh we have a appshot
  660. 21:47destination also like automatic like by
  661. 21:49default it is selected to automatically
  662. 21:50which basically means uses the current
  663. 21:51chat if you use recently otherwise it
  664. 21:53starts a new chat but if you always want
  665. 21:55your snapshot to be available in the
  666. 21:56current chat then you can select this
  667. 21:57one and if you want it to the new chat
  668. 21:59then you can select this one and then if
  669. 22:01you want to play a sound effect you can
  670. 22:02enable and disable it from here based on
  671. 22:04your preference. Now the another thing
  672. 22:05is plugins. So this is the same thing
  673. 22:07that we have seen before also it will
  674. 22:09list all the plugins that you have
  675. 22:10installed in your codeex app. Now the
  676. 22:12third one is browser. Now this is the
  677. 22:14chat GPT inbuilt browser. It will tell
  678. 22:15how you want to manage your browser like
  679. 22:17if you want to open any web URL where it
  680. 22:19should get open. It should get open
  681. 22:21inside your chat GPT app or the default
  682. 22:23browser. You can select it from here and
  683. 22:24whatever the site you will generate like
  684. 22:25the live URL it will generate that URL
  685. 22:27will get open by default inside your
  686. 22:29chat GPT browser. So you can manage how
  687. 22:31that browser should look like and what
  688. 22:32are the things available there. Now the
  689. 22:34next thing is the computer use. So this
  690. 22:36is the integration I have done. Now in
  691. 22:38the computer use I have given uh
  692. 22:39permission to my any app that means
  693. 22:41whatever the app I want to open it
  694. 22:42through my codeex app I'm able to use
  695. 22:44it. I'll show you how you can do this
  696. 22:46but as you can see I have given the
  697. 22:47permission to my all the app and the
  698. 22:49Google chrome as well Microsoft Excel
  699. 22:51PowerPoint and I can also enable this
  700. 22:52also. So if my MacBook get logged then
  701. 22:54also JJ will run the task in the
  702. 22:56background. If you look at the coding
  703. 22:58section here the first thing is hooks.
  704. 23:00Now what does it basically mean? This is
  705. 23:02basically useful to automate your work.
  706. 23:04So let's say you have given access to
  707. 23:05the one of the repository to the codeex
  708. 23:07and you want that before it take any
  709. 23:09actions to that repository it should
  710. 23:10first always run a pull command so that
  711. 23:12it will get the latest changes. So
  712. 23:14instead of manually typing all these
  713. 23:16instructions every time in the prompt
  714. 23:18you can just define a hook here which
  715. 23:19will automatically get inject at the
  716. 23:21time it will take action for that
  717. 23:22repository. Now another example also
  718. 23:24let's say uh when the task get completed
  719. 23:26inside your repository you want that it
  720. 23:28should always run a test command using
  721. 23:30the increment test. So you can create a
  722. 23:31hook for that also. That hook will
  723. 23:33automatically get injected in the task
  724. 23:35and when it gets completed. So this is
  725. 23:36basically used to automate your task.
  726. 23:38Now the another thing is connections.
  727. 23:39Now this is basically used when you want
  728. 23:41to control this Mac remotely from
  729. 23:43another devices like from your mobile
  730. 23:44phone or from the another desktop. So
  731. 23:46you can just simply click on this add
  732. 23:47button and here if you want to connect
  733. 23:49it with your mobile phone just click on
  734. 23:51this phone. It will generate the QR
  735. 23:52code. Just scan it from your mobile
  736. 23:54phone and your CEX app will get connect
  737. 23:56there. But if you want to connect it
  738. 23:57with your desktop then click on the
  739. 23:58computer button. here if it will
  740. 24:00generate the code just go to this
  741. 24:01particular path like settings
  742. 24:02connections control other devices and
  743. 24:05then enter this code then you're able to
  744. 24:06control this Mac from that device
  745. 24:08although I have tried the phone method I
  746. 24:09tried my phone to connect with this
  747. 24:11codeex app so I want to show you that so
  748. 24:13I'll just enter my password here so as
  749. 24:15you can see it says uh nan's MacBook
  750. 24:17Airloc so I've already connected it
  751. 24:19before but I don't know what's the issue
  752. 24:21it's been in the loading phase for 10
  753. 24:22minutes so maybe I need to reconnect it
  754. 24:24again or maybe restart the application
  755. 24:26but although I'm able to connect it and
  756. 24:28I am able to control my Mac from my
  757. 24:30mobile application. So in this way you
  758. 24:31can also connect your also and then you
  759. 24:33can remotely work with that. Now the
  760. 24:35another option is available here which
  761. 24:36is git. Now you can define how your git
  762. 24:39repository should work in the codeex.
  763. 24:40Let's say codex is generating any branch
  764. 24:42to that repository. So you can define
  765. 24:44that when it generate the branch and
  766. 24:45what should be the name like you can
  767. 24:46define here that it should always start
  768. 24:48with the prefix which is codex. So later
  769. 24:50you can identify that this branch is
  770. 24:51generated by the codeex. And another
  771. 24:53thing you can define that how it should
  772. 24:55merge your pull request and which method
  773. 24:56it should use. Like by default it use
  774. 24:58the merge method which basically means
  775. 25:00that merging all the commits whatever
  776. 25:02the codeex had generated. But if you
  777. 25:03want to use the squash command also then
  778. 25:05you can use that also which basically
  779. 25:06means before merging all the commit it
  780. 25:09will first generate a single commit
  781. 25:10which is a clean commit then it will
  782. 25:12merge. I basically prefer the squares
  783. 25:13command because I don't want to make all
  784. 25:15the commits available in my repository
  785. 25:17because agents by default create
  786. 25:19multiple commits for each output. So I
  787. 25:21first prefer to create a clean commit
  788. 25:22over those all those commit message and
  789. 25:24then merge it to my repository. So based
  790. 25:26on your requirement you can select any
  791. 25:27one of the method. Now the another thing
  792. 25:29we can select here always force push by
  793. 25:31default it is disabled but you can
  794. 25:32enable it but you need to understand
  795. 25:34that it force with the lease which
  796. 25:35basically means that if any changes are
  797. 25:37already available in that repository
  798. 25:39then it will not forcefully push your
  799. 25:40changes. So it will not always uh force
  800. 25:42push it always force with lease. Now the
  801. 25:45another thing is create a draft pull
  802. 25:46request. So it will create a pull
  803. 25:48request draft. And another thing is
  804. 25:49review delivery. So you can just uh
  805. 25:51review it based on the inline and the
  806. 25:52detached. And the another thing is
  807. 25:54commit instructions and the pull request
  808. 25:56instructions. If you want to give any
  809. 25:57instruction like how the commit method
  810. 25:58should generate, what should be the
  811. 26:00format there, you can just define the
  812. 26:01instruction here. And same instruction
  813. 26:03you can define for the pull request
  814. 26:04also. So yeah, this is all about the git
  815. 26:06instructions. Now let's go to the
  816. 26:08another one which is environment. So
  817. 26:09environment if you want to define any
  818. 26:11environment variable to the project, you
  819. 26:12can just select the project here and
  820. 26:14give all the access to the environment
  821. 26:15variable to that project here. So later
  822. 26:17if codex are working on that particular
  823. 26:19project and they want to access to that
  824. 26:20any particular environment variable they
  825. 26:22can get access from there itself. Now
  826. 26:24the next thing is work tree. Now just
  827. 26:25like get work tree we have a codex work
  828. 26:27tree also which basically means if codex
  829. 26:30is working on a repository then it will
  830. 26:31not make changes directly to your main
  831. 26:33repository. Instead it will create a
  832. 26:35copy of that main repository and apply
  833. 26:37changes there. Now this is useful
  834. 26:38because if codex is doing any changes
  835. 26:40which you do not want directly on your
  836. 26:41main repository. Now once it get a copy
  837. 26:43of that repository you can just review
  838. 26:44all the changes and then apply in your
  839. 26:46main repository. Now the thing is that
  840. 26:48as you can see it is a work tree root
  841. 26:49which basically means you can define
  842. 26:51that where that copy repository should
  843. 26:53be generated at which directory. If you
  844. 26:54leave it as by default which basically
  845. 26:56means it will automatically decide at
  846. 26:58which path it should keep the copy of
  847. 26:59your repository. But if you want to
  848. 27:01define a particular directory let's say
  849. 27:02inside a user folder or inside a
  850. 27:04particular folder you can just define
  851. 27:05the path here. Now the next thing is
  852. 27:07that automatically delete old work
  853. 27:08trees. So if you don't want to keep the
  854. 27:09old work trees, you can just keep
  855. 27:11disable or enabled based on your
  856. 27:12requirement. And then you can also set
  857. 27:14the limit also like how many work trees
  858. 27:15it should keep. So if you select here 15
  859. 27:17then only the latest 15 work trees will
  860. 27:18be available and rest all will get
  861. 27:20delete automatically. So the next thing
  862. 27:21is archive task. So whatever the task
  863. 27:23you have archived you can manage it from
  864. 27:25here. So now let's go back to the new
  865. 27:26task option and assign a task to the
  866. 27:28codeex. So if I go back here and the new
  867. 27:30task let's say I want to define a task
  868. 27:32without any project. I don't want to
  869. 27:34give any project or use any existing
  870. 27:36project. it will be the normal task
  871. 27:38only. So let's say I want to build a
  872. 27:39normal website and want to deploy it
  873. 27:41within a chat juty itself. So I can just
  874. 27:43use a at the rate site plug-in. So as
  875. 27:46you know we have discussed about this
  876. 27:47before also using the site plug-in it
  877. 27:50will not only build your application but
  878. 27:51also create a live URL which you can
  879. 27:53share with others. So let's say I want
  880. 27:54to build a to application just a normal
  881. 27:56application. I'm just testing out how
  882. 27:58codeex will execute my task. So if I
  883. 28:00just write here build a todo website.
  884. 28:03Okay. And when I click enter it will
  885. 28:04start generating my website. Now before
  886. 28:06generating I want to show what are the
  887. 28:08things available in this chat. Like the
  888. 28:10first thing is that model. Here you can
  889. 28:11select that which model you should use
  890. 28:12here. Right now I'm able to access my
  891. 28:145.6 or the latest model because I'm in
  892. 28:17the plus plan. That's why I'm able to
  893. 28:18access all those latest models. I can
  894. 28:20define the effort also that how much
  895. 28:21effort it should take while executing my
  896. 28:23task and then the speed also like
  897. 28:25standard or the fast. And then we have
  898. 28:27the option which is approval. So by
  899. 28:29default it is asked for approval. That
  900. 28:31means if we do any changes in my
  901. 28:32external files or if you want to get
  902. 28:34access to the internet it will always
  903. 28:36takes my permission. But if I want to
  904. 28:38keep the permission only for the
  905. 28:39sensitive information then I can go with
  906. 28:40the approve for me option. But if I want
  907. 28:42to give full access to my codex that
  908. 28:44means it will not ask any question to me
  909. 28:45just take actions by themselves then I
  910. 28:47can go with the full access method also.
  911. 28:49But let it be asked for approval for
  912. 28:51now. And now let's click on the enter
  913. 28:52button. By the way, you can click on
  914. 28:54this plus icon also where you can just
  915. 28:56define other feature also like uh add
  916. 28:58other plugins or maybe you want to
  917. 28:59upload any files and folder from your
  918. 29:00system. You can upload from this plus
  919. 29:02icon. It will also generate the summary
  920. 29:03here in the sidebar. As you can see here
  921. 29:05the output it says create a file or site
  922. 29:07sources attach a file or connect tab. So
  923. 29:10you can see the summary also here. Uh
  924. 29:12now it asks me the approval. So I can
  925. 29:13just click on allow once. Okay. So now
  926. 29:15it get the network permission. Uh it
  927. 29:17does the thinking which is comes under
  928. 29:19the reasoning part. It again needs a
  929. 29:21permission. So I just click on allow
  930. 29:22once.
  931. 29:28By the way, if you want to see that what
  932. 29:30are the files it has generated and what
  933. 29:32are the code available in this file, you
  934. 29:33can just open in the VS code as you can
  935. 29:35see this option. So when you click on
  936. 29:36this it will open your entire project in
  937. 29:38your VS code and but if you want to see
  938. 29:40the folder only then you can code with
  939. 29:41the finder or the terminal or you want
  940. 29:43to select the another ID also and later
  941. 29:45on if any other changes it will do you
  942. 29:47just need to open it again in the VS
  943. 29:48code those later changes will also
  944. 29:50available in that code and at the time
  945. 29:52it is building the website I can also
  946. 29:54show you that how much token I have used
  947. 29:55till now as we discussed before we have
  948. 29:57option of using the / status command. So
  949. 29:59if I type here SL status when I click
  950. 30:01enter you can see that it shows that uh
  951. 30:04this is the current session which I can
  952. 30:06copy also and the context that I have
  953. 30:08only 73% left that means I have used 69
  954. 30:11tokens so far out of 258k tokens and
  955. 30:14this is my weekly limit also available
  956. 30:16here. So I can see the entire stats of
  957. 30:18my current conversation through status
  958. 30:19command. Okay it says that your site is
  959. 30:21ready. I'm publishing it privately now.
  960. 30:23Let's see how well it generate. I can
  961. 30:25review the changes also by clicking
  962. 30:26here. So these are all the changes it is
  963. 30:28doing. So it has now generated the
  964. 30:30website. As we can see here this is a
  965. 30:31website and when I click on it here it
  966. 30:34will open the chatgity browser in my
  967. 30:36codeex app itself. And this is how the
  968. 30:38website looks like. And at the first
  969. 30:39glance website is very good. It looks
  970. 30:41very neat and clean. Uh let's see the
  971. 30:43functionalities are working or not. So
  972. 30:45let's say if I add a new task which I
  973. 30:48can add from here. Uh let's say I say
  974. 30:50recording
  975. 30:52and today work personal let it be today.
  976. 30:55And when I click add task, okay,
  977. 30:58recording task is available here. So all
  978. 30:59the functionalities are also working. I
  979. 31:01can just set the status whether it is
  980. 31:03open or done. So if I click uh done,
  981. 31:05yeah, it has not changed here also. I
  982. 31:07can remove my task. I can clear complete
  983. 31:09task like this. So perfect. I just want
  984. 31:11to open this on the chrome browser also
  985. 31:13to see how the things work there also.
  986. 31:15Although it will remain same exactly
  987. 31:17like this. But let's see how it will
  988. 31:19look in the chrome. So just copy this
  989. 31:21URL and let's go to the chrome. Okay.
  990. 31:24Here I need to first login with the chat
  991. 31:25GPD to access my website. Okay. So it
  992. 31:28requires some steps. Let leave it for
  993. 31:30now. We can review it from here itself
  994. 31:32only because it will look same like that
  995. 31:34in the browser also. So if I just expand
  996. 31:36it a little bit more, it is responsive.
  997. 31:38That's a good part. Perfect. That's what
  998. 31:40I want to show you that if you use a
  999. 31:42site plug-in then it not only build a
  1000. 31:44website but it also generate the URL
  1001. 31:45which you can share with others also.
  1002. 31:47Now you can just define the project also
  1003. 31:49where you can work on your existing
  1004. 31:50project. You can work with your GitHub
  1005. 31:52repository and all the things in this
  1006. 31:53codeex app. Now let's see how we can
  1007. 31:55open any application through codeex app
  1008. 31:56itself using the plug-in that we have
  1009. 31:58discussed before which is computer use
  1010. 32:00plug-in. So if I open the new task here
  1011. 32:02I can just type at the rate and when I
  1012. 32:04type it will list all the plugins that I
  1013. 32:06have installed. So I'll just write here
  1014. 32:08the name of the plug-in which I want to
  1015. 32:09use which is computer and I click enter.
  1016. 32:12So this is the plug-in I want to use.
  1017. 32:13I'll just write here let's say open
  1018. 32:15calculator. And when I click enter, it
  1019. 32:17will do planning. It says that I'm using
  1020. 32:19the computer user skill here since you
  1021. 32:22ask for the computer plug-in directly.
  1022. 32:23And I opening the instructions before I
  1023. 32:25operate the app. And let's see whether
  1024. 32:27it will open my calculator app or not.
  1025. 32:28Okay. So it's now need my permission. So
  1026. 32:30I just say allow this conversation. And
  1027. 32:32as you can see here it says calculator
  1028. 32:34is open. And we are able to see the
  1029. 32:35calculator here. So it has opened the
  1030. 32:37calculator and we are now able to use
  1031. 32:38it. So in this way you can open the any
  1032. 32:40application in your Mac if you have used
  1033. 32:41the computer any plug-in because you
  1034. 32:43have given the entire control to this
  1035. 32:45Mac. Now the another plug-in is also
  1036. 32:46available. If I click on add the rate
  1037. 32:48and then let's say if I use the browser
  1038. 32:50plug-in or maybe the GitHub plug-in for
  1039. 32:52the GitHub repository. So and the site
  1040. 32:55plugin we have already seen. Let's say
  1041. 32:56if I use the browser and let's say if I
  1042. 32:59want to ask any questions. So I just
  1043. 33:01click on the try now that's for the by
  1044. 33:02default question. It says I test my
  1045. 33:04check out flow on local host and when I
  1046. 33:06click enter it will open and run the
  1047. 33:08things in my local host browser which is
  1048. 33:10the chat gypy browser itself. As you can
  1049. 33:12see, it says I'm going to use the inapp
  1050. 33:14browser tooling to exercise your local
  1051. 33:15host checkout flow. And this is how this
  1052. 33:17uh pet actually works. It will show you
  1053. 33:19the information of the current thing
  1054. 33:20that is running on your codeex app.
  1055. 33:22Okay, it will take time to check out my
  1056. 33:24flow and the local host. But the thing
  1057. 33:26is that I want to explain you how you
  1058. 33:27can use the different plugins for to
  1059. 33:29work on that particular tool. Okay, it
  1060. 33:30needs my approval. So I just click on
  1061. 33:32allowance again. I click on allowance.
  1062. 33:34Uh click on allowance again.
  1063. 33:37Allowance.
  1064. 33:39Okay, I think it will take some time to
  1065. 33:41review the things and uh to check out my
  1066. 33:43flow on local host. But the thing is
  1067. 33:45that I want to just show you that how
  1068. 33:46you can use the different plugins and
  1069. 33:48access the particular tool from the
  1070. 33:49codeex only. So that's all the overview
  1071. 33:51of the Codex app. I hope you understand
  1072. 33:52how the things work here. Install using
  1073. 33:54it on your system and start using it and
  1074. 33:56then see how it's work for you.
  1075. 33:59So now let's see how we can use Codex on
  1076. 34:01the web. Every feature will remain same
  1077. 34:03exactly like we have seen in the Codex
  1078. 34:05app. Only the thing is that you do not
  1079. 34:06have to install an app to use Codex. So
  1080. 34:08if you want to use it on the web just go
  1081. 34:10to the chat GPD website and here you
  1082. 34:11will see two option first one is chat
  1083. 34:13and the second one is work. So if you
  1084. 34:15want to do the normal chat GBD work you
  1085. 34:17can do it in the chat option but if you
  1086. 34:18want to assign a task to codeex then you
  1087. 34:20can switch to work option and here you
  1088. 34:22will see all the features like you can
  1089. 34:23choose a project add a plugins and even
  1090. 34:25you can open the desktop app from here
  1091. 34:27itself and when I open the sidebar we
  1092. 34:29are able to schedule the task from the
  1093. 34:31schedule option from codex web itself
  1094. 34:33and we are able to manage all the
  1095. 34:35plugins and when I click on the more
  1096. 34:36option site option is also available
  1097. 34:38there that means we are able to build
  1098. 34:40and deploy the website from codex web
  1099. 34:41itself. Now you just need to make sure
  1100. 34:43one thing that if you want to use the
  1101. 34:44codex web then you must have at least a
  1102. 34:46subscription plan because on free plan
  1103. 34:48this will not work. So just to show you
  1104. 34:50if I open my chat GP on free plan then
  1105. 34:52you can see that chat and work option is
  1106. 34:54not there and we can see here also that
  1107. 34:56we are in the free plan and even if I
  1108. 34:58open the sidebar that schedule option is
  1109. 35:00not there as well as if I open the more
  1110. 35:02that site option is also not there. It
  1111. 35:04shows me the codeex option. So if I open
  1112. 35:06this one, so you can see here instead of
  1113. 35:08opening the codex web, it will redirect
  1114. 35:10me to download the codex app because on
  1115. 35:11free plan we cannot use it. So we need
  1116. 35:13to keep in mind if you want to use codex
  1117. 35:15web. Now if you go back to WordPress
  1118. 35:16plan, then here let's say if I want to
  1119. 35:18use a GitHub plug-in to review the
  1120. 35:20changes in my repository. So I can just
  1121. 35:23use here at the rate and call my GitHub
  1122. 35:25plug-in and there I can give the task
  1123. 35:27whatever I want to use for my
  1124. 35:29repository. But you need to make sure
  1125. 35:30that your GitHub account is connected to
  1126. 35:31Codex then only it will access all your
  1127. 35:33repository. So to make sure just go to
  1128. 35:35your profile and open the settings and
  1129. 35:37here you can go to the plugins and in
  1130. 35:40the GitHub you can see that my GitHub
  1131. 35:42account is already connected with codeex
  1132. 35:44and if you click on this three dot it
  1133. 35:46will shows that a reconnect and
  1134. 35:47disconnect option this will only show if
  1135. 35:49you have already connected your GitHub
  1136. 35:50account and here also we can see that
  1137. 35:52this GitHub plug-in contains some skills
  1138. 35:53like review follow-up CI debug GitHub
  1139. 35:56and publish changes although we will
  1140. 35:57understand about this skills when we
  1141. 35:59understand codeex in ID extension we'll
  1142. 36:01create our own skills and understand it
  1143. 36:03in detail. But just now understand that
  1144. 36:05this plug-in contains some skills and
  1145. 36:07based on your task it will decide that
  1146. 36:09what skill it should use. Now when codex
  1147. 36:11take action based on your task it will
  1148. 36:13also look at the skills and whatever the
  1149. 36:15skills is required at that time it will
  1150. 36:17use that skill to execute the task. So
  1151. 36:19if I go back here I can use the githup
  1152. 36:21plug-in as well as any other plug-in if
  1153. 36:23I want to use and I can assign the task
  1154. 36:25to my codex from the web itself. So yeah
  1155. 36:27this is all how you can use a codex on
  1156. 36:28web. Again just make sure you have a
  1157. 36:30subscription plan if you want to use
  1158. 36:31codex on the web.
  1159. 36:34So now let's see how we can use codeex
  1160. 36:36inside your terminal which runs on your
  1161. 36:38local machine. So whenever you want to
  1162. 36:40use codex with just commands only then
  1163. 36:42you can use codex cla instead of codex
  1164. 36:45app and web. So to install codex cla on
  1165. 36:47your local machine just go to the
  1166. 36:49website which is again
  1167. 36:49chajjypy.com/codex
  1168. 36:52and here when you scroll down all the
  1169. 36:53way down here you will find a way codex
  1170. 36:57cla. So you can copy this command which
  1171. 36:59just start with npm and then run this
  1172. 37:01command on your terminal to install the
  1173. 37:03codec cla but there are other option
  1174. 37:05also available. If you don't want to
  1175. 37:06install it with npm then you can go to
  1176. 37:08the codec cla docs this one and here
  1177. 37:11when you go to the available on section
  1178. 37:13then you will find a codec cla option
  1179. 37:15you can click on this and here multiple
  1180. 37:17options available to download it. You
  1181. 37:19can go with the Mac OS or Linux option
  1182. 37:21or Windows npm or homebrew option. But
  1183. 37:23if you are using the npm version then
  1184. 37:25you need to make sure that NodeJS is
  1185. 37:27installed in your system otherwise this
  1186. 37:29npm will not work. By the way if you
  1187. 37:31want to verify whether NodeJS is
  1188. 37:32installed or not on your system then you
  1189. 37:34can just open the terminal and here you
  1190. 37:36can type node - version and when you
  1191. 37:40click enter it will show you the
  1192. 37:41version. If you are able to see this
  1193. 37:43version on your system that means NodeJS
  1194. 37:45is installed. If not then you need to
  1195. 37:47install it first to use the npmware. So
  1196. 37:49we can copy any one of the command from
  1197. 37:50here and then we can install codeex cla
  1198. 37:53but what I can do instead of installing
  1199. 37:55it from here I'll install it from the
  1200. 37:57change log because there we'll get the
  1201. 37:59latest version of the codec cla. So I'll
  1202. 38:01just open codeex change log and uh this
  1203. 38:06one and here you can see we have all the
  1204. 38:08updates. So I would also recommend you
  1205. 38:10to always prefer to go with the codec
  1206. 38:12change log because here you will get to
  1207. 38:13know what is the new version is coming
  1208. 38:15from the codec cla and all and based on
  1209. 38:17that you can download it. So you can
  1210. 38:19copy one of these command from here. As
  1211. 38:20you can see in July 2026 they have
  1212. 38:22launched a new update which is a codeex
  1213. 38:25version 0.144.5.
  1214. 38:28Even though the in July itself they have
  1215. 38:29launched the different version which is
  1216. 38:310.144.4
  1217. 38:33but now it's different. So keep an eye
  1218. 38:35on this and based on this only you have
  1219. 38:36to install the version. But now I've
  1220. 38:38already installed this uh this
  1221. 38:40particular command 0.144.4.
  1222. 38:43So I'll not going to install again for
  1223. 38:45you. Even though I'll just show you how
  1224. 38:46we can install just copy this command.
  1225. 38:48Then again open your terminal and here
  1226. 38:50just paste it. And the moment you paste
  1227. 38:53it and click enter it will install on
  1228. 38:55your system. And now once you install
  1229. 38:57the next step is you need to use it in
  1230. 39:00your terminal. But now how to use it?
  1231. 39:02It's very simple. What you need to do
  1232. 39:04whenever you want to use codex in your
  1233. 39:06system inside your directory let's say
  1234. 39:07inside your project or inside your
  1235. 39:09repository you just go to your directory
  1236. 39:11and then just type here codeex and when
  1237. 39:14you type and click enter you are ready
  1238. 39:17to use codeex you can see here it tells
  1239. 39:20me to update the version as I show you
  1240. 39:22here that uh as we can see here again
  1241. 39:24the latest version is 0.144.5
  1242. 39:27but before recording this video I have
  1243. 39:28installed the 0.144.4
  1244. 39:304 that's why it gives me an update. So
  1245. 39:33if you have already installed then later
  1246. 39:34on they will automatically lets you know
  1247. 39:36that what's the latest version is coming
  1248. 39:38right now. So you can update from your
  1249. 39:40terminal itself only. But right now I
  1250. 39:42don't want to update the latest version.
  1251. 39:43Let's skip for now. And so I'll just
  1252. 39:45click on this escape. Now see when you
  1253. 39:47open the codex for the first time in
  1254. 39:48your terminal it will ask you to sign
  1255. 39:50in. Now there are three ways of signing.
  1256. 39:52You can go with chatg or you can connect
  1257. 39:54to another device with one time code or
  1258. 39:56you can uh use your own API key. So I
  1259. 39:59would prefer to go with the sign in with
  1260. 40:00chargibility because I already have a
  1261. 40:02plan here which is a plus plan. But if
  1262. 40:04you are exploring a charge for the first
  1263. 40:06time and you want to only pay for the
  1264. 40:08money which based on how much token you
  1265. 40:10have used then you can go with your API
  1266. 40:12key method but let's go with the sign in
  1267. 40:14with chubby for now. So I'll just click
  1268. 40:16enter and when I click enter it will
  1269. 40:18redirect me to the chat GPT. Here I have
  1270. 40:20an option to use it. So I don't want to
  1271. 40:23login in chat juby through this account.
  1272. 40:25So I'll go with the account where I have
  1273. 40:26a plus plan. So I'll just open this my
  1274. 40:29account and here I'll just use my
  1275. 40:32continue with Google and it says
  1276. 40:34continue and we are signed into the
  1277. 40:35codeex. Now we can close this window and
  1278. 40:38here we can close this one also and now
  1279. 40:40when we go to the terminal it says that
  1280. 40:42you have signed in successfully and you
  1281. 40:43can say that before you start uh decide
  1282. 40:45how much autonomy you want codex can
  1283. 40:47mistake. Okay these are the things no
  1284. 40:49worries just click on this enter now and
  1285. 40:51now once you click enter you can see we
  1286. 40:52have a terminal UI. Now this is the
  1287. 40:54place where you start using codex. So
  1288. 40:56let me increase the size of the terminal
  1289. 40:58to the full like this. And now if you
  1290. 41:00want to use the codeex you are now ready
  1291. 41:02to use it. Whatever the command,
  1292. 41:04whatever the task you want to give, you
  1293. 41:05can give it from the terminal itself.
  1294. 41:07Now before we start discussing about
  1295. 41:09more concepts in Codex CLI, let's talk
  1296. 41:12about the safety and security also
  1297. 41:14because right now you are using codeex
  1298. 41:15cla inside your system only. So you may
  1299. 41:18have concerned that what if I run any
  1300. 41:20command which can access my local files
  1301. 41:22or which can change my system
  1302. 41:24configuration or can access my app in my
  1303. 41:26system. We have these concerns. See the
  1304. 41:29thing is that basically chat GPD or I
  1305. 41:31can say that codeex takes care of this.
  1306. 41:33How it will take care? So whenever you
  1307. 41:35run codeex cla inside any project they
  1308. 41:38make sure that it can go only access the
  1309. 41:40things inside that project only. If you
  1310. 41:43want to take access to the outside of
  1311. 41:44project with the command then it needs
  1312. 41:46to first take access from you that means
  1313. 41:48approval from you. Now basically codex
  1314. 41:50uses sandbox environment which basically
  1315. 41:53decides some rules and policies that
  1316. 41:55what are the things it should access
  1317. 41:56inside that project and if you want to
  1318. 41:58access anything outside then how much
  1319. 42:00permission we should give it. All those
  1320. 42:02things rules are decided inside the
  1321. 42:04sandbox and that sandbox create a
  1322. 42:06isolated environment inside your
  1323. 42:08project. So each time you use codex
  1324. 42:10inside any project that project is an
  1325. 42:12isolated environment. So your codeex
  1326. 42:14cannot access something which is outside
  1327. 42:16of that project. Now this is not only
  1328. 42:19managed in the codex level itself only.
  1329. 42:22Your OS also takes care of this. So
  1330. 42:24whatever the policies your codeex decide
  1331. 42:27using sandbox environment all those
  1332. 42:29policies are transferred to your
  1333. 42:30operating system also. Whatever you are
  1334. 42:32using Mac OS, Ubuntu or Window it will
  1335. 42:36get transferred there and then operating
  1336. 42:38system has their own tools like if you
  1337. 42:40talk about the Mac OS they have a tool
  1338. 42:42which is seat belt. So based on those
  1339. 42:44tools it will make sure that whatever
  1340. 42:46the policies the codex define inside the
  1341. 42:48sandbox environment based on those
  1342. 42:50policies only the codex are allowed to
  1343. 42:52access the project or access the other
  1344. 42:55things in your system. So this is how
  1345. 42:57codex actually manage. Now these are the
  1346. 42:58by default settings which is configured
  1347. 43:00by the codeex but if you want to change
  1348. 43:02the settings based on your requirement
  1349. 43:04you are able to do that because they
  1350. 43:06have their own configuration system
  1351. 43:07where you can manipulate the things. Now
  1352. 43:09if you remember that we have seen in the
  1353. 43:11codex app also let me open it for you.
  1354. 43:13If you can see here in the codex app
  1355. 43:15when we go to the settings we have seen
  1356. 43:17this a configuration option inside our
  1357. 43:19personal section. So when you open this
  1358. 43:20configuration you can see there are some
  1359. 43:23by default settings available. As you
  1360. 43:24can see we have an approval policy which
  1361. 43:26is an on request. So by default it is an
  1362. 43:29approval means if you want to take
  1363. 43:31access of something which is outside of
  1364. 43:33your project it will first take an
  1365. 43:34approval from you. So we have by default
  1366. 43:36settings set like this and we have a
  1367. 43:37sandbox setting also like read only
  1368. 43:40workspace write full access and same for
  1369. 43:42the model feature as well as workspace
  1370. 43:44dependency. So inside our app we can
  1371. 43:46manipulate this configuration setting
  1372. 43:48but the thing is that right now we are
  1373. 43:50inside our codeex cla we don't have any
  1374. 43:52user interface where we can go to this
  1375. 43:53particular option and click on this
  1376. 43:55particular button to change the setting.
  1377. 43:57So how we can change it in the codeex
  1378. 43:58cla we can change it by creating our own
  1379. 44:01configuration file. So in codeex when
  1380. 44:03you install it for the first time let's
  1381. 44:04say we are using the codeex cla. So when
  1382. 44:06you install it it will generate a system
  1383. 44:08generated file for you inside your user
  1384. 44:10directory or we can say that the home
  1385. 44:12directory with the name dotcodex. So I
  1386. 44:15can show you now. So let me open this
  1387. 44:17finder. If you in the window then you
  1388. 44:19can open your file explorer. So when you
  1389. 44:21go to your home directory you can see
  1390. 44:22these are all the folders available
  1391. 44:24here. Now in this same home directory
  1392. 44:27the codex folder is also being generated
  1393. 44:29by the codeex itself but it is not
  1394. 44:31visible like this because that's an
  1395. 44:32hidden folder. So to see that folder
  1396. 44:34what you can do in my quest there is a
  1397. 44:36shortcut command which you can use
  1398. 44:38command shift and period and when you
  1399. 44:40enter you can see we have all the hidden
  1400. 44:41files that are available in this home
  1401. 44:43directory. So when you scroll down so
  1402. 44:45you can see in this case we have this
  1403. 44:47dotcodex file or we can say that folder
  1404. 44:49same like that we have a dot cloud also
  1405. 44:51because I have used the cloud code also
  1406. 44:52before in my system that's why we have
  1407. 44:54system generated cloud folder but if you
  1408. 44:56look at this dotcodex folder then in
  1409. 44:58this folder we have to create our own
  1410. 45:00config.tml file as you can see here this
  1411. 45:02config file is already available but in
  1412. 45:05your case it will not available because
  1413. 45:06I have already created before that's why
  1414. 45:08it is showing here. I'll show you how
  1415. 45:09you can create your own config.l file
  1416. 45:11and how you can manipulate the settings
  1417. 45:13there. So once you see this folder which
  1418. 45:14is a codex folder you can go to the
  1419. 45:16terminal inside this folder and you can
  1420. 45:19create this file which is config.toml
  1421. 45:21file. So what we can do uh we can open
  1422. 45:23this folder by clicking on the right
  1423. 45:25click and we can say that new terminal
  1424. 45:26at folder terminal has been opened. We
  1425. 45:29can just also check whether we are in
  1426. 45:30the correct folder or not. So when I
  1427. 45:31click ls we can see all the files that
  1428. 45:33are available inside that codex folder.
  1429. 45:36Now if I want to create my config
  1430. 45:37dottoml file so what I can do I can just
  1431. 45:40write here command which is touch this
  1432. 45:41is a shell command so I can write here
  1433. 45:43touch and then the name of my file which
  1434. 45:45is config dottoml and when I click enter
  1435. 45:48it will create my file. I'll not create
  1436. 45:50it right now because it is already
  1437. 45:51available on my system. So once you
  1438. 45:53create it you can just go with ls
  1439. 45:55command to see whether it is available
  1440. 45:56or not. So when you click uh you are
  1441. 45:58able to see this type of file in your
  1442. 46:00system. Now once you create this file
  1443. 46:02you can open it and do the changes
  1444. 46:03there. So what we can do here uh we can
  1445. 46:06open this file in our VS code and see
  1446. 46:09what the things available here. So we
  1447. 46:11have this VS code and we can see this is
  1448. 46:14how file looks like. As you can now see
  1449. 46:16here in this file there are some
  1450. 46:17predefined settings available. As you
  1451. 46:19can see we have a model which is a GBD
  1452. 46:215.4. Now if you remember in terminal uh
  1453. 46:24if you open this terminal here you can
  1454. 46:26see when we start codex and when the
  1455. 46:28terminal UI starts you can see it says
  1456. 46:30that by default GBD model is 5.4 4 with
  1457. 46:33the reasoning effort medium. We have not
  1458. 46:35set this model. It is by default model
  1459. 46:37and it also shows the directory that you
  1460. 46:38are using it in the user directory right
  1461. 46:40now. So how this model is set by by
  1462. 46:42default it is set because it is already
  1463. 46:45configured in our config.toml file. But
  1464. 46:48if you want to use some other model as a
  1465. 46:50by default model you can just change it
  1466. 46:52in your config.tml file and also you can
  1467. 46:54define the reasoning effort and same
  1468. 46:56like that there are some other settings
  1469. 46:57also available. You can read all those
  1470. 46:59settings and get to know what are the
  1471. 47:00things available inside config.tml toml
  1472. 47:02file. Now I want to show you more things
  1473. 47:03about this. Uh as you can as I told you
  1474. 47:05before that you can change the sandbox
  1475. 47:06setting also right that we have seen in
  1476. 47:08the codex app also that read only or
  1477. 47:10write workspace only. You can change all
  1478. 47:12those settings here. Now one doubt may
  1479. 47:15come in your mind that why we have to
  1480. 47:17create this file that when we have
  1481. 47:18create this file this entire
  1482. 47:21configuration will be applicable to all
  1483. 47:22the folders. Why? Because we have
  1484. 47:24created this file inside our codeex
  1485. 47:26folder which is in home directory. So
  1486. 47:28every folder comes under that home
  1487. 47:30directory only. So these entire settings
  1488. 47:32will available in all the projects
  1489. 47:34wherever you are going to use codeex.
  1490. 47:35But you don't want this. You don't want
  1491. 47:37that why in every project a same model
  1492. 47:39should get used and the same settings
  1493. 47:41should get used. I have I want my
  1494. 47:43different settings for each project.
  1495. 47:44Right? And that's true. You want that.
  1496. 47:46So what you can do if you want a
  1497. 47:48different settings inside your project,
  1498. 47:50you can create your own config.l file
  1499. 47:52there inside that project itself. And
  1500. 47:54next time when use codex inside that
  1501. 47:56project, it will override your settings
  1502. 47:58whatever you have defined in your global
  1503. 47:59codex folder which we have seen in this
  1504. 48:01one in home directory. But you need to
  1505. 48:03make one thing sure that if you're using
  1506. 48:05inside your project as a different
  1507. 48:07config.l file then you have to trust
  1508. 48:09that folder inside your global file. As
  1509. 48:11you can see here these are all the
  1510. 48:13folders which I have already granted in
  1511. 48:15my config.l file. So if I want to use
  1512. 48:17codex inside this folder and want to
  1513. 48:19create a separate configuration there
  1514. 48:21then I have to first trust that folder
  1515. 48:23otherwise those configuration will
  1516. 48:25totally get ignored by codeex even
  1517. 48:27though you have created inside your
  1518. 48:29project. As you can see we have this
  1519. 48:30project and we have set the property
  1520. 48:32which is trust level with trusted here.
  1521. 48:34So you can set your project if you want
  1522. 48:36to use your own configuration inside
  1523. 48:38your project. Okay. Now once we have
  1524. 48:39seen this let's try it out also. So we
  1525. 48:42have this GBD 5.4 and medium. So right
  1526. 48:44now we are using codex inside our own
  1527. 48:46terminal in our local system. But we can
  1528. 48:48use it in the VS code terminal also
  1529. 48:49because both are same. So I can now just
  1530. 48:52run codeex inside this terminal. I'll
  1531. 48:54just write here codex and when I click
  1532. 48:56enter it will start using codex here. I
  1533. 48:58just need to skip because I don't want
  1534. 48:59to install the latest version. And my
  1535. 49:01codex is started. Okay. Now for the
  1536. 49:03better view I would like to keep this
  1537. 49:04terminal in the side instead of bottom.
  1538. 49:06So I just change the setting here.
  1539. 49:08Appearance we have option I think. So
  1540. 49:11here panel position. Yes. we go to the
  1541. 49:14right side. Okay. Now we can see codeex
  1542. 49:16how it actually works here better. So we
  1543. 49:18have this terminal and we can see it is
  1544. 49:20using GPD 5.4 media version. But now
  1545. 49:23let's say if I change this model here uh
  1546. 49:25let's say if I change to GPD 5.4 U mini
  1547. 49:29this one. And even if I change the
  1548. 49:31reasoning of it let's say from medium to
  1549. 49:33I want it let's say high or high doesn't
  1550. 49:36make sense here because we're using the
  1551. 49:375.4 mini. So I think fast makes sense
  1552. 49:39here. Fast. And when I say save this
  1553. 49:42time, let me exit from my codeex, I'll
  1554. 49:45use the command which is exit. And now
  1555. 49:47when I start my codeex again by writing
  1556. 49:49the command which is codeex enter and
  1557. 49:53again skip. Now this time you can see
  1558. 49:55the by default model it is using is gpt
  1559. 49:585.4 mini with the reasoning effort as
  1560. 50:00fast. So in this way you can define your
  1561. 50:02own by default settings in the
  1562. 50:04config.tml file. Now let's see one more
  1563. 50:06thing in the security setting. Let's say
  1564. 50:08you are working in your project and you
  1565. 50:10want that when you are using some
  1566. 50:12command to give some task to the codeex
  1567. 50:14you want that that particular task
  1568. 50:16should use a different model because you
  1569. 50:18don't want to waste your token let's say
  1570. 50:20you only want to change the variable
  1571. 50:21name inside that project now just to
  1572. 50:23change that variable name in your
  1573. 50:24project would you use your high model
  1574. 50:26which takes a long token let's say zt
  1575. 50:285.5 or 5.6 Of course not. You will not
  1576. 50:31use those model because you are just
  1577. 50:32changing your file name. So in that case
  1578. 50:34you can create a different profile in
  1579. 50:36your configuration settings and whenever
  1580. 50:38you feel like that this task requires a
  1581. 50:40less token and less reasoning effort you
  1582. 50:42can switch to that particular profile
  1583. 50:44and assign that model to that particular
  1584. 50:46task. Now how to create this profile? So
  1585. 50:48to create that you can go to the
  1586. 50:50terminal again uh this terminal here we
  1587. 50:53have we are already inside our codeex
  1588. 50:55folder. So if you want to create a
  1589. 50:57profile, let's say I want to create a
  1590. 50:59profile for a fast model. So those type
  1591. 51:01of task which requires a low reasoning
  1592. 51:03effort, I can choose that particular
  1593. 51:04profile. So I just create the file name
  1594. 51:06by using the command touch and then I
  1595. 51:08can just write here fast or whatever the
  1596. 51:10name suits for you based on your
  1597. 51:12requirement. I'm using a fast because
  1598. 51:14I'm creating a low reasoning effort
  1599. 51:15model. So I'm just write here fast then
  1600. 51:18dotconfig dot toml. Once you write this
  1601. 51:21name and click enter, your file will
  1602. 51:23generated inside that codeex folder. So
  1603. 51:26I'll show you here now if you go down uh
  1604. 51:29that folder should available here I
  1605. 51:30think so codex this one when you go down
  1606. 51:34yes we have our fast doconfig file now
  1607. 51:37let's open this file inside our VS code
  1608. 51:38and see what things available here so
  1609. 51:40when we click enter so we can see that
  1610. 51:42it's completely empty but if you look at
  1611. 51:44the config file then it has some
  1612. 51:45predefined settings because this is the
  1613. 51:47main file and this is the file which we
  1614. 51:49have created it's a custom file so we
  1615. 51:50have to define all the rules by ourself
  1616. 51:52here so now in this fastconfig file If I
  1617. 51:55want to use the low reasoning model,
  1618. 51:57I'll just define a model or instead of
  1619. 51:59defining here, I'll just copy it from my
  1620. 52:00config.ml and then I only change the
  1621. 52:02model name and the reasoning effort. So
  1622. 52:04I'll just copy this and paste it here.
  1623. 52:07Now let's say I want to use a model 5.4
  1624. 52:10mini here only for the low reasoning
  1625. 52:11effort and I'll go with let's say I want
  1626. 52:15it to use uh medium. Okay. And now in
  1627. 52:19the config.ml file I'll change it to the
  1628. 52:22previous setting where it automatically
  1629. 52:24use 5.4 with medium or let's say I want
  1630. 52:27to use high this one. Okay. So now we
  1631. 52:30have two profile. First one is the
  1632. 52:31normal which is a main file config.l and
  1633. 52:34second one is created by us which is a
  1634. 52:36fast.config.l.
  1635. 52:37Now if I want to use this profile to
  1636. 52:39delegate the task to that particular
  1637. 52:41model. So we just write here codex then
  1638. 52:44hyphen and then profile because we have
  1639. 52:46created our own profile. Now whenever we
  1640. 52:48write like hyphen profile or some other
  1641. 52:51name after hyphen we basically call it
  1642. 52:53as flex in codex. So there are different
  1643. 52:55flags available in codeex based on that
  1644. 52:57you can decide that what particular task
  1645. 52:59should do codex. Right now I want to use
  1646. 53:01my profile flag that's why I use a
  1647. 53:03double hyphen and then the name which is
  1648. 53:05profile. And now I can just give the
  1649. 53:06name of my file which is fast. So I'll
  1650. 53:09just write here fast. And then I can
  1651. 53:12delegate any task to it. Let's say I
  1652. 53:14want to say uh what's available in this
  1653. 53:16file. So I'll just say what is available
  1654. 53:19or instead of this I can just write here
  1655. 53:21what this file contains and now when I
  1656. 53:25click enter it starts working and uh it
  1657. 53:29want to use so I will say allow as you
  1658. 53:30can see this it asked me for the allow
  1659. 53:32because we have discussed about the
  1660. 53:34safety purpose also that uh it uses some
  1661. 53:36by default settings because of that only
  1662. 53:38it asks our approval because it is
  1663. 53:40accessing our file which is
  1664. 53:41fast.config.tml to read the content
  1665. 53:44inside this. So that is what we discuss
  1666. 53:46about the safety purpose. So now you can
  1667. 53:48see this it says it using the GP 5.4
  1668. 53:50mini and with the medium reasoning
  1669. 53:52effort and I think we are able to see
  1670. 53:54that also that which model it has used
  1671. 53:56while doing all this effort. Uh I think
  1672. 54:00we are able to see that okay we are not
  1673. 54:02able to see but we are able to see that
  1674. 54:03we use the so with profile test the main
  1675. 54:05change is that your base default is GBD
  1676. 54:075.4 with high reasoning are overridden
  1677. 54:10at GBD 5.4 for mini with medium
  1678. 54:12reasoning because we are using our flag
  1679. 54:13which is profile. So in this way you can
  1680. 54:15create multiple flags or multiple
  1681. 54:18profiles and you can delegate the task
  1682. 54:20based on how much reasoning if it
  1683. 54:21requires. So that's all about the
  1684. 54:23settings. Now let me show you one more
  1685. 54:24thing about the safety that how it
  1686. 54:26actually ask for our approval when it is
  1687. 54:28accessing something outside of our
  1688. 54:30project. So if I go back to the terminal
  1689. 54:32and here so let's say if I ask that open
  1690. 54:34a particular app from the terminal. So
  1691. 54:37let's say if I say uh open calculator
  1692. 54:40now you already know that this is
  1693. 54:42outside of the project task. So when I
  1694. 54:44say enter it will definitely ask for my
  1695. 54:46approval because that's a by default
  1696. 54:47settings in our sandbox environment. So
  1697. 54:50yeah you can see it says that would you
  1698. 54:51like to run the following command. If I
  1699. 54:53granted yes then it will open the
  1700. 54:55calculator and if I deny then it will
  1701. 54:57not open. So I'll just say yes for now
  1702. 54:59and it says calculator open. So let's
  1703. 55:01see whether it has opened or not. So if
  1704. 55:03I just minimize this. So yes, we are
  1705. 55:05able to see the calculator here and this
  1706. 55:07is our own system calculator not a
  1707. 55:09calculator which is generated by codeex
  1708. 55:11and all our own Mac OS calculator here.
  1709. 55:13So in this way you can grant the
  1710. 55:15permission if you want to accessing
  1711. 55:17something which is outside of your
  1712. 55:18project and you can change the setting
  1713. 55:20also which we have seen in the config.l
  1714. 55:22file. So that's all about safety and the
  1715. 55:24security settings.
  1716. 55:27So now let's see one of the most
  1717. 55:28important thing in codex cla which is
  1718. 55:31commands or basically we can call it as
  1719. 55:33/ commands. Now we are not using a codex
  1720. 55:35web or app where you can do everything
  1721. 55:37from the buttons and all everything is
  1722. 55:39running in your terminal. So only the
  1723. 55:41command is the option to work with codex
  1724. 55:43cla. Now if you remember that in
  1725. 55:45previous videos we have talked about one
  1726. 55:47of the command which is a / status
  1727. 55:48command through which you can see how
  1728. 55:50much token usage you have used and how
  1729. 55:52much weekly limit is left. So how that
  1730. 55:54command is actually working that's
  1731. 55:56actually a slash command and same like
  1732. 55:58that there are other commands also
  1733. 56:00available in codex cla which we are
  1734. 56:01going to see now. So if you want to use
  1735. 56:03any of the command you just type a slash
  1736. 56:06and when you type slash it will give you
  1737. 56:08the list of all the slash commands that
  1738. 56:09are available in codex. So we can just
  1739. 56:12move down here we have model fast ID. So
  1740. 56:15we'll discuss some of them which is
  1741. 56:16useful. Uh so we can see we have
  1742. 56:18permission key map vim experimental
  1743. 56:20approve memories skills and lot more. So
  1744. 56:24let's discuss the first one. Suppose we
  1745. 56:26are using the /model layer and if I want
  1746. 56:28to change the model as we can see right
  1747. 56:30now currently it is using the GP 5.4
  1748. 56:32with medium effort. If I want to change
  1749. 56:34the model to something else with some
  1750. 56:36different reasoning effort I can just
  1751. 56:38use the command which is /mod and when I
  1752. 56:40click enter it will ask me that which
  1753. 56:42model would you like to use and it also
  1754. 56:44give me the information that currently
  1755. 56:45you are using the GPD 5.4. As we can see
  1756. 56:48this is a current model and this is the
  1757. 56:50default model which is GPD 5.6. So if I
  1758. 56:53want to change, let's say I want to go
  1759. 56:54with GPD 5.6, I just click enter. I can
  1760. 56:58decide the reasoning effort whether low,
  1761. 56:59medium, high. I'll go with higher. And
  1762. 57:02when I click enter, my model has
  1763. 57:04changed. And now currently it is using
  1764. 57:06GPD 5.6 Luna. Now this is the one
  1765. 57:09command. Let's use another one also.
  1766. 57:11Suppose if I want to increase the speed
  1767. 57:13of my model, I want to use the /fast
  1768. 57:16command here to increase the speed to
  1769. 57:181.5x. I can use here. But you need to
  1770. 57:20also make sure that it will use more
  1771. 57:22tokens compared to the previous model.
  1772. 57:24So if you want a task which requires a
  1773. 57:26fast and you want to complete it as soon
  1774. 57:28as possible, you can switch to the /fast
  1775. 57:30command. Now the another one is / id.
  1776. 57:33When you use this command, your current
  1777. 57:35session whatever you are running in
  1778. 57:36codex cli will transfer to your codeex
  1779. 57:38ID. We have not discussed about the
  1780. 57:40codex ID section yet. But if you use the
  1781. 57:42codex ID extension in VS code, then your
  1782. 57:44current session and the chat will get
  1783. 57:46transferred to that ID. Now the next
  1784. 57:47thing is the permission. Now this is an
  1785. 57:49important one because if you remember
  1786. 57:51that when we talk about the safety in
  1787. 57:52sandbox environment it always asks our
  1788. 57:55approval when we are trying to access
  1789. 57:57something which is outside of your
  1790. 57:58project right so if you want to change
  1791. 58:00the setting you can change it from the /
  1792. 58:02command itself you can just use the /
  1793. 58:04permission here and when you click enter
  1794. 58:06it will ask you for three ways of using
  1795. 58:08it either you can give it as ask for
  1796. 58:10approval which is the default one but if
  1797. 58:11you want to approve for the things which
  1798. 58:13is sensitive only then you can go with
  1799. 58:15the second option which is approve for
  1800. 58:16me and if you want to get the full
  1801. 58:18access to the codex you trust the codeex
  1802. 58:19a lot you can just go with the third
  1803. 58:21option which is full access and based on
  1804. 58:23your requirement you can switch between
  1805. 58:25them but I would like to keep it as ask
  1806. 58:27for approval because I don't want to
  1807. 58:28access any external files apart from
  1808. 58:31this project so I'll keep it as ask for
  1809. 58:33approval so every time it will ask for
  1810. 58:35my approval now the next thing you can
  1811. 58:37see here uh is we have approve which is
  1812. 58:40exactly work same like this permission
  1813. 58:42we have memories skills we'll discuss
  1814. 58:44about skills later uh hooks review
  1815. 58:47rename name new archive delete resume.
  1816. 58:51Okay, let's talk about the resume
  1817. 58:52command also. Now what does the resume
  1818. 58:53command actually mean? Suppose you are
  1819. 58:55using the codeex cli and you are working
  1820. 58:56in any chat and now let's say you get
  1821. 58:58exit and next day you come back again to
  1822. 59:00the codex cli and you want to continue
  1823. 59:02with the same chat you can continue it
  1824. 59:04with the / resume command. So if I type
  1825. 59:06here / resume and when I click enter it
  1826. 59:09will say these are all your current chat
  1827. 59:11that you are using. As you can remember
  1828. 59:13that we are using it from the VS code
  1829. 59:14terminal. This was the last one which we
  1830. 59:16have used which is the open calculator
  1831. 59:18and then we have before that we have
  1832. 59:19used the codex profile for fast where we
  1833. 59:22have write the content which is what
  1834. 59:24this file contain and this previous one
  1835. 59:26we have used without question mark. So
  1836. 59:28all those chat you are able to see here
  1837. 59:30with the time stamp also that when was
  1838. 59:31the last time you have used it. You can
  1839. 59:33switch between them and continue task
  1840. 59:35from there itself. Okay. So with the /
  1841. 59:37resume command you are able to do this.
  1842. 59:39Now let's escape from here and let's see
  1843. 59:42the another thing. Suppose if we look at
  1844. 59:44the command which is uh let's say we
  1845. 59:47want to use a command delete. You can
  1846. 59:48delete the particular session. If you
  1847. 59:50use a command delete here it will ask me
  1848. 59:51that whether you want to keep the
  1849. 59:53session or you want to delete and exit.
  1850. 59:54So if you want to permanently delete you
  1851. 59:56can use a/delete command. Now escape
  1852. 59:58from there also I don't want to delete
  1853. 59:59my session. Now another thing is the sub
  1854. 1:00:01agent personality exit. Yeah this exit
  1855. 1:00:04one is also useful. So if you want to
  1856. 1:00:06exit from the codeex you can just type
  1857. 1:00:07here exit and when you click enter. We
  1858. 1:00:10have seen this in the VS code terminal
  1859. 1:00:11also. But if you want to exit, you can
  1860. 1:00:12just write here exit and it will make
  1861. 1:00:15you out from your codeex cla and you can
  1862. 1:00:17start it again by using the codeex again
  1863. 1:00:19here and skip and our codeex will start
  1864. 1:00:21again. Now let's look at one of the most
  1865. 1:00:23important command which is a /init. So
  1866. 1:00:25when you type /init command you can read
  1867. 1:00:27the description what it says. It says
  1868. 1:00:29that it will create an agent.md file
  1869. 1:00:31with instruction for codex. But now what
  1870. 1:00:34is agents.md file? We have not discussed
  1871. 1:00:36about this anywhere in our project and
  1872. 1:00:38it's very important file in codeex but
  1873. 1:00:40we will not discuss about this
  1874. 1:00:41agents.mmd file for now because I want
  1875. 1:00:43to create a separate section for
  1876. 1:00:44agents.md file. So when we start
  1877. 1:00:46building a project using the codeex cla
  1878. 1:00:49we'll discuss about the agents.md file
  1879. 1:00:51in detail but just for now you just
  1880. 1:00:53understand that when you use the /init
  1881. 1:00:55command it will create agents.md file
  1882. 1:00:57with some scaffold content inside it.
  1883. 1:00:59Scaffold basically means by default
  1884. 1:01:01content some rules available there. what
  1885. 1:01:03are all those rules that we'll discuss
  1886. 1:01:05about this and all those rules will be
  1887. 1:01:07available in the form of markdown. So
  1888. 1:01:09we'll see how all those things are
  1889. 1:01:10actually work when we build our own
  1890. 1:01:12project and there we'll create our own
  1891. 1:01:13agents file. So these are all the SL
  1892. 1:01:15commands. You can use any one of them
  1893. 1:01:17based on your requirement and you can
  1894. 1:01:19explore also by using the slash command.
  1895. 1:01:20Now the another one you can use here is
  1896. 1:01:22a / logout. So if you want to login with
  1897. 1:01:24some another thing let's say you want to
  1898. 1:01:26go with the API key now or maybe you
  1899. 1:01:27want to connect with a different device
  1900. 1:01:28you can use a / log out here and when I
  1901. 1:01:31say / logout and click enter uh it will
  1902. 1:01:33loged out me from my current chat GPD
  1903. 1:01:35account and now if I want to see it
  1904. 1:01:37again whether we have logged out or not
  1905. 1:01:39so I can just write a codeex and when I
  1906. 1:01:40click enter let's skip for now again and
  1907. 1:01:43again it will ask me for authentication
  1908. 1:01:44again I can go with a chatg or device
  1909. 1:01:47code or provide my own API key to
  1910. 1:01:49authenticate again with my codeex cla
  1911. 1:01:52command explore by yourself also. Just
  1912. 1:01:54type the slash here and see all the list
  1913. 1:01:56of the codecs and based on your
  1914. 1:01:57requirement you can use any one of them.
  1915. 1:02:01Now imagine you have a set up a CI
  1916. 1:02:02pipeline and every time it gets
  1917. 1:02:04triggered your codeex start working
  1918. 1:02:06inside it. It will review the changes,
  1919. 1:02:08it will apply the fixes and it will push
  1920. 1:02:10them all back automatically. Now this
  1921. 1:02:13only possible through codec cla because
  1922. 1:02:15you know that CI pipeline only works
  1923. 1:02:17with commands not with the user
  1924. 1:02:18interfaces. Now there's one command
  1925. 1:02:21which is provided by codeex which lets
  1926. 1:02:23you integrate all these things inside
  1927. 1:02:25your CI pipeline and not only in the CI
  1928. 1:02:28pipeline but all the environment which
  1929. 1:02:30only works in headless and
  1930. 1:02:31non-interactive mode. So if you want to
  1931. 1:02:34see that command let's open the terminal
  1932. 1:02:36and here let me first call my codeex to
  1933. 1:02:39use it. So I'll just write here codeex
  1934. 1:02:41uh let's skip and now we are inside the
  1935. 1:02:43codeex. So if you want to use that
  1936. 1:02:45command to execute it automatically. I
  1937. 1:02:47can use the command which is codeex then
  1938. 1:02:50xc. This is the exact command which we
  1939. 1:02:52need to use to automate our task. Now we
  1940. 1:02:54can use the alias also. So if you don't
  1941. 1:02:56want to write xc we can write e also
  1942. 1:02:58like this. But let's go with the xc for
  1943. 1:03:00now. And here you can give the task. Now
  1944. 1:03:02I want to show you how you can give
  1945. 1:03:04actually this task inside of CI pipeline
  1946. 1:03:06and how it will actually work. So to
  1947. 1:03:08make it sure we need to first create a
  1948. 1:03:09folder and then here we'll create a CI
  1949. 1:03:11pipeline with the GitHub actions and
  1950. 1:03:13there we'll see how this codeex actually
  1951. 1:03:15works inside that. So let's create a
  1952. 1:03:17folder inside the desktop. Let's say we
  1953. 1:03:20call a folder which is review. And now
  1954. 1:03:22we'll open this folder inside our VS
  1955. 1:03:24code. Now we know that if we want to
  1956. 1:03:25create a GitHub action for the CI
  1957. 1:03:27pipeline, we have to first create a dot
  1958. 1:03:29GitHub folder and inside that we need to
  1959. 1:03:30create a workflow. So we'll do the same
  1960. 1:03:33here. I'll just create a folder which is
  1961. 1:03:35GitHub and inside this I'll create one
  1962. 1:03:38more folder with the name workflows and
  1963. 1:03:40inside this we need to create our yml
  1964. 1:03:42file where we write all the commands for
  1965. 1:03:44executing. Uh let's say we write a code
  1966. 1:03:47review yimml. Now this is our file. Now
  1967. 1:03:50let me zoom in a little bit. Now I've
  1968. 1:03:52already created the entire commands.
  1969. 1:03:53I'll just paste it here and explain you
  1970. 1:03:55how we are actually injecting our codeex
  1971. 1:03:58command inside this. So I'll just paste
  1972. 1:04:00it here. Now if you look at here this is
  1973. 1:04:02just the normal GitHub action commands
  1974. 1:04:04where we have a name and we are writing
  1975. 1:04:05the on command which decide that when
  1976. 1:04:07this CI pipeline should get triggers and
  1977. 1:04:09then we are writing our jobs. Now if you
  1978. 1:04:11notice here with the name run codeex
  1979. 1:04:13review. Now this is the job that we have
  1980. 1:04:15decided in our codeex yml to run and
  1981. 1:04:17inside this we have set an environment
  1982. 1:04:19variables. Now this is important
  1983. 1:04:21otherwise if you do not decide your
  1984. 1:04:23openi API key then it will not get to
  1985. 1:04:25know that whether you are authenticated
  1986. 1:04:27user or not. So you need to apply your
  1987. 1:04:30open AI key. Now if you notice here we
  1988. 1:04:32have used the open AI key using the
  1989. 1:04:33secret variable. Now how it will get all
  1990. 1:04:36the secret variable it will get from the
  1991. 1:04:37GitHub actions. I'll show you in one of
  1992. 1:04:39my repo where I have do this. So let me
  1993. 1:04:41open the chrome and here this is my repo
  1994. 1:04:44and in this repo if you go to the
  1995. 1:04:45settings then here if you go to the
  1996. 1:04:47secret and variable options then go to
  1997. 1:04:50the actions you can see this this is the
  1998. 1:04:52place where you have to define all your
  1999. 1:04:53secret variables. I've already defined
  2000. 1:04:55some of the secret variable for this
  2001. 1:04:56repo which is AWS access key and ID. So
  2002. 1:04:59here if you define your open API key
  2003. 1:05:01then the next time when that CI pipeline
  2004. 1:05:03gets triggered it will fetch that open
  2005. 1:05:05AI key from the secret variables. Now
  2006. 1:05:07this is a best practice because you
  2007. 1:05:08should not define your secret variables
  2008. 1:05:10like open AI key or any other variable
  2009. 1:05:12directly in your GitHub action commands
  2010. 1:05:14which has a chance for expose. So always
  2011. 1:05:17keep them inside your GitHub actions and
  2012. 1:05:18then you can fetch it from there. And
  2013. 1:05:20then we have this run command which
  2014. 1:05:22basically run our codeex command and
  2015. 1:05:24inside this we have given the task which
  2016. 1:05:26it should run. We have write here like
  2017. 1:05:28review the changes in this PR for bugs
  2018. 1:05:30and rest of the things. So in this way
  2019. 1:05:32you can inject codeex inside your CI
  2020. 1:05:34pipeline or anywhere where only commands
  2021. 1:05:36work. Now when you define this it will
  2022. 1:05:38run this task for one time and provide
  2023. 1:05:40the output in the standard output format
  2024. 1:05:42and then finish the task. There's a no
  2025. 1:05:44human interaction required because
  2026. 1:05:45everything is running in the headless
  2027. 1:05:47mode non-inctive mode. Now although we
  2028. 1:05:49can run this command in our Codex
  2029. 1:05:50terminal also but that is not the way
  2030. 1:05:52you should write it. You should always
  2031. 1:05:53write this codeex command where only we
  2032. 1:05:55are working with the command line. But
  2033. 1:05:57let me show you for the demo. So if you
  2034. 1:05:59open the terminal here and here if we
  2035. 1:06:02run our codeex uh do you test the
  2036. 1:06:04content? Yes. Continue. And here if I
  2037. 1:06:06write the command which is codeex and
  2038. 1:06:08then let's say if I give a task uh run
  2039. 1:06:12test and fix any issue in this file I'm
  2040. 1:06:16going to click enter it will work for
  2041. 1:06:18short here but as I told you before we
  2042. 1:06:20should not use it like this here I think
  2043. 1:06:21it will take more time because we run it
  2044. 1:06:23directly in our home directory and
  2045. 1:06:24inside that home directory there are
  2046. 1:06:26multiple folders and file available so
  2047. 1:06:28it will scan all those file and find the
  2048. 1:06:30bugs inside this. So we can terminate it
  2049. 1:06:32for now but you get the point that we
  2050. 1:06:34can use this command to automate our
  2051. 1:06:36task in the headless mode. So this is
  2052. 1:06:37the way you can run codex in the
  2053. 1:06:39automation mode.
  2054. 1:06:42Now we have reached at the point where
  2055. 1:06:43we are going to create our own fullstack
  2056. 1:06:45application from back end to front end
  2057. 1:06:47to integrating to our database and also
  2058. 1:06:50deploying it on the hosting platform.
  2059. 1:06:52And while we are doing all those things
  2060. 1:06:54we'll understand all the important
  2061. 1:06:55concepts of codeex there itself. Now you
  2062. 1:06:58already know that whenever we want to
  2063. 1:07:00deploy our project, we need to at least
  2064. 1:07:02keep a track of all the commits in the
  2065. 1:07:04code in a version control system. Maybe
  2066. 1:07:06a GitHub or a bit bucket. So we'll also
  2067. 1:07:08do the same thing. If you want to deploy
  2068. 1:07:10our project, we need to first have it in
  2069. 1:07:12the GitHub. So what we'll do, we'll
  2070. 1:07:14create a project. Basically, we are
  2071. 1:07:16going to build a URL shortener website,
  2072. 1:07:18which is a very basic website, but there
  2073. 1:07:21we'll understand how all the concepts of
  2074. 1:07:23codeex actually work. So we'll start
  2075. 1:07:25from there. We'll push our code on the
  2076. 1:07:27GitHub and also we are not only going to
  2077. 1:07:29push the code by ourself by writing all
  2078. 1:07:31the git command. Instead we will take
  2079. 1:07:33the help of codeex. Codex will only do
  2080. 1:07:35all the things. It will create a repo
  2081. 1:07:37for us. It will deploy it on the versel
  2082. 1:07:39or also it will integrate the database.
  2083. 1:07:41It will open up the request. It will
  2084. 1:07:43also create a new branch and also it
  2085. 1:07:45will merge it to the main. So all the
  2086. 1:07:47things will be managed by the GitHub.
  2087. 1:07:50But we need to make sure one thing if it
  2088. 1:07:52is managed by the GitHub then it should
  2089. 1:07:55get access to our GitHub account also.
  2090. 1:07:57So the first thing is that we need to
  2091. 1:07:58connect our GitHub account with a codeex
  2092. 1:08:01so that it can create a repo and do the
  2093. 1:08:02rest of the things there. So we need two
  2094. 1:08:04things to connect it to our GitHub
  2095. 1:08:05account. The first thing is that of
  2096. 1:08:07course git. So what we can do we'll go
  2097. 1:08:10here in the website and we'll search
  2098. 1:08:11here get install
  2099. 1:08:14and from here we'll install it. And I am
  2100. 1:08:17assuming that you might have this in
  2101. 1:08:19your system because if you have used git
  2102. 1:08:21or github before this git command is
  2103. 1:08:23already there because through this only
  2104. 1:08:24you are able to write all the git
  2105. 1:08:26commands. So you can install the git
  2106. 1:08:28command based on your operating system
  2107. 1:08:30whether you are a window or Ubuntu or
  2108. 1:08:32Mac OS or if you want to go with the
  2109. 1:08:34homebrew method also that also you are
  2110. 1:08:36going to do there. Now once you install
  2111. 1:08:38this the next thing is that you need a
  2112. 1:08:40GH which basically means a GitHub CLI
  2113. 1:08:42through that only it will going to
  2114. 1:08:43authenticate with your GitHub account
  2115. 1:08:45and do the rest of operations. So just
  2116. 1:08:48go again and search get GH install and
  2117. 1:08:53here you can just go this website maybe
  2118. 1:08:58yeah this one itself and here you will
  2119. 1:09:00get the command which is a blue install
  2120. 1:09:02gh. So install these two things and
  2121. 1:09:04after installing it open the terminal
  2122. 1:09:06and verify whether you have installed it
  2123. 1:09:07or not. So just try to get - version you
  2124. 1:09:11are able to see the version of git that
  2125. 1:09:13means it is installed. Same you can run
  2126. 1:09:14for the GH also. So I'll just write gh
  2127. 1:09:17version and we got the version of the GS
  2128. 1:09:20also. So now after this we need to
  2129. 1:09:23connect our GitHub account through
  2130. 1:09:24codeex. So the thing is that we need to
  2131. 1:09:27use a command which is a gh o login
  2132. 1:09:29because gs is a cla which basically
  2133. 1:09:31means a github cla. So we are able to
  2134. 1:09:33run this command. So I'll just write
  2135. 1:09:34here gh o login and when you enter this
  2136. 1:09:39command it will ask you what you want to
  2137. 1:09:41actually authenticate your github
  2138. 1:09:42account or something else. I'll say
  2139. 1:09:44github.com.
  2140. 1:09:46I'll click on this. Then it will ask
  2141. 1:09:48which protocol do you actually want to
  2142. 1:09:50use https or ssh. So you can go with the
  2143. 1:09:53https because it's a very simple one. So
  2144. 1:09:55just click on this and it will ask
  2145. 1:09:57authenticate git with your gith
  2146. 1:09:58credential. Just say y and then click
  2147. 1:10:00enter. Then it will ask how you actually
  2148. 1:10:02want to login with browser or you want
  2149. 1:10:04to paste an authentication token. So
  2150. 1:10:06click on with browser and then it say
  2151. 1:10:08that copy this code because this is the
  2152. 1:10:10code we are going to use in our browser
  2153. 1:10:11when you want to authenticate with the
  2154. 1:10:12GitHub account. So just copy this and
  2155. 1:10:15once you confirm that I have copied it
  2156. 1:10:16then click on the enter. It will
  2157. 1:10:18redirect you to the browser. Here it
  2158. 1:10:20will ask your account that through which
  2159. 1:10:21account you actually want to continue
  2160. 1:10:24with the GitHub. So just click on
  2161. 1:10:25continue and then paste the code which
  2162. 1:10:27we have copied from the terminal and
  2163. 1:10:29then click on continue and it will ask
  2164. 1:10:32that if you want to continue then what
  2165. 1:10:34are the things you want to grant it
  2166. 1:10:36maybe create a git repo read an
  2167. 1:10:38organization team membership and if you
  2168. 1:10:40have connected with other organization
  2169. 1:10:41also then you want to give access to
  2170. 1:10:43that organization also or not you can
  2171. 1:10:45just enable and disable all this thing
  2172. 1:10:46from there. Then once you comfortable
  2173. 1:10:48with this thing then click on authorize
  2174. 1:10:50GitHub and it will say you have
  2175. 1:10:51authenticated. Now go back to the
  2176. 1:10:53terminal and here if you notice it says
  2177. 1:10:55that logged in naman para which is my
  2178. 1:10:57GitHub account and it also said that you
  2179. 1:10:59were already logged in because I've
  2180. 1:11:00tried this before also. Now once we
  2181. 1:11:02connect our GitHub account the next step
  2182. 1:11:03is creating a project. So as I told you
  2183. 1:11:06before that we are going to build a URL
  2184. 1:11:07shortener website. So first thing is
  2185. 1:11:09that we need a folder. So either you can
  2186. 1:11:12say to codex that create a folder to
  2187. 1:11:13that particular path or you can just
  2188. 1:11:15manually create it and then open codex
  2189. 1:11:16inside that folder. So I'll prefer the
  2190. 1:11:18manual way here. So just open the finder
  2191. 1:11:21or if you are in the windows and open
  2192. 1:11:23the file explorer and then decide where
  2193. 1:11:25you want to create a folder. In my case
  2194. 1:11:27I want to go with the desktop. So I'll
  2195. 1:11:28go here and then click on new folder and
  2196. 1:11:31then I'll write the name of my folder
  2197. 1:11:33which will be the link forge which
  2198. 1:11:35basically means a URL shortener. So I'll
  2199. 1:11:37just write here link forge and when I
  2200. 1:11:40click enter I have created my folder.
  2201. 1:11:43Now I'll open this folder inside the VS
  2202. 1:11:45code and there we'll use the codeex
  2203. 1:11:47inside this folder. So just click right
  2204. 1:11:50click actions open VS code. Okay. So now
  2205. 1:11:53we are inside of a VS code with this
  2206. 1:11:55particular folder. Just open the
  2207. 1:11:56terminal and now start running the
  2208. 1:11:59codeex here. We can use this terminal as
  2209. 1:12:01I told you before that either you can
  2210. 1:12:02use a VS code terminal or your computer
  2211. 1:12:04terminal. Both are similar just only the
  2212. 1:12:06platform change. So I'll just write here
  2213. 1:12:08first I need to verify whether I'm in
  2214. 1:12:09the link forge folder or not although I
  2215. 1:12:11am but just for the shity I'll just
  2216. 1:12:13write here pawwd and it says that you
  2217. 1:12:15are in the users naman paharia desktop
  2218. 1:12:17link forge. Okay now I want to run the
  2219. 1:12:19ls command also just to show that right
  2220. 1:12:21now this project folder is completely
  2221. 1:12:23empty. So as you can see here now so
  2222. 1:12:25just write the command which is codex
  2223. 1:12:27and it says yes continue because this is
  2224. 1:12:29the empty folder. So it just asked
  2225. 1:12:30whether you want to trust this folder or
  2226. 1:12:32not. So I'll just click on yes continue.
  2227. 1:12:34And now our codeex is started in our VS
  2228. 1:12:37code terminal. So what the first thing
  2229. 1:12:39we need to do? First thing is that we
  2230. 1:12:41need to create at least one file to
  2231. 1:12:43create a GitHub repo because GitHub repo
  2232. 1:12:45can't be empty. So at least one file is
  2233. 1:12:46needed. So I'll maybe create a simple
  2234. 1:12:49readme.md file and then I'll just commit
  2235. 1:12:51that file and create my GitHub repo. So
  2236. 1:12:53all those things we are going to do with
  2237. 1:12:54the codeex. So I'll just say create a
  2238. 1:12:58readme file. I'll say readme.md file for
  2239. 1:13:02this project which is built with
  2240. 1:13:05expressjs
  2241. 1:13:06and reactjs. I just give the little
  2242. 1:13:10context that what text tag we are going
  2243. 1:13:11to use in this project so that it at
  2244. 1:13:14least contains some relevant information
  2245. 1:13:16about these project inside my readmi.mmd
  2246. 1:13:18file. Just create enter. It will start
  2247. 1:13:20creating it. We can see it in the real
  2248. 1:13:22time also that whether the file has been
  2249. 1:13:24created or not. As you can see it says
  2250. 1:13:25the workspace is empty and it has
  2251. 1:13:27created the readme file. And this is the
  2252. 1:13:29content it contains inside it. I can
  2253. 1:13:31open the readme file here also and we
  2254. 1:13:32can see what are the things it contains.
  2255. 1:13:35So it says that the link forge is a
  2256. 1:13:36fullstack a web application built with
  2257. 1:13:38express js on the back end and the
  2258. 1:13:39reactjs on the front end. This is able
  2259. 1:13:41to write here because I have given the
  2260. 1:13:43context and the text project structure
  2261. 1:13:46and the feature. Okay. Now the next step
  2262. 1:13:48is we need to commit this file. So I'll
  2263. 1:13:51just simply say create a initial commit
  2264. 1:13:53or maybe I just say that create my
  2265. 1:13:55public GitHub repo. So it will
  2266. 1:13:56automatically make sure that okay if you
  2267. 1:13:58want to create a repo it should first
  2268. 1:13:59have a file with a commit message. So it
  2269. 1:14:01will automatically create a commit
  2270. 1:14:02message push our file and then create a
  2271. 1:14:04public repo. So I'll just simply write
  2272. 1:14:06here create a GitHub or I'll say create
  2273. 1:14:10a public GitHub repo then click enter.
  2274. 1:14:13It will first look in our GitHub account
  2275. 1:14:15that whether we are authenticated or not
  2276. 1:14:17and once it confirm it will then look at
  2277. 1:14:19whether the same name GitHub repo is
  2278. 1:14:20available or not in the GitHub. If it is
  2279. 1:14:22available, it may use a different name
  2280. 1:14:25or maybe it will tell us that this name
  2281. 1:14:27is already available. You should choose
  2282. 1:14:28a different name. By the way, we have
  2283. 1:14:30not given the name of the repo. It will
  2284. 1:14:31automatically fetch the name based on
  2285. 1:14:33the project we have given. It will now
  2286. 1:14:34ask, do you want to run the git in it?
  2287. 1:14:36Yes, we want to run. So, first it will
  2288. 1:14:38initialize the git. As I told you
  2289. 1:14:40before, it will automatically understand
  2290. 1:14:41that if you want to create a git repo,
  2291. 1:14:43clear steps are required like we need to
  2292. 1:14:45create a git in it commit and then push
  2293. 1:14:47github and then only our repo will
  2294. 1:14:49available. again do you want to create a
  2295. 1:14:51branch with the main I'll say yes
  2296. 1:14:53proceed although I can give it the
  2297. 1:14:54permission for full access so this thing
  2298. 1:14:56will not ask it will automatically
  2299. 1:14:58create by itself then it says uh do you
  2300. 1:15:00want to stage the file and commit with
  2301. 1:15:02the message with the initial commit I'll
  2302. 1:15:04say of course yes so all the steps it is
  2303. 1:15:06following to create a my GitHub repo and
  2304. 1:15:08get repo create link forge I'll say yes
  2305. 1:15:10proceed and it says link forge already
  2306. 1:15:12exist on a GitHub account so I'm looking
  2307. 1:15:14up its URL and then I'll connect the
  2308. 1:15:16local repo to that existing public
  2309. 1:15:17repository instead of creating a
  2310. 1:15:19duplicate Okay, so it has said that this
  2311. 1:15:21repo is already available. I have this
  2312. 1:15:23same repo in my GitHub account. That's
  2313. 1:15:25why it says this. No worries. Let's
  2314. 1:15:27click on yes, proceed and see what it
  2315. 1:15:28does. Would you like to run the
  2316. 1:15:30following command? Connect the local
  2317. 1:15:31repository to the existing public
  2318. 1:15:32repository and push the initial commit.
  2319. 1:15:34I'll say something different. I don't
  2320. 1:15:36want to make sure it should be available
  2321. 1:15:38inside my existing public repository. It
  2322. 1:15:40should be a completely new. So I'll say
  2323. 1:15:42no and I'll say something different to
  2324. 1:15:44the codeex. I'll say create a public
  2325. 1:15:47GitHub repo with the name URL shortener.
  2326. 1:15:52Okay, now I'm sure that this name is not
  2327. 1:15:53available in my GitHub repository. So it
  2328. 1:15:55will definitely create a new repo. Now
  2329. 1:15:57commit is already done if I'm not wrong.
  2330. 1:15:59Yeah, initial commit is there. I'll say
  2331. 1:16:01yes proceed now. And now it says that it
  2332. 1:16:03has created our repo with the name URL
  2333. 1:16:05shortener. We can click on this URL to
  2334. 1:16:07verify whether the repo is created or
  2335. 1:16:09not. So just click here and it has
  2336. 1:16:11opened the browser and we can see this
  2337. 1:16:13it is inside my GitHub account with the
  2338. 1:16:15name URL shortener and it has also
  2339. 1:16:17committed my first file which is
  2340. 1:16:18readme.md with a message initial commit
  2341. 1:16:21and this is the exact content it
  2342. 1:16:22contains inside it. So as you can see
  2343. 1:16:24all the things are done with the codeex
  2344. 1:16:25cla itself. We have not created the repo
  2345. 1:16:27by itself by writing all the g commands.
  2346. 1:16:30We just tell the codeex that create a
  2347. 1:16:31github repo and it automatically create
  2348. 1:16:33a message. It asks for the approval
  2349. 1:16:35because you have given the permission
  2350. 1:16:36for ask approval. But if you feel like
  2351. 1:16:38that it will have smart enough and
  2352. 1:16:40create the repo by itself with a good
  2353. 1:16:42commit message and all the relevant
  2354. 1:16:44things then you can go with the full
  2355. 1:16:45access permission also. Although we'll
  2356. 1:16:47use the full access permission only
  2357. 1:16:49later because we don't want to give
  2358. 1:16:50permission every time I believe that it
  2359. 1:16:53will keep everything perfect and
  2360. 1:16:54although we are here for the monitor so
  2361. 1:16:56monitor in between if something goes
  2362. 1:16:58wrong. So we have now done this part
  2363. 1:16:59where we have connect our GitHub account
  2364. 1:17:01create a public repo and also commit our
  2365. 1:17:03first file which is admin. MD
  2366. 1:17:07now whenever we use codex inside our
  2367. 1:17:09project we want it to follow some
  2368. 1:17:11instruction and rules before taking any
  2369. 1:17:13action inside my project now let's say
  2370. 1:17:15if I want that whenever generate any
  2371. 1:17:17code for me it should also run npm run
  2372. 1:17:20test command so that it can verify
  2373. 1:17:22whatever the code it has generated we
  2374. 1:17:24can also make a command or the
  2375. 1:17:25instruction where I will say that before
  2376. 1:17:27generating the code you should always
  2377. 1:17:29take a pull request so that it will get
  2378. 1:17:31the latest code I can give another
  2379. 1:17:32instruction also let's say I want that
  2380. 1:17:34whenever you are creating a variable
  2381. 1:17:36name or the file name always follow some
  2382. 1:17:38naming convention in short I just want
  2383. 1:17:40to give some instruction and guidance to
  2384. 1:17:42the codeex so that it can work inside my
  2385. 1:17:44project based on those guidance now you
  2386. 1:17:46can think it in this way also let's say
  2387. 1:17:47when a junior developer gets hired in
  2388. 1:17:49the company how manager and the senior
  2389. 1:17:51developer explain him everything guide
  2390. 1:17:53him with all the instructions like what
  2391. 1:17:55tech stock we are working on how the
  2392. 1:17:57deployment actually goes on and how we
  2393. 1:17:59communicate on the day-to-day basis so
  2394. 1:18:01that when this junior developer start
  2395. 1:18:03working it follow all the guidance and
  2396. 1:18:05the instruction and work based on that.
  2397. 1:18:06Same like that whenever you want to
  2398. 1:18:08guide codeex that how it should work
  2399. 1:18:10inside my project we need to create a
  2400. 1:18:12file and there we'll define all the
  2401. 1:18:14instruction. So as you can see here
  2402. 1:18:16right now we have a readme.md file and
  2403. 1:18:19what's the role of the readme.md file to
  2404. 1:18:21guide humans that what this repo
  2405. 1:18:23actually contain. Whenever you open any
  2406. 1:18:24GitHub repository, you always read the
  2407. 1:18:26readme.md file to know what this repo
  2408. 1:18:29actually contained, what is the
  2409. 1:18:30description of the repo, what text tag
  2410. 1:18:32actually use, what are the commands I
  2411. 1:18:34need to follow to make this repo
  2412. 1:18:36available on my system and run it
  2413. 1:18:37locally. Same like that, we need to
  2414. 1:18:39create an agents MD file where we write
  2415. 1:18:42all the instruction for the codeex to
  2416. 1:18:44follow inside my project. Now, just like
  2417. 1:18:46this in cloud code also, if you know
  2418. 1:18:47about the cloud code and have used it
  2419. 1:18:49before in cloud code, we also create a
  2420. 1:18:51instruction file. But the name of that
  2421. 1:18:53file is claude.m MD. So every agent has
  2422. 1:18:57their own file name but the purpose
  2423. 1:18:58remain the same which is giving the
  2424. 1:19:00instruction and the guidance which you
  2425. 1:19:02want it should work inside your project.
  2426. 1:19:04So we'll create one file here inside my
  2427. 1:19:06link forge. Now if you remember that I
  2428. 1:19:08have discussed about one slash command
  2429. 1:19:10in the slash video where we have talked
  2430. 1:19:13about /init command and you know that
  2431. 1:19:15what does that command actually do? it
  2432. 1:19:18create an issafold agents.md file which
  2433. 1:19:21basically means creating an agent.mmd
  2434. 1:19:23file with some default instruction. So
  2435. 1:19:25if I type this command will it create my
  2436. 1:19:27agent md file inside my project of
  2437. 1:19:29course it will create. So let's try it
  2438. 1:19:31out. So if I type here / init and then
  2439. 1:19:34when I say enter it will create an agent
  2440. 1:19:36md file. It will read my readme.md file
  2441. 1:19:38also to get the context that what this
  2442. 1:19:40repo actually contain and based on that
  2443. 1:19:42it will write some by default
  2444. 1:19:44instruction and I'll look at those
  2445. 1:19:46instruction if I'm happy with that I can
  2446. 1:19:48go with that or if I want to customize I
  2447. 1:19:50can customize based on my requirement so
  2448. 1:19:52it has created agents MD file I don't
  2449. 1:19:54have to write the name by myself I just
  2450. 1:19:55need to use the command slash in it and
  2451. 1:19:58it has automatically created agents MD
  2452. 1:20:00file so just open it and this is how it
  2453. 1:20:02looks like everything in the markdown
  2454. 1:20:04format because we are using the
  2455. 1:20:05extension with MDF format. Now, as you
  2456. 1:20:08can see, it says the repository
  2457. 1:20:09guidelines, which we also discussed
  2458. 1:20:10instruction. It says the project
  2459. 1:20:12structure and the module organization.
  2460. 1:20:14It needs a server for the backend
  2461. 1:20:16express API, clients for the React app,
  2462. 1:20:18test for the test.js and assets. And it
  2463. 1:20:21also write some useful command npm
  2464. 1:20:23install, rundev, test, run build, and
  2465. 1:20:26the coding style, what type of style it
  2466. 1:20:28should follow inside my project when it
  2467. 1:20:30takes or generate any code. And also we
  2468. 1:20:32have defined subtasks like test command,
  2469. 1:20:34initial commit, env file. So all those
  2470. 1:20:37things are available here. But if you
  2471. 1:20:39want to customize it based on your
  2472. 1:20:40requirement, you can just change this
  2473. 1:20:42entire thing and put your own content
  2474. 1:20:44and your instruction and then you can
  2475. 1:20:46push it on your GitHub. So we'll do the
  2476. 1:20:48same thing. We'll not follow this by
  2477. 1:20:49default instruction. Although it's
  2478. 1:20:50relevant because it has created based on
  2479. 1:20:52our project, but I want to use something
  2480. 1:20:54different. So I'll just select all those
  2481. 1:20:56things and cut now and paste my content.
  2482. 1:20:59So this is what I want inside my
  2483. 1:21:01instruction file. You can read this. You
  2484. 1:21:03can understand what are the things
  2485. 1:21:04available here. I have already created
  2486. 1:21:06before. So I know what are the things
  2487. 1:21:07available here and it's relevant. So
  2488. 1:21:09just read it out. Now I'll save this and
  2489. 1:21:12I'll say now create a commit. It will
  2490. 1:21:15automatically create my commit. Push it
  2491. 1:21:16on the GitHub and then we'll verify
  2492. 1:21:18whether it is pushed or not. So I just
  2493. 1:21:21write here create a
  2494. 1:21:24commit or I'll just say push it on
  2495. 1:21:29GitHub.
  2496. 1:21:31Okay, it says I'm checking the local
  2497. 1:21:32div. It asking for my permission. I'll
  2498. 1:21:35say yes,
  2499. 1:21:37it has pushed. We can verify the commit
  2500. 1:21:39also. And it says that addit contributor
  2501. 1:21:42guide. So it's a relevant commit. It has
  2502. 1:21:44generated by itself based on the content
  2503. 1:21:46which we are going to push. And we can
  2504. 1:21:48verify whether this is done or not. So
  2505. 1:21:51just go to the browser and here when we
  2506. 1:21:53refresh
  2507. 1:21:54we can see the commit as well as our
  2508. 1:21:56file which is agents.mmd file and this
  2509. 1:21:59is the commit add contributor guide and
  2510. 1:22:01it has done now only just open this file
  2511. 1:22:03to verify whether it contains the same
  2512. 1:22:04content or not and it contains. So okay
  2513. 1:22:07so this is what we want to discuss about
  2514. 1:22:09agents.mmd file which basically means
  2515. 1:22:11creating our own instruction and
  2516. 1:22:13guidance which our codeex use inside our
  2517. 1:22:15project.
  2518. 1:22:18Now it's time to create a functionality
  2519. 1:22:19in our project by creating the backend
  2520. 1:22:21files and the front end files and also
  2521. 1:22:23the test cases. Now I can give a command
  2522. 1:22:26to the codeex to create all those things
  2523. 1:22:28for me and there are multiple ways to
  2524. 1:22:30use it. So let's say if I want to create
  2525. 1:22:32my back end and the front end, I'll just
  2526. 1:22:34write all those things in one command to
  2527. 1:22:36the codeex and it will generate for me.
  2528. 1:22:38But the thing is that if I give the
  2529. 1:22:40entire command to codeex to generate my
  2530. 1:22:42back end and front end at one go, then
  2531. 1:22:44it will for sure generate. But it will
  2532. 1:22:47take a lot more time because it needs to
  2533. 1:22:49first generate the entire back end code.
  2534. 1:22:51It needs to run the test cases to make
  2535. 1:22:53sure that everything working and then it
  2536. 1:22:54will move to the front end code and then
  2537. 1:22:56it will generate that. So I have to wait
  2538. 1:22:58for entire thing. Now I can use the
  2539. 1:22:59another option also. Maybe I can give a
  2540. 1:23:01codeex a command where I'll say first
  2541. 1:23:03create the back end code and I'll just
  2542. 1:23:05say enter. It will create and give me
  2543. 1:23:06the back end code. Then I'll switch to
  2544. 1:23:08the next one which is creating a front-
  2545. 1:23:10end code. And when it generate the front
  2546. 1:23:11end code for me, then I'll say run the
  2547. 1:23:13test case to verify whatever you have
  2548. 1:23:15created is correct or not. So in this
  2549. 1:23:17way I have divided my task into subtask
  2550. 1:23:19and then give it one by one. But there's
  2551. 1:23:21still a catch. I have to wait for the
  2552. 1:23:23model to make sure that whether the
  2553. 1:23:24first task is completed or not and then
  2554. 1:23:26only I'm able to give the second task.
  2555. 1:23:28Now what if I can say that we can run
  2556. 1:23:30all these task valerly at once. I just
  2557. 1:23:32say the codeex then run all these task
  2558. 1:23:34at once and I can verify whether these
  2559. 1:23:36tasks are running simultaneously or not.
  2560. 1:23:39Now basically there's a concept in
  2561. 1:23:40codeex which is sub aents and now the
  2562. 1:23:43name itself says sub aent which
  2563. 1:23:45basically means creating multiple agents
  2564. 1:23:47for your task. So suppose if I want to
  2565. 1:23:50create multiple agent one for the back
  2566. 1:23:52end one for the front end and one for
  2567. 1:23:54running the test case I can do this in
  2568. 1:23:56my codeex. Now this is very useful
  2569. 1:23:58because if you have a large complex task
  2570. 1:24:00and you don't want to make the only one
  2571. 1:24:02thread or I can say the one agent to do
  2572. 1:24:04that entire task you can divide it into
  2573. 1:24:06the multiple task. So your main agent
  2574. 1:24:09can only focuses on creating a planning
  2575. 1:24:11for you relevant all the informations
  2576. 1:24:14creating a plan for you gathering all
  2577. 1:24:15the relevant information and whatever
  2578. 1:24:17the important things are required. So
  2579. 1:24:19how the flow actually goes on let's
  2580. 1:24:21discuss on the drawing board. If we have
  2581. 1:24:23as a developer we basically have a main
  2582. 1:24:25agent which is the entry point which is
  2583. 1:24:26right now we are using where we give all
  2584. 1:24:28the commands to the codeex or I can say
  2585. 1:24:30that a task. Now through the main agent
  2586. 1:24:32we give a command to the codeex that
  2587. 1:24:35create sub aent for this particular
  2588. 1:24:36task. I'll define the task that what
  2589. 1:24:38should agent do for this particular task
  2590. 1:24:40and let's say I've given the task that
  2591. 1:24:43one agent should do search code another
  2592. 1:24:44one should write a code and the next one
  2593. 1:24:46should run the test case and I'll say
  2594. 1:24:48also once these all task get executed
  2595. 1:24:51summarize all those task do a merge
  2596. 1:24:54result and then give me the final output
  2597. 1:24:55so who will responsible for my final
  2598. 1:24:57output of course my main agent because
  2599. 1:24:59that takes care of all the agents work
  2600. 1:25:01it will look and monitor all the things
  2601. 1:25:03whether they have completed or not and
  2602. 1:25:04once they completed it will merge the
  2603. 1:25:06result and give me the final output.
  2604. 1:25:08This is how agents actually work. So
  2605. 1:25:10let's go to the VS code and create a sub
  2606. 1:25:12aent. Now now one thing I also want to
  2607. 1:25:14share that whenever you are creating a
  2608. 1:25:15sub aent in codeex we have to create it
  2609. 1:25:18explicitly means we have to manually
  2610. 1:25:20call those sub aents and tell it that
  2611. 1:25:22use the sub aent for this particular
  2612. 1:25:23task. But in other agents like if you
  2613. 1:25:26talk about the clot code they
  2614. 1:25:28automatically create the sub aent based
  2615. 1:25:29on the task you have given. So if it
  2616. 1:25:31monitor that your task requires a long
  2617. 1:25:33context, it is a complex task and it
  2618. 1:25:35must be divided into the sub agent, it
  2619. 1:25:37will automatically divide even though
  2620. 1:25:39you didn't tell it to do. But in Codex,
  2621. 1:25:41you have to manually manage it. So I'll
  2622. 1:25:43just write my prompt which I have
  2623. 1:25:44already created. I'll just paste it. And
  2624. 1:25:47this is my prompt. I'll just say build a
  2625. 1:25:50URL shortener project using sub aent.
  2626. 1:25:52Split the work into independent task.
  2627. 1:25:54One sub aent should create the front
  2628. 1:25:56end. Another should build a back end and
  2629. 1:25:59another should prepare test and
  2630. 1:26:00documentation. After they finish
  2631. 1:26:02integrate everything. So this is my
  2632. 1:26:04prompt where I assign a task to the
  2633. 1:26:06codeex and tell it to create sub aents
  2634. 1:26:09for this task and at last summarize my
  2635. 1:26:11result. So let's see how well it will
  2636. 1:26:12generate my code with the sub aent. So
  2637. 1:26:14let's say enter and it will look at my
  2638. 1:26:16prompt and then delegate my task to the
  2639. 1:26:18sub aent. So as you can see here it has
  2640. 1:26:20spawned three sub aents. One is for the
  2641. 1:26:23back end, one is for the front end and
  2642. 1:26:24one is for the test and documentation.
  2643. 1:26:26And these are the three agents running.
  2644. 1:26:29So these are the three agents which are
  2645. 1:26:30running parallelly. While they build,
  2646. 1:26:32I'm staying out of their file scope. So
  2647. 1:26:34integrating stays clean and conflict
  2648. 1:26:36free. So this is our main agents work.
  2649. 1:26:39But these three agents are working for
  2650. 1:26:40backend, front end and the test case.
  2651. 1:26:42Let's wait for the result which are
  2652. 1:26:43running parallelly. Although we can
  2653. 1:26:45verify the result also we can monitor
  2654. 1:26:47those sub agent work in between. If you
  2655. 1:26:48want to see what this back end sub aent
  2656. 1:26:50do currently. So I can just able to do
  2657. 1:26:52that with a command. I'll tell this
  2658. 1:26:54command. Let's say if I just write a /
  2659. 1:26:56agent. As you can see here when I say /
  2660. 1:26:58agent it say switch the active agent
  2661. 1:27:01thread. As you know right now we are
  2662. 1:27:03running three sub aent. That means when
  2663. 1:27:05I write this command and click enter. If
  2664. 1:27:07you can see this these are the agent.
  2665. 1:27:09Now if you notice the name it says
  2666. 1:27:11Pascal Tesla and Ris total. I don't know
  2667. 1:27:15how to pronounce it because these are
  2668. 1:27:16very funky and the weird name. Now these
  2669. 1:27:18names are created by the codeex itself.
  2670. 1:27:20We don't have any permission to define
  2671. 1:27:22how the names of the sub agent should
  2672. 1:27:24be. When you assign the task to the
  2673. 1:27:26codex, it will automatically assign some
  2674. 1:27:27funky name to it which you can later
  2675. 1:27:29identify. Okay, Pascal is for this one,
  2676. 1:27:32Tesla for this one and the third one is
  2677. 1:27:34for this one. So if I want to switch
  2678. 1:27:35between any one of the task and monitor
  2679. 1:27:37how the works going on there. I can just
  2680. 1:27:39do up and arrow key and here I can
  2681. 1:27:41switch between them. Uh okay, it ask me
  2682. 1:27:43for one permission first. Let me click
  2683. 1:27:45yes approved. And now let's say if I
  2684. 1:27:47want to see the work of Tesla sub agent,
  2685. 1:27:49I just go here and click enter. And this
  2686. 1:27:51is what going on in Tesla sub agent.
  2687. 1:27:54Okay. Now if I want to monitor someone
  2688. 1:27:55else, I can again go to the / agent
  2689. 1:27:57command. And here let's say go to the
  2690. 1:27:59Pascal one. Now click enter. And this is
  2691. 1:28:02what going inside the Pascal. Okay. So
  2692. 1:28:04in this way we can monitor the task of
  2693. 1:28:06sub east sub agent and let's wait for it
  2694. 1:28:08to complete the task and let's see how
  2695. 1:28:11the work's going on there.
  2696. 1:28:15So as you can see here till this point
  2697. 1:28:17my back end sub agent has completed it
  2698. 1:28:19work and my main agent has informed me
  2699. 1:28:21that back end is confirmed I'm waiting
  2700. 1:28:23on the front end work next and then I'll
  2701. 1:28:24reconcile the root manifest and run the
  2702. 1:28:26combined checks. So now it says that
  2703. 1:28:28waiting for the passcode which is the
  2704. 1:28:30name of my front end sub agent. So it
  2705. 1:28:32again ask me for the approval. I'll say
  2706. 1:28:33yes proceed. I need to change this
  2707. 1:28:35permission but I'll change it later. I
  2708. 1:28:36don't want to interrupt it in between
  2709. 1:28:38but later on I will definitely give it
  2710. 1:28:39to the full access so I every time I
  2711. 1:28:41don't have to give it the approval.
  2712. 1:28:43Okay. Okay, now it says that the Pascal
  2713. 1:28:44completed that means front end
  2714. 1:28:45implementation is complete and verified
  2715. 1:28:47with the production build. As you can
  2716. 1:28:48see the front end folder here as well.
  2717. 1:28:50So this is my front end code and this is
  2718. 1:28:52my back end code and now what is running
  2719. 1:28:55only I think one thing is done. No, all
  2720. 1:28:57the thing has done. Now we can see here
  2721. 1:28:58it says all three workers finished. I'm
  2722. 1:29:01inspecting the produced file and then
  2723. 1:29:02I'll integrate the two part app into a
  2724. 1:29:04core and layout. So the root commands
  2725. 1:29:06are consistent.
  2726. 1:29:08Now it says that the back end test pass.
  2727. 1:29:10I'm waiting for the front end production
  2728. 1:29:11build to finish and then I'll commit the
  2729. 1:29:13integrated repo state. So basically it
  2730. 1:29:15is running the test cases front end and
  2731. 1:29:17back end subent work has done even
  2732. 1:29:19though test sub aent work is also done
  2733. 1:29:21but it is doing a basic thing which we
  2734. 1:29:24have also mentioned in the agent autom
  2735. 1:29:26file which is running all the test
  2736. 1:29:27command to make sure that all the code
  2737. 1:29:29which is generated is correct or not. So
  2738. 1:29:31now all the sub agents work has done and
  2739. 1:29:33it takes around 7 minutes 43 seconds to
  2740. 1:29:35complete my entire back and the front
  2741. 1:29:36end code and I've also given the
  2742. 1:29:38permission in between to push my code.
  2743. 1:29:40So that's why we are able to see the
  2744. 1:29:41commit here as well. So all the code of
  2745. 1:29:44the back end and front end is now
  2746. 1:29:45available on our GitHub too. So now it's
  2747. 1:29:48time to run this project and see how the
  2748. 1:29:50functionalities and you are actually
  2749. 1:29:51working. So I'll just say run the
  2750. 1:29:53project. Although I can run it by myself
  2751. 1:29:55also by running the command npm rundev.
  2752. 1:29:58I think it has given me the command to
  2753. 1:29:59run in this project. It says that npm
  2754. 1:30:02run test npm run build but I'll tell the
  2755. 1:30:04codeex to run it by yourself. So I'll
  2756. 1:30:06say run the project. Okay, we have made
  2757. 1:30:08the mistake in spelling. I just write
  2758. 1:30:10here s instead of n but it will
  2759. 1:30:13understand. Okay, so project has been
  2760. 1:30:15started. We can now verify by using the
  2761. 1:30:17URL which is given for the front end. So
  2762. 1:30:19I'll just copy this URL and here I'll
  2763. 1:30:21paste the command and this is how our
  2764. 1:30:23project looks like. And to be honest, at
  2765. 1:30:25first glance, it really surprised me. In
  2766. 1:30:28terms of UI functionality, I'm not sure.
  2767. 1:30:31Let's verify whether it has also
  2768. 1:30:33surprised me the functionality or not.
  2769. 1:30:34So what we can do, we can paste any URL
  2770. 1:30:36here. Let's say this one URL only. I'll
  2771. 1:30:39just copy it and paste it now. And let's
  2772. 1:30:42say shorten. Okay, it has shortened my
  2773. 1:30:43URL. It has said that this is the
  2774. 1:30:45original one. This is a short link. It
  2775. 1:30:47has also given me the time stamp that I
  2776. 1:30:49have done it on this date with this
  2777. 1:30:51time. I can just copy it and verify
  2778. 1:30:54whether it's working or not. So yeah,
  2779. 1:30:56this is how it has converted. When I
  2780. 1:30:57click enter, it actually redirect me to
  2781. 1:30:59the original URL. So perfect. Our
  2782. 1:31:02functionalities are also working. It has
  2783. 1:31:03also given me the information that in
  2784. 1:31:06terms of stats that you have generated
  2785. 1:31:08one storage local only. So everything is
  2786. 1:31:10running in the local but later on we'll
  2787. 1:31:12definitely push it on the hosting
  2788. 1:31:14database and also deploy it on the
  2789. 1:31:15production. So let's go back here. So
  2790. 1:31:17now we have understood how we can invoke
  2791. 1:31:19sub agent and delegate the task for each
  2792. 1:31:21sub aent. But what if I want to use a
  2793. 1:31:24sub aent again for the same purpose?
  2794. 1:31:26Let's say I want to use the same front
  2795. 1:31:28end agent. But am I able to use that
  2796. 1:31:30again? Of course not because that was a
  2797. 1:31:32sub agent created by the codeex itself
  2798. 1:31:34with a different name. So if I want to
  2799. 1:31:36use the same agent again for the
  2800. 1:31:38repetive task, I can create my own
  2801. 1:31:40custom sub agent and then I can just tag
  2802. 1:31:42or mention that sub aent in my prompt
  2803. 1:31:44which will automatically invoke and
  2804. 1:31:46there I'll mention all the instruction
  2805. 1:31:48how to create a sub aent. Now let's see
  2806. 1:31:50in this folder which is your link forge
  2807. 1:31:53in our case here in the root we'll
  2808. 1:31:54create a folder with the namecodex.
  2809. 1:31:58So we'll just write here dotcodex and
  2810. 1:32:00then inside this dotcodex we'll create a
  2811. 1:32:03subfolder with the name agents and then
  2812. 1:32:06click enter. Now inside this agents
  2813. 1:32:08folder we basically create our own
  2814. 1:32:10custom sub agent. So I'll just go inside
  2815. 1:32:12my agents and create a file and let's
  2816. 1:32:14say I want to create a agent for the
  2817. 1:32:16reviewer which will review all the files
  2818. 1:32:18of my code. So I'll just create a random
  2819. 1:32:21just to show how custom sub aents
  2820. 1:32:22actually work. So I'll just write here
  2821. 1:32:24reviewer dot toml. Now basically
  2822. 1:32:26whenever we are creating a sub agent
  2823. 1:32:28custom sub aent we have to use the
  2824. 1:32:30extension name toml so that we can write
  2825. 1:32:32all the configuration inside there. So
  2826. 1:32:34let's save this and now reduce the size
  2827. 1:32:37of the terminal and increase the size of
  2828. 1:32:39the file. Now in this reviewer dottoml
  2829. 1:32:41file what are the things we need to
  2830. 1:32:43mention? The first thing is required
  2831. 1:32:46name of the agent. Although we have
  2832. 1:32:47given the name in the file but we need
  2833. 1:32:49to mention inside the file also. So that
  2834. 1:32:51whenever we want to invoke that file or
  2835. 1:32:53invoke that sub aent, we can invoke it
  2836. 1:32:55by its name. So I'll just write here
  2837. 1:32:57name and I'll say the name of this sub
  2838. 1:32:59aent is reviewer. And once we define the
  2839. 1:33:01name, the next thing is defining the
  2840. 1:33:03description which will let the codeex
  2841. 1:33:05know what is this sub agent for. So I'll
  2842. 1:33:08just write a description and here I'll
  2843. 1:33:10say review my files in this project and
  2844. 1:33:16report me any potential bug. Now the
  2845. 1:33:19next thing is require a developer
  2846. 1:33:21instruction. Basically you define all
  2847. 1:33:23the instruction which is required for
  2848. 1:33:25this sub aent. We have created only the
  2849. 1:33:27description which tell what this sub
  2850. 1:33:29aent for. But what it actually do you
  2851. 1:33:32have to define it inside a developer
  2852. 1:33:34instruction. So I'll just write here
  2853. 1:33:36developer instructions. And now here
  2854. 1:33:39I'll basically use a three quote because
  2855. 1:33:41I want to write everything inside a
  2856. 1:33:43multi-line. So I'll just use here three
  2857. 1:33:46quote and I'll close it with the through
  2858. 1:33:48quote again and inside these quotes I'll
  2859. 1:33:51write my all the developer instructions.
  2860. 1:33:53So this is my developer instruction
  2861. 1:33:54where I have write the review code like
  2862. 1:33:56an honor prioritize correctness security
  2863. 1:33:59behavior regression and missing test
  2864. 1:34:01coverage and rest of the things. Now we
  2865. 1:34:02can mention another thing also right now
  2866. 1:34:04we have name description and the
  2867. 1:34:05developer instruction which are required
  2868. 1:34:07field. So if I want to show you it on
  2869. 1:34:09the sub agent documentation also you can
  2870. 1:34:12see here these are the required field
  2871. 1:34:13which we have mentioned in our file also
  2872. 1:34:15name description and developer
  2873. 1:34:18instruction but we can mention other
  2874. 1:34:20thing also for example you want to
  2875. 1:34:22mention that which model this sub aent
  2876. 1:34:24should use maybe you want to use a
  2877. 1:34:25custom model for this one so you can
  2878. 1:34:26just write here model let's say this sub
  2879. 1:34:29aent should use the model GPD 5.5 with
  2880. 1:34:31the medium effort so I'll just say GPD
  2881. 1:34:355.5 and make sure it is inside inside a
  2882. 1:34:37double inverted comma because we in the
  2883. 1:34:39terminal file so every value should be
  2884. 1:34:40inside a double inverted comma. Now I
  2885. 1:34:42can define the model reasoning effort
  2886. 1:34:43also model reasoning
  2887. 1:34:47effort and here I'll say it should run
  2888. 1:34:49on medium. So in this way this
  2889. 1:34:51particular agent will run with this
  2890. 1:34:52custom model although I can define a
  2891. 1:34:54sandbox property also if you remember we
  2892. 1:34:56have discussed about this in the safety
  2893. 1:34:58lecture also. Basically the sandbox if I
  2894. 1:35:00just want to repeat it again it decides
  2895. 1:35:02all the rules and policies that how it
  2896. 1:35:05should run inside that project and how
  2897. 1:35:07much permission you want to give to the
  2898. 1:35:08codeex inside that project. If I write
  2899. 1:35:10here sandbox mode and here if I say read
  2900. 1:35:13only. Now in this way what I'm doing
  2901. 1:35:15when I say a sandbox mode should be read
  2902. 1:35:16only it will only able to read my files
  2903. 1:35:19outside of this project but not able to
  2904. 1:35:21access it and even not able to do any
  2905. 1:35:23edit there because right now it is
  2906. 1:35:25running in the read only. But if you
  2907. 1:35:27want to give it a permission to write
  2908. 1:35:28those file do some edit then you can
  2909. 1:35:30change it from read only to write also.
  2910. 1:35:32So in this way you can define a
  2911. 1:35:34particular policies and rule for this
  2912. 1:35:35particular sub aent and based on that it
  2913. 1:35:38will ask for permission for you. Now
  2914. 1:35:39let's test whether this sub agent is
  2915. 1:35:41actually working or not in our codeex.
  2916. 1:35:42So just save this file and here first
  2917. 1:35:46thing I want to verify whether this sub
  2918. 1:35:47aent is available or not. So I'll just
  2919. 1:35:49say is there any sub agent or I'll say
  2920. 1:35:53just agent because at the end it is an
  2921. 1:35:55agent only. Is there any agent available
  2922. 1:35:57in my folder? And it says yes, there's
  2923. 1:36:01an agent.mmd file in this folder. But
  2924. 1:36:03this is not we are asking. I'm asking
  2925. 1:36:04about there's also agents directory in
  2926. 1:36:06the repo metadata. But the main repo
  2927. 1:36:08level agent guide is agents md file.
  2928. 1:36:10Okay. So I think it just misunderstood
  2929. 1:36:11our command basically to understand
  2930. 1:36:13about the agent MD file not the sub
  2931. 1:36:15aent. So I'll just write here sub agent
  2932. 1:36:17instead of agent now. So just use the
  2933. 1:36:19upper arrow key for the history prompt.
  2934. 1:36:23And here instead of agent I'll use here
  2935. 1:36:25as sub agent. So I just basically love
  2936. 1:36:27this also feature in the CLI command.
  2937. 1:36:29You can just move from different prompt
  2938. 1:36:31to prompt because everything is in the
  2939. 1:36:33CLI. So you have a history of every
  2940. 1:36:35prompt. So I'll just write here as sub
  2941. 1:36:37agent
  2942. 1:36:38and I'll say enter now. Okay. It says it
  2943. 1:36:42has sub agent. If you mean can this
  2944. 1:36:44workspace use sub agent? And it says yes
  2945. 1:36:47I was able to spawn sub agent for the
  2946. 1:36:48task. If you mean is there sub aent
  2947. 1:36:50config file? So I think it is not able
  2948. 1:36:52to catch my file which is available in
  2949. 1:36:53my folder for the agent because I think
  2950. 1:36:56we are running in the same session. So I
  2951. 1:36:58think I need to first exit from the
  2952. 1:36:59codeex and then rerun it again to make
  2953. 1:37:01sure whether it is able to get the
  2954. 1:37:03latest file of my folder or not. So I'll
  2955. 1:37:05just write a /exit
  2956. 1:37:08and here I'll clear first and now again
  2957. 1:37:10I'll run the codeex and now let's ask it
  2958. 1:37:13again. So if I say is there any sub aent
  2959. 1:37:16available in my folder when I say enter
  2960. 1:37:18let's increase the size of the terminal
  2961. 1:37:19also. And now it is checking and now you
  2962. 1:37:22can say it has said that I found a
  2963. 1:37:24codeex/ aents. So I'm reading its
  2964. 1:37:27content now to confirm what sub aents
  2965. 1:37:28are actually defined and it has now able
  2966. 1:37:30to get our sub aent which is recomml
  2967. 1:37:33file. So the issue is that we are
  2968. 1:37:35running the same session that's why it
  2969. 1:37:36is not able to get the file which we
  2970. 1:37:37have created. But now when we rerun it
  2971. 1:37:39again it is able to find the file in our
  2972. 1:37:41folder. So it says yes in this workspace
  2973. 1:37:44I found one sub aent definition name
  2974. 1:37:46reviewer purpose review files in this
  2975. 1:37:48project and the report potential bug.
  2976. 1:37:49This is the description which we have
  2977. 1:37:50defined in our file and mode read only.
  2978. 1:37:53This is a sandbox property. So this is
  2979. 1:37:55the only sub aent to use here. Now if I
  2980. 1:37:57want to use this custom sub aent, I can
  2981. 1:37:59just write the command just a normal
  2982. 1:38:01English command. I'll just say use
  2983. 1:38:03reviewer sub agent to review my files.
  2984. 1:38:09And now when I say enter it will look at
  2985. 1:38:11my folder, use my reviewer toml file and
  2986. 1:38:14whatever the instruction I have given
  2987. 1:38:16there based on that it will run my sub
  2988. 1:38:18aent. It says I'm locating the available
  2989. 1:38:19sub agent tooling and then I'll run the
  2990. 1:38:21re agent against the repository
  2991. 1:38:23searching the web spawn this GBD 5.5
  2992. 1:38:27medium as you can see we have defined
  2993. 1:38:28the model also that's why it is using
  2994. 1:38:30the custom model which is a GBD 5.5
  2995. 1:38:32medium because this is the model with
  2996. 1:38:34the reasoning effort we have defined
  2997. 1:38:35inside the sub aent so the review is
  2998. 1:38:37running I'll wait for this and finding
  2999. 1:38:39and then summarize the result so as you
  3000. 1:38:40can see here it has completed the review
  3001. 1:38:42sub aent and it says the reviewer sub
  3002. 1:38:43agent completed a review and findings
  3003. 1:38:45these are the findings it does it says
  3004. 1:38:47that unbounded in memory storage front
  3005. 1:38:49end is still loading backend test. So
  3006. 1:38:51whatever the review it has done based on
  3007. 1:38:54that it has given us the result. Okay.
  3008. 1:38:56So this is what our review sub agent
  3009. 1:38:58actually do and this is how you can
  3010. 1:38:59actually invoke in your prompt. So this
  3011. 1:39:01is all about the sub agent. If I want to
  3012. 1:39:03recap it once again you want to keep the
  3013. 1:39:05main agent only for the relevant
  3014. 1:39:06information then you can delegate your
  3015. 1:39:08task into the sub agent. Now there are
  3016. 1:39:10two ways of using the sub agent. First
  3017. 1:39:12way you can use it directly from the
  3018. 1:39:14prompt. You can invoke sub agent how
  3019. 1:39:15many you want and the second way you can
  3020. 1:39:18create a custom sub aent if you feel
  3021. 1:39:19like that you want to use that sub aent
  3022. 1:39:21in future also. So that's all about sub
  3023. 1:39:24agents.
  3024. 1:39:27Now the next concept that we are going
  3025. 1:39:28to understand is about skills and this
  3026. 1:39:31feature of codeex will definitely help
  3027. 1:39:33you to save lot of your time because
  3028. 1:39:35whenever you are working with a
  3029. 1:39:36repetitive task you have to define
  3030. 1:39:38everything to the codeex again and again
  3031. 1:39:40in your prompt. For example, suppose you
  3032. 1:39:43have created one feature using codeex
  3033. 1:39:45and now if you want to create a similar
  3034. 1:39:47feature again sometime in future you
  3035. 1:39:50have to explain everything to the codeex
  3036. 1:39:52once again in the prompt you have to
  3037. 1:39:54explain so that it makes sure that it
  3038. 1:39:56follows the same pattern and created the
  3039. 1:39:58task or the feature similar like to the
  3040. 1:40:01previous one. So this is what you have
  3041. 1:40:02to do every time whenever you want to
  3042. 1:40:04create or work with the same task or the
  3043. 1:40:06same feature. Now how does the skills
  3044. 1:40:08help here? See whenever you are working
  3045. 1:40:10with a repeated task instead of writing
  3046. 1:40:12all the things every time in the prompt
  3047. 1:40:14you can create a skill for that
  3048. 1:40:16particular task and define all the
  3049. 1:40:19necessary instruction only at once in
  3050. 1:40:21that skill file and later on whenever
  3051. 1:40:24you want to work with the same task you
  3052. 1:40:25can just call that skill where you
  3053. 1:40:27define all the instruction just like we
  3054. 1:40:30have imported our custom subvision file
  3055. 1:40:32if you have remember in the previous
  3056. 1:40:33lecture where we have created our own
  3057. 1:40:35custom file and every time we want to
  3058. 1:40:37use that we just call that custom agent
  3059. 1:40:39in our prompt. Same like that if you
  3060. 1:40:42want to work with the same task. So
  3061. 1:40:43instead of explaining every time in your
  3062. 1:40:46prompt you can call your custom skill
  3063. 1:40:48where you have defined everything. So in
  3064. 1:40:50our project right now you can see we
  3065. 1:40:53have our backend code. So if I open src
  3066. 1:40:56folder uh we have our different
  3067. 1:40:58different files. If you go to the
  3068. 1:41:00server.js this is where our server is
  3069. 1:41:02running. If you go to the services, this
  3070. 1:41:05is the services. And if you go to the
  3071. 1:41:07routes, these are all the routes, URL
  3072. 1:41:09routes and the health routes. So if I
  3073. 1:41:11open the URL route, let me reduce the
  3074. 1:41:14size of the terminal for now. And here,
  3075. 1:41:15if you look at here, we have only two
  3076. 1:41:17route which is get route as well as post
  3077. 1:41:21route. Perfect. But what if I want to
  3078. 1:41:23create one more route which is a delete
  3079. 1:41:24route. So if I want to create a delete
  3080. 1:41:26route I have to explain everything to
  3081. 1:41:28the codeex just to make sure that the
  3082. 1:41:30next route which is a delete route it
  3083. 1:41:32will create it will create exactly like
  3084. 1:41:35the same it has created my get and post
  3085. 1:41:37route but instead of explaining it in my
  3086. 1:41:40prompt I can create a skill for that
  3087. 1:41:42route and next time I just call that a
  3088. 1:41:44skill and it will create a delete route
  3089. 1:41:46with the same pattern the way it has
  3090. 1:41:48created my get and post route. But why
  3091. 1:41:50I'm creating a skill only for the delete
  3092. 1:41:52route. See I am creating here because
  3093. 1:41:55this is not the only route I want in my
  3094. 1:41:57project. Let's say in future I want to
  3095. 1:41:58create a more route. Let's say one for
  3096. 1:42:00update route or maybe I want to create a
  3097. 1:42:01more get route or the post route. So
  3098. 1:42:03will I explain everything again to the
  3099. 1:42:05prompt? Of course not. I'll use that
  3100. 1:42:07skill where I already defined the
  3101. 1:42:09pattern how my API or the route should
  3102. 1:42:11be created and based on that my every
  3103. 1:42:14route will get created by the codeex. So
  3104. 1:42:16now to create an skill just like we have
  3105. 1:42:18created a custom agent inside agents
  3106. 1:42:20folder same we have to create our
  3107. 1:42:23skills. So inside our dot codex folder
  3108. 1:42:25we have an agent folder and inside this
  3109. 1:42:28agent folder we have to create one more
  3110. 1:42:30folder which is skills and now inside
  3111. 1:42:34this skills folder we have to define the
  3112. 1:42:37name of our skill. So in my case I want
  3113. 1:42:40to create a skill for the API endpoint.
  3114. 1:42:42So I'll just write here API/
  3115. 1:42:45endpoint.
  3116. 1:42:47So this is the name of my skill and
  3117. 1:42:49after this I have to create one file.
  3118. 1:42:52Although this API/ endpoint is a name of
  3119. 1:42:54my skill folder. So inside this only we
  3120. 1:42:57have our main file or skill file. So
  3121. 1:43:00I'll just create this one. And now
  3122. 1:43:03inside this I'll write the name which is
  3123. 1:43:06skill.
  3124. 1:43:08MD. And now I can click enter. So
  3125. 1:43:11basically whenever you want to create an
  3126. 1:43:12skills inside your folder you have to
  3127. 1:43:14follow the same pattern. You have to go
  3128. 1:43:16inside dotcodex folder then you have to
  3129. 1:43:18create a skills folder inside that you
  3130. 1:43:21have to write the name of your skill in
  3131. 1:43:23the form of folder in our case which is
  3132. 1:43:25AP endpoint and then you have to define
  3133. 1:43:27the name which is skill.md. So this name
  3134. 1:43:30will remain same for every skill only
  3135. 1:43:32the name which is the skill name you
  3136. 1:43:34have to write here which is different.
  3137. 1:43:36Now inside this skill.md file what are
  3138. 1:43:39the things we need to define? The first
  3139. 1:43:41thing is that you need to define the
  3140. 1:43:42name of the skill so that we can call it
  3141. 1:43:45in our prompt. So I can just write a
  3142. 1:43:47name and I'll give it a name which is a
  3143. 1:43:50a endpoint. Same name or I can use a
  3144. 1:43:52custom name also. Doesn't matter that
  3145. 1:43:54you have to use the same name which you
  3146. 1:43:55have used in the folder also but in our
  3147. 1:43:57case let it be same. The next thing we
  3148. 1:43:59need to define a description. So I just
  3149. 1:44:01write here add a new
  3150. 1:44:05express route in project or in this
  3151. 1:44:10project following our convention. So
  3152. 1:44:13these two things are required which is a
  3153. 1:44:15name and description so that it can
  3154. 1:44:17understand that we need to call this
  3155. 1:44:19skill. Now the syntax of writing the
  3156. 1:44:22skill is not like that. Whenever you
  3157. 1:44:23write a name and description these two
  3158. 1:44:25things should be available inside a
  3159. 1:44:27front matter. So you have to write
  3160. 1:44:29something like this. You have to mention
  3161. 1:44:31three hyphens just like this and you
  3162. 1:44:34need to close this with the three
  3163. 1:44:35hyphens again just like this. So
  3164. 1:44:37basically this three hyphen called as
  3165. 1:44:39front matter or we can call it as front
  3166. 1:44:41load and inside that we have to define
  3167. 1:44:43the name and description. Now as I told
  3168. 1:44:45you before that we need to define the
  3169. 1:44:47convention also just like we have
  3170. 1:44:48defined the developer instruction inside
  3171. 1:44:50our custom sub agent. Same like that in
  3172. 1:44:53a skill file we have to define the steps
  3173. 1:44:55or the convention that what this skill
  3174. 1:44:57should actually do when we call this
  3175. 1:44:59skill in our prompt. So I'll just write
  3176. 1:45:01a steps just a heading it should follow
  3177. 1:45:03the space and then I'll paste my skills.
  3178. 1:45:06So these are the skill it should follow.
  3179. 1:45:08I'll just say that add the route to src
  3180. 1:45:10server.js and follow the existing
  3181. 1:45:13response shape. So if I just want to
  3182. 1:45:15show you that how the shape actually
  3183. 1:45:16looks like of my API route. So we can go
  3184. 1:45:19to the services here. It should be
  3185. 1:45:23available in our controller URL
  3186. 1:45:26controller. And here we can see this.
  3187. 1:45:28This is the way it created our API
  3188. 1:45:30route. It has the error message as well
  3189. 1:45:32as the status code for the success
  3190. 1:45:34route. So we follow the same pattern. We
  3191. 1:45:36say that whenever you're creating a new
  3192. 1:45:38route, make sure that you have a data on
  3193. 1:45:40success and error on failure and also
  3194. 1:45:43matching the storage logic which is
  3195. 1:45:45available in our store.js JS and all the
  3196. 1:45:47relevant instructions or the necessary
  3197. 1:45:49conventions which I want it to follow
  3198. 1:45:51inside this skill I have mentioned here.
  3199. 1:45:53Now just save this file. Now if I want
  3200. 1:45:55to use this I can use just by say use
  3201. 1:45:59which is the name API endpoint skill to
  3202. 1:46:03create a delete route and in this way it
  3203. 1:46:06will use my API endpoint. But before
  3204. 1:46:08writing this prompt I want to first show
  3205. 1:46:10or verify that whether this skill is
  3206. 1:46:12available in our folder or not. So just
  3207. 1:46:14remove this command for now. I want to
  3208. 1:46:16first test it using the skill because we
  3209. 1:46:18have this skills command. So let's see
  3210. 1:46:20whether it is available using the skills
  3211. 1:46:22command or we need to manually write the
  3212. 1:46:23prompt to ask whether this skill is
  3213. 1:46:25available or not. So let's say skills
  3214. 1:46:28list skills and it says these are the
  3215. 1:46:31skills available. These are my plugins
  3216. 1:46:32as well as skills whether my custom
  3217. 1:46:35skill is available or not. I may type it
  3218. 1:46:36by manually. I'll say API endpoint and
  3219. 1:46:40yes this skill is available. We can see
  3220. 1:46:43this. It says that in the inside the
  3221. 1:46:45codeex agent skills API endpoint skill
  3222. 1:46:47is available. So we can use this skill.
  3223. 1:46:49I'll just say use API/
  3224. 1:46:53endpoint to create a delete route and it
  3225. 1:46:57has read my skill. As you can see it say
  3226. 1:46:59that explore readkll.md and it has
  3227. 1:47:02searched my skill and it says that I
  3228. 1:47:03found the skill and now I'm reading the
  3229. 1:47:05content that is available in that skill
  3230. 1:47:07and based on that it will create my
  3231. 1:47:08delete route. So this is very useful.
  3232. 1:47:10You don't have to explain everything in
  3233. 1:47:12the prompt. If you are working with a
  3234. 1:47:14repetitive task, you can just create a
  3235. 1:47:15skill once and then you can just use
  3236. 1:47:17that skill in your prompt. Now it says
  3237. 1:47:19that the endpoint is implemented. I'm
  3238. 1:47:21running a test command and this is what
  3239. 1:47:23it has done. And now it has done with
  3240. 1:47:24our task. It says that I have added the
  3241. 1:47:27delete endpoint and what are the things
  3242. 1:47:29it has changed and what is the behavior
  3243. 1:47:32and it has completed the entire task in
  3244. 1:47:331 minute 16 second and we can verify it
  3245. 1:47:36URL controller also whether delete
  3246. 1:47:38controller has been added or not. So
  3247. 1:47:41yeah we have an delete short code and it
  3248. 1:47:43follows the same pattern. Perfect. So
  3249. 1:47:46this is what skills actually do. Now you
  3250. 1:47:49can call this skills in two ways. Either
  3251. 1:47:51you can call it explicitly just like we
  3252. 1:47:54have called it right now or you can call
  3253. 1:47:56it implicitly which mean if you do not
  3254. 1:47:58mention the name of the skill then also
  3255. 1:48:01it will understand whether this skill
  3256. 1:48:03should be used in this task or not. So
  3257. 1:48:05let's say if I just say that create a
  3258. 1:48:06delete route. So what it will do it will
  3259. 1:48:08just match my task with my skills that
  3260. 1:48:10are available in my folder and it will
  3261. 1:48:12look like whether is there any skill
  3262. 1:48:14available in my folder which matches the
  3263. 1:48:16task requirement and if it is available
  3264. 1:48:18it will automatically inject that skill
  3265. 1:48:21to that particular task and based on the
  3266. 1:48:23instructions I have given in that skill
  3267. 1:48:25it will use that to execute my task and
  3268. 1:48:27why it is possible because we have
  3269. 1:48:29defined the description in our skill.md
  3270. 1:48:31file. This description basically help
  3271. 1:48:33Codex to know whether this skill is
  3272. 1:48:35useful for that particular task or not.
  3273. 1:48:37So yes in this way you can use the
  3274. 1:48:39skills create your own skill whenever
  3275. 1:48:41you feel like that you have a repetitive
  3276. 1:48:43task.
  3277. 1:48:45So till this point we have learned about
  3278. 1:48:47how we can create skills how we can
  3279. 1:48:49create sub aents and also how we can
  3280. 1:48:52connect any external application through
  3281. 1:48:54plugins. But now what if you want to
  3282. 1:48:56connect any application which is not
  3283. 1:48:58available in plug-in. Let's say your own
  3284. 1:49:00application. Now whenever you want to
  3285. 1:49:02connect any custom application which is
  3286. 1:49:04not a part of plug-in, we basically use
  3287. 1:49:07MCP which stands for model context
  3288. 1:49:10protocol. So in the past whenever any AI
  3289. 1:49:13application wants to connect with any
  3290. 1:49:16external application for the
  3291. 1:49:17communication and for performing every
  3292. 1:49:19action they basically follow the
  3293. 1:49:21standard way of connection which is MCP.
  3294. 1:49:24again model context protocol but now we
  3295. 1:49:26have this plug-in option and all so we
  3296. 1:49:28just click on one button and our MCP or
  3297. 1:49:31I can say that app is able to connect
  3298. 1:49:33with the codeex so here we'll see how we
  3299. 1:49:36can connect our own application or maybe
  3300. 1:49:38some different application using MCP but
  3301. 1:49:41before that I want to give you a short
  3302. 1:49:42overview of MCP also what it actually
  3303. 1:49:44mean and what the main purpose of it so
  3304. 1:49:47the main purpose you already understand
  3305. 1:49:49that it actually help to connect with
  3306. 1:49:50external application but MCP actually
  3307. 1:49:54stands for model context protocol. So
  3308. 1:49:56here model basically means a tool which
  3309. 1:49:59we are currently using. Maybe it can be
  3310. 1:50:01codeex, cloud code, copilot or any tool
  3311. 1:50:04through which we are able to communicate
  3312. 1:50:06or connect with our external
  3313. 1:50:08application. The second term which is
  3314. 1:50:10context. Now what does it actually mean?
  3315. 1:50:13Whenever we are using any model and want
  3316. 1:50:15to connect with any external
  3317. 1:50:17application, we want to give a resource
  3318. 1:50:19or context. what are the things it needs
  3319. 1:50:21to perform inside that application. So
  3320. 1:50:24all those context is a part of model
  3321. 1:50:26context itself. Now the third term which
  3322. 1:50:29is protocol. Now protocol basically
  3323. 1:50:31means some set of rules and instructions
  3324. 1:50:33which you define how it gets connected
  3325. 1:50:35to that external application. So with
  3326. 1:50:37this let's see how we can connect it.
  3327. 1:50:39Now if I want to tell you also that till
  3328. 1:50:41this point we have already seen the MCP
  3329. 1:50:43although we have not discussed about it
  3330. 1:50:45but somehow we have seen it. For
  3331. 1:50:47example, if you remember that when we
  3332. 1:50:48install any new plug-in that under the
  3333. 1:50:50hood that plug-in or the application is
  3334. 1:50:53actually behaving as an MCP. So for
  3335. 1:50:55example, let me show you in the codeex
  3336. 1:50:57app. If you go to the plug-in, you can
  3337. 1:50:58see this I have this Figma plug-in which
  3338. 1:51:00I have installed from here itself. Now
  3339. 1:51:02if I show you that this Figma plug-in is
  3340. 1:51:04actually a part of MCP. So I can go to
  3341. 1:51:07the new chat and here I'll use the slash
  3342. 1:51:09command which is /mcp
  3343. 1:51:12and when I click enter it listed all my
  3344. 1:51:14mcps that are available inside my codeex
  3345. 1:51:17and you can see here Figma also listed
  3346. 1:51:19under my MCP although it's a plug-in
  3347. 1:51:21because plug-in is actually under the
  3348. 1:51:23hood working as an MCP mcp the main role
  3349. 1:51:26is to connect with an external
  3350. 1:51:27application. So that's why Figma is
  3351. 1:51:29available here and it is authenticated
  3352. 1:51:31with oath and we are able to use Figma
  3353. 1:51:33through our codeex. Now let's say if I
  3354. 1:51:35want to connect any another application
  3355. 1:51:37and for example if you want to connect
  3356. 1:51:40my notion app so what I can do I can
  3357. 1:51:42just go to the browser and search notion
  3358. 1:51:44MCP and whatever the things it provide
  3359. 1:51:46us to connect with that application we
  3360. 1:51:48will follow all those step so let's go
  3361. 1:51:50to the browser and here we'll just type
  3362. 1:51:52notion MCP server and here it has
  3363. 1:51:55already provided MCP so I can just click
  3364. 1:51:57on this one it gives us overview I want
  3365. 1:51:59to connect so I'll go with the
  3366. 1:52:00connecting to notion MCP and here you
  3367. 1:52:02can see it provides all the way to
  3368. 1:52:04connect with MCP with different model.
  3369. 1:52:06If you are using cloud code, you can go
  3370. 1:52:08with this one. Cursor for this VS code
  3371. 1:52:10cloud desktop winds surf GPD and this is
  3372. 1:52:14for codeex. So if you want to use MCP of
  3373. 1:52:16notion, we basically needs to paste this
  3374. 1:52:19command which is MCP server notions and
  3375. 1:52:21this is the URL. Now this is an URL. If
  3376. 1:52:24you notice here, it follows HTTPS
  3377. 1:52:26protocol because this is a remote
  3378. 1:52:28access. So that's why we basically use
  3379. 1:52:30this URL to connect this application.
  3380. 1:52:32Now copy this. Once you copy this, you
  3381. 1:52:34need to paste it inside your config.tml
  3382. 1:52:36file. As you can see here, it also says
  3383. 1:52:38that you need to paste inside your
  3384. 1:52:40config.l file. So if you paste this
  3385. 1:52:44insideex/config.ml
  3386. 1:52:46file, your all project and codeex get
  3387. 1:52:48access to that particular tool or I can
  3388. 1:52:50say that notion app. But if you want
  3389. 1:52:52that particular notion app inside a
  3390. 1:52:54particular project only, then you can
  3391. 1:52:57just create a config.l terminal file
  3392. 1:52:59inside that project directory and there
  3393. 1:53:01only you can mention this MCP server so
  3394. 1:53:03that project can only access that notion
  3395. 1:53:05app so but we'll focus only in the
  3396. 1:53:07global ones we'll put this inside our
  3397. 1:53:08configt file so just open your finder
  3398. 1:53:11and here inside your user folder or I
  3399. 1:53:14can say that home directory just open
  3400. 1:53:16the hidden files and in this you can go
  3401. 1:53:18to the docex folder and here we have
  3402. 1:53:20configurl file just open this and here
  3403. 1:53:23anywhere you can paste the MCP server as
  3404. 1:53:25you can see here we have some MCP server
  3405. 1:53:27also which we have seen in uh NCP list
  3406. 1:53:29which is a node ripple as well as this
  3407. 1:53:31Figma is also added here. So now just
  3408. 1:53:34add this. I'll just paste it here as
  3409. 1:53:36well like this. And now notion is added
  3410. 1:53:39with this command. Just save this. The
  3411. 1:53:42next step is we need to authenticate it.
  3412. 1:53:44If you remember when we are adding the
  3413. 1:53:46plug-in of GitHub, we basically use the
  3414. 1:53:48gh login command to authenticate with
  3415. 1:53:51our GitHub application. Same like that
  3416. 1:53:54whenever you start using notion for the
  3417. 1:53:56first time it will automatically prompt
  3418. 1:53:58you to authenticate it with your notion
  3419. 1:54:00app but you can also do this step before
  3420. 1:54:03also so that it can automatically start
  3421. 1:54:05doing your task. So very simple we can
  3422. 1:54:08do in the VS code itself just open the
  3423. 1:54:10new terminal and here we can see the
  3424. 1:54:11step how we can authenticate. So go back
  3425. 1:54:13to the browser and here it can says that
  3426. 1:54:16you can install using Codex MCP login
  3427. 1:54:18notion. So just copy this and paste it
  3428. 1:54:21in your terminal. Now enter. It will
  3429. 1:54:23authenticate us to the notion app. It
  3430. 1:54:25will redirect to the notion browser. It
  3431. 1:54:27says do you want to authenticate? I say
  3432. 1:54:28yeah I recognize and trust this URL and
  3433. 1:54:31click continue. And it says
  3434. 1:54:32authentication complete. When we go back
  3435. 1:54:34to the VS code we are now successfully
  3436. 1:54:36logged in with the notion app. Now we
  3437. 1:54:37can use this notion app through our
  3438. 1:54:39codeex. We just give a simple prompt
  3439. 1:54:40like create a new page for this
  3440. 1:54:42particular notion app. It will able to
  3441. 1:54:44create it. Let's try it out. So if I go
  3442. 1:54:46just inside codeex terminal UI and I'll
  3443. 1:54:48skip the update for now. And here let's
  3444. 1:54:50say if I say create a page for NCP
  3445. 1:54:54server nodes in notion. Now this is just
  3446. 1:54:57a normal natural language prompt I have
  3447. 1:54:59given to codeex and let's see whether it
  3448. 1:55:01is able to authenticate with my notion
  3449. 1:55:03application and able to create my page
  3450. 1:55:05there or not. So just click enter and
  3451. 1:55:07now it says I'll create a practical MCP
  3452. 1:55:10server nodes and it has called my notion
  3453. 1:55:12MCP server and it says that it has
  3454. 1:55:14created just open this. Let's see how
  3455. 1:55:16things work here. So let's click on this
  3456. 1:55:18one open and we can see this it has
  3457. 1:55:20created inside my own notion app with a
  3458. 1:55:23proper structured manner in the table
  3459. 1:55:25with examples all things are mentioned
  3460. 1:55:28here with just one prompt and how this
  3461. 1:55:29is possible because we have connected
  3462. 1:55:31with MCP. So this is how you can connect
  3463. 1:55:34any external application. Now if you
  3464. 1:55:36notice here we have done this through
  3465. 1:55:38config.tml file but there are other ways
  3466. 1:55:40also to connect with the MCP server. For
  3467. 1:55:42example, you can create it with the user
  3468. 1:55:43interface inside a Codex desktop app or
  3469. 1:55:46you want to go with the command, then
  3470. 1:55:47you can go with the Codex CLI method
  3471. 1:55:49also. So let's quickly see those two
  3472. 1:55:50method also. So go back here and now
  3473. 1:55:53suppose I want to connect a new
  3474. 1:55:55application. So let's say if I want to
  3475. 1:55:56connect this same application through
  3476. 1:55:58CEX app then what I can do I just open
  3477. 1:56:00my CEX and here you can just go to the
  3478. 1:56:02settings or you can just even click on
  3479. 1:56:04the from plugins here also and then from
  3480. 1:56:06here you can also click on the setting
  3481. 1:56:08button. So just click here. Now if you
  3482. 1:56:09notice here in this we have these three
  3483. 1:56:11MCPS right now this notion one also
  3484. 1:56:13which we have added right now and this
  3485. 1:56:15is from the plugins. So if I want to
  3486. 1:56:17create a new plug-in through codeex
  3487. 1:56:18desktop app I can just click on add
  3488. 1:56:20server here. You can just define the
  3489. 1:56:22name of your server. In our case I want
  3490. 1:56:23to create a notion. So I'll just write
  3491. 1:56:25here notion although we have notion
  3492. 1:56:26server but I just want to show you how
  3493. 1:56:28you can create from the app itself. Now
  3494. 1:56:29once you define the notion here you need
  3495. 1:56:31to paste the URL. But right now if you
  3496. 1:56:34notice we have this two option which is
  3497. 1:56:36stddio IO and the streamable HTTP. Now
  3498. 1:56:39what does it actually mean? See stddio
  3499. 1:56:41IO is basically used whenever you want
  3500. 1:56:43to work with MCP in your local computer
  3501. 1:56:45itself where things will not get hosted.
  3502. 1:56:47Everything will remain inside your
  3503. 1:56:49computer itself. In short in local
  3504. 1:56:51environment but if you want to connect
  3505. 1:56:53with the remote access like this notion
  3506. 1:56:55app then you need to use streamable HTTP
  3507. 1:56:58method. So just click on this option.
  3508. 1:57:00Here you will find the URL option. just
  3509. 1:57:02paste the URL. So again go back to the
  3510. 1:57:04browser copy this URL. This one itself
  3511. 1:57:06you don't need to copy the entire
  3512. 1:57:07command and paste this inside URL
  3513. 1:57:09option. Now if you notice here once you
  3514. 1:57:11paste this it asks for the another thing
  3515. 1:57:13also like barrier token headers and
  3516. 1:57:15headers from environment variables. But
  3517. 1:57:17right now you need to leave all these
  3518. 1:57:18things empty because if you remember
  3519. 1:57:21this notion app actually follows oath
  3520. 1:57:24connection which basically means you
  3521. 1:57:25don't have any token or the API key to
  3522. 1:57:28put it here. You just use the URL and
  3523. 1:57:30just click on save. It will
  3524. 1:57:32automatically connect an MCP server.
  3525. 1:57:34This barrier token and all things are
  3526. 1:57:35required when you are actually having
  3527. 1:57:37your own token. For example, if you have
  3528. 1:57:39created your own spring boot application
  3529. 1:57:41where you have JWT token and all and you
  3530. 1:57:43have configured MCP server for your
  3531. 1:57:45application at that time you have to
  3532. 1:57:47configure those JWT token inside this
  3533. 1:57:50barrier token. At that time it is only
  3534. 1:57:52required. But I'll show you some
  3535. 1:57:53application example also where this
  3536. 1:57:55token is required. For example, if I
  3537. 1:57:57want to connect the GitHub MCP, I'll
  3538. 1:57:59just search here GitHub MCP server. And
  3539. 1:58:02yeah, let's go to the first URL. And
  3540. 1:58:04here, if you go to the readme file, we
  3541. 1:58:06have an option for codeex. Just go on
  3542. 1:58:08this one. And here you can see this. If
  3543. 1:58:10you want to install or connect a GitHub
  3544. 1:58:12MCP server, this is the prerequisite.
  3545. 1:58:14You need to have a OpenAI codeex, which
  3546. 1:58:17we are currently using. And the second
  3547. 1:58:18thing, you need a access token, which is
  3548. 1:58:20a personal access token from GitHub. And
  3549. 1:58:22once you have these two things, you can
  3550. 1:58:24just write this in your config.tml TML
  3551. 1:58:26file as well as you have to config your
  3552. 1:58:28barrier token environment variable. Now
  3553. 1:58:30you don't have to put it directly inside
  3554. 1:58:32your this config.ml file. Instead you
  3555. 1:58:34can just put it inside your env file
  3556. 1:58:36which you can later ignore using getit
  3557. 1:58:38ignore. And now if you want to know how
  3558. 1:58:40you can create your own personal token
  3559. 1:58:41just click on this link. It will
  3560. 1:58:43redirect you to this page. Here you can
  3561. 1:58:45just define the token name and the
  3562. 1:58:47description if you want to give for
  3563. 1:58:48future reference and then whether it
  3564. 1:58:50should be public all or only select
  3565. 1:58:52repository. And then you can click on
  3566. 1:58:53generate token. In this way you can
  3567. 1:58:55create a token which you can just put it
  3568. 1:58:56here back. If you just go back you can
  3569. 1:58:59put that token here and then you are
  3570. 1:59:01able to connect GitHub MCP server as
  3571. 1:59:03well. So in this way these are two ways
  3572. 1:59:05through which you can connect the MCP
  3573. 1:59:06server. If I want to show you one more
  3574. 1:59:08example. So I don't know how many of you
  3575. 1:59:10know about this application which is
  3576. 1:59:12Excel. This application which is
  3577. 1:59:13basically used to create illustration or
  3578. 1:59:16the diagram to explain the concept. So
  3579. 1:59:18this application also have their own MCP
  3580. 1:59:21server. So if you want to connect just
  3581. 1:59:23click on this Excel draw MCP and here
  3582. 1:59:25you'll get this MCP URL which you can
  3583. 1:59:26just copy and paste it in your MCP and
  3584. 1:59:29it also requires an API key. As you can
  3585. 1:59:31see it says create an Excel draw plus
  3586. 1:59:33API key. So you basically need Excel
  3587. 1:59:36draw subscription which is a plus then
  3588. 1:59:38only you are able to create an API key.
  3589. 1:59:40But I just want to show you that Excel
  3590. 1:59:41draw also supports a API method. So here
  3591. 1:59:45if you want to install the API you need
  3592. 1:59:47to first use that API here. Then only
  3593. 1:59:49you are able to use Excel draw MCP
  3594. 1:59:51server and after once you install Excel
  3595. 1:59:54MCP you can just skip the prompt it will
  3596. 1:59:56connect with Excel draw app and able to
  3597. 1:59:59draw whatever you have defined in your
  3598. 2:00:00prompt. Now let's see the another way of
  3599. 2:00:02also creating an MCP server. We have
  3600. 2:00:03seen the codeex app as well as from the
  3601. 2:00:05config toml. But if you are working only
  3602. 2:00:07with the codex cla then you can just
  3603. 2:00:09open the codeex cla here. Here here as
  3604. 2:00:11we are already open it in our VS code.
  3605. 2:00:13Just write a command which is codex
  3606. 2:00:15mcpad. If you just go back to the
  3607. 2:00:16browser and look at the GitHub one, you
  3608. 2:00:18can see this, it also supports to
  3609. 2:00:20install GitHub MCP through Codex CLI.
  3610. 2:00:23Just write the command this one codex
  3611. 2:00:24mcp and then the name of the MCP in our
  3612. 2:00:28case it is GitHub and then you use the
  3613. 2:00:30flag which is - URL and then paste the
  3614. 2:00:33MCP URL this one and then you need to
  3615. 2:00:35paste the token which is a barrier token
  3616. 2:00:37in our case. So I just copy this command
  3617. 2:00:40and paste it here and I just replace my
  3618. 2:00:42token with this one and we are able to
  3619. 2:00:44use the GitHub MCP. So this is all about
  3620. 2:00:46MCP through which you can connect any
  3621. 2:00:47external application in your codeex.
  3622. 2:00:51Now imagine in your project you have a
  3623. 2:00:53multiple branches and you want to work
  3624. 2:00:55all of your branches simultaneously.
  3625. 2:00:58Well you are able to work with them.
  3626. 2:01:00There are hactics. The first one is that
  3627. 2:01:03you need to switch the branch multiple
  3628. 2:01:05times by using the command get checkout.
  3629. 2:01:07This is also okay. But the another thing
  3630. 2:01:09is that if you want to switch to the
  3631. 2:01:12next branch, you need to make sure that
  3632. 2:01:14your current branch code is committed.
  3633. 2:01:16If you have not committed it and try to
  3634. 2:01:18switch, you might have seen the code or
  3635. 2:01:20error in your terminal which says you
  3636. 2:01:22need to first commit the code or stretch
  3637. 2:01:25them before switching the branch. So
  3638. 2:01:26these are the basic issues or the
  3639. 2:01:28hectics you need to go through if you
  3640. 2:01:30are working with multiple branches
  3641. 2:01:32altogether. But what if I can say you
  3642. 2:01:35you can work with all branches
  3643. 2:01:37simultaneously even though you have not
  3644. 2:01:39committed the code in your current
  3645. 2:01:40branch. Now this is going to be possible
  3646. 2:01:43through get work tree. What does the
  3647. 2:01:45work tree actually mean by the way? See
  3648. 2:01:47whenever you are working with work tree
  3649. 2:01:49you are having multiple branches in each
  3650. 2:01:52work tree and every work tree you can
  3651. 2:01:54run simultaneously and you can switch
  3652. 2:01:56the branch between them. Now to make it
  3653. 2:01:58more clear let's go to the drawing board
  3654. 2:02:00and understand with an example. Suppose
  3655. 2:02:02I have one directory in my desktop
  3656. 2:02:04folder which is a link forge. I want to
  3657. 2:02:07show you on the desktop also just to
  3658. 2:02:08make you verify. So in desktop we have
  3659. 2:02:11only one work tree which is link forge
  3660. 2:02:14and inside that work tree we have three
  3661. 2:02:17branches. Let's assume we have a three
  3662. 2:02:18branch which is a main which is a by
  3663. 2:02:20default branch. The two branches are
  3664. 2:02:23feature one Google and the second branch
  3665. 2:02:25is feature two github. Now these two
  3666. 2:02:28branches I have created because I want
  3667. 2:02:30to work with these two branches
  3668. 2:02:31simultaneously and look at the changes
  3669. 2:02:33and all the things there. I'm not able
  3670. 2:02:35to do this but I need to do the check
  3671. 2:02:37out as I told you before. So how can I
  3672. 2:02:39use a work tree here? When I use a work
  3673. 2:02:42tree this will what happen inside my
  3674. 2:02:45desktop I can create a multiple
  3675. 2:02:47directories and each directory will have
  3676. 2:02:49their own separate branch. So I have a
  3677. 2:02:52link forge which is our main directory
  3678. 2:02:54and it contains only one branch which is
  3679. 2:02:56main and then I have created one
  3680. 2:02:58separate directory. Now that directory
  3681. 2:03:00is in my root folder which is in the
  3682. 2:03:02desktop not inside my main directory
  3683. 2:03:04folder. Remember this this is very
  3684. 2:03:06important. So we have created a link
  3685. 2:03:08forge one directory or we can say that
  3686. 2:03:11work tree where it has only one branch
  3687. 2:03:13which is feature 1/ Google and same I
  3688. 2:03:16have created one more directory which is
  3689. 2:03:18link forge 2 and it contains feature 2/
  3690. 2:03:21gitaboth and now I can switch between
  3691. 2:03:23these branches or directories without
  3692. 2:03:26committing the code in one of the
  3693. 2:03:27branch. So let's look at the practical
  3694. 2:03:30way also. So go to the VS code now and
  3695. 2:03:32here I'll open the terminal first and in
  3696. 2:03:34this fresh terminal I first see where I
  3697. 2:03:36am right now. So I'll just do ls. I have
  3698. 2:03:39these files inside this folder. I need
  3699. 2:03:40to know the directory also. So I'll say
  3700. 2:03:42pwd. Okay. So when I run the command pwd
  3701. 2:03:44we are inside our link forge folder. Now
  3702. 2:03:46in this folder itself we will create a
  3703. 2:03:49different folder or we can say that work
  3704. 2:03:51tree. So to create a work tree we have
  3705. 2:03:53to write a git command manually because
  3706. 2:03:55in CLI it's not kind of possible.
  3707. 2:03:58There's a no particular command is
  3708. 2:04:00available in CLI. If I just want to show
  3709. 2:04:02you if you go here let's say if I type a
  3710. 2:04:04slash and want to show you then there is
  3711. 2:04:06no work tree command is available
  3712. 2:04:08through which you can create a work tree
  3713. 2:04:09through codex cla. So you have to create
  3714. 2:04:11it manually with the git commands and
  3715. 2:04:14then you have to use codeex inside that
  3716. 2:04:16particular directory. Although we'll
  3717. 2:04:17look at the better way also how you can
  3718. 2:04:19create the directory through the user
  3719. 2:04:20interface but just now if you're using
  3720. 2:04:22it in the CLI then you have to follow
  3721. 2:04:24the git command. So where to create a
  3722. 2:04:25git work tree? You have to write a
  3723. 2:04:27command get work tree then add and then
  3724. 2:04:32you have to define a path. So I want my
  3725. 2:04:35work tree inside my desktop folder not
  3726. 2:04:37inside my link forge. So I'll just use
  3727. 2:04:40the path dot dot and slash. In this way
  3728. 2:04:43I'm making sure that I'm creating inside
  3729. 2:04:45a desktop folder. And here I'll define
  3730. 2:04:47the name of my work tree whatever the
  3731. 2:04:49name I want to give. So in my case I
  3732. 2:04:51just call it as link forge one. And
  3733. 2:04:54inside this I have to define the name of
  3734. 2:04:56my branch. But one minute right now I
  3735. 2:04:58don't have any branch. How will I define
  3736. 2:05:00the name here? You have a two ways. Now
  3737. 2:05:02here either you can create a branch
  3738. 2:05:04first and then you can mention the name
  3739. 2:05:05here or you can create the branch
  3740. 2:05:07simultaneously along with your work
  3741. 2:05:09tree. So you can do one thing here if
  3742. 2:05:11you want to create you don't have to use
  3743. 2:05:13this command. This command is only
  3744. 2:05:14useful when you have existing branch and
  3745. 2:05:16you only want to mention it. But to
  3746. 2:05:18create a new branch along with a new
  3747. 2:05:19work tree, you have to write the command
  3748. 2:05:21add - b and then you have to mention the
  3749. 2:05:24name of your new branch. So what I want
  3750. 2:05:27now here so for my this project I want
  3751. 2:05:30to create a branch for the delete route
  3752. 2:05:32because if you remember we have created
  3753. 2:05:33a delete route with functionality but
  3754. 2:05:36that functionality is not used in the UI
  3755. 2:05:38till now. So if I just want to show you
  3756. 2:05:40on the UI you can see this here we have
  3757. 2:05:43a copy button but the delete button is
  3758. 2:05:45not available here. Although we have a
  3759. 2:05:46backend code for this but it is not used
  3760. 2:05:49till now in the UI. So we'll go here and
  3761. 2:05:52I'll create a new branch and there I'll
  3762. 2:05:54add that feature and later on I will
  3763. 2:05:55merge it to the main branch. So I'll
  3764. 2:05:57just write the name of my branch. I want
  3765. 2:05:59it for the delete UI. So I'll just say
  3766. 2:06:01delete
  3767. 2:06:04or / UI just like this and then I'll
  3768. 2:06:08define the name of my work tree. So as
  3769. 2:06:10you know we have to define the path. So
  3770. 2:06:11I'll just say dot dot slash. So it will
  3771. 2:06:14create inside my desktop and now I'll
  3772. 2:06:16say link forge one and when I click
  3773. 2:06:19enter it says that preparing work tree
  3774. 2:06:21and head is now at this particular
  3775. 2:06:23commit hash id bind dev server to local
  3776. 2:06:25host. Okay so we have created a work
  3777. 2:06:27tree just verify whether this work tree
  3778. 2:06:29available in my desktop or not. So open
  3779. 2:06:31the finder and here yes this link for is
  3780. 2:06:34available and when you open it we have
  3781. 2:06:36all the code that is available in my
  3782. 2:06:38main branch because we have created the
  3783. 2:06:40new work tree from main branch itself
  3784. 2:06:42that's why all code is available here.
  3785. 2:06:43So okay so now we have created the work
  3786. 2:06:45tree let's open this work tree in the
  3787. 2:06:47new terminal and there we'll see whether
  3788. 2:06:49that branch is available or not. So I'll
  3789. 2:06:51open a new terminal and here first I'll
  3790. 2:06:53see the directory I'm inside the link
  3791. 2:06:55force. I need to go one directory back
  3792. 2:06:57so that I can access my both directory.
  3793. 2:07:00cd and ls we have now two directory so
  3794. 2:07:04I'll now just say cd link forge one
  3795. 2:07:08enter ls we are now inside the link
  3796. 2:07:11forge one I can again try pwd just for
  3797. 2:07:13verification and we are inside the link
  3798. 2:07:15forge one directory so now in the two
  3799. 2:07:18different terminal we are running two
  3800. 2:07:19different branches one terminal is
  3801. 2:07:21running for our main branch and the
  3802. 2:07:23another terminal is running our link
  3803. 2:07:26forge one branch or I can say that
  3804. 2:07:28directory if I want to verify whether
  3805. 2:07:29whether we have two branches or not. So
  3806. 2:07:31I can just run a command which is get
  3807. 2:07:33branch and it says we have two branch
  3808. 2:07:36delete UI and main and you can see this
  3809. 2:07:38delete UI is the current branch because
  3810. 2:07:40in this terminal we are inside the link
  3811. 2:07:42forge but if I run the same command in
  3812. 2:07:44the new terminal and here if I go to the
  3813. 2:07:47link forge we are in the link forge
  3814. 2:07:48right now by the way and here if I just
  3815. 2:07:50do get branch here it can say that you
  3816. 2:07:53are in the main branch currently so
  3817. 2:07:54that's also confirm that every work tree
  3818. 2:07:56has their own separate branch link forge
  3819. 2:07:58one contains delete branch and our link
  3820. 2:08:01Forge which is the main directory
  3821. 2:08:02contains our main branch. Now I can work
  3822. 2:08:04with them simultaneously. I can just
  3823. 2:08:06switch the terminal. I can run the
  3824. 2:08:07different codecs inside them and I can
  3825. 2:08:09delegate my work and then I can use it
  3826. 2:08:12and push it on my GitHub without
  3827. 2:08:14committing the branch code before
  3828. 2:08:15switching it to the next branch. But as
  3829. 2:08:18I told you before, we will see the
  3830. 2:08:19better way also how we can create the
  3831. 2:08:21work tree directly from the UI. Now to
  3832. 2:08:23create it from the UI, we need to use a
  3833. 2:08:25CEX app. So you can get a user
  3834. 2:08:27interface. So let's go to the Codex app
  3835. 2:08:29and see the better way of it. Now in
  3836. 2:08:31this codeex app we need to first use our
  3837. 2:08:33project which we have created from the
  3838. 2:08:34codex cla. So I'll just click on choose
  3839. 2:08:37project and this one this one I'll say
  3840. 2:08:40new project. I want to create or upload.
  3841. 2:08:43I'll say upload and desktop and I want
  3842. 2:08:46my link forge. So I'll click on this
  3843. 2:08:49open. So we have now this link forge.
  3844. 2:08:51I'll say create project and my link
  3845. 2:08:54forge folder is created. This is not the
  3846. 2:08:56new project. It is a project which is
  3847. 2:08:57already available in our system. So what
  3848. 2:09:00we can do? We can create a work tree
  3849. 2:09:02from here itself which is a link forge
  3850. 2:09:04one. But one thing we need to do before
  3851. 2:09:06that if I want to create a same work
  3852. 2:09:08tree name I need to first remove it from
  3853. 2:09:10here from my finder. This one I need to
  3854. 2:09:12first remove this. So to remove this
  3855. 2:09:15work tree you can run the command which
  3856. 2:09:16is a get work tree remove. So I can just
  3857. 2:09:19write a get work tree remove and then
  3858. 2:09:22the name of the work tree which I want
  3859. 2:09:24to remove. Although I can look at the
  3860. 2:09:26list also before deleting. If I don't
  3861. 2:09:28know the name of the work tree and I
  3862. 2:09:29want to know how many work trees are
  3863. 2:09:31available in my folder or in my
  3864. 2:09:33directory I can just run a get work tree
  3865. 2:09:35list and enter. It will source all the
  3866. 2:09:38list of the work tree. Right now we have
  3867. 2:09:39only two link forge and the link forge
  3868. 2:09:41one. I want to delete the link forge
  3869. 2:09:43one. I again run the command which is
  3870. 2:09:44get work tree remove link forge one. And
  3871. 2:09:49when I say enter it has removed. Let's
  3872. 2:09:51verify it on the finder also. So you can
  3873. 2:09:53see this now we don't have link forge
  3874. 2:09:55one directory and even though we can
  3875. 2:09:56verify by running the command again
  3876. 2:09:58which is a get work tree list and it
  3877. 2:10:00says unable to read current work
  3878. 2:10:01directory no such file or directory
  3879. 2:10:03available let me verify in which branch
  3880. 2:10:05are we right now okay we are in the link
  3881. 2:10:06forge but that directory is not
  3882. 2:10:08available that's why it says so okay so
  3883. 2:10:10I need to go one back and now I'll go
  3884. 2:10:13inside link forge and here if I run the
  3885. 2:10:16get work list again it shows only one
  3886. 2:10:19workry directory which is a link forge
  3887. 2:10:20one so in this way you can delete the
  3888. 2:10:22directory also if their work has been
  3889. 2:10:24done. So now let's get the same work
  3890. 2:10:26directory from the codeex app also. So
  3891. 2:10:28go back here. Here we are in the link
  3892. 2:10:30forge and this is running on the local.
  3893. 2:10:33So if you want to create a work tree
  3894. 2:10:35from your link forge which has a main
  3895. 2:10:37branch what you can do you can start the
  3896. 2:10:39new chat all the way in the new chat
  3897. 2:10:41right now. But if your session is
  3898. 2:10:42running then you can click on the new
  3899. 2:10:44chat to start the new chat and then you
  3900. 2:10:46need to make sure you are inside your
  3901. 2:10:47link forge folder as we are right now.
  3902. 2:10:49And after that you need to click on this
  3903. 2:10:51local. Right now everything running in
  3904. 2:10:53the local. So you need to click on this
  3905. 2:10:55local. And here you can see we get an
  3906. 2:10:57option which is a new work tree. So this
  3907. 2:10:59is what I'm talking about. By just using
  3908. 2:11:01the user interface you can create a new
  3909. 2:11:03work tree. So I'll say create a new work
  3910. 2:11:05tree. And here I can set the environment
  3911. 2:11:08also because when we are creating a new
  3912. 2:11:09work tree all the dependencies and the
  3913. 2:11:11required environment variables are not
  3914. 2:11:13available by default. You need to set
  3915. 2:11:15it. But in Codex app if you want to set
  3916. 2:11:17it you can click on this no environment
  3917. 2:11:19section because right now we don't have
  3918. 2:11:21you can go to the environment setting
  3919. 2:11:22from here itself or you can go from
  3920. 2:11:24profile settings and here itself
  3921. 2:11:28environments so these are the places
  3922. 2:11:30where you can create an environment for
  3923. 2:11:31your project. So next time when you
  3924. 2:11:33create a work from that project it will
  3925. 2:11:35fetch all the necessary environment the
  3926. 2:11:37dependencies the all the API keys
  3927. 2:11:39whatever you have inserted in your env
  3928. 2:11:41files all the environment variables will
  3929. 2:11:43get fetched to that work tree. Right now
  3930. 2:11:45we don't have one so it will not ask any
  3931. 2:11:47permission for us. I'll say let it be no
  3932. 2:11:49work tree. It will get a new work tree
  3933. 2:11:51from the main branch. So let it be
  3934. 2:11:52mainly and we are in the new work tree.
  3935. 2:11:54So now what I'll do I'll assign a task
  3936. 2:11:56to the codeex to have a delete
  3937. 2:11:58functionality on the UI based on my
  3938. 2:11:59delete route. So I'll say create a
  3939. 2:12:02delete button or maybe I'll say add a
  3940. 2:12:06delete functionality on UI also and I
  3941. 2:12:10have given it a full access permission
  3942. 2:12:11so it will not ask me for any approval.
  3943. 2:12:14Now when I say enter it says the work
  3944. 2:12:16tree created and this is my work tree.
  3945. 2:12:18Right now we have not defined the branch
  3946. 2:12:20and when we are writing the get work
  3947. 2:12:22tree there we get an option to define
  3948. 2:12:24the branch at the same time. But in this
  3949. 2:12:26the branch option will only come when
  3950. 2:12:28you execute your task. So when we run
  3951. 2:12:30this task it says create a branch. I'll
  3952. 2:12:33create it once this code has been done.
  3953. 2:12:34It has read my all the code. It says
  3954. 2:12:36that the back end already support delete
  3955. 2:12:37API. It is able to read because we have
  3956. 2:12:40given the permission of our existing
  3957. 2:12:41folder. That's why it is able to access
  3958. 2:12:43all the code. Maybe I can access the
  3959. 2:12:45file from here itself. If I go to the
  3960. 2:12:46files, yeah, we have all the files. This
  3961. 2:12:49is our folder. We have seen all this
  3962. 2:12:51file in the VS code also. We can see it
  3963. 2:12:53in the code example as well. Now, it has
  3964. 2:12:55completed the task. It has done the
  3965. 2:12:57thing. I can review it before pushing my
  3966. 2:12:59code. So, I can just look at the
  3967. 2:13:01changes. These are the all the changes
  3968. 2:13:03it has done. As I can see in the
  3969. 2:13:05app.jsx, this is the handle leader
  3970. 2:13:07function. That means functionality has
  3971. 2:13:09been added on UI and it has made some
  3972. 2:13:11changes in the styling also and these
  3973. 2:13:13are all the changes. Now I need to first
  3974. 2:13:16create a branch for this particular work
  3975. 2:13:19tree. So I'll just click on this create
  3976. 2:13:20branch and here I'll define it has
  3977. 2:13:23already given me the suggestion that
  3978. 2:13:25which says add UI delete functionality.
  3979. 2:13:27So this makes sense. I'll go with this
  3980. 2:13:29particular branch name. Although if you
  3981. 2:13:31notice that it has also created a prefix
  3982. 2:13:33with the name codeex which let us know
  3983. 2:13:35that this particular work tree and the
  3984. 2:13:37branch is created by the codeex. So I
  3985. 2:13:39just say create and it will create a
  3986. 2:13:41branch and we can see this is my branch
  3987. 2:13:43name. Now I can commit and push this
  3988. 2:13:45changes. So I'll say yeah commit and
  3989. 2:13:48push. So it is generating the message
  3990. 2:13:49for me basically commit message and
  3991. 2:13:52pushing changes and the commit has been
  3992. 2:13:54pushed. Let's verify it on the browser
  3993. 2:13:56also. So here if you go and you can see
  3994. 2:13:59it says a codeex/ adduid delete
  3995. 2:14:01functionality had recent posess 4
  3996. 2:14:03seconds ago. So if I refresh the page
  3997. 2:14:06and main we have now two branches. So
  3998. 2:14:09from the codex app also we can able to
  3999. 2:14:10push the branch and we can able to see
  4000. 2:14:13the code also. Now once this work has
  4001. 2:14:15been done I have done with this work
  4002. 2:14:17tree. The next step is I need to
  4003. 2:14:18deattach this work tree which we are
  4004. 2:14:20able to do from the get command also. We
  4005. 2:14:22have seen the get work tree remove
  4006. 2:14:23command through which we can remove the
  4007. 2:14:25work tree. But in the codeex app if you
  4008. 2:14:27want to remove the work tree you need to
  4009. 2:14:29first shift your branch to your main
  4010. 2:14:31directory which is a link forge where
  4011. 2:14:33your main branch is already available.
  4012. 2:14:35So what we can do here if you look at
  4013. 2:14:37this work tree option I'll just click on
  4014. 2:14:39this it says a local checkout. So when I
  4015. 2:14:42click this on local checkout it says
  4016. 2:14:44where you want this branch should go.
  4017. 2:14:46Right now it is in the link forge one
  4018. 2:14:49directory but from that directory it
  4019. 2:14:51will shift to the link forge directory
  4020. 2:14:53which is my main directory and it also
  4021. 2:14:55contain my main branch. So I'll say hand
  4022. 2:14:57off my this branch to the link forge. So
  4023. 2:14:59I'll say hand off and now it has hand
  4024. 2:15:01off my work. So if I go back here you
  4025. 2:15:04can see this we are in my main branch.
  4026. 2:15:06If you look at here this is my main
  4027. 2:15:08branch. This is my codeex add UI delete
  4028. 2:15:11functionality and this is the delete UI.
  4029. 2:15:12This is one I think we have created from
  4030. 2:15:14the get command. That's why it shows but
  4031. 2:15:16this one doesn't exist I know. So now we
  4032. 2:15:19have this branch in our main directory
  4033. 2:15:20along with the main branch. The next
  4034. 2:15:22step is we need to merge this branch to
  4035. 2:15:25the main branch code and then we need to
  4036. 2:15:27delete this branch. This is the actual
  4037. 2:15:29flow goes on with the GitHub. First step
  4038. 2:15:31if I want to repeat we need to create a
  4039. 2:15:33separate work tree from your main
  4040. 2:15:35directory from your main branch itself
  4041. 2:15:37and there you can do your work and once
  4042. 2:15:40your work has been done to that work
  4043. 2:15:41tree you deattach your branch from that
  4044. 2:15:43work tree and push that branch code to
  4045. 2:15:46your main directory where your main
  4046. 2:15:48branch is also available. So as you can
  4047. 2:15:49see here we have now two branches. The
  4048. 2:15:51next step is create a pull request for
  4049. 2:15:53this branch and merge that code to the
  4050. 2:15:55main branch. So we can have a option
  4051. 2:15:57here which is a create pull request. I
  4052. 2:15:58just simply click on this. It says
  4053. 2:16:00create a PR. I say okay create it. It
  4054. 2:16:02will generate a meaningful message and
  4055. 2:16:04it has created a PR for my branch which
  4056. 2:16:06is add UI delete functionality. Let's go
  4057. 2:16:08back here and here if you go to the pull
  4058. 2:16:11request we can see this we have a branch
  4059. 2:16:13name and it is open pull request. Now we
  4060. 2:16:16can close it from ourself manually from
  4061. 2:16:18here itself. But I'll do it by codeex.
  4062. 2:16:21So go to the codeex app. We don't have
  4063. 2:16:23any user interface option to merge the
  4064. 2:16:25branch. So I can just simply type a
  4065. 2:16:27prompt here. I'll say merge a PR.
  4066. 2:16:29Although practically we do not directly
  4067. 2:16:30merge a branch. We need to first review
  4068. 2:16:32the changes and after that all the
  4069. 2:16:34changes or test cases pass then only we
  4070. 2:16:36merge the branch. But right now we
  4071. 2:16:37believe that Codex has done everything
  4072. 2:16:39perfect. So we can directly merge it
  4073. 2:16:40without review. I'll say merge appear
  4074. 2:16:43and perfect it has merged our PR to the
  4075. 2:16:46main. We can verify it now the browser
  4076. 2:16:48also. So just go here and here when we
  4077. 2:16:51go to the code we can see this a commit
  4078. 2:16:53message which says merge pull request.
  4079. 2:16:55And even though if you go back to the
  4080. 2:16:56pull request, we can see this no one has
  4081. 2:16:58opened. Now we can see this our current
  4082. 2:17:00pull request has been closed now. And
  4083. 2:17:02even though it has also deleted my
  4084. 2:17:04branch because that work has been done,
  4085. 2:17:05we have merged it to the main now. So if
  4086. 2:17:07you go to the code, we click on the
  4087. 2:17:08main, we can see this now only one
  4088. 2:17:10branch is available. Even though we
  4089. 2:17:11click on the view all branches, only one
  4090. 2:17:13branch is available. The delete
  4091. 2:17:15functionality branch has been deleted
  4092. 2:17:16because we have merged it to the main.
  4093. 2:17:18So in this way work tree actually work.
  4094. 2:17:20You can work it simultaneously. You have
  4095. 2:17:22a different branch in the different work
  4096. 2:17:24tree. So without committing the code in
  4097. 2:17:25your current branch, you can switch the
  4098. 2:17:27branch and work simultaneously. So I
  4099. 2:17:29hope this makes you understand how it
  4100. 2:17:31actually works and how you can create
  4101. 2:17:33your own work tree for your project.
  4102. 2:17:37Now we are almost done with all the
  4103. 2:17:39concepts of codeex. Only few things are
  4104. 2:17:41left which is integrating this into a
  4105. 2:17:44production database and also deploying
  4106. 2:17:46it on the hosting platform. So first
  4107. 2:17:48we'll go with the integrating where
  4108. 2:17:50we'll integrate our database. So
  4109. 2:17:52basically we are going to use neon
  4110. 2:17:54database where we have a serverless post
  4111. 2:17:56gray and we'll host our database there.
  4112. 2:17:58Now we can do this with the codex
  4113. 2:18:00itself. We have to just install a
  4114. 2:18:02plug-in which is a neon plug-in. Now
  4115. 2:18:04from the codex cla you can't able to
  4116. 2:18:06install a plug-in for your requirement.
  4117. 2:18:09But you can go to the chat jp account on
  4118. 2:18:11the browser. Then there you can select a
  4119. 2:18:12plug-in which you want to use and you
  4120. 2:18:14can install it. And if you have a codex
  4121. 2:18:15app you can install from your codex app
  4122. 2:18:17itself. Just go to the plugins option
  4123. 2:18:19and here you can search the plug-in
  4124. 2:18:21based on your requirement and you can
  4125. 2:18:22install it. So as you can see I have
  4126. 2:18:24already installed the neon postgrade
  4127. 2:18:26because this is what we are going to use
  4128. 2:18:27to integrate our database and host it
  4129. 2:18:30there. So now instead of doing all the
  4130. 2:18:32things from codeex app we'll go back to
  4131. 2:18:35the codeex cla code and from there we'll
  4132. 2:18:37integrate our database. So now we are
  4133. 2:18:40already running with the codeex.
  4134. 2:18:41Although before integrating to the
  4135. 2:18:43database, I want to also show you that
  4136. 2:18:44we have a delete functionality on the UI
  4137. 2:18:46which we have done in the previous
  4138. 2:18:47lecture. So if I go back to the UI, you
  4139. 2:18:50can see this we have now delete button
  4140. 2:18:51and it's working perfectly. If I just
  4141. 2:18:53click on this delete, it will delete my
  4142. 2:18:55URL. And if I paste it again and shorten
  4143. 2:18:58my URL is added, I can again delete it.
  4144. 2:19:00So now let's use a plug-in which is a
  4145. 2:19:02neon DB to integrate the database. So we
  4146. 2:19:04can see that we are storing everything
  4147. 2:19:05inside our inmemory. So we need to now
  4148. 2:19:07shift it to the production database. So
  4149. 2:19:09I can just call the plug-in. I'll just
  4150. 2:19:11say add the rate neon and this is my
  4151. 2:19:14plug-in. I'll say neon postgrade and
  4152. 2:19:16here I'll say
  4153. 2:19:18shift my inmemory database to neon
  4154. 2:19:22serverless postg gray. And now I just
  4155. 2:19:25click enter. Now I'm able to use this
  4156. 2:19:27neon postgrip plug-in because I have
  4157. 2:19:28already installed it as I told you
  4158. 2:19:30before. But when you install it, it will
  4159. 2:19:32first ask for the authentication. It is
  4160. 2:19:34not only about using the plug-in by just
  4161. 2:19:36installing it. You need to also connect
  4162. 2:19:37it with the codeex just like we have
  4163. 2:19:39done for the GitHub where we
  4164. 2:19:40authenticate our account. Same like that
  4165. 2:19:42you need to authenticate your neon app
  4166. 2:19:44so that it can run your and communicate
  4167. 2:19:46with your application flawlessly. So we
  4168. 2:19:48have already done this that's why I'm
  4169. 2:19:50able to use it. I'll just say enter. It
  4170. 2:19:52will start running. It will create
  4171. 2:19:53automatically project or the database
  4172. 2:19:55inside my neon dashboard and where it
  4173. 2:19:57will also create a table and all the
  4174. 2:19:59records whatever we are going to do in
  4175. 2:20:01our UI. So at the time it is doing
  4176. 2:20:04changes in our code. We can just go to
  4177. 2:20:05the neon dashboard from UI and see how
  4178. 2:20:07the things are going on there. So this
  4179. 2:20:09is my neon console. I'll just open it
  4180. 2:20:11here. Okay. So these are the project.
  4181. 2:20:14These are my previous project. We have
  4182. 2:20:15link forge link web I'm testing. I have
  4183. 2:20:17done this for practice purpose. As you
  4184. 2:20:19can see the timeline also 2 days ago.
  4185. 2:20:21It's not current one. So we'll have to
  4186. 2:20:23wait before it get a new project and
  4187. 2:20:25then we are able to see that project
  4188. 2:20:27here itself. So let's go to the VS code
  4189. 2:20:29back and see how it's working. Okay.
  4190. 2:20:31It's need an approval. I'll say yes.
  4191. 2:20:37Okay. So, it has done with the task. It
  4192. 2:20:39takes around 2 minute 55 seconds to
  4193. 2:20:41complete. And I think everything has
  4194. 2:20:43been done. Let's see how the things goes
  4195. 2:20:45on there. So, if you go here and now if
  4196. 2:20:48you refresh the page,
  4197. 2:20:50yes, we are able to see a project which
  4198. 2:20:52has created a minute ago. We can open
  4199. 2:20:54this project. We can look at the tables
  4200. 2:20:56also whether it has created a one or
  4201. 2:20:58not. And right now it says zero tables
  4202. 2:21:00in public schema. So let's see whether
  4203. 2:21:03it has created or not. Create the short
  4204. 2:21:05URL table in neon. Okay, it says that
  4205. 2:21:07you have to create it manually. But I
  4206. 2:21:09don't want to do anything manual by
  4207. 2:21:10myself. I'll go with the codeex itself.
  4208. 2:21:12So I'll say create a table also. Create
  4209. 2:21:16a table also. Okay. Now it is creating a
  4210. 2:21:19short URL table. Allow. Okay. So it has
  4211. 2:21:22created the short URL. Let's go back
  4212. 2:21:23here and refresh. Yes, now short URL
  4213. 2:21:28table is available. We can go to the
  4214. 2:21:29columns to see. Yeah, these are the
  4215. 2:21:31columns available. Code, original URL,
  4216. 2:21:33short URL and created at perfect. So now
  4217. 2:21:36table has been done. Database is also
  4218. 2:21:38set if I'm not wrong. If I go to the
  4219. 2:21:40env. Yes, database URL, base URL, host
  4220. 2:21:43and port. Everything is set here.
  4221. 2:21:45Perfect. Now it's time to test whether
  4222. 2:21:47things are actually getting saved in our
  4223. 2:21:48production database or not. So here
  4224. 2:21:50we'll add one link. Now let's say this
  4225. 2:21:52one. And when I say shorten all that is
  4226. 2:21:54still shows store is local only but
  4227. 2:21:56right now it's running a production
  4228. 2:21:58database. Okay. So it has now converted.
  4229. 2:22:00We have this original and the shorten
  4230. 2:22:01link. Now let's see whether it is
  4231. 2:22:03available in our database or not. So
  4232. 2:22:05let's go here. And now if you refresh
  4233. 2:22:07the table. Yes, we are able to get the
  4234. 2:22:09records in our table. And it is now
  4235. 2:22:11remain here even though we'll close the
  4236. 2:22:13server because right now our database is
  4237. 2:22:16available in hosted platform. Now if I
  4238. 2:22:19delete it from here, let's see whether
  4239. 2:22:20the database get deleted or not. So if I
  4240. 2:22:22delete and now if you go back here and
  4241. 2:22:24if you refresh the table. Okay. So data
  4242. 2:22:26has been deleted successfully from here
  4243. 2:22:28itself. So in this way we have
  4244. 2:22:29integrated our database only from the
  4245. 2:22:31codeex cla itself. You just need to
  4246. 2:22:33install the plug-in and authenticate it
  4247. 2:22:35with your neon dashboard and you are
  4248. 2:22:37ready to go to integrate your database
  4249. 2:22:39from codeex cla itself.
  4250. 2:22:42Now only one last thing is left which is
  4251. 2:22:44deploying this application so that we
  4252. 2:22:46can share with anyone. So let's go to
  4253. 2:22:49the codeex cli back and see how we can
  4254. 2:22:51do it from there itself. Now just like
  4255. 2:22:53we have integrated our database using
  4256. 2:22:55the neon postgrip plug-in same like that
  4257. 2:22:57we will use versel plug-in. So as I told
  4258. 2:22:59you before that if you want to install a
  4259. 2:23:01plug-in either go to the chat GPD
  4260. 2:23:03browser and from there you can install
  4261. 2:23:04the plug-in or if you have a codex app
  4262. 2:23:06from there also you can install the
  4263. 2:23:08plug-in. So I'll just show you how the
  4264. 2:23:09plug-in looks like. If you go here you
  4265. 2:23:11can see this is overell plug-in just
  4266. 2:23:13install it and now once you install it
  4267. 2:23:15will ask you for the authentication. Now
  4268. 2:23:17it will not just like a neon database
  4269. 2:23:19where you just install the plug-in and
  4270. 2:23:21it will authenticate by just through
  4271. 2:23:23app. If you want to authenticate your
  4272. 2:23:24versel account you need cla so that it
  4273. 2:23:27can authenticate your account using
  4274. 2:23:29commands. So go to the browser and here
  4275. 2:23:32search
  4276. 2:23:34and here just click on this you will get
  4277. 2:23:38this command which is pnpm i - gel. If
  4278. 2:23:42you are using the npm version only then
  4279. 2:23:44only copy the command till here because
  4280. 2:23:46we are not using the pnpm. So just copy
  4281. 2:23:49this paste it on the terminal and you
  4282. 2:23:51are able to use versel cla. So just open
  4283. 2:23:53the terminal and here I have already
  4284. 2:23:55installed it. So I just verify whether
  4285. 2:23:56versel is available or not and it says
  4286. 2:23:58that cla is available with the version
  4287. 2:24:0056.5.0.
  4288. 2:24:02So once you install the versel cla then
  4289. 2:24:04install the versel plug-in also and then
  4290. 2:24:06it will authenticate you through versel
  4291. 2:24:08cla. Now I just use a plug-in now which
  4292. 2:24:11is versel. I'll say add the date to
  4293. 2:24:13versel and I'll say deploy this
  4294. 2:24:15application and just say enter. At the
  4295. 2:24:17time it is deploying. Let's open the
  4296. 2:24:18versel on the browser also. So this is
  4297. 2:24:20my versel account and here we'll able to
  4298. 2:24:22see our versel project which is created
  4299. 2:24:24by codeex. So let's go back here and see
  4300. 2:24:27the progress. It has given me some
  4301. 2:24:28error. It says I can't deploy this app
  4302. 2:24:30to versel without changing the back end
  4303. 2:24:32shape. Why? The front end is v react is
  4304. 2:24:34deployable. The back end is standalone
  4305. 2:24:35express. I convert the back end to
  4306. 2:24:37versel compatible. I deploy only the
  4307. 2:24:39front end to version and point it to the
  4308. 2:24:41separately. I keep the current
  4309. 2:24:43architecture and deploy it somewhere. I
  4310. 2:24:45think the problem is that we have not
  4311. 2:24:46committed all those codes. So that's why
  4312. 2:24:48not able to fetch the latest one. So I
  4313. 2:24:50need to first commit this. I'll say push
  4314. 2:24:52my code on GitHub. Okay, it has now
  4315. 2:24:55pushed. Let's go back to the versel
  4316. 2:24:57command. And now let's try to deploy
  4317. 2:24:59again.
  4318. 2:25:01Okay, still the problem. It says I
  4319. 2:25:03convert the back end to versa serverless
  4320. 2:25:04functions and deploy the full
  4321. 2:25:06application. Okay, that's what I want.
  4322. 2:25:08So I'll say deploy my full application.
  4323. 2:25:16Okay, so it has done with the task. It
  4324. 2:25:18has deployed my application on Versel.
  4325. 2:25:20And this is the URL for the Versel. But
  4326. 2:25:22before opening this URL, I want to
  4327. 2:25:23verify it on the UI also in Versel
  4328. 2:25:26dashboard. So here if you go to the
  4329. 2:25:28deployment, yes, we can see this. This
  4330. 2:25:30is a current deployment done by a
  4331. 2:25:32versel. It has done the multiple
  4332. 2:25:33deployments uh 14 seconds 12 seconds
  4333. 2:25:36back. So it done the multiple iteration
  4334. 2:25:38just to verify whether things work or
  4335. 2:25:39not and it has after multiple iteration
  4336. 2:25:42created a URL for us and it's time to
  4337. 2:25:44verify it. So just copy this and paste
  4338. 2:25:47it on the browser. Okay, our application
  4339. 2:25:49has opened. Let's try it out. Let's
  4340. 2:25:51paste this shorten. So it has shortened
  4341. 2:25:54the URL. The thing is that it is still
  4342. 2:25:56using a local URL when it convert into a
  4343. 2:25:59short URL. So we need to change this so
  4344. 2:26:01that it can actually deploy it on the
  4345. 2:26:02versel live URL instead of a local host.
  4346. 2:26:05So I'll just say here in the prompt it
  4347. 2:26:08convert the URL or I'll say shorten the
  4348. 2:26:10URL with local host instead of versal
  4349. 2:26:15URL.
  4350. 2:26:20Okay. So I think it has now fixed the
  4351. 2:26:22issue. Let's go back to the UI. So let's
  4352. 2:26:24paste the URL here. Shorten. And it has
  4353. 2:26:26now shortened it. And now it is in the
  4354. 2:26:28versal UI. So if I just click on this
  4355. 2:26:30short link, it should redirect me. But
  4356. 2:26:32it is not redirecting me. Let me do the
  4357. 2:26:35console. What's the issue? If we click
  4358. 2:26:37on this. Okay, it opens in the new tab
  4359. 2:26:39but with the same one. Let me try the
  4360. 2:26:41delete functionality also. Okay, delete
  4361. 2:26:43is also not working. Let's inspect it.
  4362. 2:26:45Okay, delete method not allowed. Okay,
  4363. 2:26:48so this is the issue. Let's try it out
  4364. 2:26:49with the codeex. I'll just copy this
  4365. 2:26:51issue to codeex and say why it's not
  4366. 2:26:53working. I'll also explain that when I
  4367. 2:26:56click on shorten URL, it's not working.
  4368. 2:27:00So now let's test it out whether things
  4369. 2:27:02are working or not. So here we already
  4370. 2:27:04have these two recent links. So first
  4371. 2:27:05we'll delete this and then we'll paste a
  4372. 2:27:07new one. So delete this one and delete
  4373. 2:27:09this one as well. And now let's paste a
  4374. 2:27:12new one. I'll go with this GitHub
  4375. 2:27:14shorten. Okay, we have now this one. And
  4376. 2:27:16if you paste the Excel draw one, we have
  4377. 2:27:18now these two. And even though if you
  4378. 2:27:20open this shorten URL, it works perfect.
  4379. 2:27:23If you open the second one, this one is
  4380. 2:27:24also working. So our functionality is
  4381. 2:27:26working. The only thing is that we need
  4382. 2:27:27to check whether these data are
  4383. 2:27:29available on our database or not. So
  4384. 2:27:30just go to the neon console and here if
  4385. 2:27:33we refresh, this is our old data I
  4386. 2:27:35think. So if you refresh, yes, we have
  4387. 2:27:37now new data as you can see this code
  4388. 2:27:39has also changed if you notice at the
  4389. 2:27:41time of refresh. Although you can verify
  4390. 2:27:42it once again by deleting it. So let's
  4391. 2:27:44delete this one. And now if you go back
  4392. 2:27:47refresh yeah it has deleted. Delete the
  4393. 2:27:49this one also. And now go back again and
  4394. 2:27:51refresh. And this one is also deleted.
  4395. 2:27:53Perfect. So all the things are working.
  4396. 2:27:55We have deployed it on the versel. We
  4397. 2:27:57got the URL also from the versel. And
  4398. 2:27:59also we have connected our database.
  4399. 2:28:01It's working fine. We are able to delete
  4400. 2:28:03the records. So in our application is
  4401. 2:28:06working fine which we have created
  4402. 2:28:07through codeex only. So that's all about
  4403. 2:28:10this entire codeex series. I hope you
  4404. 2:28:12enjoyed it. How it actually works. We
  4405. 2:28:14get to know about many more things like
  4406. 2:28:16skills, agents.mmd file, work tree and a
  4407. 2:28:19lot more. Try it out by yourself. see
  4408. 2:28:21which one is working perfect for you.
  4409. 2:28:22Although I want to show you one more
  4410. 2:28:24thing whether how we can use it in the
  4411. 2:28:26ID also because we have not discussed
  4412. 2:28:28it. Everything will remain same in ID as
  4413. 2:28:29well just like we have discussed in the
  4414. 2:28:31codeex CLI only the interface will get
  4415. 2:28:33changed. So in whatever the interface
  4416. 2:28:34you are comfortable you can just go with
  4417. 2:28:36them. I'll just give you the quick
  4418. 2:28:38overview of the codeex ID extension. So
  4419. 2:28:41if you can look at here when you go to
  4420. 2:28:42this section here you can install a
  4421. 2:28:44codeex ID. As you can see this one when
  4422. 2:28:47you click on this install it and when
  4423. 2:28:49you install you will get this option in
  4424. 2:28:50the sidebar just click on this and this
  4425. 2:28:53is how you can able to use ID extension
  4426. 2:28:56of codeex in your ID itself just give a
  4427. 2:28:58file whatever you want to give just open
  4428. 2:29:00this you can just attach a file use a
  4429. 2:29:02plug-in just like we have done in the
  4430. 2:29:04codex cli and the codex app everything
  4431. 2:29:06will remain same so based on your
  4432. 2:29:07preference you can use any one of the
  4433. 2:29:09interface and go with that so that's all
  4434. 2:29:11about the codeex bye

About this transcript

This page contains the full transcript of OpenAI Codex Complete Tutorial by Telusko, generated from the public captions YouTube serves with the video. The transcript has 33,289 words across 4,434 segments, with the original timestamps preserved so you can click any line to jump to that moment in the embedded player.

What you can do with it

Use the transcript to take notes, quote the speaker, build a study guide, generate a summary with ChatGPT or Claude via the YouTube Summary tool, or export it as a timed subtitle file with YouTube to SRT. You can also re-open it in the transcriber to choose a caption track available on the video.

Free YouTube transcript tool

YouTube2Text is a free YouTube transcript generator — no signup, no daily limit. Paste any YouTube link and get the full transcript instantly, with timestamps, click-to-jump, caption language selection, AI prompts for ChatGPT, Claude, and Gemini, and exports to TXT, SRT, VTT, or Markdown.