WEBVTT

NOTE Sentence-level transcript of https://www.youtube.com/watch?v=FwiS44-xyYw

NOTE One cue per sentence. Cue ids are the line anchors on /transcripts/FwiS44-xyYw.html. A cue ends where the next begins, or 2 s after its last word.

s1
00:00:18.720 --> 00:00:20.800
All right.

s2
00:00:21.920 --> 00:00:24.320
Good morning, everybody.

s3
00:00:24.320 --> 00:00:25.680
Uh, thanks for bearing with us.

s4
00:00:25.680 --> 00:00:30.080
There was a long line outside, so we just wanted to make sure everybody could get in and get a seat.

s5
00:00:30.080 --> 00:00:32.480
Um, thank you so much for being here.

s6
00:00:32.480 --> 00:00:34.640
This is the cooking with Codeex workshop.

s7
00:00:34.640 --> 00:00:36.320
We're so excited to have you.

s8
00:00:36.320 --> 00:00:37.840
Uh, my name is Charlie.

s9
00:00:37.840 --> 00:00:40.879
I'm on the developer experience team at OpenAI.

s10
00:00:40.879 --> 00:00:45.520
And my name is Gabriel, also on the developer experience team, flying in from Singapore.

s11
00:00:45.520 --> 00:00:48.000
Nice to be here.

s12
00:00:48.960 --> 00:00:58.559
Uh so before we kind of dive into the nuts and bolts, you know, I wanted to do a quick review of what have folks been cooking with Codeex.

s13
00:00:58.559 --> 00:01:01.280
It is a cooking show.

s14
00:01:01.760 --> 00:01:04.799
Uh these you might have seen some of these tweets.

s15
00:01:04.799 --> 00:01:09.680
Um but you know there's a real range of stuff that people have been making.

s16
00:01:09.680 --> 00:01:12.960
Some of it pretty pretty incredible.

s17
00:01:13.119 --> 00:01:18.880
Uh I think this one uh a session with nearly 300 sub aents.

s18
00:01:18.880 --> 00:01:22.240
Has anybody beat that in a given session?

s19
00:01:22.240 --> 00:01:25.600
No. I think I think Dom might have, but we'll see.

s20
00:01:25.600 --> 00:01:33.280
Um Codeex working on a synth plugin uh for Ableton.

s21
00:01:33.280 --> 00:01:35.920
Um really really cool stuff.

s22
00:01:35.920 --> 00:01:49.520
I think on our team um we have a team member Brent who's doing at this point video editing with codeex driving premiere right which is not what you would normally expect to see from from a coding app.

s23
00:01:51.759 --> 00:01:59.200
Uh playable you know games I think like gaming to me is is really a place where where the models and the app can shine.

s24
00:01:59.200 --> 00:02:13.040
the ability to go and check your work um for the game as it's done or to hand off between different threads and you know manage audio versus art design versus game mechanics versus you know difficulty balancing.

s25
00:02:13.040 --> 00:02:17.760
Um I think I think the different threads and sub aents are amazing here.

s26
00:02:18.800 --> 00:02:28.000
And last but not least um you know building a self-driving golf cart with codeex uh which I think is just absolutely incredible.

s27
00:02:28.000 --> 00:02:35.920
Um, it kind of makes me wish I was back at school so I could be hacking on uh stuff in my nights and weekends again.

s28
00:02:38.239 --> 00:02:40.480
But where have people been cooking?

s29
00:02:40.480 --> 00:02:42.800
I think that's pretty fun.

s30
00:02:42.800 --> 00:02:44.640
So you we sort of see it everywhere.

s31
00:02:44.640 --> 00:02:48.319
Everyone's codex mixing everywhere, anywhere, all the time.

s32
00:02:48.319 --> 00:02:53.840
I mean, literally in between meetings, you've seen people like holding their laptops everywhere, keeping it open.

s33
00:02:53.840 --> 00:02:55.360
It's become a meme at this point.

s34
00:02:55.360 --> 00:02:58.160
Fortunately, we now have Codex on mobile.

s35
00:02:58.160 --> 00:03:08.959
So, this uh gentleman in Japan was able to like bounce between ideas in bouncing between cities while on the bullet train or while walking a dog.

s36
00:03:08.959 --> 00:03:16.159
And you don't just ha you don't necessarily have to use Codex on the Codex app or use it within like the chat GPD app.

s37
00:03:16.159 --> 00:03:22.800
You can just put Codex anywhere with it being open source there being the app server which we'll talk about briefly at the end.

s38
00:03:22.800 --> 00:03:23.599
You can put it here.

s39
00:03:23.599 --> 00:03:28.319
So this Daniel for example put it into three e- in devices.

s40
00:03:28.319 --> 00:03:31.680
So you really can codex max anywhere.

s41
00:03:31.680 --> 00:03:35.360
So if it's your first time sort of using codeex uh do check it out.

s42
00:03:35.360 --> 00:03:36.640
Do give it a download.

s43
00:03:36.640 --> 00:03:43.920
What's really nice is that if you have existing configuration for other agents you can just bring it in and just get started really cook quick.

s44
00:03:43.920 --> 00:03:50.239
And today we want to through the cooking show help you cook really fast and cook something really cool.

s45
00:03:50.239 --> 00:03:52.400
So there's a quick agenda.

s46
00:03:52.400 --> 00:03:59.439
We're going to talk about what's new and then the real pun intended meat of the session is the six ways to cook with codeex.

s47
00:03:59.439 --> 00:04:11.200
Some closing thoughts and then the second hour of the session we'll have like a mini hackathon where we're going to have live cooking right in this room and we'll be like walking around helping to be your sue chef to your main chef.

s48
00:04:11.200 --> 00:04:11.920
So what's new?

s49
00:04:11.920 --> 00:04:13.920
What's fresh from the oven?

s50
00:04:13.920 --> 00:04:20.239
A few a bunch of things I think fundamentally to just really help you give context to Codex really fast.

s51
00:04:20.239 --> 00:04:21.840
There was record and replay.

s52
00:04:21.840 --> 00:04:26.080
You spend time maybe describing, oh, you got to press that button, you got to press this button.

s53
00:04:26.080 --> 00:04:28.160
Maybe just show codeexc by doing it.

s54
00:04:28.160 --> 00:04:31.840
It builds on sort of our technology with computer use and so forth.

s55
00:04:31.840 --> 00:04:33.680
Tread handoff really fun.

s56
00:04:33.680 --> 00:04:38.240
You can sort of push things from the cloud to the remote to your local and vice versa.

s57
00:04:38.240 --> 00:04:39.840
We'll demonstrate some of that.

s58
00:04:39.840 --> 00:04:42.400
And the mobile app is now in generally available.

s59
00:04:42.400 --> 00:04:48.639
So now there's like sort of onetoone device pairing, a much more secure way of working with codecs.

s60
00:04:48.880 --> 00:04:51.199
So, it's it's been 2026.

s61
00:04:51.199 --> 00:04:58.800
This slide barely summarizes everything we've shipped and we're only 50% literally 50% of the year.

s62
00:04:58.800 --> 00:05:00.160
Some things have been really fun.

s63
00:05:00.160 --> 00:05:06.720
The plugins, computer use, multimodality, being able to use Codex on the mobile, app shots, that's a personal favorite.

s64
00:05:06.720 --> 00:05:09.759
These things really make Codex and the Codex app really fun to use.

s65
00:05:09.759 --> 00:05:11.600
And we'll be talking about some of these.

s66
00:05:11.600 --> 00:05:14.720
They are all sort of key ingredients.

s67
00:05:14.720 --> 00:05:17.680
So, that's cooking a Codex.

s68
00:05:18.000 --> 00:05:23.280
Uh we wanted to like start with this quote where it's from our favorite movie Ratatouille.

s69
00:05:23.280 --> 00:05:25.919
Anyone can cook but only the fearless can be great.

s70
00:05:25.919 --> 00:05:34.479
And today with the sort of ingredients we're going to share with you some of the recipes but with your ingenuity we think you're going to cook some really fun stuff.

s71
00:05:34.479 --> 00:05:37.840
And these are the six steps to cooking with CEX.

s72
00:05:37.840 --> 00:05:40.400
Number one you got to give Codex your context.

s73
00:05:40.400 --> 00:05:48.800
There's a lot of context in like your documents, in your brain, in your conversations, in your email, in notion, linear, so forth.

s74
00:05:48.800 --> 00:05:50.560
You got to give codeex that context.

s75
00:05:50.560 --> 00:05:52.400
That's a really important ingredient.

s76
00:05:52.400 --> 00:05:55.440
And then once you have it, you can literally just build things.

s77
00:05:55.440 --> 00:05:57.440
And that's already just a step two.

s78
00:05:57.440 --> 00:06:01.600
For the power users in the room, there's some interesting stuff where Codex can actually take action.

s79
00:06:01.600 --> 00:06:08.240
You might notice right now like on I'm on Chrome and you just see this thing nice thing at the top saying Codex started debugging this browser.

s80
00:06:08.240 --> 00:06:18.560
what's happening in background is actually codex is reading the slides as I'm speaking and then you can sort of collaborate with codex on longrunning tasks and you want to work over time where

s81
00:06:18.560 --> 00:06:30.880
you want to put this make it repeatable sort of ensure consistency and really like build those loops and finally we want to bring codex everywhere if you want to embed it in your own product or in your own internal platforms that's also possible

s82
00:06:30.880 --> 00:06:42.080
so let's just dive right in for the first two steps cooking a codeex where you give it your context and you can just build So, a few days ago, like on Friday,

s83
00:06:42.080 --> 00:06:47.199
uh Charlie and Christine and myself, we were thinking, "Yikes, it's it's Friday.

s84
00:06:47.199 --> 00:06:47.919
It's Friday night."

s85
00:06:47.919 --> 00:06:52.720
We sent it at 4 4:44 p.m. We don't have a demo idea for this workshop.

s86
00:06:52.720 --> 00:06:54.240
Uh we had any suggestions.

s87
00:06:54.240 --> 00:06:57.280
Then Christine suggested, "Hey, let's build a real-time translator."

s88
00:06:57.280 --> 00:07:00.720
Charlie uh suggested, "Hey, let's use GPT realtime translate.

s89
00:07:00.720 --> 00:07:01.840
It's one of our latest models.

s90
00:07:01.840 --> 00:07:02.639
It's really good."

s91
00:07:02.639 --> 00:07:04.880
And then we can even have a plugin.

s92
00:07:04.880 --> 00:07:08.720
I've never built a Mac OS app, but with the plug-in, all the best practices are there.

s93
00:07:08.720 --> 00:07:13.759
So maybe you would like copy paste, you would like Google or search or what these things are.

s94
00:07:13.759 --> 00:07:15.759
Then you go to codeex, but I'm going to do something fun.

s95
00:07:15.759 --> 00:07:19.280
So I'm going to take my two thumbs over here, my my right thumb and my left thumb.

s96
00:07:19.280 --> 00:07:20.880
I'm going to put it on the command key.

s97
00:07:20.880 --> 00:07:22.400
I'm just going to press it.

s98
00:07:22.400 --> 00:07:24.080
And bam, that's a app.

s99
00:07:24.080 --> 00:07:28.400
All that context on Slack, all the conversation, that brainstorming is just right there.

s100
00:07:28.400 --> 00:07:31.039
And let's just ask Codex.

s101
00:07:32.240 --> 00:07:35.520
Hey, can you just build this?

s102
00:07:38.080 --> 00:07:39.440
Yeah, cooking show is over.

s103
00:07:39.440 --> 00:07:40.319
No, I'm kidding.

s104
00:07:40.319 --> 00:07:42.400
And we're going to let Codex cook on that.

s105
00:07:42.400 --> 00:07:48.880
And what happens with a appshot is that when you take a it's like a screenshot, but all the text is embedded as well.

s106
00:07:48.880 --> 00:07:55.199
And it's very nice because that's where you have a lot of personal context, the conversations, there's brainstorming, you don't have to like repeat yourself.

s107
00:07:55.199 --> 00:07:57.599
You just give codecs and you can like just figure it out.

s108
00:07:57.599 --> 00:08:02.800
So, we're going to look let let that work on it for a bit and we're going to try something else as well.

s109
00:08:02.800 --> 00:08:04.720
So, we have the agents SDK.

s110
00:08:04.720 --> 00:08:05.440
It's open source.

s111
00:08:05.440 --> 00:08:06.479
It's pretty nice.

s112
00:08:06.479 --> 00:08:10.400
And uh you got like some things that have come up in the recent months.

s113
00:08:10.400 --> 00:08:16.720
So, I was thinking, hey, maybe we could build like a website to sort of just briefly describe what's new and we're going to use this thing called sites.

s114
00:08:16.720 --> 00:08:22.560
So, sites is something that we launched earlier in the month in June for in preview for enterprise and business plans.

s115
00:08:22.560 --> 00:08:26.960
It lets you sort of create a simple site and it's really about just creating artifacts you can share.

s116
00:08:26.960 --> 00:08:30.879
So here we sort I worked with Codex for a bit and let's just see what Codex cooked here.

s117
00:08:30.879 --> 00:08:35.039
So we're going to open it up and it's all what's new with the agents SDK.

s118
00:08:35.039 --> 00:08:36.080
You have the it's pretty nice.

s119
00:08:36.080 --> 00:08:40.959
You have like six changes, sandbox agents, codex as a tool, tool search, realtimes agents.

s120
00:08:40.959 --> 00:08:43.279
We'll be talking about that in a in the next few days as well.

s121
00:08:43.279 --> 00:08:45.200
And then you can see like the code snippets are here.

s122
00:08:45.200 --> 00:08:46.640
So yeah, it's pretty nice with sites.

s123
00:08:46.640 --> 00:08:49.680
You can then create artifacts that you can share with your team.

s124
00:08:49.680 --> 00:08:53.279
So that's another example of bringing context because you have a code base.

s125
00:08:53.279 --> 00:08:54.560
It's a really large codebase.

s126
00:08:54.560 --> 00:08:56.560
There's git commits, there's history to it.

s127
00:08:56.560 --> 00:08:57.360
is a lot of things.

s128
00:08:57.360 --> 00:08:59.360
That's that context and that's step one.

s129
00:08:59.360 --> 00:09:01.760
You're just going to give it to Codex to build it and that's step two.

s130
00:09:01.760 --> 00:09:03.040
You can just build things.

s131
00:09:03.040 --> 00:09:05.360
So let's give in that last last example here.

s132
00:09:05.360 --> 00:09:12.000
Maybe like now we're Charlie's out on the streets think uh taking a walk with his kids, his dog, and he's wondering, hey, maybe you wanted to build something.

s133
00:09:12.000 --> 00:09:15.600
So I'll let Charlie uh take the stage here.

s134
00:09:17.440 --> 00:09:17.839
Got it.

s135
00:09:17.839 --> 00:09:18.880
Cool.

s136
00:09:18.880 --> 00:09:21.360
Uh so what I want to show you is Codex remote.

s137
00:09:21.360 --> 00:09:23.519
Gabe mentioned we might be out in the world, right?

s138
00:09:23.519 --> 00:09:25.120
We might be, you know, on the beach.

s139
00:09:25.120 --> 00:09:28.160
we might be um camping something but we still want to get work done.

s140
00:09:28.160 --> 00:09:29.279
We still want to keep cooking.

s141
00:09:29.279 --> 00:09:39.839
So Codex remote is a feature that's now available in chatbt a mobile app and allows us to connect to a you know laptop or remote server and issue commands that can be executed

s142
00:09:39.839 --> 00:09:40.720
uh remotely.

s143
00:09:40.720 --> 00:09:50.720
So in this case let's say we want to visualize something about this agents SDK right um for me personally you know last weekend I was building a bunch of IKEA furniture so that's kind of on the brain.

s144
00:09:50.720 --> 00:09:58.480
Uh, why don't we try to visualize how this repo works in the style of an IKEA manual?

s145
00:10:00.000 --> 00:10:05.600
Can you create a visualization of this repository in the style of an IKEA instruction manual?

s146
00:10:05.600 --> 00:10:10.399
Uh, I want to understand how all of the primitives fit together.

s147
00:10:12.000 --> 00:10:15.120
So, this is going to send for my phone.

s148
00:10:15.279 --> 00:10:18.000
And here we go.

s149
00:10:19.920 --> 00:10:21.920
So, you can use remote to keep working.

s150
00:10:21.920 --> 00:10:23.440
Uh, you know, you leave your laptop on.

s151
00:10:23.440 --> 00:10:26.880
Codex will keep the the laptop open while it's cooking in the background.

s152
00:10:26.880 --> 00:10:37.839
Um, and it means that, you know, you can sort of free yourself from having to be at the computer all the time or having to walk around with your laptop open all the time, which is 100% a thing that I've been doing lately.

s153
00:10:37.839 --> 00:10:40.079
It's almost like a regular occurrence.

s154
00:10:40.079 --> 00:10:46.399
Every weekend, everyone's like leaving their laptop in the room at home and just like walking out touching grass, you know, still checking in.

s155
00:10:46.399 --> 00:10:48.079
Hey Codex, is everything okay?

s156
00:10:48.079 --> 00:10:49.920
Is there anything I can do to help unblock you?

s157
00:10:49.920 --> 00:10:52.320
And in a sense, everyone's become a manager.

s158
00:10:52.320 --> 00:10:52.880
So, let's see.

s159
00:10:52.880 --> 00:10:54.000
Go back to the live translation.

s160
00:10:54.000 --> 00:10:55.760
We'll see what's going on over here.

s161
00:10:55.760 --> 00:10:56.720
All right, it's building.

s162
00:10:56.720 --> 00:10:57.760
It's did some web search.

s163
00:10:57.760 --> 00:10:59.440
It's finding out what's going on.

s164
00:10:59.440 --> 00:11:04.320
So, I think we've sort of covered very briefly uh to another concept called plugins.

s165
00:11:04.320 --> 00:11:05.920
So, just going to the slides.

s166
00:11:05.920 --> 00:11:08.399
So, we go there.

s167
00:11:14.800 --> 00:11:15.440
Here it is.

s168
00:11:15.440 --> 00:11:17.120
Yeah.

s169
00:11:17.120 --> 00:11:30.720
So plugins are a bundle that sort of bundle together skills which are best practices, external prompts, uh maybe practices that are custom to your team, apps which have the configuration

s170
00:11:30.720 --> 00:11:39.600
and provide the connectivity to external services and MCP servers which provide the tools that are necessary and wow already sort of popped it up there.

s171
00:11:39.600 --> 00:11:41.200
We'll just skip that in a bit.

s172
00:11:41.200 --> 00:11:42.880
So that's plugins.

s173
00:11:42.880 --> 00:11:46.000
And if you just take a look at some of the plugins we were using here.

s174
00:11:46.000 --> 00:11:51.279
So if you just go over to the Codex app and you just scroll right up here, there's this button called plugins.

s175
00:11:51.279 --> 00:11:52.640
And you'll see a bunch of plugins.

s176
00:11:52.640 --> 00:12:06.079
So for example, what we were using was the built Mac OS plugin which has a bunch of best practices uh in terms of the skills for how to use AppKit, how to use liquid glass, how to sign and inspect the built application.

s177
00:12:06.079 --> 00:12:09.680
And we were also actually using the OpenAI developers plugin.

s178
00:12:09.680 --> 00:12:11.120
So it's 2026.

s179
00:12:11.120 --> 00:12:18.800
Um we're not going to go to the developer platform and click uh create API key, save it somewhere, pray that you actually saved it somewhere.

s180
00:12:18.800 --> 00:12:28.320
Now with Codex and the plugin, it can just directly create the API key for you as necessary and it really keeps things really smooth as you it doesn't really interrupt you in that flow.

s181
00:12:28.320 --> 00:12:30.480
So those were the sort of two plugins we were using.

s182
00:12:30.480 --> 00:12:43.440
But there are other plugins that may be relevant like say uh Gmail, Outlook, uh maybe use Microsoft Teams, use Slack and that provides all the relevant connectivity you need for your agent to work to bring context

s183
00:12:43.440 --> 00:12:44.959
into the kitchen.

s184
00:12:44.959 --> 00:12:50.079
I think I think I would add to that, you know, the Codex app um comes with the skills to build your own plugins.

s185
00:12:50.079 --> 00:12:59.200
So in giving the app context, a lot of times I will work through a difficult problem or a workflow that you know I'm not sure how I wasn't sure before how to tell Codeex how to do it.

s186
00:12:59.200 --> 00:13:10.160
And when I get to the end of that conversation, I will often say, "Hey, make this a skill or even better make this a plugin so that to next time I need to do this, you can just invoke the plugin and get the job done and we don't have to step through all of this work again."

s187
00:13:10.160 --> 00:13:15.680
So this is what Codex built in say 4 minutes and 2 seconds.

s188
00:13:15.680 --> 00:13:16.639
Let's see if it works.

s189
00:13:16.639 --> 00:13:18.240
So it's a live translation.

s190
00:13:18.240 --> 00:13:21.600
So let's let's maybe do like I I understand there's some German speakers in the room.

s191
00:13:21.600 --> 00:13:26.639
So let's go let's do German and let's just make sure the audio is working as well.

s192
00:13:26.639 --> 00:13:27.760
And let's see what Codex can do.

s193
00:13:27.760 --> 00:13:31.120
So again, I've never used built a Mac OS app.

s194
00:13:31.120 --> 00:13:33.440
I'm a data scientist by training.

s195
00:13:33.440 --> 00:13:38.000
Not very not the best at like sort of working with like web RTC websockets.

s196
00:13:38.000 --> 00:13:43.519
But with the Codex app and the plugins, I'm able to get that sort of best practices through the through that.

s197
00:13:43.519 --> 00:13:44.480
So let's just do that.

s198
00:13:44.480 --> 00:13:49.279
Make sure the input change to the phone, the output is here.

s199
00:13:49.279 --> 00:13:50.240
And all right, fingers crossed.

s200
00:13:50.240 --> 00:13:50.959
This is a live app.

s201
00:13:50.959 --> 00:13:51.600
It's it's built.

s202
00:13:51.600 --> 00:13:53.200
So this is like we don't know how this is going to taste.

s203
00:13:53.200 --> 00:13:56.480
And fingers really fingers crossed.

s204
00:13:57.440 --> 00:13:59.440
Oops.

s205
00:14:10.720 --> 00:14:13.040
Hello there.

s206
00:14:13.360 --> 00:14:14.240
Hello.

s207
00:14:14.240 --> 00:14:14.880
Mic test.

s208
00:14:14.880 --> 00:14:17.360
One, two, three.

s209
00:14:19.120 --> 00:14:22.320
Okay, let's change the audio.

s210
00:14:28.639 --> 00:14:32.079
You know it's a real demo, live demo when you got to do it on stage.

s211
00:14:32.079 --> 00:14:34.399
It's real.

s212
00:14:36.720 --> 00:14:37.279
Mic test.

s213
00:14:37.279 --> 00:14:37.920
One, two, three.

s214
00:14:37.920 --> 00:14:40.240
Are you there?

s215
00:14:43.519 --> 00:14:45.519
Yeah.

s216
00:14:46.240 --> 00:14:48.800
Thanks for the tip.

s217
00:14:49.120 --> 00:14:49.440
Hello.

s218
00:14:49.440 --> 00:14:51.279
Are you dead?

s219
00:14:51.279 --> 00:14:53.279
Hello.

s220
00:14:53.760 --> 00:14:58.079
So, right now I'm at the AI engineer conference

s221
00:15:01.040 --> 00:15:02.639
and I'm like winging this live.

s222
00:15:02.639 --> 00:15:07.680
I have really It's actually not the most set up.

s223
00:15:10.480 --> 00:15:15.199
Yeah, cuz like actually right now the speakers my mic.

s224
00:15:19.199 --> 00:15:20.720
How was that?

s225
00:15:20.720 --> 00:15:22.720
All right.

s226
00:15:31.519 --> 00:15:37.519
So, one thing is that context is not just about best practices or external information.

s227
00:15:37.519 --> 00:15:39.279
There's a lot of context in our heads.

s228
00:15:39.279 --> 00:15:43.920
Whenever you talk to Codex, there's a lot of a lot of things that Codex can learn about you.

s229
00:15:43.920 --> 00:15:45.440
And that's where memory comes in.

s230
00:15:45.440 --> 00:15:46.320
It's really useful.

s231
00:15:46.320 --> 00:15:49.279
It's I think about it as bringing context over time.

s232
00:15:49.279 --> 00:15:56.639
So it is off by default but if you go to Codex app you can turn it on and let's say like for example I use UV and then Codex would learn that over time.

s233
00:15:56.639 --> 00:15:59.519
I prefer using UV for Python package management.

s234
00:15:59.519 --> 00:16:02.000
But memories and context isn't just textural.

s235
00:16:02.000 --> 00:16:04.880
It's also about what we're doing what's on screen and so forth.

s236
00:16:04.880 --> 00:16:08.560
And we have a research preview called Chronicle for pro subscribers.

s237
00:16:08.560 --> 00:16:09.839
Also worth checking out.

s238
00:16:09.839 --> 00:16:22.240
And with that you could literally for example be on the GitLab GitHub looking at your pipeline it failed and you just ask Codex why is this failing and it sees ah you were looking at your GitLab your GitHub pipelines and then it'll sort of figure it out.

s239
00:16:22.240 --> 00:16:30.560
So to sort of set that up it's quite straightforward you can just go to the Codex app you go into settings and then it's called personalization and you can enable it.

s240
00:16:30.560 --> 00:16:45.519
So you can enable memories and also sort of given the um as a safety feature you can also sort of skip uh generating memories in chats that involve tools because sometimes the tools might return information that you might not want persisted over time.

s241
00:16:45.519 --> 00:16:47.839
So that's also worth considering.

s242
00:16:47.839 --> 00:16:54.560
Right now I'm using a business plan so that isn't chronicle but if you're on a pro plan you would see chronicle as option to enable here as well.

s243
00:16:54.560 --> 00:16:56.639
And then there's this thing called custom instructions.

s244
00:16:56.639 --> 00:17:01.279
So here you can sort of en it's like setting the agents.mmockdown in the home directory.

s245
00:17:01.279 --> 00:17:03.120
It applies to all conversations.

s246
00:17:03.120 --> 00:17:06.160
So for example, I said here always reply like a pirate.

s247
00:17:06.160 --> 00:17:09.600
Then in the subsequent commentary, Codex would always reply like a pirate.

s248
00:17:09.600 --> 00:17:11.039
A trivial example.

s249
00:17:11.039 --> 00:17:12.480
So that's context.

s250
00:17:12.480 --> 00:17:20.880
And to summarize, I'll let Charlie uh sort of summarize our first two dishes of the day.

s251
00:17:21.919 --> 00:17:26.640
So to recap, uh part one, right, we want to give codecs context.

s252
00:17:26.640 --> 00:17:30.240
Um you need to know which ingredients you're actually using for your recipe.

s253
00:17:30.240 --> 00:17:34.000
Um that includes bringing in external content via plugins, right?

s254
00:17:34.000 --> 00:17:37.520
Me personally, I am a pretty heavy user of Slack, Gmail, linear.

s255
00:17:37.520 --> 00:17:47.200
Um and then it makes it really easy to just say like, hey, go look at my, you know, unread Slack messages for today and create a daily agenda for me to to think about when I get into work.

s256
00:17:47.200 --> 00:17:52.960
Um, you want to be able to like keep the flow when you're adding your own individual context for the tasks that you're working on.

s257
00:17:52.960 --> 00:17:54.480
Uh, I love dictation.

s258
00:17:54.480 --> 00:17:58.880
I think just being able to, you know, as we've been demoing up here on stage, say, "Here's the context.

s259
00:17:58.880 --> 00:17:59.919
Um, go do it."

s260
00:17:59.919 --> 00:18:06.880
I think dictation to me is a really underutilized feature because we speak so much faster than we can type, right?

s261
00:18:06.880 --> 00:18:14.240
And these days, you know, we're we're beyond the the era where you have to make sure every single word is correct when talking to a large language model.

s262
00:18:14.240 --> 00:18:20.880
you can just give it reams and reams of your own rambling uh in transcription form and it'll generally figure out the right thing to do, right?

s263
00:18:20.880 --> 00:18:26.320
And you're able to actually talk through the idea and and get to a better space by the time you send it to the model.

s264
00:18:26.320 --> 00:18:30.559
Uh likewise, appshots I think are are incredible and also very heavily underused.

s265
00:18:30.559 --> 00:18:36.880
Um the ability to just like from any app I think I I don't copy and paste, you know, anything from Slack anymore.

s266
00:18:36.880 --> 00:18:44.960
I just appshot my my Slack window or I just appshot my browser and send it directly into codeex um and tell it go figure it out, right?

s267
00:18:44.960 --> 00:18:49.440
And you know 90 plus% of the time it can figure out the right thing to do.

s268
00:18:49.440 --> 00:18:51.679
Last but not least, we've got personalization.

s269
00:18:51.679 --> 00:18:55.120
Um I think you know agents MD which hopefully folks know and love.

s270
00:18:55.120 --> 00:18:58.880
Uh and then memories as well uh in the Codex app via Chronicle.

s271
00:18:58.880 --> 00:19:11.039
Um, worth noting, I think memories, uh, and Chronicle will use up a little bit more of your token budget, but, uh, it can be a really magical experience to have the app just kind of understand what it should be doing based on conversations you've had it in the past.

s272
00:19:11.039 --> 00:19:15.280
It really levels it up and makes it starts to feel like a true collaborator.

s273
00:19:15.280 --> 00:19:20.240
Um, there's a ton more stuff, I think, both in like context and personalization in the Codex app.

s274
00:19:20.240 --> 00:19:21.679
Strongly recommend you go check it out.

s275
00:19:21.679 --> 00:19:32.320
Um, pets is like a universally beloved uh, personalization feature which we're not really going to showcase here today, but um, is would would yeah, definitely go make your pet.

s276
00:19:32.640 --> 00:19:34.080
Cool.

s277
00:19:34.080 --> 00:19:41.280
And once you have all the ingredients, it's you you're here to build and to really help you build and you want to distribute it.

s278
00:19:41.280 --> 00:19:42.559
Sites is a great thing.

s279
00:19:42.559 --> 00:19:45.200
At OpenAI, we've been using sites extensively.

s280
00:19:45.200 --> 00:19:57.280
Uh I for example have been using sites to summarize like an event like an event after like like after an event like today's I would ask hey Codex can you summarize what happened today create a site then we can share it with the team the rest of the organization

s281
00:19:57.280 --> 00:20:05.679
I create a site to sort of uh we we were planning offsite and then Cory Cory on the team created a site to help us plan choose different locations

s282
00:20:05.679 --> 00:20:17.039
understand the trade-offs so you can create artifacts to help you make decisions specific for code you can even you can also it helps with code review so let's just give a quick example with a live translate what we had just built.

s283
00:20:17.039 --> 00:20:24.320
You just do slashcode review and then you can review against uncommitted changes and then voila, you're firing off a code review task.

s284
00:20:24.320 --> 00:20:28.400
It's a bit like having that uh you know sue chef like double check everything.

s285
00:20:28.400 --> 00:20:32.880
You know, you've seen the movies right before the chef like sends out a dish, they always do a quick taste test.

s286
00:20:32.880 --> 00:20:34.640
I think that's a bit like that.

s287
00:20:34.640 --> 00:20:36.400
Image gen where you can create images.

s288
00:20:36.400 --> 00:20:41.200
And let's see what the example Charlie kicked off created.

s289
00:20:41.200 --> 00:20:41.760
Oh, okay.

s290
00:20:41.760 --> 00:20:44.080
It used SVG but not too bad.

s291
00:20:44.080 --> 00:20:44.960
Not too bad.

s292
00:20:44.960 --> 00:20:49.840
So then what you could also do is use the image gen skill and ask codeex to sort of cook it.

s293
00:20:49.840 --> 00:20:52.080
So we'll come back to that in a bit but let's try that.

s294
00:20:52.080 --> 00:20:57.520
Let's use this and spreadsheets document and slides.

s295
00:20:57.520 --> 00:21:01.840
We won't be talking much about it today but you can sort of build these artifacts as well.

s296
00:21:01.840 --> 00:21:10.640
And in the subsequent talks in the rest of the days and the AI engineers uh Jason for example will be sharing more about how he's sort of building with codecs for sort of these uh

s297
00:21:10.640 --> 00:21:12.320
deliverables.

s298
00:21:12.320 --> 00:21:16.720
So those are the first two steps, context and building.

s299
00:21:16.720 --> 00:21:18.720
But it doesn't just stop there.

s300
00:21:18.720 --> 00:21:22.240
So if you're sort of new to Codex, it's your first time still using coding agents.

s301
00:21:22.240 --> 00:21:23.200
I think that's really helpful.

s302
00:21:23.200 --> 00:21:25.600
But I'm I'm pretty sure this AI engineers welfare.

s303
00:21:25.600 --> 00:21:27.919
We're in a room full of power users.

s304
00:21:27.919 --> 00:21:31.760
So for the next four steps, we hope we're going to share something that's practically useful for you.

s305
00:21:31.760 --> 00:21:33.679
And the first one is computer use.

s306
00:21:33.679 --> 00:21:38.960
So Codex can sort of take actions like as you see right now in the browser, Codex is debugging something.

s307
00:21:38.960 --> 00:21:40.080
I won't tell you what's happening.

s308
00:21:40.080 --> 00:21:45.120
I will we'll reveal the surprise at the end but sort of working in the background thinking about something.

s309
00:21:45.120 --> 00:21:46.799
So let's give an example.

s310
00:21:46.799 --> 00:21:52.080
So I I used to work in a large organization before open AAI and not everything had an API.

s311
00:21:52.080 --> 00:21:54.960
You had a lot of enterprise software that had like they were legacy.

s312
00:21:54.960 --> 00:21:56.080
There were different dashboards.

s313
00:21:56.080 --> 00:21:57.280
You wanted to download data.

s314
00:21:57.280 --> 00:22:03.679
So let's say for example we have this dashboard that somehow pulls data from the OpenAI Python GitHub repo.

s315
00:22:03.679 --> 00:22:05.440
There's this nice date range picker.

s316
00:22:05.440 --> 00:22:17.440
But imagine I had to get data for every month from the start of the year the year to today I'll press Monday to Sunday, Monday to Sunday, Monday to Sunday, Monday to Sunday.

s317
00:22:17.440 --> 00:22:18.960
It's a lot of buttons you have to press.

s318
00:22:18.960 --> 00:22:20.720
Then there are different data sets you could choose.

s319
00:22:20.720 --> 00:22:22.640
So what if Codex could help me with that?

s320
00:22:22.640 --> 00:22:23.840
And the answer is yes.

s321
00:22:23.840 --> 00:22:28.480
So again, I'm going to take a shot my two thumbs and then just take it.

s322
00:22:28.480 --> 00:22:31.919
Okay, let's just make sure we're in a new conversation.

s323
00:22:32.320 --> 00:22:34.480
I'll just ask,

s324
00:22:34.480 --> 00:22:46.159
hey, um, can you help me download the, uh, number of commits for the last seven days as a CSV and the number of pull requests, the pull request data as a JSON

s325
00:22:46.159 --> 00:22:48.640
from the start of the month to today.

s326
00:22:48.640 --> 00:22:52.240
Uh, yeah, use like computer use and go for it.

s327
00:22:52.240 --> 00:22:54.400
So again, it's like two different dates.

s328
00:22:54.400 --> 00:23:10.480
I'm asking it for the like Monday to Sunday or the last seven dates days but also from like the 1st of June to today which is the 29th of June and you would see okay Codex has correctly invoked the computer use skill and very soon it's going to like start looking at the application

s329
00:23:10.480 --> 00:23:25.120
um you see here looked at application and very soon in the chain of thought summaries you would see more of it and very very soon again my hands are not on the keyboard and you can see this is my cursor I'm just going to like park it over here right next to enterprise is uh you would see

s330
00:23:25.120 --> 00:23:26.400
another cursor pop up.

s331
00:23:26.400 --> 00:23:27.360
There it goes.

s332
00:23:27.360 --> 00:23:28.400
And yeah, there it is.

s333
00:23:28.400 --> 00:23:29.120
It's moving.

s334
00:23:29.120 --> 00:23:30.240
It's downloading it again.

s335
00:23:30.240 --> 00:23:30.960
My hands are here.

s336
00:23:30.960 --> 00:23:31.840
Charlie's hands are here.

s337
00:23:31.840 --> 00:23:32.799
My phone is like unlock.

s338
00:23:32.799 --> 00:23:33.360
It's locked.

s339
00:23:33.360 --> 00:23:36.080
And Codex is downloading all this data by itself.

s340
00:23:36.080 --> 00:23:36.960
It's a bit like a mag.

s341
00:23:36.960 --> 00:23:39.120
It's like pretty magical the first time you see it.

s342
00:23:39.120 --> 00:23:41.600
And that's we're going to let Codex work in the background.

s343
00:23:41.600 --> 00:23:43.760
And that's the beauty of computer use of Codeex.

s344
00:23:43.760 --> 00:23:46.559
You don't have to wrestle with the agent for control of your screen.

s345
00:23:46.559 --> 00:23:48.480
You can let it work in the background.

s346
00:23:48.480 --> 00:23:53.280
I I think it's also worth pointing out that on Mac OS, you know, it doesn't uh steal your cursor, right?

s347
00:23:53.280 --> 00:23:54.960
Like Gabe still opening the app.

s348
00:23:54.960 --> 00:23:56.799
He can still use a different tab.

s349
00:23:56.799 --> 00:23:58.480
I can go scroll on Twitter and something.

s350
00:23:58.480 --> 00:23:58.720
Yeah.

s351
00:23:58.720 --> 00:23:58.880
Yeah.

s352
00:23:58.880 --> 00:24:04.559
And so you can still drive your computer while things are just happening, you know, in the apps that Codex needs access to.

s353
00:24:04.559 --> 00:24:06.000
So we're going to let that work.

s354
00:24:06.000 --> 00:24:09.520
But sometimes not everything is like a native application.

s355
00:24:09.520 --> 00:24:21.279
And there's some sometimes you're like maybe using Google Drive, you're creating a feedback form like for today's workshop, you know, I mean feedback forms are I personally find it very cumbersome to create a feedback form.

s356
00:24:21.279 --> 00:24:32.559
you need to like uh create a question, you need to like fill in the different options and I always forget to mark it as mandatory even though I want it to be mandatory and it's you press so many buttons with creating these feedback forms.

s357
00:24:32.559 --> 00:24:36.320
So I already have the questions drafted here and let's see if Codex can help me with that.

s358
00:24:36.320 --> 00:24:38.720
So I just create a new thread.

s359
00:24:38.720 --> 00:24:45.520
So again, appshot, it's quite addictive, I must say, the user interface.

s360
00:24:45.520 --> 00:24:52.320
And we just say, hey, um, can you create these uh this feedback form for me using the questions in the Google docs?

s361
00:24:52.320 --> 00:24:57.440
Um, remember to make mark each question as mandatory.

s362
00:24:57.760 --> 00:25:08.080
And just to give codeex a bit of a I mean just to make things for exposition purposes, what we're using here is the Chrome extension, which is slightly similar to computer use.

s363
00:25:08.080 --> 00:25:13.600
So that's this is computer use, but here it's directly controlling a specific application which is Chrome.

s364
00:25:13.600 --> 00:25:17.919
So we're going to fire that off and we're going to see very soon another cursor come up.

s365
00:25:17.919 --> 00:25:23.760
So I'm going to put this two side by side over here and you would see codeex thinking about the task.

s366
00:25:23.760 --> 00:25:26.880
It realizes, hey, I have the question form questions already.

s367
00:25:26.880 --> 00:25:30.000
Then it still needs to drive the live tab to actually create it.

s368
00:25:30.000 --> 00:25:33.279
And again, like what we saw earlier, it's going to sort of start pressing buttons.

s369
00:25:33.279 --> 00:25:39.679
So let's just wait for a bit to see the first button get pressed and then we'll swap back to the slides in a bit.

s370
00:25:39.679 --> 00:25:40.960
So ah there it is.

s371
00:25:40.960 --> 00:25:41.600
You see it again.

s372
00:25:41.600 --> 00:25:43.679
My cursor is here and then you see the blue ones here.

s373
00:25:43.679 --> 00:25:45.520
So you can continue to go do different tasks.

s374
00:25:45.520 --> 00:25:49.600
Let's say like maybe I'm interested to learn something about the codeex repo.

s375
00:25:49.600 --> 00:25:51.039
We were talking about memories.

s376
00:25:51.039 --> 00:26:01.039
So I can just like ask hey um can I configure the model that's used for memories in codecs and what's the config uh term I need to change?

s377
00:26:01.039 --> 00:26:08.400
So you see while you're continuing to do other tasks, codeex in the background is sort of doing the button pressing for you and we'll fire that off.

s378
00:26:08.400 --> 00:26:22.559
So that's computer use and there are like different flavors of it like you know how maybe you know your favorite dishes come in different flavors and I'll let Charlie just really give a nice summary of what where the different flavors are.

s379
00:26:24.320 --> 00:26:29.840
Yeah, at this point there's there's like mentioned a few different ways that Codex can start controlling the applications that you're using.

s380
00:26:29.840 --> 00:26:33.520
Um, and it's kind of important to understand, you know, when you should reach for each one.

s381
00:26:33.520 --> 00:26:41.279
The three that we currently have today are computer use, which you saw, uh, the Chrome extension, which you also saw, uh, and the inapp browser, which I think we did not demo.

s382
00:26:41.279 --> 00:26:53.120
Um, the inapp browser, why don't I start there, is a feature where in the Codex app, you know, it has it the ability to open, uh, a browser tab on the side just like you would kind of a normal um, you know, desktop coding editor these days.

s383
00:26:53.120 --> 00:27:02.559
Uh but in addition to just opening and rendering web pages, uh Codex has really deep hooks into that browser engine uh deeper than it has at the Chrome extension.

s384
00:27:02.559 --> 00:27:10.080
Um and so as a result, uh I think the inapp browser is really great for when you're building local web applications and you want to do a lot of deep testing

s385
00:27:10.080 --> 00:27:18.240
um on the interaction design on how it's rendering because Codex can see much further into the uh into the the layout at that point.

s386
00:27:18.240 --> 00:27:22.080
But going back to the two that we talked about today, um we have computer use, right?

s387
00:27:22.080 --> 00:27:26.559
Which is great for um I mean anything on your on your laptop or your computer.

s388
00:27:26.559 --> 00:27:32.799
Um but it really shines when you have applications that otherwise don't have a programmatic interface to them, right?

s389
00:27:32.799 --> 00:27:38.960
Um it's great if it's a web app and you can reverse engineer the API calls, but you know there's a lot of desktop software out there.

s390
00:27:38.960 --> 00:27:44.240
There's a lot of legacy software out there which doesn't easily expose that kind of interface to an agent.

s391
00:27:44.240 --> 00:27:57.039
And so if you just need C codeex to drive the app in the same way that you a human being would computer use is really incredible and kind of unlike anything else that that I've tried it it to this day it's still just so magical to watch those little cursors fly around.

s392
00:27:57.039 --> 00:28:06.720
Um then there's the Chrome extension uh which is your sign-in browser and I think that is the most useful for when you need to hand off um state or authorization

s393
00:28:06.720 --> 00:28:07.600
to the agent.

s394
00:28:07.600 --> 00:28:18.880
So, I think we've all, you know, probably run into the issue where we want to build an agent to go and, you know, use the worldwide web the exact same way that we do, and the first thing that it immediately runs into is like, "Oops, I can't log into your Gmail account."

s395
00:28:18.880 --> 00:28:24.799
Um, and worse than that, like Google has detected I'm on a headless Chromium, and it's just sending me this infinite capture loop, right?

s396
00:28:24.799 --> 00:28:34.240
Uh, and so the Chrome extension allows codeex with your permission to go and read from certain websites as you uh and borrow your credentials so that you don't have to worry about the authentication

s397
00:28:34.240 --> 00:28:36.960
step as you're building.

s398
00:28:38.159 --> 00:28:38.799
Cool.

s399
00:28:38.799 --> 00:28:45.919
Um, so that's Codex take action and then next we're going to move on to collaborating on complex tasks.

s400
00:28:45.919 --> 00:28:47.840
So this one's a really fun one.

s401
00:28:47.840 --> 00:29:03.120
So I think people have really talked about how Codex is really good at like complex refactors, longunning tasks, and in the sort of next 15 to 20 minutes, I want to share some tips on how you can sort of work best with codecs on these complex tasks.

s402
00:29:03.120 --> 00:29:10.480
So, it's going to be a bit hard to like kick off a 20our longrunning task and we're all just going to sit here, enjoy lunch, dinner, and breakfast.

s403
00:29:10.480 --> 00:29:17.840
So, I started off some tasks the night before, and they're like four different tasks, each covering a slightly different flavor.

s404
00:29:17.840 --> 00:29:20.640
So, this one, it's still running for like 15 hours.

s405
00:29:20.640 --> 00:29:24.720
It's running on my remote uh uh instance.

s406
00:29:24.720 --> 00:29:27.279
You can see at the bottom here, I'm running a goal.

s407
00:29:27.279 --> 00:29:31.120
It's been running for 15 hours, 30 minutes, and 55 seconds.

s408
00:29:31.120 --> 00:29:33.919
So, I got to scroll, scroll, scroll, and here I am right at the top.

s409
00:29:33.919 --> 00:29:36.799
So, it's a bit of like a green field project.

s410
00:29:36.799 --> 00:29:39.120
I want to build a live Q&amp;A site.

s411
00:29:39.120 --> 00:29:42.159
Uh, it's going to be in a room for like 400 people.

s412
00:29:42.159 --> 00:29:43.520
There's like a admin view.

s413
00:29:43.520 --> 00:29:45.120
There's a participant view.

s414
00:29:45.120 --> 00:29:47.440
There is a onstage view.

s415
00:29:47.440 --> 00:29:51.679
And then like I describe, oh, maybe the admin can do like AI generated tags.

s416
00:29:51.679 --> 00:29:54.399
There's a moderation features on the stage view.

s417
00:29:54.399 --> 00:29:58.960
There's a 16x9 uh run every application through our moderation API.

s418
00:29:58.960 --> 00:30:02.720
make the experience feel like something OpenAI would launch so on and so forth.

s419
00:30:02.720 --> 00:30:07.279
Uh here I'm being particularly prosaic in the prompt for exposition purposes.

s420
00:30:07.279 --> 00:30:10.240
You could just ramble to codeex as well and it'll get it'll get the job done.

s421
00:30:10.240 --> 00:30:14.000
But here just like exposition purposes, I know people are excited to take photos.

s422
00:30:14.000 --> 00:30:16.240
This is like an example of how you're being clear.

s423
00:30:16.240 --> 00:30:22.399
I think one misconception these days is like people always ask does prompt engineering matter?

s424
00:30:22.399 --> 00:30:26.159
In so far as the instructions are clear, it still matters.

s425
00:30:26.159 --> 00:30:27.679
Like I can't read your mind.

s426
00:30:27.679 --> 00:30:28.640
Codex can't read your mind.

s427
00:30:28.640 --> 00:30:31.679
So you just need to tell Codex very clearly what you want.

s428
00:30:31.679 --> 00:30:35.600
But it's prompt engineering where you see as oh I got to use this magic phrase.

s429
00:30:35.600 --> 00:30:36.960
I don't think we're in that state anymore.

s430
00:30:36.960 --> 00:30:40.799
Reasoning models are really intelligent and they sort of the real thing is about context.

s431
00:30:40.799 --> 00:30:43.919
So actually goes back to our first step giving context clearly.

s432
00:30:43.919 --> 00:30:45.919
So how I wrote this prompt was I was just talking to Codex.

s433
00:30:45.919 --> 00:30:48.559
I was I was yapping it on yapping to it on the phone.

s434
00:30:48.559 --> 00:30:52.399
I just hey Codex can like polish this prompt so I can show it on stage.

s435
00:30:52.399 --> 00:30:56.159
So yeah it's building this thing and I'm using like a few different things like convex.

s436
00:30:56.159 --> 00:31:06.080
There's a a plugin for convex that helps to do uh real-time interactions going to deploy in a cell and of course the open AAI uh plugin and all right the feedback form is done.

s437
00:31:06.080 --> 00:31:13.279
So that very nicely came up and yeah that's one example so it's like a green field project but you know not everything is like you're going to start from scratch.

s438
00:31:13.279 --> 00:31:19.360
So here's another example that ran for uh 5 hours and 57 seconds.

s439
00:31:19.360 --> 00:31:26.799
So here's an open source repo for a form builder and I wondered, hey, could I like repurpose this and build it internally in sites?

s440
00:31:26.799 --> 00:31:28.080
So maybe you don't want to buy SAS.

s441
00:31:28.080 --> 00:31:29.600
It's a small team of like seven of you.

s442
00:31:29.600 --> 00:31:31.600
You want to just have a internal form builder.

s443
00:31:31.600 --> 00:31:40.559
You want to use the chat GPT authentication that comes with these sites to sort of ensure that only people within your team use it and then you got to let Codex sort of build it.

s444
00:31:40.559 --> 00:31:43.440
And I I will show you an example what that looks like later.

s445
00:31:43.440 --> 00:31:46.000
Then the last example of a long-running task that was running.

s446
00:31:46.000 --> 00:31:51.679
This one ran for uh let's see I think 7 hours 1 minute and 40 seconds.

s447
00:31:51.679 --> 00:31:56.000
So it's like some uh gradu uh research papers from my graduate school days.

s448
00:31:56.000 --> 00:32:10.640
Uh it was like written in like Julia then I think like an R and I was like hey can I like write a Python package with a Russ backend and then I told Codex again I gave some constraints I don't want to use dynamic programming you got to use like some heruristics and then codex read the papers

s449
00:32:10.640 --> 00:32:11.519
and did it.

s450
00:32:11.519 --> 00:32:17.600
So those are the three longrunning tasks and I want to like give some examples and some of the best practices that come with it.

s451
00:32:17.600 --> 00:32:25.519
So in one of these for example what I told Codex was this over here you can define a goal.

s452
00:32:25.519 --> 00:32:35.279
So there is actually a skill in the openi skills repo called define goal and I told codex hey don't create one goal create a series of goals and put it in a goals.mmuckdown

s453
00:32:35.279 --> 00:32:35.600
file.

s454
00:32:35.600 --> 00:32:43.919
Again, it's just very arbitrary, but it's just a collection of files that you sort of see and you can can inspect it and then create a dashboard, progress dashboard.html,

s455
00:32:43.919 --> 00:32:45.840
so you can go back to it and see what's going on.

s456
00:32:45.840 --> 00:32:48.320
Because in this seven hours, you don't really know what's going on.

s457
00:32:48.320 --> 00:32:51.120
You want to have some some way to like see what's happening.

s458
00:32:51.120 --> 00:32:56.960
And rather than having this one thread do all the work, it's actually spawning new threads.

s459
00:32:56.960 --> 00:33:04.399
So, if we go to the see, I've pinned the project, but if we go to the the thread, but if we go to the project, you'll see it's it's spun many other threads.

s460
00:33:04.399 --> 00:33:10.559
So for example at different milestones it ran code review and then it also ran a goal audit.

s461
00:33:10.559 --> 00:33:17.120
So it's seeing like hey are you on track there's this initial thing you talked about like goals mount down are you deviating from it?

s462
00:33:17.120 --> 00:33:19.200
If it is then it will nudge back the main thread.

s463
00:33:19.200 --> 00:33:23.200
Hey remember this or do we need to rethink the plan and so forth.

s464
00:33:23.200 --> 00:33:24.640
So it ran at different times.

s465
00:33:24.640 --> 00:33:28.320
That's why there's like different milestones M2 M3A and so forth.

s466
00:33:28.320 --> 00:33:32.000
Uh there's another example here with like the live Q&amp;A site.

s467
00:33:32.000 --> 00:33:33.919
Uh this is still running.

s468
00:33:33.919 --> 00:33:35.519
So this is running on a remote session.

s469
00:33:35.519 --> 00:33:38.720
So it's like my gaps remote and I want to like do testing.

s470
00:33:38.720 --> 00:33:45.360
So what I told Codex is that hey you can spawn a local thread on my machine and use the Chrome extension to then inspect it.

s471
00:33:45.360 --> 00:33:51.760
So you would see for example this is a thread that came and you would see it says here send by codeex from another thread.

s472
00:33:51.760 --> 00:33:58.880
So the remote thread can communicate with the local thread and says hey you got to do click ops you got to do browser you got to do QA testing.

s473
00:33:58.880 --> 00:34:03.120
Then the local thread did all the QA testing and it send the results back to the remote thread.

s474
00:34:03.120 --> 00:34:07.760
So that's another thing that's uh worth uh thinking about for these longunning tasks.

s475
00:34:07.760 --> 00:34:12.320
And let's see what else we can call out here in the long running tasks.

s476
00:34:12.320 --> 00:34:13.520
Ah communication.

s477
00:34:13.520 --> 00:34:20.720
So one other way of thinking about this is that maybe you could just ask codeex to send you Slack messages.

s478
00:34:20.720 --> 00:34:22.800
So here I have a few demos.

s479
00:34:22.800 --> 00:34:35.679
So, I was building a live Q&amp;A site and without having to set up additional infrastructure, you can just use the Slack plugin and just say, "Hey, um, reply to this thread and give me like a summary of what's done, what's not yet done, and are there any blockers?"

s480
00:34:35.679 --> 00:34:36.879
Because sometimes there are blockers.

s481
00:34:36.879 --> 00:34:41.280
Maybe there's like a authentication issue, there's an API key that you need to give to Codeex and so forth.

s482
00:34:41.280 --> 00:34:42.879
So, I asked Codex to speak to me.

s483
00:34:42.879 --> 00:34:50.399
And over the weekend, like on Sunday while I was out with my friends, I was just regularly checking, is there anything I can help unblock Codex for these different tasks?

s484
00:34:50.399 --> 00:34:55.599
Um let's just give some screenshots of what that process looked like.

s485
00:34:55.599 --> 00:34:58.399
So just take a look at it.

s486
00:34:58.400 --> 00:35:01.920
So another nice feature with codeex is that while you have the main thread.

s487
00:35:01.920 --> 00:35:09.520
So right here in you see in the screenshot on the right left is the main thread on the right you can start a site thread.

s488
00:35:09.520 --> 00:35:13.839
So you literally see here and say let's focus on signing in with chat GPD first.

s489
00:35:13.839 --> 00:35:14.880
I want to sleep soon.

s490
00:35:14.880 --> 00:35:27.839
I assume you need me to do that because I know like okay I think Codex needs probably some help with that because I'm running a building a new instance on the app server a new user interface so it needs to get some credentials so it needs to know where my credentials are and it says okay actually the

s491
00:35:27.839 --> 00:35:37.280
credentials are already here so okay update the main thread so you can use the site thread to update the main thread so let's do an example of that live as well so here

s492
00:35:37.280 --> 00:35:44.480
this one is still running you could just do slash site and it creates a site thread and you can just ask codeex like what's going on.

s493
00:35:44.480 --> 00:35:57.359
So maybe we just ask it takes a while this I think due to the network but let's say uh hey um what's going on can you list like uh what you've done so far maybe in the last hour what do you plan to do next is there anything I can do to unblock you

s494
00:35:57.359 --> 00:36:09.599
and then from this when you get the agent tells what's going to do next you can also get a sense of like what maybe it's like on the wrong wrong track then you can sort of tell codex hey maybe you don't want to do that we should do this instead then the site thread can communicate with the

s495
00:36:09.599 --> 00:36:12.640
main thread so that's a pretty nice uh feature

s496
00:36:12.640 --> 00:36:13.920
it's worth noting with side threads.

s497
00:36:13.920 --> 00:36:14.640
Those are ephemeral.

s498
00:36:14.640 --> 00:36:22.960
So if there is any context that you want to keep longterm in your project, make sure you're communicating that back to the main thread because they will get stale after a while.

s499
00:36:23.040 --> 00:36:29.440
Uh here's another example where what we were doing earlier was a site thread talking to the main thread.

s500
00:36:29.440 --> 00:36:33.359
This example is where two different main threads are talking to each other.

s501
00:36:33.359 --> 00:36:43.839
Specifically on the right uh the left side um we have uh codecs saying test spawning a local thread in the local form builder project.

s502
00:36:43.839 --> 00:36:50.800
If it succeeds make that the default location for all local future local threats especially for Chrome or end to end testing.

s503
00:36:50.800 --> 00:36:57.920
So again on the what's happening here is that it's running on the remote service but so it doesn't have access to my chrome chrome browser.

s504
00:36:57.920 --> 00:37:06.320
Then it send a message to the local host and then it can then from there uh see uh chrome appears to be installed and then from there it can do the testing with chrome.

s505
00:37:06.320 --> 00:37:12.000
So there you can get the remote session to work with the local session and this was the test that it did.

s506
00:37:12.000 --> 00:37:23.599
So while it's working in the cloud locally on my laptop like me at 3:00 a.m. while sleeping Codex opened Chrome it went through the form building flow and it created a form end to end.

s507
00:37:23.680 --> 00:37:29.839
Sub aents are also a particularly helpful thing in these longunning tasks because you want to make sure context is well separated.

s508
00:37:29.839 --> 00:37:34.720
Uh agents sort of focus on different tasks and here's one nice example.

s509
00:37:34.720 --> 00:37:41.680
So it was building a application and I just like took a peek at it and I just not necessarily best practice.

s510
00:37:41.680 --> 00:37:45.119
I just sent it to the main thread saying not very good.

s511
00:37:45.119 --> 00:37:45.440
Yeah.

s512
00:37:45.440 --> 00:37:50.960
And then Codex said yeah agreed that's technically cleaner but it's still a bad chat interface.

s513
00:37:50.960 --> 00:37:54.320
And you notice here what it did was that it messaged the sub agent.

s514
00:37:54.320 --> 00:38:00.480
So the sub agent was already previously spawned but then the main agent messaged the sub aent and you would see this the message over here.

s515
00:38:00.480 --> 00:38:02.480
So for example it says this.

s516
00:38:02.480 --> 00:38:07.680
So it sent it and says update your verification task with this new user screenshot and directive.

s517
00:38:07.680 --> 00:38:11.359
So there you have the sort of inter agent communication.

s518
00:38:11.839 --> 00:38:14.079
Uh so this was that what it did thereafter.

s519
00:38:14.079 --> 00:38:18.400
So it did its own tests because I sent a screenshot with the messages flushed to the bottom.

s520
00:38:18.400 --> 00:38:19.200
I didn't want that.

s521
00:38:19.200 --> 00:38:25.520
So then Codex did its own test and it says uh send retroex visible okay in one short sentence and it sent it.

s522
00:38:25.520 --> 00:38:31.200
So CEX itself did its own QA testing to sort of verify my feedback.

s523
00:38:31.200 --> 00:38:42.640
Um and this is an example for the live QA where the main thread was spawning different other site threads for example the audit of the goal the code review but also doing that communication back to Slack.

s524
00:38:42.640 --> 00:38:48.880
So this thread over here where it says provide slack thread URL that's over here where I was providing all these updates.

s525
00:38:48.880 --> 00:38:52.960
So a separate sort of session was managing that.

s526
00:38:52.960 --> 00:38:57.839
We earlier talked about goal and here is a dashboard that the codex created for the goal.

s527
00:38:57.839 --> 00:39:04.400
So you would see it has all these different milestones, what's been completed, what's active, what's yet to be started.

s528
00:39:04.400 --> 00:39:10.240
And then the dashboard also gave me a sense of like what the different threads are doing like oh this thread is the main orchestrator.

s529
00:39:10.240 --> 00:39:11.760
There's a communication thread.

s530
00:39:11.760 --> 00:39:14.000
There's one thread doing like visual UX.

s531
00:39:14.000 --> 00:39:18.720
There's one doing like the managing the app server protocol and so forth.

s532
00:39:18.720 --> 00:39:28.560
And even like creates it into like more conceptual work streams like one workstream on off one workstream on testing one workstream on UI polish.

s533
00:39:28.560 --> 00:39:31.280
But throughout the night sometimes codeex does get blocked.

s534
00:39:31.280 --> 00:39:42.079
So then with the example of convex in versel, it said oh um I I marked it as blocked because the critical path it didn't have the authentication didn't have like the identity to access these external services

s535
00:39:42.079 --> 00:39:44.400
but still I did everything I could up till that point.

s536
00:39:44.400 --> 00:39:57.119
So it said it was blocked so it will come up in the UI and then I just selected it and I say add to site chat and it says can you please explain what's going on because I just woke up like I I didn't have context of what's going on but Codex is telling me he was blocked.

s537
00:39:57.119 --> 00:40:01.040
So I'm trying to get Codex to to catch me up to speed.

s538
00:40:01.040 --> 00:40:05.200
So here it's like saying explain step by step what I can do to unblock you here.

s539
00:40:05.200 --> 00:40:12.160
So it gave me different options how I can give the code VLE details the convex details and then I sort of did it.

s540
00:40:12.160 --> 00:40:16.000
So here it I sort of I selected it and say do that.

s541
00:40:16.000 --> 00:40:27.680
So then the site thread told the main thread to sort of create the CLI login flow and I'll just click it over here and I'll be able to then authenticate and give vers uh codeex which again is running on a remote instance

s542
00:40:27.680 --> 00:40:31.680
access and the right permissions to manage my versel project.

s543
00:40:31.680 --> 00:40:34.240
Then in the case of convex there's a deployment key.

s544
00:40:34.240 --> 00:40:36.160
So I was like hey I'm not going to paste that into the chat.

s545
00:40:36.160 --> 00:40:39.280
So I asked Codex give me a secure way to do it.

s546
00:40:39.280 --> 00:40:45.440
Then it gave me this like bash code that I could just paste it in and I could then set the key into the remote environment.

s547
00:40:45.440 --> 00:40:52.800
So that was like a way where you could collaborate with Codex in a remote instance, do different testing, managing permissions and so forth.

s548
00:40:52.800 --> 00:40:56.640
Um, so let's see what they actually built from this entire process.

s549
00:40:56.640 --> 00:40:58.960
So let's look at a site builder site one.

s550
00:40:58.960 --> 00:41:00.800
So this is it, the internal form builder.

s551
00:41:00.800 --> 00:41:08.800
So to recap again, there's an existing repo where of a form builder, but I want to like customize it for like maybe my internal team.

s552
00:41:08.800 --> 00:41:10.319
We're like maybe five of us.

s553
00:41:10.319 --> 00:41:12.079
I don't want to spend money on SAS.

s554
00:41:12.079 --> 00:41:14.000
So we can build our own form builder.

s555
00:41:14.000 --> 00:41:15.359
So it creates a new draft.

s556
00:41:15.359 --> 00:41:19.760
You could call it like AI engineers uh workshop.

s557
00:41:19.760 --> 00:41:20.720
Hello.

s558
00:41:20.720 --> 00:41:27.680
And then just say like yeah I should I should ask the Chrome extension to do this but you know for exposition purposes.

s559
00:41:27.680 --> 00:41:28.000
Okay.

s560
00:41:28.000 --> 00:41:32.400
And you can like preview the form and then you can sort of share it thereafter.

s561
00:41:32.400 --> 00:41:35.200
You can like copy publish the link.

s562
00:41:35.200 --> 00:41:36.560
Then there'll be a sharable link.

s563
00:41:36.560 --> 00:41:39.760
You open the link and then someone else in your team can fill it in.

s564
00:41:39.760 --> 00:41:47.040
And again because this is hosted on sites only people that have access to your chat GPT workspace can then access this form.

s565
00:41:47.040 --> 00:41:47.920
So that's really nice.

s566
00:41:47.920 --> 00:41:48.240
Yeah.

s567
00:41:48.240 --> 00:41:49.839
Then you can see all the responses and so forth.

s568
00:41:49.839 --> 00:41:51.680
So this was again what we did.

s569
00:41:51.680 --> 00:41:56.880
So to summarize on the complex task, we had three different projects.

s570
00:41:56.880 --> 00:42:02.400
One was a machine learning one where I wanted to reimplement a package with a Rust back end.

s571
00:42:02.400 --> 00:42:18.400
one was to take a existing uh to build from scratch like a green field project a live Q&amp;A site and the third was to take an existing open source project and customize it for my sort of needs and codex was able to sort of get it done in those cases.

s572
00:42:18.400 --> 00:42:22.960
So underlying this are a few sort of uh concepts and primitives here.

s573
00:42:22.960 --> 00:42:25.920
Let's go back to the slides.

s574
00:42:28.319 --> 00:42:30.319
So the first thing is compaction.

s575
00:42:30.319 --> 00:42:32.640
You saw how codex worked for seven hours.

s576
00:42:32.640 --> 00:42:33.920
It worked for 5 hours.

s577
00:42:33.920 --> 00:42:36.880
It worked for like right now I think the other one is like 12 hours.

s578
00:42:36.880 --> 00:42:39.680
And many times it's compacting its context window.

s579
00:42:39.680 --> 00:42:41.200
This is not a new technology.

s580
00:42:41.200 --> 00:42:55.119
In November 19 when we released GPT 5.1 Codex Max, yes the name was GPT 5.1 Codex Max, we natively train the model on multiple uh context windows through a process called compaction.

s581
00:42:55.119 --> 00:42:57.760
And that's what lets Codex be really good at it.

s582
00:42:57.760 --> 00:43:09.839
Um some examples of what people have said about compaction to quote did open AI basically solve compaction I pretty much never had issue with 5.5 and codecs across ultra long threads spanning

s583
00:43:09.839 --> 00:43:11.520
many compactions.

s584
00:43:11.520 --> 00:43:16.400
Uh this individual from Japan said like in fact codeex has strong compaction.

s585
00:43:16.400 --> 00:43:20.160
So even if you make a lot a lot in the same thread it's less likely to forget.

s586
00:43:20.160 --> 00:43:22.960
And in that sense because it only remembers the good stuff.

s587
00:43:22.960 --> 00:43:25.520
There's some token efficiency to that I suppose.

s588
00:43:25.520 --> 00:43:29.119
And as always, people think it's pretty quoted.

s589
00:43:29.119 --> 00:43:35.839
I'll let uh Charlie share a bit more about like specific uh primitives and concepts that enable this such as goal.

s590
00:43:35.839 --> 00:43:38.480
Yeah, thanks Gabe.

s591
00:43:38.480 --> 00:43:41.280
So, as you saw, we we have a goal that's already been running for 15 hours.

s592
00:43:41.280 --> 00:43:48.480
And uh I think you know goal is is one of these primitives that um is incredibly powerful if you can use it in the right way.

s593
00:43:48.480 --> 00:43:57.520
Uh, one of the biggest things that I tell people who are just trying it out for the first time is be really specific with the criteria that you're giving the model to to know when it's done.

s594
00:43:57.520 --> 00:44:02.079
Um, and specifically, you want that criteria to be as verifiable as possible.

s595
00:44:02.079 --> 00:44:09.359
Uh, sometimes I do feel a little bit like goal is is kind of like a genie in the sense that when it works well, it is insanely magical.

s596
00:44:09.359 --> 00:44:18.800
uh and when it doesn't sometimes I feel like I've entered into a monkeykey's paw type situation where you know it has done the thing technically that I asked it to do but like very much not in the way that I was expecting.

s597
00:44:18.800 --> 00:44:27.520
Um so it when you give it a task it'll run off it'll keep evaluating itself against the success criteria against the verifiable criteria that you've given it.

s598
00:44:27.520 --> 00:44:35.040
Um and at each turn it'll check hey did this actually complete um and if not should I keep going right um there are quite a lot of use cases

s599
00:44:35.040 --> 00:44:37.680
uh for very large projects in this way.

s600
00:44:37.680 --> 00:44:46.560
Um, you know, Tama, as you can see, used a SLGO that was running for 40 hours, uh, that did a reimplementation of Doom in native Swift code.

s601
00:44:46.560 --> 00:44:49.119
Um, if that's the type of thing that that you want to give a shot.

s602
00:44:49.119 --> 00:45:00.079
Um, but also things like code migrations, large refactors, uh, retrying loops, uh, experiments, and, you know, like games or or full oneshotting apps with fairly detailed specs.

s603
00:45:00.079 --> 00:45:03.839
Um, I think goal is is pretty incredible.

s604
00:45:04.560 --> 00:45:13.040
Uh we've also got sub aents which we uh saw a little bit of a preview of here right sub aents in codeex um you know by default will get used out of the box.

s605
00:45:13.040 --> 00:45:19.839
You can tell tell the model hey uh you know think about delegating to sub agents here um but you can also customize them.

s606
00:45:19.839 --> 00:45:29.599
So if you want if you know you have a sub agent that should be your um you know code reviewer right you can have a specific prompt set of developer instructions here.

s607
00:45:29.599 --> 00:45:36.400
Um, if you know you want that code reviewer to just be focused on um, like just be a lightweight model so that it runs quickly.

s608
00:45:36.400 --> 00:45:43.680
Or if you want it to be a much more intelligent model so that it's very thorough, you can customize that in its own uh, sub aents.totml file.

s609
00:45:43.680 --> 00:45:44.960
Um, and you can give these names.

s610
00:45:44.960 --> 00:45:51.599
You can say, oh, go, you know, check with the code reviewer, go check with the docs researcher, um, in order to to implement, right?

s611
00:45:51.599 --> 00:45:56.720
Sub aents uh, can work in tandem with uh, thread-to-thread handoff in codec.

s612
00:45:56.720 --> 00:45:58.720
So, um, thread to thread is is quite new.

s613
00:45:58.720 --> 00:46:01.440
I think we just released it in the last week.

s614
00:46:01.440 --> 00:46:01.920
Yeah.

s615
00:46:01.920 --> 00:46:06.000
Um and so uh that's just an even higher level of abstraction.

s616
00:46:06.000 --> 00:46:17.839
Um and the way that I think about balancing them is, um when the the delegation of work needs to be visible to you, the user versus when it just needs to be visible to the model.

s617
00:46:17.839 --> 00:46:22.800
So sub aents we started with because I think that is when the work, you know, primarily needs to be visible to the model.

s618
00:46:22.800 --> 00:46:28.720
um if you want to delegate, you know, some uh like a subcontractor, you know, I don't really care what they're talking about.

s619
00:46:28.720 --> 00:46:31.040
I just want to make sure that the work comes back good.

s620
00:46:31.040 --> 00:46:36.720
Sub aents are a great fit and the model is great at figuring out when it should be um handing off into sub aents.

s621
00:46:36.720 --> 00:46:38.960
Uh it also keeps the the context separate.

s622
00:46:38.960 --> 00:46:45.920
I think unlike you know a lot of other tools that um we've we've brought to codeex to help keep context windows efficient.

s623
00:46:45.920 --> 00:46:52.160
Um, sub agents are one where uh, you know, you're keeping the context separate and the mo the the models are communicating with each other.

s624
00:46:52.160 --> 00:46:57.680
Thread to thread handoff is useful for when you still want to be in the loop and you still want to be able to like look at everything that's happening.

s625
00:46:57.680 --> 00:47:03.760
Um, and perhaps even larger than that, you are mentally thinking about separating these two uh, these two threads, right?

s626
00:47:03.760 --> 00:47:10.240
So, um, one example is over the weekend I was working on a game um, and I had a creative director thread, right?

s627
00:47:10.240 --> 00:47:19.119
I could have used a sub agent and that would have worked fine, but I wanted to see all of the different things that were happening and I I didn't want it to just be delegated into the ether via sub agents.

s628
00:47:19.119 --> 00:47:29.280
So, with the creative director thread, I opened up um different threads, one to work on the art direction, one to work on the music, one to polish the animations, one to figure out the game mechanics,

s629
00:47:29.280 --> 00:47:41.280
and I was using those um and I told them in the agents MD file, when you're done, go and check with the creative director thread, which I'd given a bunch of extra context on, you know, the look and feel I wanted for the game.

s630
00:47:41.280 --> 00:47:46.480
Go check with the creative director and get sign off before you consider this task done, right?

s631
00:47:46.480 --> 00:47:47.599
Uh and they all did so.

s632
00:47:47.599 --> 00:47:55.359
that, you know, it was actually really interesting to watch the threads just constantly sending messages to each other back and forth as they worked on the game.

s633
00:47:56.960 --> 00:48:00.720
Uh, we didn't quite show it here, but we also have hooks in the Codex app.

s634
00:48:00.720 --> 00:48:07.359
Um, if you want to set up your own hooks, you can do so in your config.toml file uh in your codeex home directory.

s635
00:48:07.359 --> 00:48:17.359
Um, these are really great for when you want to start introducing uh deterministic behavior at specific checkpoints in your software development life cycle or in your just you know general

s636
00:48:17.359 --> 00:48:19.040
uh development life cycle.

s637
00:48:19.040 --> 00:48:28.480
So I think in these cases you might use hooks to do things like um you know send your conversation to a logging engine right um you might want to scan inputs or outputs.

s638
00:48:28.480 --> 00:48:31.520
I think there's quite a lot of security use cases for hooks, right?

s639
00:48:31.520 --> 00:48:39.760
Before Codeex takes a specific action, maybe you want to look at the prompts and figure out, hey, have we accidentally pasted an API key that's that's going to go somewhere

s640
00:48:39.760 --> 00:48:42.160
um or before it takes an action to call a tool?

s641
00:48:42.160 --> 00:48:51.200
Hey, is this tool, you know, on like not on our approved white list or something that we need to be extra sensitive about when calling the tool to evaluate if it's if it's safe to use.

s642
00:48:51.200 --> 00:48:55.520
Um, and we can also do custom validation checks as well when the turn stops.

s643
00:48:55.520 --> 00:49:02.240
these days, you know, you can tell the agency MD, hey, go and use the the llinter, right, before you consider the work done to check your work.

s644
00:49:02.240 --> 00:49:09.040
Um, and it's really good about doing that, but if there are things that are a little bit more sophisticated or a little bit more complex that you want to do to validate the output,

s645
00:49:09.040 --> 00:49:11.760
uh, you can use hooks to to take care of that as well.

s646
00:49:11.760 --> 00:49:20.800
Um, you know, I find that when building more and more complex projects, some of the most important things are figuring out, like I've said, the verification criteria or the success criteria.

s647
00:49:20.800 --> 00:49:30.800
You want to give the model as many boundaries as it can as you can and let it fill in the lines um in accordance with like the boundaries that you've given it.

s648
00:49:31.920 --> 00:49:32.559
Cool.

s649
00:49:32.559 --> 00:49:36.559
Um and that brings us to working over time.

s650
00:49:36.880 --> 00:49:37.839
Thanks Charlie.

s651
00:49:37.839 --> 00:49:43.839
So just to quickly share on hooks uh slipped to my mind as well.

s652
00:49:43.839 --> 00:49:49.040
So we have the OpenAI agents SDK and there's actually a quick example of hooks right over there.

s653
00:49:49.040 --> 00:49:51.680
So if you go to settings, all the hooks are sort of there.

s654
00:49:51.680 --> 00:49:54.480
And you would see the hook for the agents SDK repo.

s655
00:49:54.480 --> 00:50:00.480
And here it's sort of doing at the every end of its turn a Python script to just tidy the repo.

s656
00:50:00.480 --> 00:50:04.160
So again, there like some of these housekeeping that maybe you want the language model to do.

s657
00:50:04.160 --> 00:50:06.640
You can run it deterministically with a hook.

s658
00:50:06.640 --> 00:50:11.359
And hooks become particularly useful with longunning tasks because there is that trade-off.

s659
00:50:11.359 --> 00:50:12.800
You're giving the agent more autonomy.

s660
00:50:12.800 --> 00:50:18.240
It's going to work off work longer and longer without your supervision or abstracted supervision.

s661
00:50:18.240 --> 00:50:22.480
And to that to that end hooks become useful in getting the guardrail.

s662
00:50:22.480 --> 00:50:31.920
So on working over time what we're trying to show here is that now we sort of collaborated codecs we have some of the power tool power user tools like computer use.

s663
00:50:31.920 --> 00:50:35.920
How can we like sitch this all together and let you know codeex work on its own?

s664
00:50:35.920 --> 00:50:45.760
I mean for exposition purpose here we are like prompting and like being more methodical but in reality you can just like let codeex work on it like with thread handoffs.

s665
00:50:45.760 --> 00:50:53.839
In practice, I could have all my demos in one thread and just ask that thread to segregate to separate it and send it and delegate it to the various threads.

s666
00:50:53.839 --> 00:50:57.680
So here's one quick example of a automation.

s667
00:50:57.680 --> 00:51:02.000
So right now you notice like on my uh screen over here that these like blue orbs.

s668
00:51:02.000 --> 00:51:06.240
So this is just showing that it's a remote host and maybe you want to create one.

s669
00:51:06.240 --> 00:51:13.280
So we have a nice plugin here with the digital ocean plugin which we just uh released last week and then you saw do it.

s670
00:51:13.280 --> 00:51:14.400
You can just try it in chat.

s671
00:51:14.400 --> 00:51:17.119
I'm just going to like fire it off as well.

s672
00:51:17.119 --> 00:51:20.480
And what it's going to do is going to like provision this infrastructure.

s673
00:51:20.480 --> 00:51:21.440
It's going to take some time.

s674
00:51:21.440 --> 00:51:25.680
And I'm not going to like stand here and look for for it to provision this infrastructure.

s675
00:51:25.680 --> 00:51:29.440
Uh and Codex is not going to like just keep um like waiting.

s676
00:51:29.440 --> 00:51:31.680
What it's going to do is create a heartbeat automation.

s677
00:51:31.680 --> 00:51:33.440
So it's going to like monitor and so forth.

s678
00:51:33.440 --> 00:51:34.559
So it says yes.

s679
00:51:34.559 --> 00:51:40.079
And let's just show in the spirit of this being a cooking show an example that was already done.

s680
00:51:40.079 --> 00:51:42.800
So here provision a digital ocean droplet.

s681
00:51:42.800 --> 00:51:43.200
Okay.

s682
00:51:43.200 --> 00:51:43.760
Yes.

s683
00:51:43.760 --> 00:51:46.240
And then it created the automation here.

s684
00:51:46.240 --> 00:51:50.240
I set a codeex heartbeat to resume this track in about 5 minutes.

s685
00:51:50.240 --> 00:51:52.800
So it's going to keep tracking every 5 minutes.

s686
00:51:52.800 --> 00:51:53.440
Is it ready?

s687
00:51:53.440 --> 00:51:54.079
Is it ready?

s688
00:51:54.079 --> 00:51:54.559
Is it ready?

s689
00:51:54.559 --> 00:51:55.119
Is it ready?

s690
00:51:55.119 --> 00:51:57.359
And once it's ready, it will take the next step.

s691
00:51:57.359 --> 00:51:58.720
So in this case, it did it.

s692
00:51:58.720 --> 00:52:00.640
So okay, the droplet's ready.

s693
00:52:00.640 --> 00:52:02.160
And it even gave a nice link.

s694
00:52:02.160 --> 00:52:04.400
So if you click this link, it's a deep link.

s695
00:52:04.400 --> 00:52:11.920
It's a link like a deep link to the settings page within the Codex app which automatically sets up the SSH instance for you.

s696
00:52:11.920 --> 00:52:14.400
So you just need to press it and then it'll preconfigure everything.

s697
00:52:14.400 --> 00:52:18.880
It knows where it will create the SSH key for you if necessary and so forth.

s698
00:52:18.880 --> 00:52:23.839
So that's nice and you can extend this to other parts of like say the software development life cycle.

s699
00:52:23.839 --> 00:52:25.839
Uh maybe you're building something you need to deploy.

s700
00:52:25.839 --> 00:52:28.559
You have a pipeline that triggers event based and it takes time.

s701
00:52:28.559 --> 00:52:37.680
So you can get codeex to like run every 5 minutes, every 10 minutes check is it ready, is it ready, is it ready and maybe depending on the event then it sort of spawns different tasks and so forth.

s702
00:52:37.680 --> 00:52:39.359
So that's a heartbeat automation.

s703
00:52:39.359 --> 00:52:40.720
It runs within the thread.

s704
00:52:40.720 --> 00:52:44.480
But we can also do automations that sort of spawn new threads.

s705
00:52:44.480 --> 00:52:51.520
Uh so one example of this so right now I have actually the Slack channel.

s706
00:52:51.520 --> 00:52:54.319
So see if it's up.

s707
00:52:54.319 --> 00:52:57.119
So remember the Mac OS translation app.

s708
00:52:57.119 --> 00:53:06.400
So in the last say 45 minutes we had a bunch of users all called Gabriela and they've been using it.

s709
00:53:06.400 --> 00:53:09.440
They've been giving a lot of feedback on the translation app.

s710
00:53:09.440 --> 00:53:12.240
for example, oh the screen feels focused.

s711
00:53:12.240 --> 00:53:14.240
I can tell where to start, so it's positive.

s712
00:53:14.240 --> 00:53:17.520
Is there a way to do a quick sound check before the audience sees caption?

s713
00:53:17.520 --> 00:53:18.880
So, so there's a lot of feedback.

s714
00:53:18.880 --> 00:53:20.079
People are giving feedback.

s715
00:53:20.079 --> 00:53:24.640
And I want to like, you know, give this feedback the attention it deserves.

s716
00:53:24.640 --> 00:53:27.040
So, I want to create an automation to do that.

s717
00:53:27.040 --> 00:53:32.079
So, just make sure we are in I'm just going to close this since we don't need it already.

s718
00:53:32.079 --> 00:53:34.240
Over here, we create a new thread.

s719
00:53:34.240 --> 00:53:37.760
And then I'm just going to like do a appshot.

s720
00:53:40.079 --> 00:53:47.839
Um, every half an hour, can you just like look at the comments and uh suggestions in this channel and reply to them?

s721
00:53:47.839 --> 00:53:49.599
Uh, I think there'll be like a few categories.

s722
00:53:49.599 --> 00:53:52.240
There's one category where it's like compliments.

s723
00:53:52.240 --> 00:53:54.720
There's one category where it's a bug report.

s724
00:53:54.720 --> 00:53:57.119
There's one category where it's a feature request.

s725
00:53:57.119 --> 00:53:58.400
Uh, so forth.

s726
00:53:58.400 --> 00:54:00.079
Let me just like fire that off.

s727
00:54:00.079 --> 00:54:01.760
So, it's going to create an automation.

s728
00:54:01.760 --> 00:54:04.240
And I I just sent it, but I realized, oh, wait.

s729
00:54:04.240 --> 00:54:07.839
Um, if it's a feature request or a bug fix, I want to do something different.

s730
00:54:07.839 --> 00:54:11.040
So, I'm going to like steer this.

s731
00:54:11.040 --> 00:54:11.280
Oh.

s732
00:54:11.280 --> 00:54:26.720
Um, if it's a uh bug fix or feature request, can you also then like spin a new thread in a work tree and actually address that and then open a PR and then like request Dom to review it and then so forth and ask Dom to like approve it within like 24 hours.

s733
00:54:26.720 --> 00:54:28.960
If not, just keep reminding him.

s734
00:54:28.960 --> 00:54:34.800
So yeah, it's it's it's a comical example, but here it's where I'm try I what I was first doing was steering.

s735
00:54:34.800 --> 00:54:37.599
So I'm going to I don't have to wait for codeex to finish.

s736
00:54:37.599 --> 00:54:39.520
I can sort of steer it midway.

s737
00:54:39.520 --> 00:54:47.280
And what I'm trying to do is in addition to all this feedback and classifying it if it's a it's a bug report, if it's something that uh we can fix.

s738
00:54:47.280 --> 00:54:48.960
Codex would then sort of spawn a thread.

s739
00:54:48.960 --> 00:54:53.760
So we're putting all these primitives together, the automation, the plug-in which can can read slack.

s740
00:54:53.760 --> 00:54:59.119
The fact that one codex thread can communicate with other codex threads and even create work tree threads and so forth.

s741
00:54:59.119 --> 00:55:08.319
So imagine then you wake up and this is a bit like that software factory where all the PRs are ready then you can even add additional comp layers to it where it's all this review you

s742
00:55:08.319 --> 00:55:17.359
build a test version you send it to someone they test it and then they give the thumbs up then it's good to go that feedback gets fed back to the PR then the PR reviewer sees all this holistically.

s743
00:55:17.359 --> 00:55:21.760
So yeah, there's a lot of it you can chain together to build that automation.

s744
00:55:21.760 --> 00:55:29.440
So then every half an hour it would do this and it will find DOM as well in the uh channel.

s745
00:55:29.440 --> 00:55:35.680
So you we were talking earlier about how we've actually been running a automation in the background and let's find that.

s746
00:55:35.680 --> 00:55:39.680
So let's see here it is.

s747
00:55:39.680 --> 00:55:49.280
So earlier while everyone was coming into the room I was asking Codex can you run an automation every five minutes taking a screenshot of what's happening on screen the Google Chrome

s748
00:55:49.280 --> 00:56:05.280
uh Google drive presentation we only have 16 minutes and I'm asking Codex to estimate to what extent are we going to overrun so right now it's at checkpoint 13 it's seeing if the demo is there it's flashing 12 uh 10 12 and so forth so Codex is doing its own assessment of like to what extent are we

s749
00:56:05.280 --> 00:56:12.400
going to finish on time so it's a bit of a meta example of how you can use automations and chain together other tools like in this case the Chrome extension.

s750
00:56:12.400 --> 00:56:15.040
It looks like it's telling us we might be a little bit behind the ball here.

s751
00:56:15.040 --> 00:56:17.520
Yeah, it's it's a you know it is what it is.

s752
00:56:17.520 --> 00:56:23.359
So automations have been really useful in my personal life to extent really like getting a lot of things done.

s753
00:56:23.359 --> 00:56:26.000
Uh some automations that may be useful too.

s754
00:56:26.000 --> 00:56:33.520
Uh one automation you can run maybe every Friday you ask Codex to look at all your conversation threads and see are there skills that you could improve?

s755
00:56:33.520 --> 00:56:35.920
Are there like things you could add to the agents markdown?

s756
00:56:35.920 --> 00:56:38.000
Or are there skills you could just remove?

s757
00:56:38.000 --> 00:56:40.160
maybe skills that you haven't been using.

s758
00:56:40.160 --> 00:56:42.640
A second automation or approach that may be useful.

s759
00:56:42.640 --> 00:56:45.839
Maybe you're using automations to draft email replies.

s760
00:56:45.839 --> 00:56:55.520
You can have one automation that drafts the email reply, but you can run a second automation that sort of cross validates against the eventual reply you sent because that is the ground truth.

s761
00:56:55.520 --> 00:56:59.920
Then it updates like a markdown file with the best practices, tips and so forth.

s762
00:56:59.920 --> 00:57:04.319
And in that regard, the email drafting automation can get better over time.

s763
00:57:04.319 --> 00:57:10.559
So, um I'll let uh Charlie just recap what automations are and share a bit more about the app server as well.

s764
00:57:10.559 --> 00:57:13.040
Our final step.

s765
00:57:14.960 --> 00:57:15.359
Cool.

s766
00:57:15.359 --> 00:57:19.520
Uh so I think yeah, automations uh there's two types two types of automations, right?

s767
00:57:19.520 --> 00:57:24.319
Um I think the more powerful one these days tends to be the inapp or inthread heartbeat automations.

s768
00:57:24.319 --> 00:57:26.240
And so those just live in a single thread.

s769
00:57:26.240 --> 00:57:27.359
They run on a timer.

s770
00:57:27.359 --> 00:57:30.640
Um they you know keep going over and over until they're they're done.

s771
00:57:30.640 --> 00:57:34.480
Um, these I find like have just almost unlimited use cases.

s772
00:57:34.480 --> 00:57:36.319
Uh, me person, Gabe shared some of his.

s773
00:57:36.319 --> 00:57:41.520
I think me personally, um, I feel like I'm drowning in Slack and email and linear notifications every day.

s774
00:57:41.520 --> 00:57:48.400
Uh, so I have an automation that just sort of, uh, goes through and checks the latest updates from, you know, all the sources that might need my attention.

s775
00:57:48.400 --> 00:57:53.359
I have a local Obsidian uh, vault and so it's just constantly updating my daily notes.

s776
00:57:53.359 --> 00:57:58.000
It's constantly updating my uh, notes on different work streams and it's keeping a lot of context there.

s777
00:57:58.000 --> 00:58:03.680
And that way I can just pull from that later if I say, "Hey, you know, what's going on with the latest uh AI engineer world's fair talk?"

s778
00:58:03.680 --> 00:58:06.240
Like, you know, how far are we on the demos, how far are we on the notes?

s779
00:58:06.240 --> 00:58:11.280
And then I can just Codex can just quickly tell me, here's what's happened since the last time you checked in.

s780
00:58:11.280 --> 00:58:13.680
Uh, but automations can also live in a new thread.

s781
00:58:13.680 --> 00:58:20.400
If you set them up in the Codex app, uh, under scheduled, the scheduled page, um, you can have them spin out in their own thread as well.

s782
00:58:20.400 --> 00:58:32.799
Um, and then that's useful if you just want to say, "Look, every week I want you to do a recap of what all of my direct reports have been doing, or I want you to look at all of the analytics from this uh system, and then we're just going to do a one-time look together, and then I'm

s783
00:58:32.799 --> 00:58:36.400
going to archive the thread and not worry about it again."

s784
00:58:37.520 --> 00:58:41.200
Uh, I think last but not least, we've got embedding codecs anywhere.

s785
00:58:41.200 --> 00:58:47.040
Um, and so I think we're for this one, uh, I want to talk a little bit about the app server protocol, right?

s786
00:58:47.040 --> 00:58:54.240
Which is, um, the core protocol that underpins the Codex app, the Codex CLI, uh, the Codex VS code extension.

s787
00:58:54.240 --> 00:59:02.000
Um, the app server is basically, uh, what allows all of these services to talk with the main codeex harness, right?

s788
00:59:02.000 --> 00:59:07.520
Um, and it's integrating all of the tool calls and the plugins and the context compaction that you know and love.

s789
00:59:07.520 --> 00:59:19.599
Um we have you know built a lot of the components of the Codex ecosystem to be open source because uh we really want to encourage developers to build wherever you are and for whatever use case that that you have.

s790
00:59:19.599 --> 00:59:25.280
And so to that extent um you know if you're not aware you can embed codecs into your product using app server.

s791
00:59:25.280 --> 00:59:30.000
Uh I think this brings a lot of the uh power of codecs directly to you.

s792
00:59:30.000 --> 00:59:41.280
Um, and it brings the ability for your users to uh use their chat GBT subscription and perhaps more importantly use their chat GBT token budget uh to power the products that you're building.

s793
00:59:41.280 --> 00:59:44.400
Um, and like I said, it has all the same underlying features that we've been demoing.

s794
00:59:44.400 --> 00:59:49.839
You know, compaction, steering, the ones that need to live on your computer like computer use are are, you know, not going to be there.

s795
00:59:49.839 --> 00:59:56.559
But for everything that exists in the core, uh, you know, agent harness, we've got that in the app server.

s796
00:59:58.000 --> 01:00:03.119
So as a quick demo of that, so there was a fourth longrunning task that I kicked off last night.

s797
01:00:03.119 --> 01:00:09.119
It was actually to build my own user interface for codeex with the app server called Retroex.

s798
01:00:09.119 --> 01:00:11.440
So it's been working for a while.

s799
01:00:11.440 --> 01:00:13.280
I think there are different tasks I worked with it.

s800
01:00:13.280 --> 01:00:16.400
And this is sort of the work in progress retroex.

s801
01:00:16.400 --> 01:00:17.680
It's using the app server.

s802
01:00:17.680 --> 01:00:20.960
Uh let's just okay zoom in then optimize it for the stage.

s803
01:00:20.960 --> 01:00:24.799
But yeah, you can like choose the model 5.5.4 mini the reasoning effort.

s804
01:00:24.799 --> 01:00:27.839
So I told like oh make it a bit funky when you change the reasoning effort.

s805
01:00:27.839 --> 01:00:35.760
So at low there's like a small glitter at medium the color changes you think high and extra high it's like woo a bit more.

s806
01:00:35.760 --> 01:00:44.480
So you could just like simply say like uh hello and let's see this is in retroex going to send hello and then allow access.

s807
01:00:44.480 --> 01:00:47.280
It's going to run and it's going to reply back hello.

s808
01:00:47.280 --> 01:00:55.599
And what's nice and to just prove that it's all running on the same app server is that if we go to the Codex app in the same project uh retroex

s809
01:00:55.599 --> 01:01:17.359
you should see that over here let's see yeah it should we can change the threads I believe but yeah that's an example of how you can build it's it's a trivial example of building a funky user interface but let's say you want to build agents on the cloud you want to manage different agent providers

s810
01:01:17.359 --> 01:01:27.440
uh you're considering in a large organization your different sort of providers you're using and you want to build a unified layer the app server is a useful way for you to integrate it into your own platforms

s811
01:01:27.440 --> 01:01:38.960
and because it's open source if you go to you get clone openai/codex you can just ask codeex about codeex you could just say like uh hey can you tell me more about the codeex app server

s812
01:01:38.960 --> 01:01:53.359
and then you can fire it off and you can start building your own applications or integrations from there immediately so that's the app server And we have a nice blog post talking about it and there have been more engineering blog posts about like our Windows sandbox

s813
01:01:53.359 --> 01:02:05.839
first of its kind how we built the agent loop amazing stuff and it's a good reference point also like if you're AI engineer seeing the codeex repo it's a great source and we'll have uh further talks in the subsequent days about this.

s814
01:02:05.839 --> 01:02:11.760
So I'll let Charlie share some closing thoughts after seeing this entire cooking show.

s815
01:02:13.280 --> 01:02:16.160
Uh, thanks Gabe and thanks everybody again for being here.

s816
01:02:16.160 --> 01:02:20.960
I think um hopefully you've learned a bit today about how you can use Codex to kind of level up your workflows.

s817
01:02:20.960 --> 01:02:29.839
Some of the co closing thoughts that I want to end on here are, you know, questions that I repeatedly ask myself as I'm trying to get to the frontier of what Codex can do, right?

s818
01:02:29.839 --> 01:02:34.160
Um they start pretty simple just by asking, have I tried asking Codex to do it?

s819
01:02:34.160 --> 01:02:34.400
Right?

s820
01:02:34.400 --> 01:02:40.720
Um I think like one of the things around the office that we say uh more frequently than ever now is have you asked Codex?

s821
01:02:40.720 --> 01:02:47.200
Um, but I think as you evolve that workflow, right, you want to go from just asking in individual turns to building loops, right?

s822
01:02:47.200 --> 01:02:48.559
We've all heard about loop maxing.

s823
01:02:48.559 --> 01:02:49.599
That is the new thing.

s824
01:02:49.599 --> 01:02:52.960
Um, and I think we want to think about how does that how does that work, right?

s825
01:02:52.960 --> 01:02:56.480
Like what is it that the loop needs to be checking at each turn, right?

s826
01:02:56.480 --> 01:03:06.799
Um, as you go down this path, there's going to be additional questions like, okay, you know, as it's progressing, how how like what blocked Codeex from actually getting to the answer, right?

s827
01:03:06.799 --> 01:03:08.640
Um, was there context that it needed?

s828
01:03:08.640 --> 01:03:10.400
Were there permissions that it needed?

s829
01:03:10.400 --> 01:03:18.240
Are there ways to build that context into repeatable tools like skills or plugins that Codex can use the next time it runs into this problem?

s830
01:03:18.240 --> 01:03:21.839
Um, how do I start scaling kind of from one agent to many?

s831
01:03:21.839 --> 01:03:22.160
Right?

s832
01:03:22.160 --> 01:03:28.799
Like as you think about the work, is there ways that you could be prompting Codex to implicitly delegate the structure of the things that you are building?

s833
01:03:28.799 --> 01:03:34.799
Um, or to start orchestrating across multiple threads to have different Codex instances communicating with each other.

s834
01:03:34.799 --> 01:03:41.920
And then ultimately uh you know if you take a step back and ask the question okay why does this process need a human at all right I think like

s835
01:03:41.920 --> 01:03:54.319
as we've shown you know one thing that you might assume uh when building with codeex or when building with the open AI API is that a human needs to be involved to like go to the platform page and go get an API key and then paste it into the environment

s836
01:03:54.319 --> 01:04:08.400
right I think like uh as we've shown with the developers plugin that is not the case anymore the plug-in itself can just go fetch the API key and set it up locally for you um and ultimately you know we do still want humans in the loop like where they need to be but uh for everything that's not

s837
01:04:08.400 --> 01:04:18.720
that like how do we figure out how to take the human out of the process to unblock ourselves and how do we figure out how to build the machine that builds the machine right I think like it is one thing to

s838
01:04:18.720 --> 01:04:35.920
sit with a coding agent and build a single piece of software is another thing to start zooming out and say actually I want to build a software factory right I want to build a system that um that then builds individual pieces of software on an assembly line as we Um, and so a lot of these things are

s839
01:04:35.920 --> 01:04:43.359
kind of how I start to get from, um, just an individual ask to something significantly bigger.

s840
01:04:43.760 --> 01:04:44.319
Cool.

s841
01:04:44.319 --> 01:04:46.240
And I think with that, um, we are

s842
01:04:46.240 --> 01:04:47.039
a recap of

s843
01:04:47.039 --> 01:04:47.200
Yeah.

s844
01:04:47.200 --> 01:04:49.119
Yeah.

s845
01:04:49.119 --> 01:04:49.680
Good.

s846
01:04:49.680 --> 01:04:54.240
So, um, thanks so much for joining us today on a 9:00 a.m. on a Monday.

s847
01:04:54.240 --> 01:04:59.359
It's the I hope it's a great way to kick off your, uh, AI engineer welfare.

s848
01:04:59.359 --> 01:05:00.319
And that's not it.

s849
01:05:00.319 --> 01:05:02.559
So, tomorrow we have our opening keynote.

s850
01:05:02.559 --> 01:05:03.680
It's going to be fun.

s851
01:05:03.680 --> 01:05:05.200
Do check it out.

s852
01:05:05.200 --> 01:05:10.880
We also have Jason on the developer experience team giving a talk about how he gets the most out of Codeex.

s853
01:05:10.880 --> 01:05:16.240
It's a nice foil to today's presentation about how he's using on a day-to-day basis.

s854
01:05:16.240 --> 01:05:22.640
And then he has a workshop after that where he goes through step by step like setting up the plugins, doing app shots and so forth.

s855
01:05:22.640 --> 01:05:26.400
So today's session is more uh like a whirlwind tour.

s856
01:05:26.400 --> 01:05:32.960
This workshop will go through the step by steps of how to get to set yourself up for success with codecs.

s857
01:05:32.960 --> 01:05:39.839
We then have a session on uh from the harness about the harness and then sessions about voice agents.

s858
01:05:39.839 --> 01:05:41.920
Charlie will be talking about that as well.

s859
01:05:41.920 --> 01:05:49.920
Uh Dom will be doing a session on building on the Codex harness and then another session explaining behind the Codex harness.

s860
01:05:49.920 --> 01:05:51.920
So the first one is you build on top of it.

s861
01:05:51.920 --> 01:05:54.640
Then the second one is explain the harness.

s862
01:05:54.640 --> 01:06:01.039
Then lastly a session about LLM inference in production and so how we sort of do that at OpenAI.

s863
01:06:01.039 --> 01:06:12.400
So thank you for joining us and that's the end of the first segment of today's workshop where we sort of give that whirlwind tour of everything codex and hopefully you have something fun to cope with.

s864
01:06:12.400 --> 01:06:15.520
So it's time to build and to help you with that for today's session.

s865
01:06:15.520 --> 01:06:20.880
Uh first things first, if you've not downloaded downloaded the Codex app, do give it a download.

s866
01:06:20.880 --> 01:06:27.200
And for credits, so we are giving 100 USD in Codex credits and 100 USD in API credits.

s867
01:06:27.200 --> 01:06:31.839
So we'll leave leave this QR code up there's their phones up and take a photo.

s868
01:06:31.839 --> 01:06:37.119
Yeah, I could like appshot this and say, "All right, send this via email to everyone who attended, but we don't have your emails."

s869
01:06:37.119 --> 01:06:38.960
Yeah.

s870
01:06:38.960 --> 01:06:39.359
Cool.

s871
01:06:39.359 --> 01:06:45.200
And I would also mention uh please stick around uh to the end of the build session um if you can.

s872
01:06:45.200 --> 01:06:48.319
We brought uh swag for everybody.

s873
01:06:48.319 --> 01:06:52.640
So at the end of the 2our mark um on your way out you can pick up a sweatshirt I believe.

s874
01:06:52.640 --> 01:06:54.559
We love to see what you're building as well.

s875
01:06:54.559 --> 01:06:55.359
Yeah.

s876
01:06:55.359 --> 01:06:55.839
Yeah.

s877
01:06:55.839 --> 01:06:56.720
Well, we will be here.

s878
01:06:56.720 --> 01:06:57.680
We will be here in the audience.

s879
01:06:57.680 --> 01:07:03.839
We've got uh opening eye staff here as well um to help unblock you or to answer any questions about uh using codecs.

s880
01:07:03.839 --> 01:07:06.079
Thank you.
