Would you like to inspect the original subtitles? These are the user uploaded subtitles that are being translated:
1
00:00:00,000 --> 00:00:02,779
Hey, this is the definitive course on Claude Code for beginners.
2
00:00:03,240 --> 00:00:07,459
I use Claude Code every day to manage a business that does over $4 million a year in profit.
3
00:00:07,780 --> 00:00:12,160
I also teach over 2,000 people how to use Claude Code, both for personal and then corporate
4
00:00:12,160 --> 00:00:13,240
or professional tasks.
5
00:00:13,259 --> 00:00:15,240
So this is more or less what I do all day.
6
00:00:15,619 --> 00:00:19,039
Once you understand what I'm about to show you in this course, it's no small stretch
7
00:00:19,039 --> 00:00:21,699
to say that Claude Code will augment your productivity.
8
00:00:21,800 --> 00:00:25,739
You'll gain leverage in areas that you probably didn't even realize that you had, and that's
9
00:00:25,739 --> 00:00:28,480
both for software engineering and also other parts of your life.
10
00:00:28,480 --> 00:00:32,460
The focus here is not software per se, so you don't need to have a technical background
11
00:00:32,460 --> 00:00:33,859
to understand what I'm going to tell you.
12
00:00:34,119 --> 00:00:38,340
I'll make sure to start slow and build concepts on each other naturally and gradually so that
13
00:00:38,340 --> 00:00:39,439
everybody here is on the same page.
14
00:00:39,579 --> 00:00:41,859
So no fluff, here's what you guys are going to learn in this course.
15
00:00:42,020 --> 00:00:46,000
We're going to start with the basics by downloading and then setting up Claude Code ourselves.
16
00:00:46,420 --> 00:00:50,640
I'll then teach you all about integrated development environments or IDEs.
17
00:00:50,939 --> 00:00:54,380
There's several on the market, and I'm going to walk you guys through the three most commonly
18
00:00:54,380 --> 00:00:56,119
used ones so that we're all on the same page.
19
00:00:56,740 --> 00:01:00,219
Afterwards, I'll show you how to set up your project brain, which is also known as the
20
00:01:00,219 --> 00:01:01,359
cloud.md file.
21
00:01:01,899 --> 00:01:05,560
Once we're done with that, we'll use Claude Code to actually build something because the
22
00:01:05,560 --> 00:01:08,159
focus of this whole course is on practical building.
23
00:01:08,719 --> 00:01:11,879
We'll build a simple web app hosted live on the internet, which I hope you guys learn
24
00:01:11,879 --> 00:01:14,060
by doing, not just sitting around and listening to me.
25
00:01:14,400 --> 00:01:18,620
After that, we'll cover the cloud directory, the subagents folder, and a bunch of functionality
26
00:01:18,620 --> 00:01:20,120
that not a lot of people know about.
27
00:01:20,579 --> 00:01:24,420
We'll then cover Claude Codes, various modes, including their plan mode, which you guys might
28
00:01:24,420 --> 00:01:28,739
have heard about, dangerously skip permissions mode, which gained a fair amount of notoriety
29
00:01:28,739 --> 00:01:31,519
recently, and how to use them, as well as use them safely.
30
00:01:32,060 --> 00:01:35,959
We'll then cover complex project builds using plan mode and what I just showed you guys.
31
00:01:36,500 --> 00:01:39,879
After that, we'll cover context management, which is quite the term right now.
32
00:01:40,060 --> 00:01:43,739
I'll teach you guys all about how to manage your context efficiently, avoid context rot,
33
00:01:43,840 --> 00:01:46,700
and ensure that your prompts are built and structured in a high ROI way.
34
00:01:47,200 --> 00:01:50,219
I'll run you through every slash command and Claude Code and how to use all of them.
35
00:01:50,640 --> 00:01:53,700
We'll then cover hooks, which are custom scripts that you guys can fire automatically
36
00:01:53,700 --> 00:01:55,739
before or after every Claude Code tool call.
37
00:01:55,980 --> 00:01:56,819
Very useful to know.
38
00:01:57,000 --> 00:02:00,980
I'll then talk about Claude Code skills, which is basically how to create these skill files
39
00:02:00,980 --> 00:02:03,659
that turn Claude Code into a bunch of different specialized agents.
40
00:02:03,900 --> 00:02:06,659
We'll then cover model context protocol and how to set it up effectively.
41
00:02:07,120 --> 00:02:10,780
I'll talk about a handful of automated systems that you guys can quickly build with model
42
00:02:10,780 --> 00:02:12,780
context protocol, including email managers.
43
00:02:12,860 --> 00:02:14,520
You can build your own bookkeeper and more.
44
00:02:15,080 --> 00:02:19,860
I'll cover Claude Code plugins and marketplaces, the Chrome DevTools integration, which is
45
00:02:19,860 --> 00:02:25,439
on a connection between Claude Code and Chrome that enables you to collect data from sources
46
00:02:25,439 --> 00:02:26,419
that don't have APIs.
47
00:02:26,620 --> 00:02:27,919
It's very, very valuable to learn.
48
00:02:28,599 --> 00:02:31,599
We'll then cover Claude Code subagents with scoped tool access.
49
00:02:31,900 --> 00:02:35,620
I'll talk about their new agent team feature and how to use them productively and then
50
00:02:35,620 --> 00:02:39,180
get work trees and session mobility, which essentially will allow you to spin up parallel
51
00:02:39,180 --> 00:02:43,740
cloud sessions without a lot of the downsides and issues that things like a cloud bot or
52
00:02:43,740 --> 00:02:46,479
open cloud have unfortunately resulted in.
53
00:02:46,879 --> 00:02:48,400
Finally, we'll cover scaling and deployment.
54
00:02:48,400 --> 00:02:52,240
Basically, how to take your automations and run them in production using modal webhooks,
55
00:02:52,360 --> 00:02:54,280
GitHub actions and Claude Code on the web.
56
00:02:54,840 --> 00:02:56,099
So we've got quite a lot to cover.
57
00:02:56,259 --> 00:03:00,340
Let's just dive right into it with the first, which is how to set up Claude Code as a total
58
00:03:00,340 --> 00:03:00,620
beginner.
59
00:03:00,740 --> 00:03:03,300
So the first thing we have to do is we actually have to purchase Claude Code.
60
00:03:03,379 --> 00:03:07,599
And the reason why is because they don't offer it for their free plan at zero dollars.
61
00:03:07,900 --> 00:03:11,979
In order to have access to Claude Code, you need at least their pro plan for everyday
62
00:03:11,979 --> 00:03:12,580
productivity.
63
00:03:12,960 --> 00:03:14,819
I'd recommend this if you guys are starting out.
64
00:03:14,819 --> 00:03:17,939
The money that you spend on a subscription like this is.
65
00:03:19,060 --> 00:03:24,539
So small compared to the massive productivity benefits that despite the fact that at 17
66
00:03:24,539 --> 00:03:26,939
dollars, I personally would not even raise an eyebrow.
67
00:03:27,340 --> 00:03:31,280
It's no small stretch to say that Claude Code probably delivers me productivity benefits
68
00:03:31,280 --> 00:03:36,319
on the order of 10 to 15 thousand dollars a month, because it's not only just skilled
69
00:03:36,319 --> 00:03:40,159
as a developer might be, which allows me to build systems that alleviate stresses and
70
00:03:40,159 --> 00:03:43,139
strain in my life, but it's much more than a developer as well.
71
00:03:43,139 --> 00:03:44,860
It's basically my second brain at this point.
72
00:03:45,080 --> 00:03:48,360
After you click, try Claude, it'll take you to a page where you have to log in.
73
00:03:48,580 --> 00:03:51,400
And once you're done, you can then create your account for the very first time.
74
00:03:51,800 --> 00:03:53,180
So I'd select both of these.
75
00:03:53,360 --> 00:03:56,719
I'm not going to subscribe to occasional product updates because my email inbox is
76
00:03:56,719 --> 00:03:57,199
busy enough.
77
00:03:57,580 --> 00:04:00,280
And then you have an onboarding screen with some personal information.
78
00:04:00,520 --> 00:04:01,479
So I'm just going to fill that out.
79
00:04:01,479 --> 00:04:02,759
And then once I'm done, circle back.
80
00:04:02,879 --> 00:04:04,180
OK, so I'm Canadian.
81
00:04:04,360 --> 00:04:08,099
And unfortunately, our dollars convert quite poorly to freedom dollars.
82
00:04:08,340 --> 00:04:12,080
So the 17 dollars that we saw earlier is 28 dollars in my own currency.
83
00:04:12,080 --> 00:04:16,259
I'm going to click Get Pro Plan and then walk through the payment details below.
84
00:04:16,339 --> 00:04:18,100
Cool. And now I have a Claude subscription.
85
00:04:18,339 --> 00:04:20,240
This is all that you need in order to get set up.
86
00:04:20,319 --> 00:04:21,519
Everything else is totally free.
87
00:04:21,600 --> 00:04:24,879
From here on out, the simplest way to get up and running with Claude code is just
88
00:04:24,879 --> 00:04:26,399
opening up a terminal instance.
89
00:04:26,680 --> 00:04:28,500
That'll seem pretty intimidating to a lot of you.
90
00:04:28,500 --> 00:04:30,319
So I'm not just going to show you how to do it in the terminal.
91
00:04:30,420 --> 00:04:33,660
I'm also going to show you how to do it using what's called their graphical user
92
00:04:33,660 --> 00:04:36,019
interface, which they put together four or five months ago.
93
00:04:36,199 --> 00:04:39,699
Any resource that I show you throughout this course is probably going to look a
94
00:04:39,699 --> 00:04:43,019
little different by the time that you look at it versus when I'm looking at it.
95
00:04:43,019 --> 00:04:46,959
And that's because Claude code, Anthropic and just AI tools in general change
96
00:04:46,959 --> 00:04:50,620
really quickly, especially since most of the developers are also using Claude code.
97
00:04:50,740 --> 00:04:52,660
So it kind of multiplies the productivity here.
98
00:04:53,100 --> 00:04:57,399
What's important is not the specific layout, the colors, the words on the screen.
99
00:04:57,720 --> 00:04:59,759
What's more important is that you just know how to find it.
100
00:04:59,959 --> 00:05:04,180
And so the number one resource that I personally use to look up advanced Claude
101
00:05:04,180 --> 00:05:06,600
code features is in the Claude code documentation.
102
00:05:06,600 --> 00:05:11,279
It's at code dot Claude dot com slash docs, whatever language you speak,
103
00:05:11,279 --> 00:05:14,519
just pump in there and then it'll automatically translate that over to.
104
00:05:14,620 --> 00:05:18,139
So the Claude code docs specify that in order to install Claude code in your
105
00:05:18,139 --> 00:05:21,639
system for the first time, you can run what's called a curl command here.
106
00:05:21,860 --> 00:05:25,639
If you're running a Windows PowerShell, you know, you can run this Windows CMD.
107
00:05:25,699 --> 00:05:28,500
You can run that just so we're all on the same page here.
108
00:05:28,540 --> 00:05:32,120
When you have little snippets of text like this, what they're telling you to do
109
00:05:32,120 --> 00:05:35,180
is basically to open up a terminal or a command prompt.
110
00:05:35,180 --> 00:05:39,480
So on Mac OS, Linux or WSL, which are all different operating systems,
111
00:05:39,720 --> 00:05:41,939
in order to open up a terminal, you just type terminal.
112
00:05:42,740 --> 00:05:44,839
When you do so, you then get a terminal.
113
00:05:44,899 --> 00:05:47,579
Now, this terminal might look a little intimidating to you if it's your first
114
00:05:47,579 --> 00:05:50,319
time ever using something like that, but don't worry about it too much.
115
00:05:50,339 --> 00:05:53,500
I just wanted to show you guys how easy it is to get set up with Claude code in this.
116
00:05:53,699 --> 00:05:56,660
And then afterwards, as mentioned, we'll do the graphical user interface stuff.
117
00:05:57,060 --> 00:05:58,439
OK, so this is what it looks like on Mac.
118
00:05:58,459 --> 00:06:02,160
If you guys are on a Windows, then you'll have to use the Windows key search bar.
119
00:06:02,220 --> 00:06:05,100
Then to look up something like CMD or command prompt.
120
00:06:05,180 --> 00:06:07,540
At the end of it, you'll get something that looks pretty similar to this.
121
00:06:07,720 --> 00:06:11,360
From here on out, all we have to do is we have to copy over the command that it gives us.
122
00:06:11,699 --> 00:06:14,560
So because we want a native install and I'm in Mac OS,
123
00:06:14,639 --> 00:06:16,180
I'm just going to copy over this command.
124
00:06:16,439 --> 00:06:18,779
You can also click this little button over here and then alt tap back.
125
00:06:19,220 --> 00:06:21,160
I'm going to paste it in and press enter from here on out.
126
00:06:21,199 --> 00:06:23,459
A bunch of complicated things are going to occur.
127
00:06:23,620 --> 00:06:26,259
If you don't already have it installed, may take you a little bit longer.
128
00:06:26,600 --> 00:06:28,439
But now we're good to go.
129
00:06:28,600 --> 00:06:30,079
Claude code is installed on our computer.
130
00:06:30,360 --> 00:06:33,100
Once you're done with all that, all you have to do in order to use Claude
131
00:06:33,100 --> 00:06:35,740
is just type the word Claude directly into your terminal.
132
00:06:35,879 --> 00:06:36,899
It's really that easy.
133
00:06:36,959 --> 00:06:40,680
Now, if it's the very first time that you're logging in, you'll also have to authenticate.
134
00:06:40,819 --> 00:06:43,540
And it'll ask you to do so automatically when you open this stuff up.
135
00:06:43,860 --> 00:06:48,000
If not, you can also type backslash L-O-G-I-N.
136
00:06:48,439 --> 00:06:52,199
Once you click this, it'll tell you Claude code can be used with your Claude subscription
137
00:06:52,199 --> 00:06:55,399
or build based on API usage through your console account.
138
00:06:55,779 --> 00:06:57,360
How would you like to set up?
139
00:06:57,639 --> 00:07:00,680
Now, in our case, we're using the cheapest, most effective method,
140
00:07:00,680 --> 00:07:03,319
which is the Pro, Max, Team or Enterprise subscription.
141
00:07:03,680 --> 00:07:06,720
It's also the most straightforward, which is why it's the one that I used in this course.
142
00:07:07,019 --> 00:07:08,220
I'm just going to click Enter.
143
00:07:08,819 --> 00:07:12,300
And then it'll then log you into your Claude account,
144
00:07:12,420 --> 00:07:13,779
the one that you just set up a moment ago.
145
00:07:13,920 --> 00:07:15,740
Once we're done, you're all set up for Claude code.
146
00:07:15,860 --> 00:07:18,240
You can close this window, then Alt Tab back.
147
00:07:18,439 --> 00:07:21,199
And you'll see that it's going to say just press Enter to continue.
148
00:07:21,420 --> 00:07:23,040
Now, just so we're all on the same page here,
149
00:07:23,279 --> 00:07:27,579
all we've really done so far is we've just opened up a chat interface with an AI model.
150
00:07:27,579 --> 00:07:31,019
It's just instead of it being in like a nice desktop application or on the web,
151
00:07:31,180 --> 00:07:32,019
it's in our terminal.
152
00:07:32,339 --> 00:07:35,800
And the value here is instead of running an AI model on the web
153
00:07:35,800 --> 00:07:39,040
or in some distant cloud server, what we're doing now is we're running it locally
154
00:07:39,040 --> 00:07:39,680
on our computer.
155
00:07:39,920 --> 00:07:42,959
So we actually have the ability to take this model
156
00:07:42,959 --> 00:07:47,759
and then locally modify files on our computer, write scripts,
157
00:07:48,160 --> 00:07:51,939
write stories, write poems, restructure our file organizer,
158
00:07:52,279 --> 00:07:54,139
clean up our PC or our Mac.
159
00:07:54,259 --> 00:07:56,779
Like this thing is currently connected to my computer.
160
00:07:56,779 --> 00:07:58,980
And I'll run you guys through our permissions and all that stuff
161
00:07:58,980 --> 00:08:01,800
work later on in the course, as talked about in the outline.
162
00:08:02,180 --> 00:08:05,699
But even this alone makes it extraordinarily powerful.
163
00:08:05,899 --> 00:08:08,300
So this screen can look pretty intimidating for beginners.
164
00:08:08,519 --> 00:08:11,939
Most people end up using the terminal flow, not the GUI flow.
165
00:08:12,160 --> 00:08:15,019
But I'm going to explain to you what you guys see here just for simplicity.
166
00:08:15,579 --> 00:08:18,319
In the top left hand corner, you have that cute little Claude code widget.
167
00:08:18,459 --> 00:08:20,920
I think it's I don't know if it's supposed to be a crab or like a jellyfish,
168
00:08:20,920 --> 00:08:21,620
but it's adorable.
169
00:08:22,040 --> 00:08:24,399
Then you have Claude code and the actual version up above.
170
00:08:24,980 --> 00:08:27,079
Underneath, you have the model that you're currently using.
171
00:08:27,139 --> 00:08:28,899
In my case, I'm using Opus 4.6.
172
00:08:29,019 --> 00:08:31,160
Then you have the plan that you're on, in my case, Claude Mac.
173
00:08:31,240 --> 00:08:33,100
So this is a couple levels up from the pro plan.
174
00:08:33,460 --> 00:08:36,720
And then perhaps most importantly, you have the current working directory.
175
00:08:37,159 --> 00:08:40,279
As I mentioned to you a moment ago, this is working inside of your computer
176
00:08:40,279 --> 00:08:41,320
in a specific folder.
177
00:08:41,559 --> 00:08:46,100
And so Claude code currently lives inside slash users slash Nick Sariah,
178
00:08:46,340 --> 00:08:49,360
which is basically like the home folder, at least on my Mac OS.
179
00:08:50,179 --> 00:08:51,700
Here is your previous command.
180
00:08:51,700 --> 00:08:54,500
And so I just wrote clear because I wanted to clear it all the way up
181
00:08:54,500 --> 00:08:56,779
and give you guys a fresh canvas.
182
00:08:57,779 --> 00:08:59,840
Here is where you actually insert the text.
183
00:09:00,059 --> 00:09:04,000
So when you type stuff, it pops up underneath here, it tells you the model again.
184
00:09:04,500 --> 00:09:05,659
Then it gives you various modes.
185
00:09:06,100 --> 00:09:08,539
So in my mode right now, I'm in bypass permissions.
186
00:09:08,799 --> 00:09:10,059
This is sort of like a dangerous mode.
187
00:09:10,240 --> 00:09:12,220
It's a mode that not a lot of people feel super comfortable with.
188
00:09:12,320 --> 00:09:15,460
But it's the mode that I prefer for knowledge, work and intellectually
189
00:09:15,460 --> 00:09:18,700
valuable tasks. And I'll run you guys through more of that later on.
190
00:09:18,700 --> 00:09:22,340
But you can cycle through modes simply by clicking shift and tab,
191
00:09:22,360 --> 00:09:23,539
which I'll show you guys how to do.
192
00:09:23,840 --> 00:09:25,340
And then there's some additional information here.
193
00:09:25,360 --> 00:09:28,940
There's some version, the latest and then over here is, at least in my case,
194
00:09:29,019 --> 00:09:30,139
the token readout.
195
00:09:30,399 --> 00:09:31,419
And you know, it's really cool.
196
00:09:31,500 --> 00:09:32,779
You can actually adjust this.
197
00:09:32,860 --> 00:09:36,179
This sort of thing is your Claude code status line, which I'm also going to run you through.
198
00:09:36,360 --> 00:09:38,919
You can make it all colorful and all wonky and really fun.
199
00:09:39,200 --> 00:09:40,879
You can have it display whatever the heck you want.
200
00:09:40,960 --> 00:09:43,659
So the very first thing I'm going to do is I'm just going to say, hey,
201
00:09:43,919 --> 00:09:44,720
how's it going?
202
00:09:45,080 --> 00:09:46,600
And immediately after, I'm going to take a screenshot
203
00:09:46,600 --> 00:09:48,779
so I can show you guys some more information.
204
00:09:49,059 --> 00:09:52,679
So opening this up in my drawing tool, what ended up happening is immediately
205
00:09:52,679 --> 00:09:54,419
after we said, hey, how's it going?
206
00:09:54,759 --> 00:09:56,960
You see that another prompt showed up called finagling.
207
00:09:57,340 --> 00:10:00,879
This is one of like a thousand different words that Claude code uses.
208
00:10:00,980 --> 00:10:04,700
Basically, any time it's thinking, it's going to use some funny term like finagling
209
00:10:04,700 --> 00:10:07,519
or processing or, I don't know,
210
00:10:08,379 --> 00:10:11,059
rumpeting or considering or whatever the heck.
211
00:10:11,059 --> 00:10:13,419
They're pretty funny. And the cool thing is you can customize that.
212
00:10:13,419 --> 00:10:16,620
Next, you have the number of seconds that your query has lasted.
213
00:10:16,879 --> 00:10:17,919
So I just said, hey, how's it going?
214
00:10:18,000 --> 00:10:21,740
And then two seconds in, it's now produced five tokens for me.
215
00:10:21,980 --> 00:10:23,720
And then finally, you also have the token count.
216
00:10:24,159 --> 00:10:26,860
So just so we're all on the same page, a token is not the same as a word,
217
00:10:26,919 --> 00:10:29,399
but at least for the purposes of most of what you do,
218
00:10:29,399 --> 00:10:31,299
you can consider a token to be similar to a word.
219
00:10:31,740 --> 00:10:33,559
For instance, I said, hey, how's it going?
220
00:10:34,060 --> 00:10:35,960
This is not one, two, three, four.
221
00:10:36,000 --> 00:10:37,179
This isn't four tokens.
222
00:10:37,419 --> 00:10:39,879
It might be four words. It's probably closer to six or seven tokens.
223
00:10:39,980 --> 00:10:42,480
But just think about tokens as being analogous to words.
224
00:10:42,480 --> 00:10:44,299
Just a few more, if that makes sense.
225
00:10:44,460 --> 00:10:47,240
You'll also see that an additional piece of information popped up down here
226
00:10:47,240 --> 00:10:49,360
called context. And this is really important.
227
00:10:49,980 --> 00:10:51,679
Context goes from zero to 100 percent.
228
00:10:51,860 --> 00:10:55,139
And that's how much basically conversation history you have
229
00:10:55,139 --> 00:10:58,399
in the current chat window with your current instance of Claude Code.
230
00:10:58,720 --> 00:11:00,879
This becomes really important later when you're designing
231
00:11:00,879 --> 00:11:02,840
better context management techniques,
232
00:11:02,840 --> 00:11:05,539
which is a big portion of what this course is going to be all about,
233
00:11:05,539 --> 00:11:07,980
because at least as of the time of this recording,
234
00:11:08,399 --> 00:11:10,639
context management is sort of like the big bottleneck
235
00:11:10,639 --> 00:11:13,120
in getting these systems to do more and better for you.
236
00:11:13,559 --> 00:11:16,279
You'll also notice that on the right hand side, my token counter,
237
00:11:16,600 --> 00:11:19,000
my status line here, it went up significantly.
238
00:11:19,419 --> 00:11:23,019
And so basically what this means is at about 20,000 tokens or so,
239
00:11:23,080 --> 00:11:27,539
or about 10 percent of the way through our entire conversation thread
240
00:11:27,539 --> 00:11:28,720
that's allotted to us.
241
00:11:29,039 --> 00:11:31,740
What's really cool is Claude Code will take all of that history
242
00:11:31,740 --> 00:11:34,759
and at regular intervals, it'll actually compress that for you
243
00:11:34,759 --> 00:11:38,080
by increasing the information density, taking a string of text
244
00:11:38,080 --> 00:11:39,879
and then making it higher information density
245
00:11:39,879 --> 00:11:42,799
and higher information density and higher information density successively.
246
00:11:43,059 --> 00:11:46,580
So that even if you wrote something in kind of like a bloated way,
247
00:11:46,580 --> 00:11:49,259
a way that you could have used fewer words to say,
248
00:11:49,820 --> 00:11:52,279
as your context goes up and longer,
249
00:11:52,580 --> 00:11:55,240
cloud will automatically manage that for you to ensure that you're within the window.
250
00:11:55,340 --> 00:11:57,000
So that's how to set up Claude Code in the terminal.
251
00:11:57,220 --> 00:11:58,399
Hopefully we're all on the same page.
252
00:11:58,679 --> 00:12:01,139
Terminals are really similar to graphical user interfaces,
253
00:12:01,220 --> 00:12:02,379
which I'm about to show you in a moment.
254
00:12:02,679 --> 00:12:04,899
I do recommend that you guys get used to using it in terminal,
255
00:12:05,019 --> 00:12:08,559
because when you use it in terminal, you basically unlock even more functionality.
256
00:12:08,559 --> 00:12:10,759
You can run a bunch of these side by side.
257
00:12:10,820 --> 00:12:12,840
You could run different terminal tools and whatnot
258
00:12:12,840 --> 00:12:14,759
that give you guys faster refresh times.
259
00:12:14,840 --> 00:12:16,440
And we'll cover that sort of stuff later.
260
00:12:16,779 --> 00:12:18,340
But what I want to do now is I want to show you guys
261
00:12:18,340 --> 00:12:20,179
how to run it in a graphical user interface.
262
00:12:20,379 --> 00:12:22,299
And these graphical user interfaces are typically managed
263
00:12:22,299 --> 00:12:24,340
by what's called an integrated development environment.
264
00:12:24,419 --> 00:12:27,419
Well, that takes us to the next logical question, which is Nick,
265
00:12:27,659 --> 00:12:30,039
what is an integrated development environment?
266
00:12:30,679 --> 00:12:35,059
An integrated development environment, also termed IDE,
267
00:12:35,600 --> 00:12:37,600
is basically three things put together.
268
00:12:37,600 --> 00:12:46,299
OK, it's a file folder organizer plus a text editor.
269
00:12:48,299 --> 00:12:52,139
Plus an AI chat widget,
270
00:12:52,740 --> 00:12:56,559
similar to what you get if you go on chatgpd.com or cloud.ai.
271
00:12:56,960 --> 00:12:59,220
So you know how on my Mac, if I go finder,
272
00:12:59,299 --> 00:13:03,840
I open up a basically series of folders where I can select different files
273
00:13:03,840 --> 00:13:05,759
and open them up and so on and so forth.
274
00:13:05,759 --> 00:13:07,360
You can do the same thing on Windows.
275
00:13:07,360 --> 00:13:10,399
If you just type in folder or I don't know, the C drive or whatnot.
276
00:13:10,480 --> 00:13:15,139
Well, an IDE is basically that plus something like notepad or notes
277
00:13:15,139 --> 00:13:17,919
plus something like chatgpt all in one.
278
00:13:18,399 --> 00:13:23,419
And right now we have two major IDEs that the market is tending towards.
279
00:13:23,860 --> 00:13:27,860
The first is called Visual Studio Code, and the second is called Antigravity.
280
00:13:28,240 --> 00:13:31,299
Visual Studio Code is sort of like the OG one,
281
00:13:31,360 --> 00:13:32,980
because Antigravity is actually built on it.
282
00:13:33,059 --> 00:13:35,320
It was developed a lot longer by Microsoft.
283
00:13:35,320 --> 00:13:37,100
It's really, really extensible.
284
00:13:37,519 --> 00:13:39,700
It has great support and it's very straightforward.
285
00:13:40,100 --> 00:13:42,259
So I'm going to show you guys how to set things up on it.
286
00:13:42,700 --> 00:13:46,379
But Antigravity, I would consider to basically be Visual Studio 2.0.
287
00:13:46,600 --> 00:13:49,419
So not only does it have most of the same features now,
288
00:13:49,580 --> 00:13:52,980
although it is some of them are still kind of a little beta ish.
289
00:13:53,019 --> 00:13:54,220
It's also a lot more modern.
290
00:13:54,600 --> 00:13:57,220
And then there's a much bigger focus on AI,
291
00:13:57,259 --> 00:13:59,299
which is obviously kind of the whole point of this course.
292
00:13:59,419 --> 00:14:02,899
So I'm going to be showing you guys initially how to set things up in Visual Studio Code.
293
00:14:02,899 --> 00:14:04,159
Then I'm going to do Antigravity.
294
00:14:04,320 --> 00:14:05,299
And then for the rest of the course,
295
00:14:05,320 --> 00:14:07,580
we're just going to be doing all of our work inside of Antigravity.
296
00:14:07,820 --> 00:14:08,860
And Antigravity is really cool.
297
00:14:08,879 --> 00:14:11,879
There's some additional functionality within Antigravity, not even tied to Claude Code.
298
00:14:11,940 --> 00:14:15,259
So the first thing we need to do is obviously we need to set up Visual Studio Code.
299
00:14:15,639 --> 00:14:19,480
In order to do that, just head over to Visual Studio Code on Google over here
300
00:14:19,480 --> 00:14:22,179
and then download for whatever your specific application is.
301
00:14:22,559 --> 00:14:24,700
In my case, I'm downloading the Mac OS.
302
00:14:25,980 --> 00:14:29,419
I'm then going to have the download appear in the top right hand corner.
303
00:14:29,799 --> 00:14:32,580
I'm then going to give that a click and then go download unverified file.
304
00:14:33,239 --> 00:14:36,740
And then over here on a Mac, you again have to drag the little window over.
305
00:14:36,799 --> 00:14:37,700
So I'm just going to do that.
306
00:14:37,759 --> 00:14:40,159
And once you're done, you're going to have a page that looks something like this.
307
00:14:40,399 --> 00:14:42,799
So remember earlier how I said it was like a file editor?
308
00:14:43,100 --> 00:14:45,159
Well, that's what this little left hand side is about.
309
00:14:45,440 --> 00:14:48,639
If I click open a folder, I can actually go through and I can open a folder on my computer.
310
00:14:48,740 --> 00:14:52,220
So why don't I just go and open, I don't know, left click contact.
311
00:14:52,940 --> 00:14:55,720
OK, so now I'm inside of the left click contact folder.
312
00:14:55,740 --> 00:14:58,039
And you can see we have some files here, a gitignore,
313
00:14:58,039 --> 00:15:02,419
clod.nd, contact, index and a Netlify.toml.
314
00:15:02,440 --> 00:15:04,320
I'm going to go through all that sort of stuff in a moment.
315
00:15:04,440 --> 00:15:05,840
It's not super important for now.
316
00:15:06,019 --> 00:15:10,440
But this is sort of like where the file explorer functionality comes in.
317
00:15:10,600 --> 00:15:14,200
If I were to click on one of these, as you can see, we've now opened up a big text editor
318
00:15:14,200 --> 00:15:15,200
right in the middle of the screen.
319
00:15:15,460 --> 00:15:17,259
And so this is a bunch of CSS.
320
00:15:17,299 --> 00:15:18,440
It's a programming language.
321
00:15:18,799 --> 00:15:21,740
What's really cool is with clod coding, I actually have to know how to read any of this stuff.
322
00:15:21,740 --> 00:15:22,700
It'll just tell you everything.
323
00:15:22,860 --> 00:15:24,980
And so that is the text editor functionality.
324
00:15:25,000 --> 00:15:26,399
I can make changes.
325
00:15:26,399 --> 00:15:27,879
Hey, what's up?
326
00:15:28,240 --> 00:15:32,840
You know, I could create a new file here if I wanted to called message.md.
327
00:15:33,019 --> 00:15:36,659
And I could say, hey, how's it going, YouTube?
328
00:15:37,179 --> 00:15:41,320
So just like in that way, we basically have file editing functionality.
329
00:15:41,320 --> 00:15:43,899
And then we can also select files to work on and stuff like that.
330
00:15:44,100 --> 00:15:47,639
And then on the right hand side, you have an agent tab, which is where you have your
331
00:15:47,639 --> 00:15:48,799
chat interface with AI.
332
00:15:49,080 --> 00:15:53,700
Now, right out of the gate, the VS code chat interface isn't actually clod code.
333
00:15:53,700 --> 00:15:56,580
In order to access clod code, you have to download it as an extension.
334
00:15:56,860 --> 00:15:59,580
So I'm going to run you guys through that right now on the left hand side here.
335
00:15:59,659 --> 00:16:02,580
Click on these little blocks, then just type clod code.
336
00:16:03,519 --> 00:16:05,000
You'll see a variety of these.
337
00:16:05,279 --> 00:16:07,600
The one that you're looking for is the one that's developed by Anthropic, the one
338
00:16:07,600 --> 00:16:08,779
with that little check mark in it.
339
00:16:09,059 --> 00:16:12,659
Be very wary of downloading extensions that are not from official
340
00:16:12,659 --> 00:16:16,600
developers and vendors like Anthropic, simply because people have been known
341
00:16:16,600 --> 00:16:19,200
to insert malware and different things like that in these.
342
00:16:19,340 --> 00:16:22,440
So very important that you're that you preferentially use verified sources.
343
00:16:22,440 --> 00:16:25,220
In my case, I've already installed this, but all you have to do is go through that
344
00:16:25,220 --> 00:16:26,759
little installation wizard here.
345
00:16:26,820 --> 00:16:29,360
And then once you're done, you will have access to clod code.
346
00:16:29,679 --> 00:16:31,799
The question is, OK, I have access to clod code.
347
00:16:31,840 --> 00:16:32,740
How do I actually use it?
348
00:16:32,759 --> 00:16:33,600
Well, it's really easy.
349
00:16:33,700 --> 00:16:36,940
If you just go to the top right hand corner of the Citadel agent window, you now can
350
00:16:36,940 --> 00:16:38,159
just click on clod code.
351
00:16:38,559 --> 00:16:41,860
But you'll also see that there's a clod logo up here as well.
352
00:16:42,100 --> 00:16:43,080
Well, what the hell does this mean?
353
00:16:43,279 --> 00:16:45,779
If you click on this, you'll open up just like another window.
354
00:16:46,019 --> 00:16:48,120
And in my case, I open it up with the terminal default.
355
00:16:48,580 --> 00:16:50,580
So it's going to open up this in the terminal.
356
00:16:50,580 --> 00:16:54,080
This could be pretty intimidating and kind of annoying, to be honest, juggling all these
357
00:16:54,080 --> 00:16:56,500
things. I'm just going to zoom in so it's easier for us to see.
358
00:16:56,799 --> 00:17:00,120
So my recommendation is at least for beginners, just stick to the one on the right.
359
00:17:00,120 --> 00:17:03,159
That one's simpler. And as you can see, it's a different user interface than the
360
00:17:03,159 --> 00:17:07,339
terminal. OK, so how exactly do you use this and what are all of the different
361
00:17:07,339 --> 00:17:09,380
features and buttons and stuff like that?
362
00:17:09,640 --> 00:17:13,619
Covering the interface, obviously, up top, you have the past conversations tab.
363
00:17:13,839 --> 00:17:17,740
And so as you build up more conversation history, you'll actually be able to jump
364
00:17:17,740 --> 00:17:20,700
back to any prior conversation you've had with Claude code over here.
365
00:17:20,900 --> 00:17:22,680
You can do that both locally and then on the Web.
366
00:17:23,279 --> 00:17:26,519
I don't have access to either of these yet because I just set this up fresh for you
367
00:17:26,519 --> 00:17:29,700
guys. Underneath that, you have the Claude code logo.
368
00:17:30,220 --> 00:17:33,660
Underneath that, you have that cute little jellyfish or lobster, whatever the heck it
369
00:17:33,660 --> 00:17:36,380
is. Underneath, you have your little chat window.
370
00:17:36,519 --> 00:17:38,380
So here's where I can actually talk to Claude.
371
00:17:38,740 --> 00:17:40,619
Hey, Claude, what's up?
372
00:17:42,420 --> 00:17:46,660
Once we open this, you'll see that similarly to how we had before, we have that little
373
00:17:47,419 --> 00:17:48,460
accomplishing fidgeting, whatever.
374
00:17:48,519 --> 00:17:51,319
We have that little like process text come up.
375
00:17:51,700 --> 00:17:53,740
After that, you then have the response.
376
00:17:53,819 --> 00:17:56,480
The response comes in in this little window, although you'll see it's different when it
377
00:17:56,480 --> 00:17:58,200
accesses files and stuff like that.
378
00:17:58,700 --> 00:18:02,579
Underneath at the very bottom left hand corner, you have the various permission modes.
379
00:18:02,700 --> 00:18:05,279
Remember how earlier, Mindset dangerously skipped permissions?
380
00:18:05,579 --> 00:18:06,619
We can do the same thing here.
381
00:18:06,660 --> 00:18:10,119
If you just click on this, you can cycle through all of the different possible modes.
382
00:18:10,279 --> 00:18:12,839
And you see that little window around the chatbot also changes.
383
00:18:12,839 --> 00:18:17,619
So in my case, I'm asking before edits, which means because this is running locally on my
384
00:18:17,619 --> 00:18:22,240
computer, before it makes any changes to any local files, I'm going to say, hey, just ask
385
00:18:22,240 --> 00:18:24,640
me to make sure. Now, this is pretty safe.
386
00:18:24,720 --> 00:18:28,579
And a lot of people, especially coders and developers that are a little more old school,
387
00:18:28,640 --> 00:18:29,640
will usually work like this.
388
00:18:29,940 --> 00:18:33,779
But personally, given that when Claude's really in the thick of things, it's asking me for
389
00:18:33,779 --> 00:18:35,059
edits every five fricking seconds.
390
00:18:35,299 --> 00:18:39,000
If you really want to unlock that productivity, as I talked about before, you either use edit
391
00:18:39,000 --> 00:18:41,339
automatically or use bypass permissions.
392
00:18:41,339 --> 00:18:43,700
And I'll cover plan mode and whatnot later as well.
393
00:18:44,299 --> 00:18:48,339
To the right of that is, and this is kind of intimidating for some people to understand, but
394
00:18:48,339 --> 00:18:51,960
this is the file that is currently being fed in as context.
395
00:18:52,400 --> 00:18:55,279
So, for instance, do you see how here it says index.html?
396
00:18:55,559 --> 00:18:57,619
And if I click this, I get this little eye icon.
397
00:18:58,200 --> 00:19:02,500
Well, if I leave this open, basically Claude is currently looking at this file.
398
00:19:02,779 --> 00:19:05,980
So what file are you looking at right now?
399
00:19:07,279 --> 00:19:11,880
It'll now tell me that it's looking through the index.html that's open in my editor.
400
00:19:12,220 --> 00:19:15,740
It hasn't read through the contents yet because reading through the contents of this massive
401
00:19:15,740 --> 00:19:19,720
file would feed a fair amount of tokens into context, which would charge me a fair amount of
402
00:19:19,720 --> 00:19:21,299
money. So right now it's not doing any of that.
403
00:19:21,440 --> 00:19:23,960
But suffice to say, I can actually edit this in real time.
404
00:19:24,380 --> 00:19:28,859
Yes, change the title to Nick's YouTube example.
405
00:19:29,779 --> 00:19:32,180
And what it's going to do is it's going to go through my file.
406
00:19:32,519 --> 00:19:35,579
It's going to find the title, which is listed right over here.
407
00:19:35,579 --> 00:19:37,119
And then it's going to change that for me.
408
00:19:37,420 --> 00:19:40,940
This is an example of a really simple, easy and straightforward change.
409
00:19:41,160 --> 00:19:42,380
But I could do way more.
410
00:19:42,559 --> 00:19:45,839
I could refactor this whole thing from light dark mode to light mode.
411
00:19:46,059 --> 00:19:47,599
So I'm actually going to ask it to do so.
412
00:19:48,019 --> 00:19:51,559
Refactor this index.html from dark mode to light mode.
413
00:19:52,160 --> 00:19:53,940
And if you don't know what this means, it's OK.
414
00:19:53,980 --> 00:19:57,579
Bear with me. We're actually going to rebuild a whole app using Claude code and various
415
00:19:58,559 --> 00:19:59,819
design patterns in a moment.
416
00:19:59,839 --> 00:20:03,740
The first thing it'll do is it'll try planning out the changes that it's going to make.
417
00:20:03,740 --> 00:20:09,099
And so it's doing a bunch of programmatic adjacent things right now, like it's filtering out
418
00:20:09,099 --> 00:20:11,640
a bunch of different CSS snippets.
419
00:20:11,640 --> 00:20:13,000
It's doing a fair amount of work here.
420
00:20:13,279 --> 00:20:15,839
And you don't need to be a programmer to understand what's going on.
421
00:20:16,140 --> 00:20:20,079
We basically now given this a task, it's deconstructing the task into a list of high level steps.
422
00:20:20,359 --> 00:20:24,819
Then it's going to go through and it's actually going to present this plan to me for me to say yes or no to.
423
00:20:24,920 --> 00:20:29,279
Now you'll notice that when I did this, in addition to the interface changing and now the colors being blue,
424
00:20:29,579 --> 00:20:32,599
in the bottom right hand corner, we now have sort of a little pause button.
425
00:20:32,599 --> 00:20:38,339
This pause button is pretty important because it allows us to actually stop a Claude code execution in process,
426
00:20:38,339 --> 00:20:39,440
like while it's working.
427
00:20:39,740 --> 00:20:42,380
So I could theoretically change this at any point in time.
428
00:20:42,460 --> 00:20:47,660
OK, and I can actually pause it and then maybe I could give it some more instructions or, I don't know, tell it to do
429
00:20:47,660 --> 00:20:51,700
something differently. So I'm actually going to click this little button, then I'm going to go to bypass permissions.
430
00:20:51,839 --> 00:20:53,720
I'll say no plan, just do it.
431
00:20:54,599 --> 00:20:59,559
And what I've done is I've interrupted the process and the tool call, and now it's going to go through and instead of
432
00:20:59,740 --> 00:21:03,240
going to do this big fat plan, I'm just going to say it's the wild, wild west, buddy.
433
00:21:03,359 --> 00:21:05,099
Just get in there and start making some changes.
434
00:21:05,200 --> 00:21:08,200
When I did this, you'll notice that there's now a thinking tab that's open.
435
00:21:08,440 --> 00:21:14,900
If you click on this, you can actually peer into the internal thoughts of Claude as it goes through and
436
00:21:14,900 --> 00:21:16,059
accomplishes your request.
437
00:21:16,500 --> 00:21:20,480
So in this case, it said the user wants me to just refactor the dark mode to light mode without planning.
438
00:21:20,859 --> 00:21:24,400
Let me read the whole file, understand all the colors and then make the changes.
439
00:21:24,460 --> 00:21:29,720
And as you see, we just had some changes made, which is what this little blue thing is here, showing that we've
440
00:21:29,740 --> 00:21:31,259
made the changes.
441
00:21:31,680 --> 00:21:34,099
So immediately after thinking, it then did some more thinking.
442
00:21:34,900 --> 00:21:39,980
Then down at the very bottom, it's now updated a bunch of the sections of my code and it's continuing down some
443
00:21:39,980 --> 00:21:40,759
little to-do list.
444
00:21:41,160 --> 00:21:44,680
So this is how you interact with Claude code through the graphical user interface.
445
00:21:44,980 --> 00:21:49,160
And there are a couple of additional things, like you can click on this button to attach files and folders and use
446
00:21:49,160 --> 00:21:54,539
the browser. You can also check all of the commands here, which are pretty powerful stuff, and I'll cover them all in
447
00:21:54,539 --> 00:21:58,000
due time. So that's Claude code in Visual Studio code, VS code.
448
00:21:58,000 --> 00:22:01,259
Let's now cover how it looks in Anti-Gravity, how to set that up.
449
00:22:01,359 --> 00:22:04,759
And then immediately after, we're going to build an actual real web app using Claude code.
450
00:22:04,819 --> 00:22:06,779
As expected, Anti-Gravity is pretty similar.
451
00:22:06,920 --> 00:22:09,220
They have a website here called anti-gravity.google.
452
00:22:09,259 --> 00:22:10,799
It's very sexy and clean.
453
00:22:10,960 --> 00:22:12,759
Wouldn't be surprised they built this with agents.
454
00:22:13,019 --> 00:22:18,440
You just click download for whatever your specific operating system is, in my case, Mac OS with Apple Silicon.
455
00:22:18,440 --> 00:22:19,180
I'm going to give that a click.
456
00:22:19,660 --> 00:22:22,259
Then it'll go through that same process that we just did for VS code.
457
00:22:22,380 --> 00:22:27,480
Once you open up Anti-Gravity, it looks very similar to what we just saw a moment ago with VS code.
458
00:22:27,480 --> 00:22:29,519
And that's because the two are sort of built on each other.
459
00:22:29,759 --> 00:22:36,119
So just like VS code was both a file explorer, a file editor, a notepad and an agent manager.
460
00:22:36,359 --> 00:22:38,640
You can see here we have those three same ideas.
461
00:22:39,000 --> 00:22:40,500
On the left hand side, we're going to have the folders.
462
00:22:40,720 --> 00:22:44,859
On the middle, we're going to be able to edit the text of the files that we work with.
463
00:22:45,039 --> 00:22:47,000
And then on the right hand side, we can actually talk to agents.
464
00:22:47,180 --> 00:22:51,339
First thing I'm going to do is I'll click open folder and we'll go back to, I don't know, left click contact, just so you
465
00:22:51,339 --> 00:22:52,579
guys could see what we're dealing with.
466
00:22:52,859 --> 00:22:57,099
And you'll understand here that the UX is just slightly different than what we had earlier.
467
00:22:57,480 --> 00:22:58,819
You know, some things are indented.
468
00:22:59,000 --> 00:23:01,599
We have like some little cool symbols in the left hand side of the file.
469
00:23:01,859 --> 00:23:06,059
This isn't super important, but I just think Anti-Gravity looks cleaner, which is why I like using it.
470
00:23:06,359 --> 00:23:11,220
In the middle here, if I click this index.html, you'll see that we also have the text pop up just like we did earlier.
471
00:23:11,519 --> 00:23:16,480
And the only real difference between Anti-Gravity and VS code is just what we have in this right hand side.
472
00:23:16,740 --> 00:23:20,960
Earlier, we could have used Claude code really easily because there was an actual dedicated Claude code button.
473
00:23:21,200 --> 00:23:22,319
Right now there isn't.
474
00:23:22,420 --> 00:23:24,980
In order to access Claude code, assuming that you've installed it.
475
00:23:24,980 --> 00:23:27,259
So I had over here Claude code for VS code.
476
00:23:27,400 --> 00:23:28,940
Give that installation button a click.
477
00:23:29,359 --> 00:23:34,460
Assuming that we've installed it, we have to do instead is we have to double click somewhere here and then click on this little Claude icon.
478
00:23:34,720 --> 00:23:35,039
Okay.
479
00:23:35,339 --> 00:23:37,319
And then just delete the agent icon.
480
00:23:37,500 --> 00:23:40,099
And now you have the same layout that we had earlier in VS code.
481
00:23:40,160 --> 00:23:41,880
Just now you have it with Claude code.
482
00:23:42,380 --> 00:23:44,960
The reason why is just because Anti-Gravity is a Google product.
483
00:23:44,980 --> 00:23:47,259
So they try and push the Google Gemini series of models.
484
00:23:47,339 --> 00:23:48,680
That's what we had on the right hand side earlier.
485
00:23:48,880 --> 00:23:54,480
And to be clear, this is a Claude code specific course, but you can also use whatever model you want to do, whatever purpose.
486
00:23:54,480 --> 00:23:58,859
Like the model type is less important than just the fact that you're really good at using it and the fact that it's smart.
487
00:23:59,500 --> 00:24:00,900
So exact same layout here.
488
00:24:00,940 --> 00:24:01,940
Not going to cover it anymore.
489
00:24:02,140 --> 00:24:03,619
Let's get into actually building some stuff.
490
00:24:03,980 --> 00:24:09,660
So let's now build our very first app slash web page with Claude code.
491
00:24:10,220 --> 00:24:16,980
For simplicity sake, I'm starting with probably the most straightforward build, which is just going to be a web page.
492
00:24:17,240 --> 00:24:21,059
And we're not just going to do the hero header, which is the top or above the fold section.
493
00:24:21,079 --> 00:24:22,359
We're going to do the whole website.
494
00:24:23,159 --> 00:24:31,880
And the reason why I'm starting with this is because I just want everybody to understand how good Claude code and similar tools have gotten at being able to design high quality websites.
495
00:24:32,579 --> 00:24:34,859
This is a site up here called godly.website.
496
00:24:34,960 --> 00:24:38,400
And what it does is it basically just showcases really high quality design.
497
00:24:39,019 --> 00:24:51,339
And every single one of these, with maybe just a couple of exceptions, is now doable in probably, I want to say less than 10 minutes or so, front to back using Claude code.
498
00:24:51,899 --> 00:24:54,180
And this isn't me just pretending.
499
00:24:54,519 --> 00:24:57,099
This is something that I have done myself dozens of times.
500
00:24:57,220 --> 00:24:58,720
I've built really high quality websites.
501
00:24:58,799 --> 00:25:01,079
The other day I built like 15 or so for a project.
502
00:25:01,500 --> 00:25:02,819
They all look just like this.
503
00:25:03,380 --> 00:25:07,400
So award winning design, award winning app functionality and stuff like that.
504
00:25:07,640 --> 00:25:09,880
These are just a few of the things that you guys are going to learn today.
505
00:25:10,339 --> 00:25:17,759
In addition, you're also going to learn how Claude.md, which is the system brain file, affects your prompts.
506
00:25:17,759 --> 00:25:28,000
I'm going to run you guys through the three major ways that people currently design sites and the various ways that you guys could use these approaches to both design websites, apps, and more or less anything else you want.
507
00:25:28,359 --> 00:25:30,279
And then I'm also going to talk a little bit about deploying.
508
00:25:31,259 --> 00:25:33,460
So let's start with Claude.md.
509
00:25:33,799 --> 00:25:40,019
I have open in antigravity here, the same workspace that we were looking at before, with just a couple of changes.
510
00:25:40,559 --> 00:25:45,039
Namely, there's this node underscore modules folder here, which you guys don't have to pay attention to.
511
00:25:45,039 --> 00:25:51,380
This is automatically generated by Claude code every time we use a library or use some sort of NPM package.
512
00:25:52,240 --> 00:25:54,180
And then underneath we have Claude.md.
513
00:25:54,359 --> 00:25:59,140
Now Claude.md, as mentioned, is the brain of your workspace.
514
00:25:59,819 --> 00:26:07,819
To make it really, really simple and straightforward for you, because I think a lot of people misunderstand how Claude.mds work, let's just look at a hypothetical conversation.
515
00:26:08,759 --> 00:26:12,759
Over here, let's say you are on the right hand side.
516
00:26:12,759 --> 00:26:20,039
And so what you do is you say, hey, research X for me.
517
00:26:20,319 --> 00:26:25,099
Research, I don't know, the best trending posts on Twitter in my niche, whatever the heck.
518
00:26:25,740 --> 00:26:37,140
Right. And then what ends up happening is the model afterwards, Claude, whatever you're using, whether it's Opus 4.6 or 4.5 or Sonnet or Haiku, it'll respond to you in purple saying, share one moment.
519
00:26:37,579 --> 00:26:41,960
After it returns whatever you want, then you continue in this vein.
520
00:26:41,960 --> 00:26:45,380
And so what I'm trying to get at is there is a pattern here, right?
521
00:26:45,519 --> 00:26:49,839
There's user and then there's model and then there's user and then there's model.
522
00:26:51,299 --> 00:27:03,200
The way that the Claude.md prompt works is basically at the very first message, before you even get to that point, what's hidden from you is the fact that there's actually another prompt.
523
00:27:04,299 --> 00:27:04,500
Okay.
524
00:27:04,500 --> 00:27:10,779
This prompt is injected at the very top of your conversation string before you even send the first message.
525
00:27:11,460 --> 00:27:21,339
And so this Claude.md being sort of the very first thing that the model reads and sort of internalizes is really, really important to help steer the output of the ship.
526
00:27:21,799 --> 00:27:24,019
Now, what is steering the output of the ship?
527
00:27:24,559 --> 00:27:25,960
Well, I often use an analogy here.
528
00:27:26,299 --> 00:27:36,259
Let's say you're somewhere on the East coast of, you know, North America and you're trying to go to, I don't know, let's say the Westmost coast of Africa or something like that.
529
00:27:36,259 --> 00:27:39,400
As you guys know, these intervening distances are really huge.
530
00:27:39,480 --> 00:27:44,680
These are, I don't actually know how long it is, but probably at least 10,000 kilometers or so.
531
00:27:45,259 --> 00:27:51,799
Now, if you're a ship positioned right over here, okay, and this is your port and your goal port is over here.
532
00:27:53,119 --> 00:28:00,500
Let's hypothetically say you have limited ability to steer the ship for whatever reason, the steering wheel or whatever the ship equivalent is, it just doesn't really turn that much.
533
00:28:01,059 --> 00:28:13,319
What that means is if you wanted to make it as close as humanly possible to that X, what you would have to do logically is you'd have to make sure you're very, very accurate, at least when you leave the port.
534
00:28:14,359 --> 00:28:22,619
And the reason why is because if you're not, okay, if you give even a very slight range of possible, I want to say angles that you could go.
535
00:28:23,380 --> 00:28:30,680
Okay, it may not seem like that big of a difference if you go, you know, from this line to this line, at least initially, right?
536
00:28:30,819 --> 00:28:37,359
But over an intervening distance of tens of thousands of kilometers, obviously this goes a very, very long way away from what your goal is.
537
00:28:37,960 --> 00:28:49,099
And so steerability in AI is basically when you try and minimize the number of potential or the width of all of the potential options.
538
00:28:49,720 --> 00:28:57,259
And so what Claude.MD does is it allows you to take the space of like, you know, a really wide angle of ways that the AI could go.
539
00:28:57,579 --> 00:28:57,779
Okay.
540
00:28:57,779 --> 00:29:16,920
And it's like, I don't even know where that we're going to go if we take that topmost path and then compress it down into a much more likely subset of possible options that the AI could go such that, you know, if you were to be even slightly off here, the impact on your final destination, while, you know, you wouldn't make it to your goal.
541
00:29:17,099 --> 00:29:18,539
You'd still make it pretty close.
542
00:29:19,099 --> 00:29:30,539
So I want you to treat your Claude.MD as basically that initial trajectory that you launch all of your Claude sessions, whether in terminal or whether in the GUI tool, like I'm showing up here.
543
00:29:31,740 --> 00:29:43,660
So with that understood, now that we're on the same page about how Claude.MD is injected at the very front of any conversation, you start to realize that there's a tremendous amount of value in making that Claude.MD as high quality as possible.
544
00:29:43,660 --> 00:29:44,140
Okay.
545
00:29:44,859 --> 00:29:54,960
So including a file, capital C-L-A-U-D-E dot M-D in any workspace project directory means that this is now injected at the front of our conversation.
546
00:29:55,400 --> 00:29:59,539
And so you don't talk to this any differently than you would Claude itself.
547
00:29:59,859 --> 00:30:05,220
This is just a file that standardizes it and makes it really easy to build in like conventions for different workspaces.
548
00:30:05,940 --> 00:30:12,859
In such a file, you're going to want to be very concise, and you're also going to want to give it sort of the bounds of what this workspace is for.
549
00:30:12,859 --> 00:30:21,279
I could just as well actually copy this whole thing over, okay, and then paste this directly into my Claude code and then just get rid of my Claude.MD entirely.
550
00:30:21,920 --> 00:30:25,480
But the value in having a Claude.MD is I just don't have to do that every time.
551
00:30:25,779 --> 00:30:29,539
It's initialized very top of that conversation history like we just saw.
552
00:30:30,220 --> 00:30:33,259
And so what's in here, to be honest, is not super important.
553
00:30:33,460 --> 00:30:41,140
I actually had another version of Claude just develop this based off some Twitter posts that I saw that talked all about how to build websites with best practices.
554
00:30:41,140 --> 00:30:43,599
And you guys have access to all this stuff down below.
555
00:30:43,799 --> 00:30:48,019
I obviously have that template folder that you guys could use to get this and anything else.
556
00:30:48,859 --> 00:30:54,660
But suffice to say, this is how, or one of the ways rather, that you can currently design websites using Claude code.
557
00:30:55,700 --> 00:31:01,660
So the three major ways that people are currently using Claude code and other agents to do designs are as follows.
558
00:31:02,480 --> 00:31:09,380
The first is that you give it a pre-existing design and then you give it the ability to screenshot itself over and over and over and over again.
559
00:31:09,380 --> 00:31:16,339
And basically what happens is the first variant that they create that Claude code creates will be like an 80% match.
560
00:31:16,619 --> 00:31:24,740
Then it'll screenshot that, compare it directly to the source image and then list all the differences and then get 90% of the way there.
561
00:31:24,960 --> 00:31:26,720
And then it'll get 95% of the way there.
562
00:31:27,019 --> 00:31:30,599
And it usually can't get 100% of the way there, but it can get like 99% of the way.
563
00:31:31,299 --> 00:31:36,019
The value in this sort of approach is what we're doing is we're basically taking an inspiration website.
564
00:31:36,180 --> 00:31:38,500
And so in our case, we're going to be using it on this site here.
565
00:31:38,500 --> 00:31:42,420
And then we're using that to template out a bunch of like design fundamentals.
566
00:31:42,420 --> 00:31:46,059
So like the size of the text, the colors, the way the buttons look and stuff.
567
00:31:46,440 --> 00:31:51,519
And then what you do is you just change the content of the site with Claude so that it's like whatever site you want it to make.
568
00:31:51,859 --> 00:31:54,099
So in my case, you know, I run this business called LeftClick.
569
00:31:54,119 --> 00:31:55,599
This is my automation agency.
570
00:31:55,980 --> 00:32:00,720
You know, we help people install growth systems into their businesses, typically B2B agencies.
571
00:32:01,059 --> 00:32:04,960
So what I would do is I would basically try and rebuild this site using this design.
572
00:32:05,279 --> 00:32:07,480
And, you know, I could make some minor changes afterwards.
573
00:32:07,480 --> 00:32:11,140
But so long as I start with this nugget, Claude tends to do a really good job afterwards.
574
00:32:12,180 --> 00:32:15,900
The second way to build is you basically just give it a massive voice transcript dump.
575
00:32:16,380 --> 00:32:22,759
For those of you that didn't know, there are now ways for us to basically dump like a larger amount of text using a voice transcript tool.
576
00:32:23,099 --> 00:32:24,140
I'll show you guys what that looks like now.
577
00:32:24,140 --> 00:32:27,779
But if I just hold this FN key, this little widget appears in the bottom of my screen.
578
00:32:28,099 --> 00:32:29,619
Now, this is listening to everything that I say.
579
00:32:29,740 --> 00:32:34,700
And because I can speak a lot faster than I can type, I can actually say a fair amount of pretty short period of time.
580
00:32:34,700 --> 00:32:39,519
Most people type between 50 to maybe 70 words a minute, but we talk closer to 200 words a minute.
581
00:32:39,700 --> 00:32:41,680
That's a two and a half to maybe three X improvement.
582
00:32:42,119 --> 00:32:48,559
And because these models are so intelligent and smart and capable of extracting the meaning from the text, you know, text is all they look at all day long.
583
00:32:49,119 --> 00:32:55,700
What you could do is you could just use a massive voice transcript dump to basically spell out everything that you want on the website.
584
00:32:56,220 --> 00:32:59,579
This isn't going to one shot your website because we don't have a pre-existing design.
585
00:32:59,759 --> 00:33:01,319
But then you can just go back and forth with it.
586
00:33:01,319 --> 00:33:05,420
And then in a fraction of the time of developing a real website, using a voice transcript tool, you can get pretty close.
587
00:33:06,359 --> 00:33:09,680
The third major way people are currently designing is they use components.
588
00:33:10,180 --> 00:33:22,819
Now, for anyone here unsure of what components are, basically there are now services and tools out there like 21st.dev where designers have created specific components on websites.
589
00:33:23,380 --> 00:33:28,980
And there are features on these where you can actually click on it and then click on this button up here, copy prompt.
590
00:33:28,980 --> 00:33:38,579
Okay. And then it will take this entire web page, entire design, you know, this little animation flickering thing, this jump on a call button, the sign up here about whatever.
591
00:33:38,779 --> 00:33:43,619
And then it'll copy all the text needed to have Claude code reproduce that for you.
592
00:33:43,700 --> 00:33:45,539
And so it's really straightforward and simple.
593
00:33:45,640 --> 00:33:46,980
You just make an account of one of these services.
594
00:33:47,180 --> 00:33:52,720
And then let's say you're building a website, you scroll through and you're like, wow, I really like this background paths component, right?
595
00:33:52,720 --> 00:33:54,480
With these cool sweeping things.
596
00:33:54,500 --> 00:33:55,460
I want that on my website.
597
00:33:55,460 --> 00:34:00,119
You just copy the prompt, paste it into Claude code and say, hey, install this thing somewhere up at the top.
598
00:34:00,960 --> 00:34:04,160
Because AI is great at language, you know, you can get pretty close.
599
00:34:04,500 --> 00:34:05,859
So you can do all sorts of things with this.
600
00:34:05,920 --> 00:34:07,660
You could do like cool button borders.
601
00:34:07,700 --> 00:34:10,719
As we see here, you could have like a sign in component over here.
602
00:34:10,880 --> 00:34:12,199
You get a multiple cards.
603
00:34:12,940 --> 00:34:13,880
You know, this stuff is okay.
604
00:34:14,059 --> 00:34:22,300
To be honest, I find it much easier just to go straight to number one, which is just giving it a design and a screenshot loop and just having it work off of something pre-existing.
605
00:34:22,800 --> 00:34:25,019
I don't want you guys to think of this as like you copying a design.
606
00:34:25,019 --> 00:34:37,980
As you'll see, the end result will be quite different from this, but it's just a good way for you to like, get a rough idea of the end design and also not have to worry about things like the sizes of fonts, you know, the, the colors and so on and so forth.
607
00:34:38,460 --> 00:34:38,619
Okay.
608
00:34:38,619 --> 00:34:40,719
So we're basically going to use this as like our inspiration.
609
00:34:41,059 --> 00:34:47,900
And then once we have our inspiration in place, Claude's going to be able to design whatever we want, whether it's an app or a dashboard or whatnot, very, very quickly.
610
00:34:48,019 --> 00:34:53,239
The final thing that I have to talk about before we actually do the designing is the difference between building something and then deploying.
611
00:34:53,719 --> 00:34:56,920
So when you build something, you're typically building it locally.
612
00:34:57,500 --> 00:35:05,039
When you do a tool, an automation, like we're going to do later on in the course or an app or a website, you know, we're running this thing on our local computer.
613
00:35:05,260 --> 00:35:08,900
But if we want other people to be able to access it, then obviously we need to deploy it.
614
00:35:08,900 --> 00:35:12,519
We need to push it onto the internet and the variety of different tools that allow you to do so.
615
00:35:12,900 --> 00:35:15,139
So today I'm just going to show you how to build the stuff.
616
00:35:15,260 --> 00:35:22,699
And then over the course, the next few modules, as we get deeper and deeper into your course, I'll also talk a little bit about tools like Netlify, Roussel, Modal and whatnot.
617
00:35:22,699 --> 00:35:35,320
That allow you to pull to push both your software, the tools that you make, and then even things like websites and full fledged apps to the cloud so that other people can access it on a domain like, you know, Nick's awesome tool.com.
618
00:35:35,360 --> 00:35:38,679
Okay, so without further ado, how would I actually go about this design process?
619
00:35:38,960 --> 00:35:51,099
Well, as mentioned, I had this Claude.MD file set up here, and this is just something that I had Claude basically scrape through Twitter to find me the best practices of all of the different types of website designs out there that people are currently using Claude and other tools to create.
620
00:35:51,099 --> 00:35:54,920
And then I just had to like, write me a little script, basically a little summary.
621
00:35:55,340 --> 00:35:58,699
And this is very squarely this give it a design screenshot loop.
622
00:35:58,699 --> 00:36:00,440
It's just written in like a very particular way.
623
00:36:00,780 --> 00:36:02,199
You do not need to know how the tools work.
624
00:36:02,260 --> 00:36:03,199
You don't need to know how anything works.
625
00:36:03,300 --> 00:36:08,239
You basically just need to know how to like, find a resource out there or use AI to find a resource and then use it to make your own Claude.MD.
626
00:36:08,820 --> 00:36:12,400
With that in mind, what I'm going to do now is I'm actually just going to go on the website that I want.
627
00:36:12,420 --> 00:36:13,519
I'm going to screenshot it.
628
00:36:13,780 --> 00:36:20,659
However, if you guys aren't familiar, you know, if I just screenshot like one section of the site, like this, for instance, on Mac, then I feed it in.
629
00:36:20,659 --> 00:36:22,760
You know, I don't actually have most of the site, right?
630
00:36:22,760 --> 00:36:23,659
I only have that hero header.
631
00:36:24,119 --> 00:36:31,420
OK, in terms of how to actually build this puppy, use command shift I or right click on the page and then type inspect.
632
00:36:32,159 --> 00:36:35,019
This will open up a window that looks something like this.
633
00:36:35,360 --> 00:36:39,679
Once you're done, change the dimensions to full page width on desktop.
634
00:36:39,719 --> 00:36:41,500
That's usually 1920 by 1080.
635
00:36:41,820 --> 00:36:44,400
This is termed the widescreen aspect ratio.
636
00:36:44,780 --> 00:36:46,840
Then just hold command shift P.
637
00:36:46,900 --> 00:36:48,579
I think it's control shift P on Windows.
638
00:36:48,599 --> 00:36:50,320
You'll open up this little command bar.
639
00:36:50,320 --> 00:36:55,199
With this command bar in place, you can then just type in screenshot and then go capture full size screenshot.
640
00:36:55,420 --> 00:36:58,640
It'll actually scroll through the whole site and take an entire screenshot for you.
641
00:36:59,340 --> 00:37:04,280
If I click on this button now, as you guys could see, we now have a screenshot of the entire website, top to bottom.
642
00:37:04,719 --> 00:37:05,460
It's kind of a hack.
643
00:37:05,679 --> 00:37:07,559
Not a lot of people realize that you can do this, but you can.
644
00:37:07,619 --> 00:37:08,179
It's pretty neat.
645
00:37:08,679 --> 00:37:10,579
And once we have this, we just have to do one more thing.
646
00:37:10,780 --> 00:37:11,900
It's pretty big right now.
647
00:37:11,920 --> 00:37:18,739
If you were to send Claude Code, you know, like 20 megabytes or something like that, a file, number one, it would like really massively eat up your token limits.
648
00:37:18,739 --> 00:37:21,900
And then two, I think the API might have like a limit on this.
649
00:37:21,960 --> 00:37:24,119
We just have to make this file significantly smaller.
650
00:37:24,340 --> 00:37:31,199
So I'm just going to open up this resize PNG file here, a page called resize PNG from I love image.com.
651
00:37:31,260 --> 00:37:32,380
You can use whatever the heck you want.
652
00:37:32,880 --> 00:37:34,719
And I'm just going to drag and drop this in.
653
00:37:34,739 --> 00:37:35,019
I don't know.
654
00:37:35,079 --> 00:37:39,579
50% smaller, even like 75% smaller and then click resize images.
655
00:37:39,659 --> 00:37:42,000
This is now going to basically re-map this for us.
656
00:37:42,000 --> 00:37:42,900
You can click download.
657
00:37:43,639 --> 00:37:46,500
What we're looking for is we're looking to get a file that's less than about.
658
00:37:46,500 --> 00:37:50,739
I want to say, I think like four or five megabytes or so.
659
00:37:51,019 --> 00:37:52,199
So it's not perfect.
660
00:37:52,400 --> 00:37:52,539
Okay.
661
00:37:52,539 --> 00:37:54,340
It's a little bit blurry, but it's all right.
662
00:37:54,599 --> 00:37:59,539
I'm just going to go back and resize this one more time so that it's, I don't know, maybe a little bit bigger.
663
00:37:59,780 --> 00:38:01,900
Let's do 50% smaller instead of 75%.
664
00:38:01,900 --> 00:38:02,079
Okay.
665
00:38:02,079 --> 00:38:04,139
Once we're done, we can click download resized images.
666
00:38:04,860 --> 00:38:06,420
This one is about four megabytes or so.
667
00:38:06,440 --> 00:38:12,400
If we open it up, you could see that it's still high quality, but it's much, much smaller than the other file, which is like three or four times.
668
00:38:12,940 --> 00:38:14,639
And now that we're done, we just add this into Claude Code.
669
00:38:14,639 --> 00:38:16,719
So back to our Claude Code instance.
670
00:38:16,739 --> 00:38:18,539
I'm going to go down here to bypass permissions.
671
00:38:19,219 --> 00:38:20,579
Then I just need to go find the file.
672
00:38:20,599 --> 00:38:25,659
So I'm going to click this top right hand corner and I'm just going to see if I can drag this in directly.
673
00:38:26,440 --> 00:38:27,579
So it's going to open this up.
674
00:38:27,579 --> 00:38:28,039
That's okay.
675
00:38:28,119 --> 00:38:32,920
Just zoom in, copy, and then you can actually paste this in directly.
676
00:38:34,199 --> 00:38:34,320
Okay.
677
00:38:34,320 --> 00:38:38,260
So just click that copy button, paste it, and then you actually have the whole file as context.
678
00:38:38,440 --> 00:38:38,739
Okay.
679
00:38:38,739 --> 00:38:39,980
And then we just have to do one more thing.
680
00:38:39,980 --> 00:38:41,360
We're just going to head back to the website.
681
00:38:41,360 --> 00:38:48,159
I'm going to find actual and then scroll down to this little body tag and then right click and press copy styles.
682
00:38:48,760 --> 00:38:55,219
This is going to copy the styles of the site, including the button colors and sort of like the little gradients in the background and so on and so forth.
683
00:38:55,420 --> 00:38:56,120
You can paste that in.
684
00:38:56,880 --> 00:38:57,199
Okay.
685
00:38:57,500 --> 00:38:59,119
And then I'm just going to press enter.
686
00:39:00,039 --> 00:39:09,460
Now that we've uploaded these, keep in mind that despite the fact that this might mean nothing to you or I, keep in mind that there's that extra prompt that's been injected up at the top.
687
00:39:09,460 --> 00:39:15,920
That literally says when the user provides a reference image screenshot and optionally some CSS classes or style notes, you should generate a website.
688
00:39:16,880 --> 00:39:18,480
So that's what it's doing immediately.
689
00:39:18,679 --> 00:39:21,480
It's analyzing the reference image and building this website recreation.
690
00:39:21,980 --> 00:39:24,079
Let me start by creating the actual HTML file.
691
00:39:24,679 --> 00:39:35,360
So this will now walk through its own little to-do list, take screenshots of its created website, compare it with round one, basically do the same thing over and over and over and over again, until it gets to where we want it to go.
692
00:39:35,360 --> 00:39:41,599
And this is really what I'd consider to be the core building philosophy for Claude code.
693
00:39:41,960 --> 00:39:46,119
What you do is you basically give it a high level task, which in our case we did with the Claude.MD.
694
00:39:47,139 --> 00:39:56,000
Then we allow it to do the task and then we allow it to verify or basically judge its results.
695
00:39:56,859 --> 00:40:07,280
I think the reason why a lot of people end up sucking at Claude code or maybe they end up giving it instructions and then not being satisfied with those results is they'll just give it the task and then it'll do the task.
696
00:40:07,599 --> 00:40:09,739
And then their loop is kind of like this, right?
697
00:40:09,760 --> 00:40:12,760
Task, do the task, give it another task, do the task, so on and so on and so forth.
698
00:40:13,260 --> 00:40:25,980
If you don't give Claude code the ability to verify its own results, either visually through a screenshot tool, or if you're building some sort of software through like automated testing mechanisms and so on and so forth, test driven development, then you lose like the vast majority
699
00:40:26,000 --> 00:40:27,380
of the value of AI.
700
00:40:27,940 --> 00:40:35,000
The reality is AI is not going to be perfect the very first time, but the value of AI is not in its ability to one shot everything 100%.
701
00:40:35,000 --> 00:40:39,679
The value of AI is its speed because you can have it get to 80%.
702
00:40:39,679 --> 00:40:42,659
Let's say this is like a, I don't know, a little quality bar or something.
703
00:40:45,179 --> 00:40:50,780
You know, what you can do is you can immediately, you know, it's not just going to be like, this is time step one, two, three.
704
00:40:50,820 --> 00:40:52,960
It's not just immediately going to be at 100%, right?
705
00:40:53,360 --> 00:40:54,460
That's just, that's not what it does.
706
00:40:54,460 --> 00:40:57,860
It's not going to go from here to here in like two seconds, then be done.
707
00:40:58,460 --> 00:41:03,500
What it is going to do though, is it's very quickly going to start here.
708
00:41:04,500 --> 00:41:05,500
Then it'll go here.
709
00:41:05,880 --> 00:41:06,739
Then it'll go here.
710
00:41:06,960 --> 00:41:07,699
It'll go here.
711
00:41:07,820 --> 00:41:12,639
And then eventually after two or three or four time steps, it'll, it'll hit that 100%.
712
00:41:13,079 --> 00:41:15,760
And you know, we think that this is a really long period of time.
713
00:41:15,940 --> 00:41:16,179
Okay.
714
00:41:17,159 --> 00:41:19,500
But in reality, this is like five minutes.
715
00:41:19,500 --> 00:41:28,139
And if you contrast this with how long it would take a human to do that same, you know, approach, you know, humans will probably yet closer to 100% quality on their very first go.
716
00:41:28,460 --> 00:41:29,820
But it's not going to be like a minute or two.
717
00:41:29,900 --> 00:41:33,219
What this is going to be is it's going to be like, I don't know, five hours.
718
00:41:34,059 --> 00:41:37,260
You know, we actually believe it or not, tend to be a lot more precise than these machines that we've built.
719
00:41:37,780 --> 00:41:46,420
We can one shot things to a much greater degree than they can, but their ability to test and then retest and work really, really quickly orders of magnitude times faster than we do is the real value.
720
00:41:46,440 --> 00:41:48,519
And that's something that I don't think enough people talk about.
721
00:41:48,519 --> 00:41:53,340
So just make sure there's always a task, do the task and then verify the results loop somewhere in here and you'll be fine.
722
00:41:53,400 --> 00:42:00,400
Now heading back to our, um, plot code instance, you could see it's now actually completed the first round of its HTML.
723
00:42:01,079 --> 00:42:02,900
Now it's, um, screenshotted it as well.
724
00:42:02,940 --> 00:42:07,139
And then it's basically comparing the screenshot to the work that it's generated.
725
00:42:07,460 --> 00:42:10,059
And with this, it's going to make minor changes.
726
00:42:10,420 --> 00:42:17,739
So as you see, the very first thing it's done is it's replicated to get paid the same day by setting a payment link or the most flexible invoice in the planet with the buttons and so on and so forth.
727
00:42:17,900 --> 00:42:18,139
Okay.
728
00:42:18,139 --> 00:42:29,519
It's also replicated that top section and it's used little placeholders here with these 160 times a hundred little buttons, even with like the right tilt and whatnot, because it doesn't have access to the images.
729
00:42:30,320 --> 00:42:33,639
It then is, uh, you know, entering these little divs, right?
730
00:42:33,760 --> 00:42:36,159
It's even got this cool little post-it note, which is really cool.
731
00:42:36,159 --> 00:42:37,139
And then it even has the reviews.
732
00:42:37,539 --> 00:42:41,119
And so as sort of like rebuilding the design of this website, it's doing a really good job.
733
00:42:41,119 --> 00:42:46,139
And we're only a couple of minutes in what's cool too, is if you check out the thinking tab, you can see that it's gone through.
734
00:42:46,139 --> 00:42:48,199
Iteratively every section of the site.
735
00:42:49,039 --> 00:42:49,199
Okay.
736
00:42:49,280 --> 00:42:51,480
And it's, um, you know, listing what it needs to do next.
737
00:42:51,579 --> 00:42:57,480
So better decorative elements and hero, better floating band, fixing the blue dot positioning, improving the invoice cards with map thumbnails.
738
00:42:57,940 --> 00:43:00,659
I don't know what half of this stuff means, but to be honest for me, it's not super important.
739
00:43:00,739 --> 00:43:05,320
Just because I want it to be a little bit special and then show you the parallel capacity of Claude Code.
740
00:43:05,659 --> 00:43:08,780
What I've done here is I've actually opened up another anti-gravity instance.
741
00:43:08,980 --> 00:43:12,980
And what I'm going to show you guys how to do is actually design multiple of these simultaneously.
742
00:43:12,980 --> 00:43:19,579
Once we built this test, this do test, and then verify loop over and over and over again, which we already have in our cloud.
743
00:43:19,739 --> 00:43:25,360
M D it's actually really easy to spin up multiple prompts and just have like 10 versions of cloud working on things simultaneously.
744
00:43:26,199 --> 00:43:30,440
So just for shits and giggles, why don't we head back over to our little website designer?
745
00:43:30,440 --> 00:43:32,639
It's that giving me a file here called twin gate.
746
00:43:32,639 --> 00:43:32,840
Okay.
747
00:43:32,840 --> 00:43:35,960
And then I'm pasting it all in and then my computer's really humming.
748
00:43:36,079 --> 00:43:41,380
Like, uh, you guys probably can't hear this cause I like to noise cancel most things, but it's making some noise.
749
00:43:41,380 --> 00:43:48,059
And the reason why is because I now have two of these instances running simultaneously, both developing me a website on the left hand side of things.
750
00:43:48,139 --> 00:43:49,460
Just expand this.
751
00:43:49,900 --> 00:43:58,639
Um, we see that it's taken multiple screenshots, the screenshot one screenshot, two screenshot, three, you guys see how it's getting closer and closer and closer to the end result.
752
00:43:58,980 --> 00:44:00,579
Well, now it's doing some final editing.
753
00:44:00,820 --> 00:44:03,320
It's making some features thumbnails better on the right hand side.
754
00:44:03,400 --> 00:44:06,659
It's now going through the initial development of that new index.html.
755
00:44:06,659 --> 00:44:15,739
And so because you can run as many clod instances as you have tokens, basically, um, I can run as many of these website designers simultaneously in however many tabs I want.
756
00:44:15,940 --> 00:44:17,619
And this isn't even the most efficient way to do this.
757
00:44:17,619 --> 00:44:23,860
I'm going to show you guys a much more effective terminal management structure that'll allow you to do like five or 10 or 20 of these simultaneously.
758
00:44:24,000 --> 00:44:24,119
Okay.
759
00:44:24,119 --> 00:44:25,500
And the left hand side, it's now saying it's done.
760
00:44:25,579 --> 00:44:27,659
So I'm going to say open index.html.
761
00:44:27,800 --> 00:44:29,900
That's always just going to be the actual website file.
762
00:44:29,940 --> 00:44:32,880
And if you just tell it to open it, it's going to go through and do so in a tab for you.
763
00:44:33,320 --> 00:44:33,539
Okay.
764
00:44:33,539 --> 00:44:36,619
And here is the demo of the website that we put together.
765
00:44:36,780 --> 00:44:37,800
So, I mean, it's not perfect.
766
00:44:37,860 --> 00:44:40,179
It's not everything that I want, but it's good enough for us to start.
767
00:44:40,300 --> 00:44:42,920
So what I'll do now is I'll go back and I'll have it recreate left click.
768
00:44:44,179 --> 00:44:45,960
Hey, this is looking pretty solid so far.
769
00:44:46,079 --> 00:44:49,440
I'd like you to check out left click dot AI.
770
00:44:49,619 --> 00:44:50,820
That's my personal website.
771
00:44:51,039 --> 00:44:58,099
And what I want you to do is to design, uh, or take the information from left click dot AI and then insert it into this website.
772
00:44:58,340 --> 00:45:01,900
I don't want this to be a clone of left click dot AI, but I want it to be pretty close.
773
00:45:01,900 --> 00:45:07,480
Use the formatting and everything that you've developed so far to help place elements and stuff like that as necessary.
774
00:45:08,039 --> 00:45:12,599
Um, insert images as well and make sure that any elements that, um, are there look good.
775
00:45:12,860 --> 00:45:19,000
Continue doing a screenshot loop if necessary until you have something that looks very high end, very professional and minimalistic, just like you've already developed.
776
00:45:19,300 --> 00:45:19,739
Okay.
777
00:45:19,760 --> 00:45:21,679
So I just fed in a bunch of information.
778
00:45:22,159 --> 00:45:25,659
Now it's going to go through, fetch the content from left click, and then help me design the site.
779
00:45:26,039 --> 00:45:29,219
On the right hand side, we're creating that initial index.html.
780
00:45:29,219 --> 00:45:33,679
Now in this case, I obviously did the two website design simultaneously manually.
781
00:45:34,139 --> 00:45:38,019
Uh, but what you can do is you could actually work this into your website or app design process.
782
00:45:38,300 --> 00:45:51,019
You'd actually have it take in, let's say three different examples of, uh, templates or of design inspirations, whether from godly.website or from, I don't know, dribble or one of these big design aggregators.
783
00:45:51,179 --> 00:45:55,340
And then in the cloud.md, you could say, Hey, actually, we need to develop three versions of this.
784
00:45:55,340 --> 00:46:10,800
Then you can give it some source and then you could actually just like, let it do its little test verification retry loop before giving it, you know, a source website, like in my case left, quick.ai to have it like do some modifications or maybe just doing a big voice dump of what your website is, what it's for the various audiences you serve and stuff.
785
00:46:11,079 --> 00:46:17,699
And then at the end, you could actually have three websites simultaneously that cloud presents to you after five or 10 minutes and says, which one do you like the best?
786
00:46:17,920 --> 00:46:19,440
The options here are virtually unlimited.
787
00:46:19,699 --> 00:46:24,300
The other, uh, website developer so far has made this, which actually looks pretty reasonable.
788
00:46:24,300 --> 00:46:26,920
You could see that there's still some things that it needs to change.
789
00:46:27,239 --> 00:46:29,059
Some of the text looks like it's placed weirdly.
790
00:46:29,159 --> 00:46:30,699
Some of the blog posts and stuff like that.
791
00:46:31,139 --> 00:46:33,300
Obviously the development is mostly hands off at this point.
792
00:46:33,320 --> 00:46:34,619
I'm just monitoring it.
793
00:46:34,739 --> 00:46:39,179
And on the left-hand side, we've now taken four screenshots of this and gotten really, really close to that.
794
00:46:39,219 --> 00:46:42,500
And result, um, it's now building like the left click site itself.
795
00:46:42,760 --> 00:46:45,940
Most of the time, I don't actually care too much about what's in the file explorer.
796
00:46:46,179 --> 00:46:50,119
Um, so that is the third panel on the left-hand side of both of these windows.
797
00:46:50,400 --> 00:46:52,840
So for simplicity, what I do is actually just close it out.
798
00:46:52,840 --> 00:46:57,019
And then I usually have on the right-hand side, some sort of output that AI has generated me.
799
00:46:57,480 --> 00:47:00,719
And then on the left-hand side, I just have my actual little chat window.
800
00:47:01,119 --> 00:47:02,880
I'm just going to zoom out just a tiny bit here.
801
00:47:02,920 --> 00:47:04,320
So we're still all on the same page.
802
00:47:04,420 --> 00:47:05,199
We could see everything.
803
00:47:05,739 --> 00:47:09,559
Uh, and then that way I can now just orchestrate and kind of take a step back and see how things go.
804
00:47:10,000 --> 00:47:12,119
The left click design is also starting to come together.
805
00:47:12,179 --> 00:47:16,420
As you could see, we've taken that initial website from actual as inspiration.
806
00:47:16,539 --> 00:47:20,780
So we have like the same sort of buttons and the nice rounding, nice hover effects on things.
807
00:47:20,800 --> 00:47:21,820
And then obviously we have the font.
808
00:47:21,820 --> 00:47:24,900
Uh, but then now we've actually replaced it with left click content.
809
00:47:25,539 --> 00:47:28,659
So the definitive AI growth partner for fast moving B2B companies, tens of millions of dollars
810
00:47:28,659 --> 00:47:31,480
generated and more saved, proprietary systems, real revenue, no fluff.
811
00:47:31,900 --> 00:47:32,800
So we scroll through here.
812
00:47:32,860 --> 00:47:35,739
You can see it's even inserted like a little a button and click video element.
813
00:47:36,099 --> 00:47:38,059
We all have our case studies down below.
814
00:47:38,480 --> 00:47:41,579
We have some pictures of me and my business partner, although we're kind of cut off at the
815
00:47:41,579 --> 00:47:43,300
middle of the head, so we could probably fix that.
816
00:47:43,559 --> 00:47:46,340
And, uh, yeah, we've even got some testimonials, which is really, really clean.
817
00:47:46,719 --> 00:47:48,039
Let's see what happens if I click this button.
818
00:47:48,539 --> 00:47:48,860
Oh, nice.
819
00:47:48,860 --> 00:47:50,340
It's even gone to our discovery page.
820
00:47:50,340 --> 00:47:53,940
We were actually like having button click functionality and stuff like that in here as
821
00:47:53,940 --> 00:47:54,280
well.
822
00:47:54,460 --> 00:47:55,940
Kind of curious what happens if I click on this.
823
00:47:56,139 --> 00:47:56,300
Okay.
824
00:47:56,360 --> 00:47:58,400
Nothing so far, but maybe I can tell it to do stuff.
825
00:47:58,880 --> 00:48:00,519
We also have an about, and then we have a case studies.
826
00:48:00,679 --> 00:48:01,380
That's really nice.
827
00:48:01,719 --> 00:48:04,739
So yeah, I mean, things are progressing more or less exactly like we wanted them to.
828
00:48:04,800 --> 00:48:06,980
We even have our little logo from here on out.
829
00:48:07,000 --> 00:48:10,420
I'm just making minor changes and, um, you know, going to go back and forth with it until
830
00:48:10,420 --> 00:48:11,059
I get what I want.
831
00:48:11,480 --> 00:48:14,840
So on the left hand side, I'm just going to voice dump in my voice transcription tool.
832
00:48:14,940 --> 00:48:15,840
I can do this like this.
833
00:48:17,480 --> 00:48:18,840
I really like the output.
834
00:48:18,840 --> 00:48:22,519
I think the logo in the top left hand corner is a little too big.
835
00:48:22,619 --> 00:48:23,360
Make that smaller.
836
00:48:23,980 --> 00:48:27,159
The bolding of the hero header font is also quite strong.
837
00:48:27,739 --> 00:48:33,079
See if we could try a Sarah font instead of a sans Sarah font underneath the introducing
838
00:48:33,079 --> 00:48:34,099
left click section.
839
00:48:34,619 --> 00:48:40,780
We have a button player over the picture of myself and Alex Ramose and Sam Evans.
840
00:48:40,940 --> 00:48:43,119
But when I click on this, nothing happens.
841
00:48:43,559 --> 00:48:48,179
Either turn this into a light box or eliminate that little button in the middle.
842
00:48:48,739 --> 00:48:50,460
The rest of these look great.
843
00:48:51,019 --> 00:48:55,980
My and Noah's profile pictures are currently cut off at around the middle of our foreheads.
844
00:48:56,039 --> 00:49:01,039
So move us down and zoom out of the photo slightly so that we're perfectly centered in
845
00:49:01,039 --> 00:49:04,179
frame and everything else here looks great.
846
00:49:05,000 --> 00:49:09,619
Meanwhile, on the right hand side, we see this index.html is now done so we can open
847
00:49:09,619 --> 00:49:10,199
this up.
848
00:49:10,559 --> 00:49:12,159
I'll say open in Chrome.
849
00:49:13,139 --> 00:49:15,900
That's not going to open up the other version of that website for me.
850
00:49:15,940 --> 00:49:17,820
And it's looking like it's pretty clean.
851
00:49:17,820 --> 00:49:19,420
It's pretty matched with what we have.
852
00:49:19,900 --> 00:49:23,260
So because I want to do the same thing that I did with the other source, I'm just going
853
00:49:23,260 --> 00:49:26,860
to scroll back up to where I gave it the instructions to basically copy over left click.
854
00:49:27,719 --> 00:49:29,480
And then I'm just going to paste this in.
855
00:49:30,179 --> 00:49:33,280
And now I have this also customizing the site to my specs.
856
00:49:33,539 --> 00:49:35,639
You don't have to develop in multiple tabs.
857
00:49:35,880 --> 00:49:40,960
This is something that I think you learn how to do the more of these Claude code agents,
858
00:49:41,179 --> 00:49:42,360
frankly, that you're orchestrating.
859
00:49:42,900 --> 00:49:46,840
The benefit to this is obviously you can develop basically however many times faster as
860
00:49:46,840 --> 00:49:47,659
tabs that you have open.
861
00:49:47,820 --> 00:49:50,739
But the downside is you also tend to context switch a fair bit.
862
00:49:51,179 --> 00:49:54,860
The number one thing that you don't want Claude code to do is basically just sit around
863
00:49:54,860 --> 00:49:56,019
waiting for your instructions.
864
00:49:56,400 --> 00:50:00,099
So if you are going to do it this way, just be honest with yourself and ask yourself
865
00:50:00,099 --> 00:50:02,940
whether or not there's always like Claude code operating in the background.
866
00:50:03,119 --> 00:50:07,300
I find if it's not running because it's waiting for you for more than maybe 10 or 20
867
00:50:07,300 --> 00:50:09,400
percent of the time, you probably have too many tabs open.
868
00:50:09,920 --> 00:50:12,300
Personally, I cap out at about three or four.
869
00:50:12,380 --> 00:50:15,159
Depends on how intellectually heavy the things that I'm building are.
870
00:50:15,460 --> 00:50:16,739
And, you know, it's a learned skill.
871
00:50:16,739 --> 00:50:18,460
It's not something you're going to figure out right away.
872
00:50:18,880 --> 00:50:21,440
There's a fair amount of like remembering that you have to do as well.
873
00:50:22,079 --> 00:50:24,719
I've built a couple of things to help me build things faster.
874
00:50:24,880 --> 00:50:25,840
One of them is a little hook.
875
00:50:25,980 --> 00:50:29,199
That's a chime that keeps on going off that you've probably been like, hey, what the
876
00:50:29,199 --> 00:50:29,820
heck is that thing?
877
00:50:30,320 --> 00:50:31,400
That's something that you can do.
878
00:50:31,500 --> 00:50:33,460
And I'll show you guys how to do a little bit later on in the course.
879
00:50:33,800 --> 00:50:37,699
With that knowledge, you can basically set different chimes for different windows.
880
00:50:38,000 --> 00:50:41,760
And when chime one plays, for instance, you know that your top left window is done.
881
00:50:41,800 --> 00:50:43,960
So you can go give it some more instructions, look at the results.
882
00:50:43,960 --> 00:50:47,480
When chime two plays, you know, you can go to the top right window and do some work
883
00:50:47,480 --> 00:50:48,260
there as well.
884
00:50:48,519 --> 00:50:49,719
All this stuff in due time.
885
00:50:49,960 --> 00:50:50,300
Okay.
886
00:50:50,380 --> 00:50:54,139
Now we've implemented all of the changes that I want, including some changes that I
887
00:50:54,139 --> 00:50:54,940
didn't even mention.
888
00:50:55,260 --> 00:50:58,500
So you see here in the background, there's this very slight little vertical line
889
00:50:58,500 --> 00:51:01,480
design that it pulled from my main website, which is really clean.
890
00:51:01,559 --> 00:51:02,059
I like that.
891
00:51:02,059 --> 00:51:03,539
It makes it, makes it quite different.
892
00:51:03,840 --> 00:51:05,780
We also have a serif font instead of a sans serif.
893
00:51:05,860 --> 00:51:06,400
I like that.
894
00:51:06,400 --> 00:51:07,519
Makes me stand out a bit.
895
00:51:08,039 --> 00:51:10,760
As we scroll down, you can see that we've since removed that little play button,
896
00:51:10,780 --> 00:51:11,920
which didn't really make any sense.
897
00:51:11,920 --> 00:51:12,800
And it was looking clean.
898
00:51:12,800 --> 00:51:15,139
We have all of our profile photos.
899
00:51:15,280 --> 00:51:16,739
I like how it kind of inset us a bit.
900
00:51:16,880 --> 00:51:19,219
It looks like my buddy Noah's still quite cut off, which is unfortunate.
901
00:51:19,440 --> 00:51:22,559
So I'm going to have to fix that up, but the rest of this looks really good, which,
902
00:51:22,760 --> 00:51:23,599
uh, you know, I'm a fan of.
903
00:51:23,760 --> 00:51:25,320
Let me just make sure all these buttons work again.
904
00:51:25,800 --> 00:51:25,960
Cool.
905
00:51:25,960 --> 00:51:28,460
That goes directly to our thing with some minor changes.
906
00:51:28,659 --> 00:51:31,960
I think this website's basically ready to go and looking at the other option here.
907
00:51:32,239 --> 00:51:35,219
We've, um, more or less taken the same hero header.
908
00:51:35,860 --> 00:51:37,480
We have the calendar button working.
909
00:51:37,719 --> 00:51:39,679
You have this nice noise background, which I like.
910
00:51:39,880 --> 00:51:42,480
We still have some issues with the photos and them being cut off.
911
00:51:42,480 --> 00:51:45,639
You're going to get stuff like this pretty, pretty often, to be honest with
912
00:51:45,639 --> 00:51:46,420
the ad, but that's okay.
913
00:51:46,699 --> 00:51:48,679
You can also manually readjust them if necessary.
914
00:51:49,119 --> 00:51:51,800
I don't really like how there are two logos, so I'm just going to do the same thing.
915
00:51:53,460 --> 00:51:54,340
Hey, this looks great.
916
00:51:54,420 --> 00:51:57,460
I don't like that there is both an image logo and then a text logo.
917
00:51:57,599 --> 00:51:58,900
Just have the text logo.
918
00:51:59,139 --> 00:52:02,280
We want to text Graham just called left click in the top left hand corner.
919
00:52:04,480 --> 00:52:10,639
The noise background gradient looks a little bit blurry, so remove that.
920
00:52:10,639 --> 00:52:14,099
Only keep it on the social proof section.
921
00:52:15,900 --> 00:52:18,920
Myself and Noah's faces look fine.
922
00:52:19,380 --> 00:52:24,300
Just move Nick's or I have his head down about 15% as it's getting cut off a bit
923
00:52:24,300 --> 00:52:29,039
right now, center of the testimonials and client review section right now.
924
00:52:29,039 --> 00:52:34,199
It's a little bit weirdly set off to the left and then change the 2025
925
00:52:34,199 --> 00:52:36,659
copyright to 2026 that's all.
926
00:52:37,159 --> 00:52:38,800
And that looks a lot cleaner to me.
927
00:52:38,800 --> 00:52:40,920
We have our case studies nice and centered.
928
00:52:41,179 --> 00:52:43,000
Both of our heads are visible, which is really clean.
929
00:52:43,199 --> 00:52:45,219
We have our various services and then down here.
930
00:52:45,420 --> 00:52:47,360
Let me just click this button and make sure it opens that tab.
931
00:52:47,400 --> 00:52:47,760
Nice.
932
00:52:48,300 --> 00:52:51,400
So I mean, you know, I wasn't juggling this and trying to show you guys how to do it.
933
00:52:51,599 --> 00:52:54,920
Realistically, hopefully you guys could see, you could build your own super clean,
934
00:52:55,099 --> 00:52:59,260
high-end sexy website and probably less than five minutes now, at least locally.
935
00:52:59,780 --> 00:53:02,639
Later on in the course, I'm going to show you guys how to take this local website and
936
00:53:02,639 --> 00:53:05,519
then deploy it that will similarly just take a few minutes once you know what you're
937
00:53:05,519 --> 00:53:06,980
doing and the various platforms to use.
938
00:53:07,359 --> 00:53:08,860
So you could take the same approach.
939
00:53:08,940 --> 00:53:10,019
You could use it to build an app.
940
00:53:10,159 --> 00:53:11,619
You could use it to build a dashboard.
941
00:53:11,780 --> 00:53:15,280
You can use it to build more or less whatever you want, whether you are sourcing
942
00:53:15,280 --> 00:53:20,519
websites from a repository like godly.website or dot design or whatever, or you're
943
00:53:20,519 --> 00:53:22,059
doing this maybe a little more manually.
944
00:53:22,059 --> 00:53:24,199
Maybe you're actually going into apps that you really like and then you're
945
00:53:24,199 --> 00:53:27,340
using them as design inspo either way is perfectly fine.
946
00:53:27,500 --> 00:53:30,019
So long as you start with that little nugget, everything else, as you guys see
947
00:53:30,019 --> 00:53:32,199
here, it gets a lot easier and worth noting.
948
00:53:32,199 --> 00:53:35,860
I just designed for desktop today, but if you want it to design for mobile or
949
00:53:35,860 --> 00:53:37,440
whatever, you do the exact same process.
950
00:53:37,500 --> 00:53:38,840
You would just do it with a mobile screenshot.
951
00:53:39,239 --> 00:53:42,820
If you are just designing for a website and make sure that your websites are mobile
952
00:53:42,820 --> 00:53:46,420
and responsive and stuff like that, lest somebody open it up on their phone and
953
00:53:46,420 --> 00:53:48,519
get treated with my giant ass forehead.
954
00:53:49,119 --> 00:53:51,219
You can also do that in the agent really easy.
955
00:53:51,280 --> 00:53:53,260
Just say, Hey, make sure this is nice and mobile optimized.
956
00:53:53,340 --> 00:53:55,260
I'm noticing XYZ images in a weird place.
957
00:53:55,900 --> 00:53:56,039
Okay.
958
00:53:56,039 --> 00:54:00,000
So hopefully you guys have now learned at least a little bit about the way to do a
959
00:54:00,000 --> 00:54:03,239
practical build and practical design with Claude Code, as you see a lot of it's
960
00:54:03,239 --> 00:54:03,780
quite hands off.
961
00:54:03,900 --> 00:54:05,739
It's not like extraordinarily involved.
962
00:54:05,860 --> 00:54:07,880
What you do is you basically steer it.
963
00:54:07,920 --> 00:54:12,440
Like I talked about before you carve out the river and then you just give it a
964
00:54:12,440 --> 00:54:14,039
boat and then it just goes along its way.
965
00:54:14,360 --> 00:54:17,059
So long as there's some sort of test driven development loop, some sort of
966
00:54:17,059 --> 00:54:20,539
screenshot or verification loop, the quality that you can end up with is orders
967
00:54:20,539 --> 00:54:21,679
of magnitude better than not.
968
00:54:22,179 --> 00:54:24,300
And if you guys are ever wondering why you're not getting the results that you
969
00:54:24,300 --> 00:54:27,719
want, just make sure you have some sort of verification loop built in next up.
970
00:54:27,780 --> 00:54:30,840
We're going to learn how to build significantly more complex tools, not just
971
00:54:30,840 --> 00:54:34,119
websites and visually designed things, but also whole backends, whole
972
00:54:34,119 --> 00:54:37,519
architectures and things that you could use either to, I don't know, like launch
973
00:54:37,519 --> 00:54:41,559
your own SaaS product or build really cool internal tooling for yourself, your
974
00:54:41,559 --> 00:54:43,000
own personal life, or for your team.
975
00:54:43,139 --> 00:54:43,340
All right.
976
00:54:43,340 --> 00:54:45,659
Now that we've done a little bit of building with Claude Code, we've put
977
00:54:45,659 --> 00:54:48,840
together what I would consider to be pretty solid websites with just a few
978
00:54:48,840 --> 00:54:52,760
moments of work, let's dive a little bit more into Claude Codes, advanced
979
00:54:52,760 --> 00:54:56,039
functionality, and I won't let you guys know that what I'm about to talk about
980
00:54:56,039 --> 00:55:00,619
here, probably less than 10% of everybody that currently uses Claude Code understands.
981
00:55:00,619 --> 00:55:04,719
So when you unlock what I'm going to be teaching you in this module, you'll know
982
00:55:04,719 --> 00:55:07,519
significantly more about Claude Code for one, and then you'll also be able to
983
00:55:07,519 --> 00:55:12,320
combine each of these cool different features in fantastic ways that I think
984
00:55:12,320 --> 00:55:13,800
you'll quickly see the value of.
985
00:55:14,440 --> 00:55:17,199
So what is the .cloud directory?
986
00:55:17,739 --> 00:55:20,659
Just to be clear here for anybody that doesn't know in programming
987
00:55:20,659 --> 00:55:22,860
convention, first of all, this is a folder.
988
00:55:23,460 --> 00:55:26,440
And in programming convention, if you put a period in front of the folder,
989
00:55:27,139 --> 00:55:29,099
this basically hides the folder from view.
990
00:55:29,099 --> 00:55:32,280
And so if you just open it up in a file explore, you wouldn't actually see.
991
00:55:32,739 --> 00:55:35,760
For instance, you know how like, I don't know, in my case, my computer is called
992
00:55:35,760 --> 00:55:38,960
Nick and then underneath that I might have some, some other folders, maybe I'll
993
00:55:38,960 --> 00:55:40,300
have like a documents or something.
994
00:55:40,460 --> 00:55:42,760
Let's turn this off before that frustrates me.
995
00:55:43,039 --> 00:55:43,820
I might have a documents.
996
00:55:44,340 --> 00:55:47,860
Well, if under Nick, I stored another folder called .hidden.
997
00:55:48,900 --> 00:55:51,920
If I were to open up my file explorer, because it has a period in front of it,
998
00:55:51,920 --> 00:55:53,900
and because that just happens to be the convention of the file
999
00:55:53,900 --> 00:55:54,920
explorer wouldn't show it to me.
1000
00:55:55,139 --> 00:55:58,699
So this is sort of like the developer way of, you know, building folders
1001
00:55:58,699 --> 00:56:01,760
that don't really muck around and ruin your nice organization.
1002
00:56:02,699 --> 00:56:06,760
So in Claude codes case, they have a dot lowercase C Claude directory.
1003
00:56:07,500 --> 00:56:11,920
And inside of this Claude directory, there's basically support for like
1004
00:56:11,920 --> 00:56:16,420
10 or 15 cool advanced features that once you know, you can augment Claude
1005
00:56:16,420 --> 00:56:18,519
code significantly more than sort of vanilla out of the box.
1006
00:56:18,699 --> 00:56:20,119
So let's run through all of them together.
1007
00:56:20,199 --> 00:56:24,340
This is what like a fully loaded dot Claude folder would look like.
1008
00:56:24,500 --> 00:56:24,599
Okay.
1009
00:56:24,599 --> 00:56:27,400
And there's actually two levels to this and I'll cover both of them in a moment.
1010
00:56:27,400 --> 00:56:30,619
But the one that I want to talk about first is right over here.
1011
00:56:30,940 --> 00:56:35,920
So inside of the dot Claude folder, you can add a settings dot Jason, which
1012
00:56:35,920 --> 00:56:37,880
is team permissions and hooks.
1013
00:56:38,139 --> 00:56:40,179
I'll talk about hooks a little bit later on, but that's how I get my
1014
00:56:40,179 --> 00:56:41,880
cool little chime noise at the end of everyone.
1015
00:56:42,820 --> 00:56:44,920
You have settings dot local dot Jason.
1016
00:56:45,219 --> 00:56:49,079
Anytime you have a dot local inside of a file, this basically keeps it local
1017
00:56:49,079 --> 00:56:53,300
on your computer as opposed to push it, pushes it to a online repository.
1018
00:56:54,059 --> 00:56:56,860
For those of you that are unaware, a lot of programmers and people that use
1019
00:56:56,860 --> 00:57:01,840
Claude code use GitHub to basically store all of their active projects.
1020
00:57:02,400 --> 00:57:05,639
Now, because GitHub is a cloud service, there are some instances where you
1021
00:57:05,639 --> 00:57:09,659
don't actually want the cloud service to have access to the data inside of your
1022
00:57:09,659 --> 00:57:13,000
repo, particularly if it's quite sensitive stuff like, you know, tokens
1023
00:57:13,000 --> 00:57:14,860
and, and authentication keys and whatnot.
1024
00:57:15,159 --> 00:57:19,219
So they develop this convention where you could just go dot local dot whatever.
1025
00:57:19,679 --> 00:57:22,559
In order to kind of override that and then not push it to GitHub.
1026
00:57:23,199 --> 00:57:27,079
You have the same pattern here with Claude, where your Claude dot MD lives.
1027
00:57:27,380 --> 00:57:28,860
And then Claude dot local dot MD.
1028
00:57:28,940 --> 00:57:30,099
This is again, get ignored.
1029
00:57:30,139 --> 00:57:32,059
That just means it's not going to go over to GitHub.
1030
00:57:33,079 --> 00:57:37,099
Then interestingly, you have an agent's sub folder, you have a skills sub
1031
00:57:37,099 --> 00:57:39,219
folder and you have a rules sub folder.
1032
00:57:39,440 --> 00:57:42,659
And finally you have a hidden dot MCP dot Jason as well.
1033
00:57:43,239 --> 00:57:45,780
You know, I think if you're somebody coming into this without a technical
1034
00:57:45,780 --> 00:57:48,000
background, you'd look at this and you'd like, be like, oh my God, this looks
1035
00:57:48,000 --> 00:57:50,420
insane, like what the hell's going on settings dot JS.
1036
00:57:50,420 --> 00:57:52,159
Oh, and settings dot local dot JS.
1037
00:57:52,159 --> 00:57:55,019
So when why is Claude capitalized, what does MD mean?
1038
00:57:55,619 --> 00:57:58,780
And I'm going to explain all that stuff to you in due time, but for now, just
1039
00:57:58,780 --> 00:58:02,800
know that these are basically the various buttons that Anthropec, the developers
1040
00:58:02,800 --> 00:58:06,219
of Claude code have given you that you could press to sort of customize your
1041
00:58:06,219 --> 00:58:09,800
own instance and each of these files, you can customize to whatever degree.
1042
00:58:09,880 --> 00:58:11,300
You can add whatever the heck you want in there.
1043
00:58:11,599 --> 00:58:13,440
Some of these files reference other files.
1044
00:58:13,619 --> 00:58:16,679
You know, it's really up to you and Claude, because most people don't
1045
00:58:16,679 --> 00:58:18,099
actually develop this stuff on their own.
1046
00:58:18,099 --> 00:58:20,739
Actually like kind of co-work with Claude to put together their own settings.
1047
00:58:21,360 --> 00:58:24,820
But it's up to you how intense you want to go into personally.
1048
00:58:25,000 --> 00:58:26,880
I just have a Claude on MD.
1049
00:58:27,300 --> 00:58:30,400
Sometimes I'll have skills and agents and I'll run you through sort of like my
1050
00:58:30,400 --> 00:58:32,719
own 80 20 setup later on in the course.
1051
00:58:33,179 --> 00:58:33,579
Okay.
1052
00:58:33,739 --> 00:58:39,539
So anyway, this dot Claude folder actually lives inside of your Claude
1053
00:58:39,539 --> 00:58:41,539
code folder workspace, wherever you're working.
1054
00:58:41,820 --> 00:58:44,519
So, I mean, I don't actually have a folder set up yet, but let me do it right now.
1055
00:58:45,199 --> 00:58:48,800
And if you use this dot Claude folder, you're basically like unlocking
1056
00:58:49,979 --> 00:58:53,719
advanced functionality more so than just having a Claude MD in the root of the folder.
1057
00:58:54,079 --> 00:58:54,679
So that's what I'm going to do.
1058
00:58:54,739 --> 00:58:57,940
I'm just going to move over my dot Claude to, sorry, I'm going to move over my Claude
1059
00:58:57,940 --> 00:59:02,260
MD to dot Claude, and then as you see, there are some additional folders here
1060
00:59:02,260 --> 00:59:03,719
that I'm going to put together as well.
1061
00:59:04,099 --> 00:59:05,760
Inside of this, I'm going to go agents.
1062
00:59:07,059 --> 00:59:08,219
Also going to go skills.
1063
00:59:09,300 --> 00:59:12,840
And over here, I'm going to go rules and let's explain what all of these three mean.
1064
00:59:12,840 --> 00:59:17,440
The first idea is this idea of breaking up your big Claude MD into different rules.
1065
00:59:17,920 --> 00:59:22,059
And so basically what this slash rules folder allows you to do is allows you to
1066
00:59:22,059 --> 00:59:23,780
take everything that we've written here.
1067
00:59:24,019 --> 00:59:28,039
And then instead of just sticking it all into one file, you can define high level
1068
00:59:28,039 --> 00:59:31,860
rules that correspond to different parts of, let's say a build.
1069
00:59:32,000 --> 00:59:35,900
So for instance, in this example, there's a rule for code style.
1070
00:59:36,260 --> 00:59:37,400
There's a rule for testing.
1071
00:59:37,820 --> 00:59:38,900
There's a rule for security.
1072
00:59:39,320 --> 00:59:40,519
There's a rule for front end.
1073
00:59:40,519 --> 00:59:44,320
There's a rule for, you know, within front end react and then styles as well.
1074
00:59:44,860 --> 00:59:49,300
And so, you know, code style might be a very simple kind of two paragraph thing
1075
00:59:49,300 --> 00:59:51,360
that just explains how to organize your code.
1076
00:59:52,239 --> 00:59:55,980
Security might be a pretty simple few paragraph thing that explains how to,
1077
00:59:55,980 --> 00:59:57,599
you know, secure your code basis and whatnot.
1078
00:59:58,320 --> 01:00:02,380
Styles could be a list of Tailwind CSS styles or I don't know, whatever, just
1079
01:00:02,380 --> 01:00:05,780
like some, some sort of formatting instructions to make websites look a certain way.
1080
01:00:05,920 --> 01:00:09,239
And so for instance, if you look at our Claude MD over here on the right hand side,
1081
01:00:09,239 --> 01:00:11,460
you can see that we've split it into a variety of sections already.
1082
01:00:11,480 --> 01:00:12,679
There's like a workflow section.
1083
01:00:12,820 --> 01:00:14,380
There's like a technical default section.
1084
01:00:14,480 --> 01:00:15,480
There's like a rule section.
1085
01:00:15,719 --> 01:00:19,239
We can actually split these into their own rules files.
1086
01:00:19,260 --> 01:00:21,079
And that's what I'm going to have Claude do in a second.
1087
01:00:21,800 --> 01:00:25,139
Split Claude.MD into its component rules.
1088
01:00:25,719 --> 01:00:30,360
Use the Claude code rule specification if you don't know what that means.
1089
01:00:31,920 --> 01:00:35,799
And so what I'm doing is I'm empowering Claude code to basically go through our
1090
01:00:35,820 --> 01:00:39,920
current folder for one, then if it doesn't already know what, you know,
1091
01:00:40,039 --> 01:00:42,260
rule specs are, it's going to go read up on rule specs.
1092
01:00:42,420 --> 01:00:45,639
And then it's basically just going to take this file and then split it into,
1093
01:00:45,739 --> 01:00:50,119
it looks like three file rules inside of the rules folder.
1094
01:00:50,400 --> 01:00:54,860
So now we have rules split into workflow, technical defaults, and then design rules.
1095
01:00:55,320 --> 01:00:58,019
Okay. And as you could see, this is a little bit more compressed than we had earlier.
1096
01:00:58,179 --> 01:01:00,460
Basically the title of the file is sort of like that little heading.
1097
01:01:02,319 --> 01:01:03,119
Okay. Great.
1098
01:01:03,119 --> 01:01:07,539
Anything else we'd need for efficient coding,
1099
01:01:09,400 --> 01:01:12,280
you know, it can go through and it can create some additional rules for you.
1100
01:01:12,760 --> 01:01:15,099
So now if you think about it, okay. And by the way,
1101
01:01:15,119 --> 01:01:18,900
I don't actually recommend just asking Claude, Hey, build me rules for efficient coding.
1102
01:01:19,139 --> 01:01:20,179
It's not going to do a very good job.
1103
01:01:20,340 --> 01:01:23,440
Usually the best place to find like high level instructions and stuff like that.
1104
01:01:23,579 --> 01:01:24,639
That's sort of on the cutting edge.
1105
01:01:24,719 --> 01:01:27,780
I would recommend like scrolling through Twitter and then finding Claude code
1106
01:01:27,780 --> 01:01:32,179
power users. It's like a real gold mine. The reality is Claude code will actually
1107
01:01:32,179 --> 01:01:36,440
like incorporate the most commonly used Claude done MD configurations and stuff
1108
01:01:36,440 --> 01:01:39,559
like that into every successive generation. So a lot of the time, you know,
1109
01:01:39,599 --> 01:01:43,179
you don't have to include the stuff you had in your Claude and OD from like Opus
1110
01:01:43,179 --> 01:01:46,599
four or whatever, because nowadays it just sort of understands that natively.
1111
01:01:46,800 --> 01:01:48,380
And so if I, you know,
1112
01:01:48,500 --> 01:01:51,739
talk about this example in the context of what we've already done, you know,
1113
01:01:51,800 --> 01:01:54,699
over here we had one monolithic Claude done MD file, right?
1114
01:01:54,820 --> 01:01:57,780
But imagine that we instead split this into, I don't know,
1115
01:01:57,780 --> 01:02:01,679
let's just say three rules. You know, we have the,
1116
01:02:03,099 --> 01:02:06,880
workflows and then over here were the design rules
1117
01:02:09,799 --> 01:02:12,480
and then the tech defaults. Okay.
1118
01:02:12,659 --> 01:02:14,940
Now instead of dumping it in as one big Claude and default,
1119
01:02:15,079 --> 01:02:17,920
we actually have a lot more granular control over little things.
1120
01:02:18,000 --> 01:02:22,500
And so we can organize this to let's say evolve the workflow without touching the
1121
01:02:22,500 --> 01:02:25,079
design roles and so on and so forth. And in general,
1122
01:02:25,199 --> 01:02:27,539
this form of segmentation can be useful, especially when you're working with other
1123
01:02:27,539 --> 01:02:30,519
people, you can give people access to let's say like the styles,
1124
01:02:30,519 --> 01:02:34,380
but then maybe you actually have full control over like the top down workflow,
1125
01:02:34,960 --> 01:02:38,500
or as I'm sure you can imagine, you could have a really, really long Claude.md,
1126
01:02:38,559 --> 01:02:42,260
right? A lot of people have Claude.md that are, I don't know, like many, many,
1127
01:02:42,260 --> 01:02:44,599
many thousands of words, sometimes tens of thousands of words.
1128
01:02:45,539 --> 01:02:47,760
So splitting it up in this way just helps keep you organized.
1129
01:02:47,940 --> 01:02:51,340
It also helps allow you to see areas that like, you don't really need anymore.
1130
01:02:51,679 --> 01:02:54,659
It's one thing if it's a giant file, it's 10,000 freaking words long.
1131
01:02:54,860 --> 01:02:57,320
It's another thing if it's like pretty simple and pretty straightforward.
1132
01:02:57,320 --> 01:03:01,260
So we can similarly create skills and agents and they're organized in very,
1133
01:03:01,960 --> 01:03:02,940
you know, similar ways.
1134
01:03:03,320 --> 01:03:05,960
I'm going to talk through some specific agents that I'd recommend having,
1135
01:03:06,039 --> 01:03:09,980
and then ways to use the skills folder to basically automate large portions of
1136
01:03:09,980 --> 01:03:11,900
most knowledge work later. For now,
1137
01:03:11,900 --> 01:03:15,739
I want to talk a little bit about the top half of this image. So the bottom half,
1138
01:03:15,840 --> 01:03:17,880
okay, this is stuff that we've already kind of discussed.
1139
01:03:18,000 --> 01:03:19,880
This is the .Claude slash folder,
1140
01:03:19,880 --> 01:03:24,940
but it turns out there was one folder that existed in even higher level than the
1141
01:03:24,940 --> 01:03:26,539
.Claude in your workspace. Okay.
1142
01:03:26,880 --> 01:03:30,059
And this is like the global folder.
1143
01:03:31,320 --> 01:03:33,980
Now, anytime you see this little squiggle, okay,
1144
01:03:33,980 --> 01:03:38,199
in computer programming or networking or in file in your file explorer,
1145
01:03:38,400 --> 01:03:41,599
this basically refers to like your home folder. Okay.
1146
01:03:41,739 --> 01:03:43,679
And this isn't the home folder of your workspace,
1147
01:03:43,739 --> 01:03:46,139
not the specific one that we're working on. This isn't, you know,
1148
01:03:46,139 --> 01:03:49,639
if I go back to antigravity, my website design example, copy folder,
1149
01:03:49,940 --> 01:03:52,300
what this is referring to is this is referring to like the home on your
1150
01:03:52,300 --> 01:03:55,579
computer. And so this might be like the Nicholas folder or something like that
1151
01:03:55,579 --> 01:03:56,400
on my computer.
1152
01:03:57,099 --> 01:04:02,059
And basically Claude code allows you to define settings that are both local,
1153
01:04:02,380 --> 01:04:06,519
which corresponds specifically to the workspace that you're in and also global,
1154
01:04:06,860 --> 01:04:10,260
which are basically settings that are shared between all of your workspaces.
1155
01:04:10,260 --> 01:04:14,579
And that's where the second sort of category bends into.
1156
01:04:15,199 --> 01:04:20,579
And so what we do is in addition to being able to set a Claude dot MD on the
1157
01:04:20,579 --> 01:04:23,760
local level, for instance, AKA have one that applies to all workspaces.
1158
01:04:23,840 --> 01:04:26,360
If we were to expand this just a little bit,
1159
01:04:26,639 --> 01:04:29,460
the way that this thing actually works, if you think about it,
1160
01:04:30,559 --> 01:04:34,360
is we have the Claude dot MD that's over here.
1161
01:04:35,219 --> 01:04:40,460
And this is your local dot Claude. Okay.
1162
01:04:40,719 --> 01:04:48,139
But then we also have high level other Claude dot MD files and rules and stuff
1163
01:04:48,139 --> 01:04:53,420
like that. Maybe this is called tech rules. Maybe this is called permissions.
1164
01:04:53,699 --> 01:04:57,340
You know, maybe this one's called, I don't know, style guide.
1165
01:04:57,940 --> 01:05:01,179
And these come from your global
1166
01:05:03,099 --> 01:05:06,059
little squiggly line slash dot Claude.
1167
01:05:06,139 --> 01:05:09,699
And the way that this is organized is very similar to the way that the local dot
1168
01:05:09,699 --> 01:05:11,860
Claude is organized. It just exists in a different folder.
1169
01:05:11,860 --> 01:05:15,619
And it basically supersedes any local dot Claude functionality.
1170
01:05:16,139 --> 01:05:19,940
So this is another example of like splitting permissions. For instance,
1171
01:05:19,940 --> 01:05:21,940
if you're working on a big team, you know,
1172
01:05:22,019 --> 01:05:25,699
maybe you as the director of the team have access to like the global dot Claude
1173
01:05:27,139 --> 01:05:30,340
tilde. It's called slash dot Claude folder. And in there,
1174
01:05:30,400 --> 01:05:31,880
you put your like global settings.
1175
01:05:32,199 --> 01:05:37,079
So these are high level rules at the age and in all workspaces reads and
1176
01:05:37,079 --> 01:05:39,239
understands maybe things like, Hey, you know,
1177
01:05:39,340 --> 01:05:44,420
don't allow people to delete these files or folders when speaking with, you know,
1178
01:05:44,420 --> 01:05:46,880
staff members refer to them as X, Y, and Z, whatever.
1179
01:05:47,440 --> 01:05:50,440
And then every individual engineer on the team or every individual team member,
1180
01:05:50,920 --> 01:05:53,219
they empower themselves with a local dot Claude folder.
1181
01:05:53,460 --> 01:05:56,400
And this is ways that a bunch of companies are currently starting to organize
1182
01:05:56,400 --> 01:06:00,480
both their high level, you know, home Claude's or their global Claude's. And then,
1183
01:06:00,480 --> 01:06:04,119
you know, the ones that exist per workspace. So to make a long story short,
1184
01:06:04,400 --> 01:06:07,320
there's actually three layers of Claude dot MD that merged together.
1185
01:06:07,539 --> 01:06:10,980
We've talked about two of them so far, and there's like one more that's even higher level.
1186
01:06:10,980 --> 01:06:14,739
But basically the first is your personal global.
1187
01:06:14,960 --> 01:06:17,300
And that is at the very top level here.
1188
01:06:17,300 --> 01:06:20,940
That's in your home folder slash dot Claude slash Claude dot MD.
1189
01:06:21,619 --> 01:06:24,739
Then you have the per project or per workspace folder,
1190
01:06:25,099 --> 01:06:28,559
which is dot Claude inside of your current workspace slash Claude dot MD.
1191
01:06:28,900 --> 01:06:31,340
And there's also a third option specifically for enterprise.
1192
01:06:31,639 --> 01:06:35,639
This is like your managed system level Claude dot MD for enterprise licenses and
1193
01:06:35,639 --> 01:06:39,039
stuff like that. 99.9% of you will not have enterprise licenses.
1194
01:06:39,039 --> 01:06:40,940
I'm not going to talk about this at all, but rest assured,
1195
01:06:40,940 --> 01:06:41,880
it's a very similar concept.
1196
01:06:41,900 --> 01:06:44,699
You just define another markdown file that, you know,
1197
01:06:44,820 --> 01:06:46,960
sort of exists in that ranking or precedence level.
1198
01:06:47,039 --> 01:06:49,719
Now if I open up a repo that we haven't looked at before,
1199
01:06:49,780 --> 01:06:54,239
this is my own left click site where I'm working using a strategy called get work
1200
01:06:54,239 --> 01:06:57,099
trees. Again, we'll chat about that later. But let's say, you know,
1201
01:06:57,099 --> 01:06:59,599
I open up a new file folder and I want to run Claude code net.
1202
01:06:59,619 --> 01:07:02,559
And I don't actually have a pre-existing Claude code. And, you know,
1203
01:07:02,559 --> 01:07:03,980
I want the model to help me with this.
1204
01:07:04,099 --> 01:07:06,880
All I need to do is just open up that file folder, okay.
1205
01:07:06,880 --> 01:07:09,179
Open up Claude code and then type slash in it.
1206
01:07:09,579 --> 01:07:11,460
We'll get into more slash commands in a moment.
1207
01:07:11,960 --> 01:07:16,820
What this does is this basically allows us to analyze the current code
1208
01:07:16,820 --> 01:07:20,940
base and then write a Claude dot MD that summarizes what the current code base
1209
01:07:20,940 --> 01:07:24,760
does and then give some instructions to, you know, a future version of Claude,
1210
01:07:24,800 --> 01:07:25,599
which is really cool.
1211
01:07:25,960 --> 01:07:28,639
So what this is doing right now is it's reading through all of the files.
1212
01:07:29,219 --> 01:07:33,679
It's summarizing them. It's sort of looking through and, you know, seeing, uh,
1213
01:07:33,679 --> 01:07:35,420
what, what stands out in the code base,
1214
01:07:35,559 --> 01:07:37,900
trying to look for commonalities and patterns between them.
1215
01:07:37,980 --> 01:07:40,840
And then finally it ends up creating a capital Claude dot MD.
1216
01:07:41,179 --> 01:07:43,199
And it does this directly in like the workspace route.
1217
01:07:43,280 --> 01:07:46,199
So it doesn't do this inside of a dot Claude folder. You have to, you know,
1218
01:07:46,199 --> 01:07:48,619
do this sort of organization yourself if you want to go any higher level.
1219
01:07:48,679 --> 01:07:51,400
But as you can see here, it just put that together and I can open it up and I
1220
01:07:51,400 --> 01:07:54,679
can actually see sort of like the way that it wrote its own Claude dot MD.
1221
01:07:55,239 --> 01:07:58,199
So this file provides guidance to Claude code when working with code in this
1222
01:07:58,199 --> 01:08:00,900
repository. This is a premium marketing website for LeftClack.
1223
01:08:00,960 --> 01:08:03,059
It's an AI automation agency targeting to B2B companies.
1224
01:08:03,059 --> 01:08:06,619
Here's how to deploy it to Netlify. Here's the architecture.
1225
01:08:07,000 --> 01:08:09,860
Here's the design system. Here's the Netlify config, et cetera.
1226
01:08:10,500 --> 01:08:13,260
Why is this valuable? I mean, like it technically has access to all this
1227
01:08:13,260 --> 01:08:16,060
information anyway, right? So like, why are we getting it to summarize it all?
1228
01:08:16,460 --> 01:08:19,000
Well, we're getting it to summarize it all because one thing we're going to talk
1229
01:08:19,000 --> 01:08:20,739
a lot about in this course is context management.
1230
01:08:20,800 --> 01:08:25,359
And that basically just means all of the tokens currently in a prompt,
1231
01:08:25,640 --> 01:08:27,279
as you've seen, there are multiple levels to this, right?
1232
01:08:27,300 --> 01:08:29,539
There's like the global Claude dot MD that's injected.
1233
01:08:29,739 --> 01:08:31,760
Then there's the local Claude dot MD that's injected.
1234
01:08:32,360 --> 01:08:35,159
There's the enterprise level Claude dot MD that's injected.
1235
01:08:35,739 --> 01:08:38,600
We're then going to talk a lot more about the tool calls and various tool
1236
01:08:38,600 --> 01:08:41,039
definitions. Those are all injected. And then finally, at the very end of it,
1237
01:08:41,039 --> 01:08:42,960
you actually have your own prompt that you're sending,
1238
01:08:43,020 --> 01:08:46,659
which is also part of the context. Well, if in addition to that,
1239
01:08:46,739 --> 01:08:48,840
you force Claude to read through every single file,
1240
01:08:48,840 --> 01:08:51,340
every time that you initialize to know what the hell you're talking about,
1241
01:08:51,619 --> 01:08:55,220
obviously you have to add significantly more tokens to any prompt, right?
1242
01:08:55,579 --> 01:08:57,420
And by doing so a couple of things happen. One,
1243
01:08:57,500 --> 01:09:01,520
the quality of Claude on average will go down because there's a negative
1244
01:09:01,520 --> 01:09:05,479
relationship between the length of the prompt and then the quality of Claude's
1245
01:09:05,479 --> 01:09:08,359
outputs. That's just sort of the way that it works statistically with these
1246
01:09:08,359 --> 01:09:13,199
models. But two, you're also paying way more because now instead of consuming,
1247
01:09:13,199 --> 01:09:16,000
you know, let's say 10,000 tokens at a time, you're consuming a hundred thousand,
1248
01:09:16,020 --> 01:09:18,079
because this thing had to read through your contact dot HTML.
1249
01:09:18,260 --> 01:09:20,380
It had to read your index dot HTML, had to read your message.
1250
01:09:20,460 --> 01:09:24,640
I mean, it had to read everything. And so Claude dot MD, if you think about it,
1251
01:09:24,760 --> 01:09:28,819
in addition to providing high level instructions and, you know, uh,
1252
01:09:28,819 --> 01:09:33,539
and steering of the ship also is a mechanism by which you can significantly
1253
01:09:33,539 --> 01:09:38,000
reduce your token usage and then increase the average quality of Claude,
1254
01:09:38,199 --> 01:09:41,979
because it'll just know everything, especially when you use a backslash in it,
1255
01:09:42,060 --> 01:09:45,140
like I just showed you a moment ago, before actually having to read through the
1256
01:09:45,140 --> 01:09:49,159
files. You know, it'll know that index dot HTML uses an inverted light color
1257
01:09:49,159 --> 01:09:52,300
scheme. Okay. It'll know that, you know, there's a contact dot HTML,
1258
01:09:52,359 --> 01:09:54,659
which is a contact page. It'll know how it's hosted.
1259
01:09:54,819 --> 01:09:57,179
It's not going to have to like do a bunch of API calls to various services to
1260
01:09:57,359 --> 01:10:00,300
this out. It just already knows all this stuff because that's what this slash
1261
01:10:00,300 --> 01:10:03,000
init just did. So if you don't already have a Claude dot MD,
1262
01:10:03,180 --> 01:10:05,680
I'd highly recommend going to your folder, generate one.
1263
01:10:06,159 --> 01:10:07,020
Once you have it generated,
1264
01:10:07,039 --> 01:10:09,600
then you can continue making additions and changes as necessary,
1265
01:10:09,600 --> 01:10:13,560
but literally just having a description of the way that the folder works is like,
1266
01:10:13,600 --> 01:10:16,880
honestly the, the, the 90% of the battle. So for simplicity,
1267
01:10:17,000 --> 01:10:21,000
I've compiled the top recommendations into a quick do and don'ts guide for you.
1268
01:10:21,359 --> 01:10:23,899
The first thing to do is just run backslash init first,
1269
01:10:24,039 --> 01:10:26,439
anytime you're working in a new folder. The second is,
1270
01:10:26,439 --> 01:10:28,159
I just use bullet points and short headings,
1271
01:10:28,300 --> 01:10:30,319
try and compress information as much as possible.
1272
01:10:30,439 --> 01:10:32,539
Basically write in like a high information density style.
1273
01:10:33,159 --> 01:10:35,479
Don't just voice transcript dumped into your Claude dot MD.
1274
01:10:35,739 --> 01:10:38,260
If you wanted to write a Claude dot MD, for instance, using AS help,
1275
01:10:38,560 --> 01:10:40,500
I might actually voice dump into Claude and then say,
1276
01:10:40,579 --> 01:10:43,520
turn this into a very high information density summary of rules and stuff.
1277
01:10:44,300 --> 01:10:45,800
But the most important things at the top,
1278
01:10:46,100 --> 01:10:50,380
there's anything that like it absolutely shouldn't do like never delete XYZ file
1279
01:10:50,380 --> 01:10:52,180
or whatever. Mention it up at the very top.
1280
01:10:52,399 --> 01:10:54,859
The first few things that AI learns, it tends to remember.
1281
01:10:54,859 --> 01:10:57,079
It's sort of like the middle gap of the prompt.
1282
01:10:57,479 --> 01:11:01,000
If I were to show you guys what this actually looks like, basically goes like this.
1283
01:11:01,060 --> 01:11:02,960
It remembers a lot of the beginning.
1284
01:11:03,140 --> 01:11:05,939
It doesn't really remember much of the middle and then it's more likely to
1285
01:11:05,939 --> 01:11:10,380
remember some of the end. So this is called your primacy bias.
1286
01:11:10,899 --> 01:11:12,840
Human beings are like this too, which is really interesting.
1287
01:11:13,319 --> 01:11:16,220
And then this is called your recency bias, which means, you know,
1288
01:11:16,359 --> 01:11:20,979
Claude and us are biased towards remembering things at the very beginning of
1289
01:11:20,979 --> 01:11:23,819
a stretch and at the end of the stretch, but more so the beginning,
1290
01:11:23,819 --> 01:11:25,500
which is why you put very important guardrails at the top.
1291
01:11:27,520 --> 01:11:29,939
Periodically review and prune this. Like treat it like living code.
1292
01:11:30,360 --> 01:11:33,220
If you have Claude constantly update the Claude.md,
1293
01:11:33,260 --> 01:11:36,020
you will find over time it adds things that aren't really super necessary,
1294
01:11:36,319 --> 01:11:37,739
some super precise instructions.
1295
01:11:37,979 --> 01:11:40,199
It starts changing sort of the way that it talks to you and stuff.
1296
01:11:40,220 --> 01:11:42,939
So I treat it sort of like technical debt and then I reduce it over time.
1297
01:11:43,880 --> 01:11:47,640
What not to do is don't dump entire style guides and API docs into it.
1298
01:11:47,760 --> 01:11:49,880
This is an unfortunate habit that I've seen a lot of people do where they
1299
01:11:49,880 --> 01:11:52,880
basically are like, oh, you know, I want this to be my, I don't know,
1300
01:11:52,880 --> 01:11:56,619
let's just say a Panda doc companion. So they go to the Panda doc API,
1301
01:11:56,739 --> 01:11:57,979
then they download the entire thing.
1302
01:11:57,979 --> 01:12:01,420
And then they try and paste it into the Claude.md ends up being 10,000 tokens.
1303
01:12:01,420 --> 01:12:04,100
And then keep in mind, this is initialized every single time you run Claude code,
1304
01:12:04,159 --> 01:12:06,199
right? In addition to it taking a little bit longer,
1305
01:12:06,220 --> 01:12:07,619
cause now you have that initialization time.
1306
01:12:07,659 --> 01:12:09,039
It's also just a pain in the ass and it's,
1307
01:12:09,220 --> 01:12:11,560
and it's more costly while reducing Claude's quality as mentioned.
1308
01:12:12,079 --> 01:12:15,420
So don't do that instead, like talk to Claude, say, okay,
1309
01:12:15,439 --> 01:12:17,520
what specific API endpoints are we going to need?
1310
01:12:17,840 --> 01:12:21,319
And then give it the whole API and then just have it like prune it down to just
1311
01:12:21,319 --> 01:12:23,600
the specific sections that you need or specific,
1312
01:12:23,640 --> 01:12:27,340
maybe high level instructions on how to use this API that maybe is not super
1313
01:12:27,340 --> 01:12:29,319
relevant or trivial, I should say.
1314
01:12:30,939 --> 01:12:34,539
Claude.md allows you to do what's called an at include. This is very simple to
1315
01:12:34,539 --> 01:12:37,260
just, you know, I didn't want to spend too much time on this,
1316
01:12:37,260 --> 01:12:41,159
but basically if in your Claude.md, you just say, you know,
1317
01:12:41,279 --> 01:12:46,039
at get.md and you have a folder called get.md
1318
01:12:46,039 --> 01:12:47,199
somewhere else in your computer.
1319
01:12:47,520 --> 01:12:50,359
It'll actually go and it'll like include that into the Claude.md.
1320
01:12:50,359 --> 01:12:53,819
As you guys can see that functionality sort of taken care of by rules,
1321
01:12:54,460 --> 01:12:57,699
but I just don't add include a bunch of files unless absolutely necessary.
1322
01:12:58,779 --> 01:13:02,699
Don't write really vague rules in general, like treat Claude like, you know,
1323
01:13:02,779 --> 01:13:06,840
a really intelligent savant style intelligence, but also, you know,
1324
01:13:06,939 --> 01:13:09,600
people that are, they tend to be really intelligent and savant take a really
1325
01:13:09,600 --> 01:13:11,739
intelligent one specific little slice of the field.
1326
01:13:12,260 --> 01:13:14,159
If you give them too much rope, they'll just hang themselves.
1327
01:13:14,359 --> 01:13:17,640
So try not to write like really high level, vague aspirational things,
1328
01:13:17,840 --> 01:13:20,340
unless absolutely necessary, unless it makes sense. For instance,
1329
01:13:20,340 --> 01:13:23,899
don't just say be smart. Don't say make no mistakes.
1330
01:13:24,279 --> 01:13:25,819
Claude's not going to understand that. Right?
1331
01:13:26,119 --> 01:13:29,720
I keep seeing a meme rolling around Twitter and it's like, Claude,
1332
01:13:29,739 --> 01:13:32,960
make me $1 million. Don't make any mistakes. And it's like,
1333
01:13:33,000 --> 01:13:33,840
that's just not going to,
1334
01:13:33,840 --> 01:13:36,680
that's not going to improve the quality of its output or anything like that.
1335
01:13:37,000 --> 01:13:42,359
In general, you want to keep it somewhere between like 200 to maybe 500 lines or
1336
01:13:42,359 --> 01:13:43,000
so max.
1337
01:13:43,920 --> 01:13:46,619
The recommendation is not to go any longer than 500 lines. Otherwise again,
1338
01:13:46,619 --> 01:13:48,420
you're just dumping it a ton of context.
1339
01:13:48,760 --> 01:13:51,960
And then don't forget to add rules when Claude keeps making the same mistake.
1340
01:13:52,399 --> 01:13:55,180
So like if you're working with a particular library or particular software
1341
01:13:55,180 --> 01:13:57,699
platform, or again, a particular API, like Panda doc or whatever,
1342
01:13:57,819 --> 01:14:00,779
and they have a very specific way of going about things, you know,
1343
01:14:00,899 --> 01:14:02,720
every time you load up a fresh instance of Claude code,
1344
01:14:02,859 --> 01:14:04,319
it's going to continuously make that mistake,
1345
01:14:04,340 --> 01:14:05,699
which is going to cost you again in tokens,
1346
01:14:05,699 --> 01:14:07,500
but then also in context because of quality.
1347
01:14:08,020 --> 01:14:11,399
So if you find that it makes a mistake more than two or three times, tell it,
1348
01:14:11,420 --> 01:14:14,439
Hey, you know, I want you to add this to your Claude NMD so that this would work
1349
01:14:14,439 --> 01:14:17,000
the next time I run it on a fresh instance of Claude.
1350
01:14:17,000 --> 01:14:20,100
That's one of my favorite things to tell it. Okay.
1351
01:14:20,119 --> 01:14:22,119
So these are just some high level rules. Obviously there are more.
1352
01:14:22,460 --> 01:14:25,340
If you want like a really powerful way of, you know,
1353
01:14:25,500 --> 01:14:30,500
finding solid Claude code tips and specifically at Claude.MD
1354
01:14:30,500 --> 01:14:34,640
stuff, I actually go straight over to Twitter slash X and then I say,
1355
01:14:34,640 --> 01:14:42,100
you know, compile the last month of high ROI Claude.MD
1356
01:14:42,100 --> 01:14:45,079
writings. What are the best things to include?
1357
01:14:45,600 --> 01:14:49,279
Because this technology moves so quickly rather than me, you know,
1358
01:14:49,479 --> 01:14:52,699
trying to like tell you guys to always include a certain snippet of text in
1359
01:14:52,699 --> 01:14:53,840
your Claude.MD.
1360
01:14:54,020 --> 01:14:56,659
Basically I just have it go through the last month of Twitter posts.
1361
01:14:56,760 --> 01:14:59,739
After a moment it'll tell you the most useful high ROI insights and patterns.
1362
01:15:00,020 --> 01:15:03,239
Grok obviously is X's model. They have access to all Twitter posts.
1363
01:15:03,579 --> 01:15:07,180
And there's some extraordinarily intelligent people on here that basically live
1364
01:15:07,180 --> 01:15:10,859
inside of Claude code. So I get most of like my advanced tips from them.
1365
01:15:11,300 --> 01:15:12,159
And yeah, you know,
1366
01:15:12,159 --> 01:15:15,739
there's a lot of instructions and advice here given in just the last month or
1367
01:15:15,739 --> 01:15:17,739
so. Okay. Now that we've talked about the Claude.MD,
1368
01:15:17,880 --> 01:15:21,779
let's talk about a few additional features that not a lot of people understand
1369
01:15:22,359 --> 01:15:24,000
they have access to inside of Claude code.
1370
01:15:24,520 --> 01:15:28,960
The first is this concept of auto memory. So basically in addition to the Claude.MD,
1371
01:15:29,140 --> 01:15:33,819
there is an additional tiny little file that's injected at the top of every
1372
01:15:33,819 --> 01:15:34,279
session.
1373
01:15:34,579 --> 01:15:38,760
And you'll find that Anthrobek and the developers of Claude code do a lot of
1374
01:15:38,760 --> 01:15:41,819
these injections. It's not just the Claude.MD and it's not just this memory file,
1375
01:15:41,819 --> 01:15:44,640
which I'll talk about. They have a lot of tool calls, definitions, lots of stuff.
1376
01:15:45,500 --> 01:15:49,880
So the way that memory works basically is if you tell Claude something in one
1377
01:15:49,880 --> 01:15:51,899
instance, and you tell it to remember it,
1378
01:15:52,159 --> 01:15:55,939
it'll actually write it to this memory file. And then in another instance,
1379
01:15:55,939 --> 01:15:58,140
when you pull it up, this is like a global memory file. It'll,
1380
01:15:58,140 --> 01:16:01,579
it'll remember you. So if I open up Claude code again and down here, I say,
1381
01:16:02,520 --> 01:16:07,420
I don't know, what's my brother's name.
1382
01:16:08,400 --> 01:16:13,460
So I try and ask it some, let's say personal information that I want it to find
1383
01:16:13,460 --> 01:16:15,199
out for me. It'll say, I don't know your brother's name.
1384
01:16:15,239 --> 01:16:20,239
You haven't shared that with me. I say, remember that my brother's name is
1385
01:16:20,239 --> 01:16:20,680
George.
1386
01:16:22,960 --> 01:16:27,319
Now what it's going to do is it'll save that to its memory file. Okay.
1387
01:16:27,800 --> 01:16:31,680
Which already has a few other things like the fact that my dog's name is Yelpers.
1388
01:16:31,960 --> 01:16:33,300
You guys think my dog's name is Yelpers?
1389
01:16:34,100 --> 01:16:36,680
Then if I go to a new fresh Claude code instance, and then I say,
1390
01:16:36,680 --> 01:16:40,899
what's my brother's name? Notice how this time we're not going to have that issue.
1391
01:16:41,079 --> 01:16:43,140
It's just going to say George. And the reason why,
1392
01:16:43,140 --> 01:16:45,840
if we just go back to this very stereotypical,
1393
01:16:46,600 --> 01:16:48,680
prototypical example, which just continues to grow.
1394
01:16:49,779 --> 01:16:53,800
In addition to both the enterprise Claude.md,
1395
01:16:54,039 --> 01:16:57,739
the global Claude.md and then the local Claude.md,
1396
01:16:58,640 --> 01:17:02,819
you also have a file here,
1397
01:17:02,819 --> 01:17:08,760
which is separate from all of those called memory.md.
1398
01:17:09,399 --> 01:17:13,779
And Claude will inject this at the very top of basically every new session.
1399
01:17:14,640 --> 01:17:18,819
So in addition to again, this global section here, and then this local section,
1400
01:17:18,899 --> 01:17:19,779
we also have a memory.
1401
01:17:19,899 --> 01:17:22,680
And then we have a bunch of other tool call definitions and stuff like that,
1402
01:17:22,699 --> 01:17:24,800
which I'll talk a little bit about later in practice.
1403
01:17:24,859 --> 01:17:29,279
Memory isn't super valuable or anything like that. I mean, Claude.md does a lot of that,
1404
01:17:29,279 --> 01:17:32,119
of course, but you know, it's separate from Claude.md.
1405
01:17:32,119 --> 01:17:34,000
You can kind of treat this as Claude's own notes.
1406
01:17:34,140 --> 01:17:37,539
It's not really your instruction set. Okay. Next up are agents.
1407
01:17:37,720 --> 01:17:38,380
As you see here,
1408
01:17:38,380 --> 01:17:42,720
we have this agent sub folder within the .Claude local settings folder.
1409
01:17:43,140 --> 01:17:44,680
This can be pretty difficult to understand.
1410
01:17:44,699 --> 01:17:46,460
So I'm just going to give you a high level overview now,
1411
01:17:46,460 --> 01:17:49,300
and then we're actually going to do a lot more agent development later on in the
1412
01:17:49,300 --> 01:17:54,199
course. But let's just say I want an agent called tell
1413
01:17:55,040 --> 01:17:58,439
me the time.md. And this is a really simple agent.
1414
01:17:58,579 --> 01:18:01,020
I basically just want it to tell me the current time.
1415
01:18:01,780 --> 01:18:04,880
I can define the tools that it has access to, the model,
1416
01:18:05,119 --> 01:18:08,960
the max number of turns that I can have it autonomously go and fulfill my request.
1417
01:18:09,739 --> 01:18:11,880
Whether I want it to have global or local memory,
1418
01:18:12,460 --> 01:18:15,600
I can give it a little description, a name, and then also down here,
1419
01:18:15,659 --> 01:18:18,060
just like a brief little outline of what it is that I want to do.
1420
01:18:18,439 --> 01:18:21,100
And so in this case, hypothetically, I'm just saying this is a time teller.
1421
01:18:21,159 --> 01:18:25,000
You know, I basically want my big agent to talk to my smaller agent and then say,
1422
01:18:25,000 --> 01:18:27,859
Hey, what's the time? Very simple and straightforward.
1423
01:18:27,859 --> 01:18:31,739
So I'm actually going to open up a new session here,
1424
01:18:31,739 --> 01:18:34,739
and I'm going to say, what time is it? Use my agent.
1425
01:18:36,060 --> 01:18:39,819
And if you haven't already seen the sub agent tool call,
1426
01:18:39,979 --> 01:18:42,300
it looks a little bit different from what you guys are probably used to.
1427
01:18:42,600 --> 01:18:45,600
Notice how now we're opening up this task called tell me the current time.
1428
01:18:46,039 --> 01:18:48,840
And what happened is we see this little in input.
1429
01:18:49,439 --> 01:18:53,739
What this is is this is our main agent talking to a sub agent.
1430
01:18:53,739 --> 01:18:59,199
And so this main agent basically said, I see that Nick said,
1431
01:18:59,420 --> 01:19:02,340
what time is it? And he asked me to use my agent.
1432
01:19:02,619 --> 01:19:04,359
Let me check all of my available agents.
1433
01:19:04,699 --> 01:19:06,319
And then went through the agents folder,
1434
01:19:06,439 --> 01:19:10,300
found that there was an agent called tell me the time.md and then said, Oh,
1435
01:19:10,300 --> 01:19:14,260
I see there's an agent here that can tell me the time. Since Nick asked me for that.
1436
01:19:14,300 --> 01:19:16,079
This is obviously the one that he wants me to use.
1437
01:19:16,760 --> 01:19:19,439
It then creates a task called tell me the current time,
1438
01:19:19,439 --> 01:19:23,100
and then sends the new agent a message saying, Hey,
1439
01:19:23,100 --> 01:19:24,340
Nick wants to know the current time.
1440
01:19:24,539 --> 01:19:27,760
Please determine the current time and report it back. Then at the very end,
1441
01:19:28,000 --> 01:19:30,579
it says the current time is 2 23 PM empty.
1442
01:19:31,100 --> 01:19:33,780
Anything else the agent wanted you to tell me?
1443
01:19:37,660 --> 01:19:39,779
Yes. It greeted you with a howdy partner.
1444
01:19:39,880 --> 01:19:41,960
And then it gave me a little cute cowboy emoji.
1445
01:19:42,439 --> 01:19:46,159
The reason for that obviously is because down here I said also say howdy partner.
1446
01:19:46,579 --> 01:19:50,619
And so you can have agents for a million different things. In general,
1447
01:19:50,619 --> 01:19:53,960
one off functions like tell me the time aren't really that valuable because,
1448
01:19:54,100 --> 01:19:54,340
you know,
1449
01:19:54,380 --> 01:19:58,500
your parent agent can sort of already tell you the time for the most part.
1450
01:19:59,039 --> 01:20:01,920
But there are a couple of agents that do make sense.
1451
01:20:02,300 --> 01:20:06,039
And so if we split this into parents and then the variety of different ways you
1452
01:20:06,039 --> 01:20:09,239
could call this used to be master slave, by the way, which, you know,
1453
01:20:09,359 --> 01:20:10,819
had a bunch of issues. They had to change it.
1454
01:20:10,840 --> 01:20:13,739
Now it's like kind of like parent agent and then child agent.
1455
01:20:15,500 --> 01:20:18,819
But if you think about it, there are a few agents that actually make sense.
1456
01:20:19,340 --> 01:20:21,539
The first agent that makes sense is in general,
1457
01:20:21,800 --> 01:20:24,439
having some sort of research sub agent.
1458
01:20:24,899 --> 01:20:28,060
The reason why is because the way that agents work is they're spawned with their
1459
01:20:28,060 --> 01:20:28,699
own context.
1460
01:20:28,979 --> 01:20:34,180
And so this agent down here that we just spawned has no no context aside from
1461
01:20:34,180 --> 01:20:38,140
just this input. It literally the only text inside of it's, um, you know,
1462
01:20:38,180 --> 01:20:39,920
prompt is the user wants to know the current time,
1463
01:20:40,060 --> 01:20:42,539
please determine the current time along with, you know,
1464
01:20:42,539 --> 01:20:45,600
the high level instructions that we defined and tell me the time. Like that's,
1465
01:20:45,619 --> 01:20:48,800
that's literally all that it has. That's its whole Claude done MD, essentially.
1466
01:20:49,640 --> 01:20:53,600
Um, and so because of this, because of the separation of context, you know,
1467
01:20:53,600 --> 01:20:56,579
if you want to keep the total number of tokens that you use as low as possible in
1468
01:20:56,579 --> 01:20:58,399
the parent agent, which is usually the smartest one,
1469
01:20:58,399 --> 01:21:01,359
like the one that you're paying the big API token usage and stuff like that for,
1470
01:21:01,659 --> 01:21:02,039
uh,
1471
01:21:02,039 --> 01:21:06,100
instead of trying to fill in a hundred thousand tokens of research when it goes
1472
01:21:06,100 --> 01:21:08,260
on the internet and it looks up trends, then it goes,
1473
01:21:08,520 --> 01:21:11,939
checks out Google analytics and then it goes pumps things into, I don't know,
1474
01:21:12,039 --> 01:21:16,100
duck, duck, go instead of like filling or polluting all the context of the parent
1475
01:21:16,100 --> 01:21:18,800
agent. What you do is you basically just say, Hey, you know,
1476
01:21:20,400 --> 01:21:24,340
go research X, Y, Z, and tell me
1477
01:21:26,100 --> 01:21:31,279
a summary. And then it will go pollute all of its own context window,
1478
01:21:31,600 --> 01:21:34,140
get it super long might use 50 or a hundred thousand tokens,
1479
01:21:34,180 --> 01:21:36,020
which is why a lot of people use the, uh,
1480
01:21:36,020 --> 01:21:38,600
sonnet model series at the time of this recording for that purpose.
1481
01:21:39,060 --> 01:21:42,340
And then the only thing that actually makes it back to the parent is just that
1482
01:21:42,340 --> 01:21:45,279
summary. So down here, this could use a hundred thousand tokens, right?
1483
01:21:45,720 --> 01:21:49,640
But then like the tokens that it transmits back might only be, I don't know,
1484
01:21:49,680 --> 01:21:51,439
like two K or something, which is,
1485
01:21:51,520 --> 01:21:53,539
if you think about it at a cost savings amount of 50 times,
1486
01:21:53,699 --> 01:21:56,239
we're literally 50 times cheaper than whatever the parent costs would have been.
1487
01:21:56,399 --> 01:21:58,399
And then we also get to use, um, you know,
1488
01:21:58,420 --> 01:22:01,840
a lot of cheaper sub models and stuff like that, like sonnet,
1489
01:22:01,899 --> 01:22:05,100
like Haiku and so on and so forth. So research is really, really good.
1490
01:22:05,100 --> 01:22:07,619
And that's one, uh, sub agent that I would almost always create.
1491
01:22:07,699 --> 01:22:10,680
I'm actually going to show you guys how to create one later for your code and
1492
01:22:10,680 --> 01:22:12,239
then also for other automation purposes.
1493
01:22:12,840 --> 01:22:16,939
Another one that I really recommend is basically having like a reviewer agent.
1494
01:22:17,760 --> 01:22:21,199
The way that the reviewer agent works is in contrast with the research agent,
1495
01:22:22,000 --> 01:22:24,699
you know, it having no context is actually the whole point.
1496
01:22:25,439 --> 01:22:29,279
So basically what happens is this parent writes a bunch of code, right? You know,
1497
01:22:29,279 --> 01:22:31,520
it's like your index.html or as we're going to see,
1498
01:22:31,600 --> 01:22:32,979
it's going to be Python scripts or whatever the heck,
1499
01:22:33,079 --> 01:22:34,460
it's just going to do a bunch of code for you.
1500
01:22:34,520 --> 01:22:36,579
And then after writing all that code, okay,
1501
01:22:37,059 --> 01:22:40,600
its context is now really biased towards the way that it wrote that code.
1502
01:22:41,039 --> 01:22:42,199
Basically, you know, if you think about it,
1503
01:22:42,199 --> 01:22:45,520
there's like 10,000 tokens and all of those tokens are like, Hey, you know,
1504
01:22:45,520 --> 01:22:48,680
I should write the code this way because of whatever reason. Well,
1505
01:22:49,240 --> 01:22:51,460
if you want it to write really, really good code,
1506
01:22:51,699 --> 01:22:54,619
a lot of the time what you have to do is you actually have to give it to another
1507
01:22:54,619 --> 01:22:57,479
version of itself with no context and then just say, Hey, this is,
1508
01:22:57,760 --> 01:23:01,720
this is the code knowing absolutely nothing. Do you think this is good code?
1509
01:23:02,119 --> 01:23:04,319
And if the answer to that question is yes, then obviously it's a good code.
1510
01:23:04,420 --> 01:23:06,840
But if not, okay, what usually happens is when you do this,
1511
01:23:06,840 --> 01:23:09,779
when you spawn a new agent and then give it the code, it'll say,
1512
01:23:09,779 --> 01:23:12,340
it's kind of weird that you wrote it that way. Why did you write it that way?
1513
01:23:12,720 --> 01:23:15,399
And then the reason why is because the initial version of cloud, as mentioned,
1514
01:23:15,439 --> 01:23:18,520
was just really biased because it had just done all this thinking and stuff like
1515
01:23:18,520 --> 01:23:22,319
that. And so, you know, they do this in, you know,
1516
01:23:22,380 --> 01:23:23,819
like big enterprises, stuff like that. Like you do,
1517
01:23:23,880 --> 01:23:25,560
what's called a code review where, you know,
1518
01:23:25,560 --> 01:23:29,380
a programmer writes some big long function or some cool tool or creates a nice
1519
01:23:29,380 --> 01:23:29,699
app.
1520
01:23:29,880 --> 01:23:33,859
And then they're so biased about the way to do things because they've just spent
1521
01:23:33,859 --> 01:23:35,479
like 10 hours, you know,
1522
01:23:35,640 --> 01:23:39,199
hammering a particular method or a particular approach that when they give it to
1523
01:23:39,199 --> 01:23:42,600
the code reviewer, okay, another human being, the guy looks at it and he's like,
1524
01:23:42,619 --> 01:23:43,979
what the hell is this? Why did you do it this way?
1525
01:23:43,979 --> 01:23:46,739
He could have done it way easier with another way or whatever. Or, you know,
1526
01:23:46,779 --> 01:23:50,260
Hey, I noticed that your security is kind of off. So in this instance,
1527
01:23:50,460 --> 01:23:53,579
what the reviewer sub agent does is it basically takes advantage of the fact
1528
01:23:53,579 --> 01:23:57,119
that it has no input and then it's able to look at the code with like a totally
1529
01:23:57,119 --> 01:24:00,899
blank face. And so with this, you basically say, you know,
1530
01:24:00,899 --> 01:24:08,579
look at the code with zero context or no context and break down the code,
1531
01:24:10,180 --> 01:24:11,520
plus improve it.
1532
01:24:12,159 --> 01:24:16,140
And then what it'll do is it'll take all of the code. So it might feed in,
1533
01:24:16,140 --> 01:24:20,479
you know, like 10,000 lines or something. And then it'll return just the changes
1534
01:24:20,479 --> 01:24:22,920
to the parent agent. And then, you know, this might be again,
1535
01:24:22,920 --> 01:24:25,079
like 2k tokens or something. And the parent agent will,
1536
01:24:25,079 --> 01:24:27,939
will do the changes cause it's usually smarter. And then, you know,
1537
01:24:28,020 --> 01:24:28,979
now your code's way higher quality.
1538
01:24:29,180 --> 01:24:32,159
Finally, one that a lot of people are using is sort of this middle one here,
1539
01:24:32,159 --> 01:24:35,899
which is like QA slash testing. Now this is more of like an advanced programming
1540
01:24:35,899 --> 01:24:39,340
thing, but basically in order to determine whether or not a piece of code works
1541
01:24:39,340 --> 01:24:42,260
or a tool works or a piece of software is like good, typically,
1542
01:24:42,359 --> 01:24:46,260
you can develop a bunch of tests and then you can subject to your tool or
1543
01:24:46,260 --> 01:24:49,180
software that you just created to these tests to figure it out. Now,
1544
01:24:49,180 --> 01:24:52,159
obviously your parent agent can do this, but, you know,
1545
01:24:52,159 --> 01:24:54,779
this is just something that would pollute the context and be tremendously
1546
01:24:54,779 --> 01:24:58,380
costly, both in terms of tokens, but also the intelligence of the parent model.
1547
01:24:58,720 --> 01:25:01,539
And so typically what people do is they'll break things down into this research
1548
01:25:01,539 --> 01:25:04,979
sub agent, a reviewer sub agent, and then also some sort of QA or automated test
1549
01:25:04,979 --> 01:25:08,220
sub agent in big enterprise. And that's how they do like automated testing of
1550
01:25:08,220 --> 01:25:10,720
their code, automated test driven development, and so on and so forth,
1551
01:25:11,060 --> 01:25:13,960
which is similar to what I was doing earlier when we designed those websites,
1552
01:25:14,460 --> 01:25:17,119
where, you know, we tell it to do the thing, it goes and it does the thing,
1553
01:25:17,119 --> 01:25:19,899
and then it uses some sort of way to verify that it did the thing correctly.
1554
01:25:20,239 --> 01:25:22,880
You can kind of think of the QA agent as like a way to facilitate that.
1555
01:25:23,159 --> 01:25:23,939
It's just with design,
1556
01:25:23,960 --> 01:25:26,539
it's pretty easy because you just fee a screenshot in and then you look at,
1557
01:25:26,539 --> 01:25:28,619
you know, the screenshot and if the screenshot's good, then you're good.
1558
01:25:29,399 --> 01:25:32,060
With, you know, backend development, obviously you need a way to determine,
1559
01:25:32,060 --> 01:25:35,939
hey, is the thing that I said that it should be able to do actually happening.
1560
01:25:36,239 --> 01:25:38,060
Last but not least, we have skills,
1561
01:25:38,319 --> 01:25:41,220
which were previously referred to as custom slash commands.
1562
01:25:41,760 --> 01:25:45,399
Now skills are pretty great skills, basically allow you to automate a vast majority
1563
01:25:45,399 --> 01:25:48,579
of, I want to say like the day-to-day knowledge work that you may or may not be
1564
01:25:48,579 --> 01:25:52,439
doing, especially when you pair it with tools like Excel or Google sheets or
1565
01:25:52,439 --> 01:25:57,640
whatnot. Now I came up with this idea of directive orchestration executions.
1566
01:25:57,640 --> 01:26:00,979
It was this framework that I put about probably about like four or five months
1567
01:26:00,979 --> 01:26:04,880
ago, just as Claude was figuring out how skills worked and stuff like that.
1568
01:26:05,079 --> 01:26:06,319
And they've since created skills,
1569
01:26:06,319 --> 01:26:09,659
which I think is actually a much better alternative to my DOE framework.
1570
01:26:10,039 --> 01:26:13,100
So I just use skills now, but basically what these things are,
1571
01:26:13,680 --> 01:26:14,859
are just like subagents.
1572
01:26:15,119 --> 01:26:19,800
These are high level instructions that you can give to the parent agent. Okay.
1573
01:26:20,100 --> 01:26:23,319
The one distinction between subagent and skills is in the subagent,
1574
01:26:23,380 --> 01:26:25,199
it does it all look like a different agent in the skill.
1575
01:26:25,300 --> 01:26:27,659
It's like given to the parent agent and basically it's just a list of
1576
01:26:27,659 --> 01:26:29,060
instructions allows it to do something.
1577
01:26:29,060 --> 01:26:31,640
So I want to give you guys a brief little example of what that might actually
1578
01:26:31,640 --> 01:26:33,979
look like using a skill that I developed called shop Amazon.
1579
01:26:34,079 --> 01:26:36,479
So heading back to our folder here, if I go down to skills,
1580
01:26:36,479 --> 01:26:40,159
you see that there is now a skill called shop-amazon.md.
1581
01:26:40,319 --> 01:26:42,920
Up at the top right hand corner, the name is shop Amazon.
1582
01:26:43,399 --> 01:26:46,819
Underneath here is browse and purchase items on amazon.ca via the Chrome dev
1583
01:26:46,819 --> 01:26:50,140
tools MCP using the user as defined compare by products in Amazon.
1584
01:26:50,620 --> 01:26:55,340
Then there are a bunch of high level instructions about how exactly to use a
1585
01:26:55,340 --> 01:27:01,100
various, like some various tools to browse Amazon for me and then find products
1586
01:27:01,100 --> 01:27:04,300
that I want to do, including stop, like get purchase approval,
1587
01:27:04,340 --> 01:27:08,279
do not skip the step. So, I mean, like I often buy products on Amazon.
1588
01:27:08,300 --> 01:27:09,100
And to be honest,
1589
01:27:09,100 --> 01:27:12,460
there's just so much junk on Amazon now that I don't want to have to spend every
1590
01:27:12,460 --> 01:27:16,479
day hours of my time like rifling through mostly, you know,
1591
01:27:17,380 --> 01:27:20,000
like SEO optimized garbage, which doesn't actually mean anything.
1592
01:27:20,119 --> 01:27:23,920
So what I did is I put together a skill to do that for me. And at the moment,
1593
01:27:23,920 --> 01:27:28,939
I require something to connect my basically in photography,
1594
01:27:29,020 --> 01:27:33,100
like a bounce sheet or a reflector with one of my stands.
1595
01:27:33,579 --> 01:27:37,380
So what I want to do is just, I'm going to speak into it. I'm going to say, Hey,
1596
01:27:37,840 --> 01:27:43,479
I'm shopping for something to connect one of my reflectors to one of my tripod
1597
01:27:43,479 --> 01:27:43,819
mounts.
1598
01:27:44,460 --> 01:27:47,939
I purchased the reflector a couple of days ago and I didn't realize that I needed,
1599
01:27:47,939 --> 01:27:50,619
you know, something separate to kind of clip the two together.
1600
01:27:51,140 --> 01:27:54,199
Could you shop Amazon and give me some options that I could use?
1601
01:27:56,319 --> 01:27:59,279
So I'm just going to press enter here and then I'm just going to let it go on
1602
01:27:59,279 --> 01:28:01,539
its way. We open up the thinking.
1603
01:28:01,840 --> 01:28:04,779
What it's going to start with is the user is asking me to help them shop on
1604
01:28:04,779 --> 01:28:08,439
Amazon. Then the user wants to find a reflector holder or whatever.
1605
01:28:08,680 --> 01:28:11,659
And now what it's going to do is actually an open up a Chrome tab for me using
1606
01:28:11,659 --> 01:28:15,000
Chrome dev tools. And it's going to go and it's going to look for it. Okay.
1607
01:28:15,159 --> 01:28:16,939
Now it knows that I'm in Canada for instance.
1608
01:28:16,939 --> 01:28:21,539
So it's actually looking it up at Amazon.ca up here, scrolling through,
1609
01:28:21,779 --> 01:28:25,260
it's going to open things up, take screenshots of various parts of the page.
1610
01:28:25,340 --> 01:28:27,359
It's going to read through everything and so on and so forth.
1611
01:28:27,880 --> 01:28:30,600
And it'll actually at the end of it, get me a bunch of options,
1612
01:28:30,720 --> 01:28:35,220
according to what I wrote in my, you know, shop dash Amazon markdown skill.
1613
01:28:35,539 --> 01:28:36,739
And so if you think about it,
1614
01:28:36,739 --> 01:28:40,159
like this is something that previously a virtual assistant or something might have
1615
01:28:40,159 --> 01:28:43,600
done, right? I mean, this is something that like I would have just given to
1616
01:28:43,600 --> 01:28:45,600
somebody and delegate it away. Hey, you know,
1617
01:28:45,600 --> 01:28:48,039
I'm setting up a photography studio in X, Y, and Z. Well,
1618
01:28:48,039 --> 01:28:49,340
now I can actually just write a skill,
1619
01:28:49,539 --> 01:28:52,420
a high level skill that teaches it how to use Amazon.
1620
01:28:52,720 --> 01:28:55,460
And then once it goes through Amazon and you know, finds me the products,
1621
01:28:55,760 --> 01:28:59,560
then just gives me like a big list of things like this. So what I can do now is I
1622
01:28:59,560 --> 01:29:01,220
could say, Hey, you know, I want to buy X, Y, and Z.
1623
01:29:01,220 --> 01:29:04,939
And then I can go and actually buy it for me. You know, obviously I recommend,
1624
01:29:04,939 --> 01:29:07,760
if you guys are like making purchase decisions with Claude Code,
1625
01:29:08,239 --> 01:29:10,279
this isn't really something I'd a hundred percent automate. You know,
1626
01:29:10,300 --> 01:29:12,659
maybe I'd have it add all the products to cart. And then I'd say, Hey,
1627
01:29:12,720 --> 01:29:15,199
give me the page so I can review it and then purchase it myself.
1628
01:29:15,600 --> 01:29:19,119
But you can automate this about as crazily in detailed as you want.
1629
01:29:19,420 --> 01:29:22,300
What we've done is we basically made an API out of Amazon and they don't have
1630
01:29:22,300 --> 01:29:26,239
one specifically because they don't want everybody to. With cloud skills,
1631
01:29:26,359 --> 01:29:27,939
you can do something like that super easily.
1632
01:29:28,079 --> 01:29:29,939
The variety of other skills that you can create,
1633
01:29:30,079 --> 01:29:34,319
this one's called Upwork Scrape Apply. I have a bunch that do like, you know,
1634
01:29:34,460 --> 01:29:35,779
lead scraping for me more generally.
1635
01:29:36,279 --> 01:29:40,000
I have skills that automate the process of sending welcome emails to new clients.
1636
01:29:40,239 --> 01:29:42,979
I have skills that automate the process of building their deliverables.
1637
01:29:42,979 --> 01:29:46,819
And what's really cool is you're not the only person that had,
1638
01:29:46,899 --> 01:29:48,579
like you don't actually have to put the whole skill together yourself.
1639
01:29:48,600 --> 01:29:51,180
You can just have cloud help you put the skill together for a future instance
1640
01:29:51,180 --> 01:29:54,399
of cloud. And in practice, that's usually what I do. I'll say something like, Hey,
1641
01:29:54,399 --> 01:29:57,279
I want to build a skill that does X, Y, and Z. Can you help me format it?
1642
01:29:57,279 --> 01:30:00,539
Here's like how skills work. Cause sometimes it won't know for whatever reason.
1643
01:30:00,979 --> 01:30:03,479
It'll have to go research skill formatting and stuff like that. And then we'll say,
1644
01:30:03,500 --> 01:30:04,960
yeah, sure. I could put one together for you.
1645
01:30:05,020 --> 01:30:08,079
Then what you do is you take that feed that to a fresh instance of Claude Code
1646
01:30:08,079 --> 01:30:10,420
that has no understanding of what the skill is, see how it does.
1647
01:30:10,420 --> 01:30:12,460
If it screws up, you just give it feedback and say,
1648
01:30:12,520 --> 01:30:14,600
can't modify the skills that you do better next time.
1649
01:30:14,739 --> 01:30:17,220
You rinse and repeat and eventually you get an error rating,
1650
01:30:17,220 --> 01:30:20,180
which may start off at like, I don't know, let's say like it,
1651
01:30:20,180 --> 01:30:24,300
it's only good 70% of the time on your first. Well, after some changes,
1652
01:30:24,420 --> 01:30:27,819
now it's good 80% of the time. Then after a couple more changes,
1653
01:30:27,840 --> 01:30:30,239
now it's good 90% of the time. And then eventually I want to say,
1654
01:30:30,319 --> 01:30:33,600
you can get to like 98 to 99% fidelity and accuracy,
1655
01:30:33,779 --> 01:30:36,220
which in any sort of knowledge field nowadays is more than enough.
1656
01:30:36,319 --> 01:30:39,180
I'd say most human beings screw up more than one to 2% of the time.
1657
01:30:39,180 --> 01:30:41,920
So we'll cover a little bit more about skills and how to create them,
1658
01:30:41,920 --> 01:30:44,960
how to take preexisting SOPs and workflows and stuff like that,
1659
01:30:44,960 --> 01:30:48,020
and convert them into skills a little bit later on. But for now,
1660
01:30:48,079 --> 01:30:49,380
just know that they're there. Okay.
1661
01:30:49,579 --> 01:30:54,060
So most everything the year has now been covered. We talked about Claude,
1662
01:30:54,119 --> 01:30:56,819
we've talked about the Claude.md, we've talked about the local,
1663
01:30:57,020 --> 01:31:00,380
we talked about the agents folder, the skills folder, the rules folder.
1664
01:31:00,520 --> 01:31:03,460
We only have a few things left. Like there's MCPs to talk about,
1665
01:31:03,539 --> 01:31:05,979
but now's not a good time to, so I'm going to push that off to later.
1666
01:31:06,239 --> 01:31:08,920
And then also the settings.json is a good thing to mention,
1667
01:31:08,920 --> 01:31:11,260
but since this deals with hooks, I'll also talk about that later.
1668
01:31:11,760 --> 01:31:14,579
You're now at the point where you understand, I want to say, you know,
1669
01:31:14,720 --> 01:31:17,539
90% of the internal workings of Claude code.
1670
01:31:17,840 --> 01:31:20,399
You understand the file structure, the organization,
1671
01:31:20,640 --> 01:31:22,720
you understand the highest ROI way to build anything,
1672
01:31:22,779 --> 01:31:25,260
whether it is a simple website or something more complex,
1673
01:31:25,260 --> 01:31:27,439
like a full stack app or an automation. From here on out,
1674
01:31:27,439 --> 01:31:30,479
it's really just learning a little bit more about Claude's various modes.
1675
01:31:30,640 --> 01:31:34,779
So plan mode, dangerously skip permissions, you know,
1676
01:31:35,020 --> 01:31:36,840
ask before editing and so on and so forth.
1677
01:31:36,840 --> 01:31:39,300
And then we can take a listen and we can use it to build something really,
1678
01:31:39,300 --> 01:31:39,739
really cool.
1679
01:31:39,840 --> 01:31:43,500
What we're going to learn about next are the various permission modes available
1680
01:31:43,500 --> 01:31:47,119
to us in Claude code. Now, just so we're all on the same page here,
1681
01:31:47,159 --> 01:31:48,460
when I say permission mode,
1682
01:31:48,760 --> 01:31:53,159
what I'm referring to is this little button down at the very bottom of the GUI.
1683
01:31:53,479 --> 01:31:56,800
And you can toggle through this button pretty straightforwardly and easily.
1684
01:31:57,100 --> 01:32:00,199
And as you can see here, when we do, we get four main modes.
1685
01:32:00,640 --> 01:32:04,060
The first is ask before edits. The second is edit automatically.
1686
01:32:04,060 --> 01:32:07,720
The third is plan mode. And the fourth is bypass permissions.
1687
01:32:08,079 --> 01:32:10,520
I should note that you're not actually getting a bypass permissions right out of
1688
01:32:10,520 --> 01:32:13,039
the gate here, at least not as of the time of this recording.
1689
01:32:13,159 --> 01:32:15,180
So I'll show you guys how to enable that yourselves.
1690
01:32:16,060 --> 01:32:18,159
So we're going to run through each of these as well as some extras.
1691
01:32:18,319 --> 01:32:20,159
And then at the end of today's module,
1692
01:32:20,180 --> 01:32:22,720
we're going to focus significantly more on plan mode.
1693
01:32:22,939 --> 01:32:24,739
I'm going to walk you guys through how plan mode works,
1694
01:32:24,859 --> 01:32:25,920
why you might want to use it,
1695
01:32:26,000 --> 01:32:28,579
and then ultimately how to use plan mode to build something that I've personally
1696
01:32:28,579 --> 01:32:29,859
been wanting to build for quite a while.
1697
01:32:29,979 --> 01:32:31,699
So we're going to do it interactively together.
1698
01:32:32,439 --> 01:32:36,340
So permission modes control how your agents handle permissions.
1699
01:32:37,199 --> 01:32:42,420
You also give the current permission mode to any sub agents that you employ,
1700
01:32:42,560 --> 01:32:43,960
which is going to be pretty important for later.
1701
01:32:44,640 --> 01:32:48,079
Now they tend to inherit the permission context from the main conversation,
1702
01:32:48,100 --> 01:32:50,840
but there are a couple of situations in which they can actually override the
1703
01:32:50,840 --> 01:32:52,659
mode too. For now,
1704
01:32:52,659 --> 01:32:56,880
I just want you to pretend that all we're talking about are our current top
1705
01:32:56,880 --> 01:32:59,939
level agents. We're not focused on any sub agents or any additional
1706
01:32:59,939 --> 01:33:02,460
functionality, nothing like what we just talked about earlier.
1707
01:33:03,039 --> 01:33:07,859
So we have default. Default is standard permission checking with prompts.
1708
01:33:08,119 --> 01:33:10,500
You guys remember down here where it says ask before edits,
1709
01:33:10,699 --> 01:33:14,000
you guys can think of this as basically the default. Okay.
1710
01:33:14,220 --> 01:33:19,539
And so the default setting is before Claude makes any changes to
1711
01:33:19,539 --> 01:33:21,060
any files on your computer,
1712
01:33:21,060 --> 01:33:24,699
it has to ask you whether or not it's okay to do it.
1713
01:33:24,779 --> 01:33:29,300
And I'll show you guys what that looks like right now by saying, you know,
1714
01:33:30,280 --> 01:33:35,399
change the title of the project to Nick's happy fun time.
1715
01:33:37,159 --> 01:33:39,140
So because I'm in ask before edits mode,
1716
01:33:39,420 --> 01:33:42,500
you'll see that before it does any sort of change,
1717
01:33:42,640 --> 01:33:45,439
what it's going to do is it's first going to look at the specific file that
1718
01:33:45,439 --> 01:33:48,619
defines the title. It's going to pop open on the right hand side,
1719
01:33:48,680 --> 01:33:52,600
the exact section of the page that it's considering updating.
1720
01:33:53,260 --> 01:33:55,600
So initially it's a profile name dash work log profile name.
1721
01:33:55,659 --> 01:33:58,800
In this case was Nick. It defines some really cool, badass variable stuff for me,
1722
01:33:58,800 --> 01:34:02,720
but because of my dumb request at now saying title equals Nick's happy fun time
1723
01:34:02,720 --> 01:34:04,760
in lowercase, you'll also notice,
1724
01:34:04,760 --> 01:34:07,640
I'm just going to have to remove my head here so that we can see this a little
1725
01:34:07,640 --> 01:34:10,640
bit better. You'll also notice that down at the bottom, it says, Hey,
1726
01:34:10,720 --> 01:34:13,939
should we make this edit to index.astro? That's the file.
1727
01:34:14,300 --> 01:34:18,340
And I have three choices. I can either say yes, by clicking or pressing one,
1728
01:34:18,699 --> 01:34:23,819
two saying yes, allow all edits this session or three. I could say no.
1729
01:34:24,239 --> 01:34:27,039
And finally, I can also say tell Claude what to do instead.
1730
01:34:27,039 --> 01:34:29,420
JK please don't do this.
1731
01:34:30,399 --> 01:34:33,600
And so because of this, it's going to say no changes made.
1732
01:34:33,899 --> 01:34:37,119
And I will not have actually gone through the request. Obviously,
1733
01:34:37,140 --> 01:34:40,159
most of the time we don't actually do that. We don't actually make that third,
1734
01:34:40,699 --> 01:34:44,399
or rather we don't click that fourth one. As you see, it's also kind of annoying,
1735
01:34:44,659 --> 01:34:48,119
but generally speaking, if you guys are working in a code base, that is,
1736
01:34:48,119 --> 01:34:50,739
I don't know, really high risk, sort of high reward thing,
1737
01:34:50,899 --> 01:34:53,619
where like every change needs to be good, or it's going to screw everything up.
1738
01:34:53,619 --> 01:34:55,600
You can use ask before edits.
1739
01:34:56,319 --> 01:34:58,119
I should note that very few people are nowadays.
1740
01:34:58,239 --> 01:35:00,159
We moved away from ask before edits.
1741
01:35:01,020 --> 01:35:03,819
Most people now use either the next setting them to show you,
1742
01:35:03,960 --> 01:35:05,939
or they just bypass permissions like me entirely.
1743
01:35:06,119 --> 01:35:10,020
The next major setting is accept edits and accept edits.
1744
01:35:10,079 --> 01:35:13,079
What we do is we auto accept any edits to files,
1745
01:35:13,300 --> 01:35:16,680
but then if you want to create new files, it'll still ask you for it.
1746
01:35:16,939 --> 01:35:19,640
And so going back to our little Claude code page here,
1747
01:35:20,180 --> 01:35:23,500
we moved from ask before edits to edit automatically. Okay.
1748
01:35:23,500 --> 01:35:25,739
We can now edit any preexisting files.
1749
01:35:26,000 --> 01:35:30,020
So we can do is we could say, sorry, I actually want you to do this,
1750
01:35:31,720 --> 01:35:33,439
update the project to the title.
1751
01:35:35,320 --> 01:35:39,539
And because we've selected edit automatically instead of ask before edits,
1752
01:35:39,819 --> 01:35:42,140
it'll actually go through and it'll automatically update that for me.
1753
01:35:42,180 --> 01:35:44,279
See how there was no little panel on the right hand side.
1754
01:35:44,560 --> 01:35:48,600
So this is useful when you want to give the model like carte blanche control over
1755
01:35:48,600 --> 01:35:49,979
any preexisting files,
1756
01:35:49,979 --> 01:35:53,500
but you don't want it to like have any control or any ability to make new ones.
1757
01:35:53,859 --> 01:35:56,880
So I'm just going to say revert the change and keep in mind that now,
1758
01:35:57,020 --> 01:35:59,939
because we're in edit automatically, it can do so without actually having to pop.
1759
01:36:00,119 --> 01:36:03,159
The next one is don't ask. Now there's no,
1760
01:36:03,220 --> 01:36:06,220
don't ask permission prompt explicitly set up here.
1761
01:36:06,399 --> 01:36:07,859
So if you want to get to your permissions,
1762
01:36:07,939 --> 01:36:11,279
you actually have to go backslash permissions and then continue in a terminal.
1763
01:36:11,500 --> 01:36:13,420
This is going to open up a new page for you.
1764
01:36:13,600 --> 01:36:16,579
That's going to then pump in Claude with some permissions tab.
1765
01:36:17,100 --> 01:36:20,840
And then you're going to get a list of all of the different permissions that you
1766
01:36:20,840 --> 01:36:24,739
can have, including rules in this workspace. So as you can see,
1767
01:36:24,960 --> 01:36:29,819
we have allow, ask, deny workspace. Okay.
1768
01:36:29,819 --> 01:36:32,159
So this is equivalent to our edit all tab.
1769
01:36:32,840 --> 01:36:36,079
Deny will always reject requests to use any tools.
1770
01:36:36,640 --> 01:36:40,699
Ask will always ask for confirmation before using tools and allow won't ask
1771
01:36:40,699 --> 01:36:44,239
before using any. What's cool is you also have the ability to add a new rule.
1772
01:36:44,239 --> 01:36:46,960
So permission rules are basically where you give it a,
1773
01:36:47,239 --> 01:36:51,520
the name of a tool and then you either allow it to use the tool or you force it
1774
01:36:51,520 --> 01:36:55,119
to ask you for permissions before using a tool that obviously takes us to that
1775
01:36:55,119 --> 01:36:58,140
logical question. Well, what are tools, Nick? We haven't talked about them.
1776
01:36:58,300 --> 01:37:00,340
Well, the variety of different ones that Claude code could use.
1777
01:37:00,659 --> 01:37:02,840
There's stuff like the ability to fetch things from the web.
1778
01:37:03,239 --> 01:37:04,100
There's stuff like bash,
1779
01:37:04,159 --> 01:37:07,399
which is the ability to write like terminal commands and whatnot. And, you know,
1780
01:37:07,399 --> 01:37:09,739
the purpose of this course is not to go through every single one of the tools.
1781
01:37:09,739 --> 01:37:10,420
Cause to be honest,
1782
01:37:10,539 --> 01:37:13,699
they're always changing the tools and like the sorts of tools that we have and
1783
01:37:13,699 --> 01:37:16,300
that's not super valuable, but it's just so that, you know,
1784
01:37:16,600 --> 01:37:22,300
you can identify and then change on a like file or tool basis,
1785
01:37:22,720 --> 01:37:25,739
which things Claude code has access to. So long as you're hyper,
1786
01:37:25,840 --> 01:37:30,539
hyper specific about it using in this case, you know, this little tools output.
1787
01:37:30,579 --> 01:37:32,300
The next tab is delegate.
1788
01:37:32,659 --> 01:37:36,020
Now this is a coordination mode for agent team leads. Basically,
1789
01:37:36,399 --> 01:37:39,939
the Claude code now has that feature called the agent teams feature where a
1790
01:37:39,939 --> 01:37:43,119
single agent up at the top can delegate a bunch of work to a bunch of sub agents.
1791
01:37:43,119 --> 01:37:47,000
And so this is the permission that the agent team lead is given,
1792
01:37:47,220 --> 01:37:49,399
which basically allows them to delegate tasks. Although,
1793
01:37:49,720 --> 01:37:52,680
it's not allowed to do anything aside from just team management tools.
1794
01:37:52,939 --> 01:37:56,539
We'll talk a little bit more about that later. Then we have bypass permissions.
1795
01:37:56,739 --> 01:37:59,739
This is what I've been using up until now in basically all instances.
1796
01:38:00,079 --> 01:38:02,340
Bypass permissions is great because you can do whatever the heck you want.
1797
01:38:02,680 --> 01:38:04,779
I should note that there is obviously a risk here.
1798
01:38:05,060 --> 01:38:08,479
There was a case a little while ago where somebody had Claude code running on
1799
01:38:08,479 --> 01:38:12,199
bypass permissions. And then I think it was on like a Linux computer or something,
1800
01:38:12,199 --> 01:38:14,779
where there's a simple terminal command that you could use to basically delete
1801
01:38:14,779 --> 01:38:19,479
everything on your computer. It's like sudo rm-rl or rf or something like that.
1802
01:38:19,739 --> 01:38:22,500
I don't remember the exact command. I'm sure Claude would be able to tell you.
1803
01:38:23,000 --> 01:38:26,680
And basically because of a misinterpretation of the request and, you know,
1804
01:38:26,680 --> 01:38:28,739
it did a bunch of research on its own, whatever,
1805
01:38:29,100 --> 01:38:30,579
it eventually thought it had to run this command.
1806
01:38:30,779 --> 01:38:34,119
So it ran the command and it basically deleted all of the data on the person's
1807
01:38:34,119 --> 01:38:36,739
hard drive. They basically had it bricked and then they needed to take it in to
1808
01:38:36,739 --> 01:38:40,300
fix it. I want you to know that these sorts of things are possible, of course,
1809
01:38:40,300 --> 01:38:43,460
and I'm not a lawyer, so don't sue the hell out of me if the sense of happening to
1810
01:38:43,460 --> 01:38:46,399
you, but it's very unlikely in practice.
1811
01:38:46,460 --> 01:38:49,500
This sort of thing occurs, it's a vanishingly small percentage of the time.
1812
01:38:49,920 --> 01:38:52,699
And nowadays with agents getting more and more autonomy and other things,
1813
01:38:52,720 --> 01:38:55,220
and then more and more skill and more ability to plan their own work,
1814
01:38:55,260 --> 01:38:58,140
like we're going to talk about in a moment with plan mode. You know,
1815
01:38:58,180 --> 01:39:01,119
most people are shifting towards using bypass permissions.
1816
01:39:01,579 --> 01:39:04,880
Bypass permissions also allows Claude to create new files, not just delete them.
1817
01:39:05,220 --> 01:39:08,720
That in addition to editing files can present a risk. The main risk,
1818
01:39:08,720 --> 01:39:11,939
if we're just being like business minded here, is actually you just like,
1819
01:39:11,939 --> 01:39:15,680
you create a bunch of additional files that maybe you don't need. And, you know,
1820
01:39:15,760 --> 01:39:17,960
because of that, your workspace can bloat over time.
1821
01:39:18,279 --> 01:39:22,180
So it's pragmatic and pertinent to every now and then just ask Claude code to go
1822
01:39:22,180 --> 01:39:24,899
through your files and see if there's anything in the workspace that just isn't
1823
01:39:24,899 --> 01:39:26,720
required anymore. You know, realistically,
1824
01:39:26,859 --> 01:39:28,859
as you guys are going to see when we build this next project,
1825
01:39:30,060 --> 01:39:31,840
Claude's going to try a bunch of approaches to do things,
1826
01:39:31,840 --> 01:39:34,399
both on the front end and the back end, although the back end,
1827
01:39:34,479 --> 01:39:37,180
usually much more often. And in doing so,
1828
01:39:37,180 --> 01:39:39,640
it'll accumulate like different libraries that it probably doesn't need.
1829
01:39:39,920 --> 01:39:41,420
It'll accumulate different files.
1830
01:39:41,579 --> 01:39:45,739
It'll create temporary Jasons and all this fancy stuff. And as a result of that,
1831
01:39:45,920 --> 01:39:47,220
if you're not constantly on top of that,
1832
01:39:47,399 --> 01:39:51,460
you can have a folder that has like 10,000 files and it's all just temp stuff,
1833
01:39:51,600 --> 01:39:54,819
which slows down your computer and bloats Claude code. I've done it before.
1834
01:39:55,240 --> 01:39:57,380
So we'll talk a little bit more about context management,
1835
01:39:57,399 --> 01:39:59,159
how to effectively do that in one of the next modules.
1836
01:39:59,340 --> 01:40:03,039
But I just wanted you guys to know that for now in terms of how to set up bypass
1837
01:40:03,039 --> 01:40:05,399
permissions, it's actually non-trivial to do this.
1838
01:40:05,399 --> 01:40:07,439
And if it's the very first time that you're setting up Claude code,
1839
01:40:07,479 --> 01:40:10,000
you won't have access to that. So head over to the extensions tab,
1840
01:40:10,399 --> 01:40:12,020
get into Claude code for VS code.
1841
01:40:12,479 --> 01:40:14,640
You're going to want to click this little gear icon and go to settings.
1842
01:40:15,079 --> 01:40:16,840
That's going to open up this tab over here.
1843
01:40:16,880 --> 01:40:18,680
I'm just going to move it over to the middle so we could see.
1844
01:40:19,159 --> 01:40:22,039
You'll notice that one of the first settings is Claude code allowed dangerously
1845
01:40:22,039 --> 01:40:22,619
skip permissions.
1846
01:40:23,440 --> 01:40:26,880
So it'll recommend this only for sandboxes with no internet access.
1847
01:40:27,100 --> 01:40:30,500
Obviously mine has internet access just fine. So, you know,
1848
01:40:30,720 --> 01:40:32,659
accept this at your own risk, but if you click this button,
1849
01:40:32,659 --> 01:40:34,720
you will now have access to it down below.
1850
01:40:34,720 --> 01:40:38,239
There's a few other settings here like Claude code auto-save enable new
1851
01:40:38,239 --> 01:40:41,119
conversation shortcuts, disable login prompts, and so on and so forth.
1852
01:40:41,500 --> 01:40:43,899
I don't really use or change any of these in practice. Okay.
1853
01:40:43,899 --> 01:40:45,439
And then finally you have plan mode,
1854
01:40:45,479 --> 01:40:49,460
which is going to make up the bulk of what we're talking about next plan mode is
1855
01:40:49,460 --> 01:40:51,119
read only exploration,
1856
01:40:51,600 --> 01:40:56,020
which basically means Claude code can research things using web tools.
1857
01:40:56,020 --> 01:40:58,180
So you can go on the internet and find things out for you.
1858
01:40:58,300 --> 01:41:00,699
It can read through all the preexisting files in your directory.
1859
01:41:01,000 --> 01:41:03,920
It can also reason from first principles and it can kind of use its own
1860
01:41:03,920 --> 01:41:05,140
intelligence to figure things out.
1861
01:41:05,560 --> 01:41:09,500
And then it can basically take all of this and put this into a plan document
1862
01:41:09,500 --> 01:41:11,979
before presenting it to you. Now plan mode is awesome.
1863
01:41:12,039 --> 01:41:15,380
And I use plan mode all the time and basically anytime I'm doing any sort of
1864
01:41:15,380 --> 01:41:17,340
build that's more complicated than a simple design.
1865
01:41:17,460 --> 01:41:20,960
The reason why it's so good is because instead of acting,
1866
01:41:21,239 --> 01:41:25,579
which in the real world takes a lot of time and energy to both do and then undo
1867
01:41:26,039 --> 01:41:29,720
all plan mode does is it just researches all the factors involved in the build
1868
01:41:29,720 --> 01:41:30,779
before doing it.
1869
01:41:30,779 --> 01:41:36,039
If you work in this like theoretical plan space and not the actual like space
1870
01:41:36,039 --> 01:41:39,140
of the, you know, the build and all the libraries and all the code,
1871
01:41:39,579 --> 01:41:40,699
you will save many,
1872
01:41:40,760 --> 01:41:44,479
many hours of building over the course of just the next few days and probably
1873
01:41:44,479 --> 01:41:48,199
tens and hundreds of hours over the course of a lifetime of using this tool.
1874
01:41:49,119 --> 01:41:51,180
A minute of planning saves you 10 minutes of building.
1875
01:41:51,300 --> 01:41:53,159
It's just super high leverage and I'd recommend you.
1876
01:41:53,659 --> 01:41:56,840
So imagine two possible scenarios for me in the first scenario,
1877
01:41:56,840 --> 01:41:58,560
you build something with Claude code,
1878
01:41:59,200 --> 01:42:03,119
then you test it and then you realize that there's some issue with it.
1879
01:42:03,159 --> 01:42:05,560
Maybe you're building a simple web app that, you know,
1880
01:42:06,020 --> 01:42:09,100
upon login adds some numbers or credentials to a database.
1881
01:42:10,260 --> 01:42:12,619
So you've done this now you've realized that it's wrong.
1882
01:42:13,039 --> 01:42:14,920
What that means is because the approach is wrong.
1883
01:42:15,100 --> 01:42:18,619
Basically the time that you spent building while not completely wasted,
1884
01:42:18,899 --> 01:42:20,779
a big chunk of it is wasted. Okay.
1885
01:42:21,039 --> 01:42:23,159
So not only have you spent the 15 minutes to build the thing,
1886
01:42:23,380 --> 01:42:25,380
not only you spent the five minutes to test the thing,
1887
01:42:25,659 --> 01:42:26,699
you also have to rebuild the thing,
1888
01:42:26,699 --> 01:42:29,420
which can take 15 minutes multiplied by however many times you have to
1889
01:42:29,420 --> 01:42:30,819
continuously test and retest.
1890
01:42:31,180 --> 01:42:34,739
That means that the total amount of time it takes you is 35 minutes plus a fair
1891
01:42:34,739 --> 01:42:36,859
number of tokens. Not a lot of people talk about,
1892
01:42:36,939 --> 01:42:40,380
but this can obviously eat into costs. That is scenario one.
1893
01:42:40,439 --> 01:42:44,779
And this is the build without plan approach.
1894
01:42:45,500 --> 01:42:48,680
Okay. Now in scenario two, which is the build with plan,
1895
01:42:49,140 --> 01:42:51,279
what you do is you spend your first five minutes,
1896
01:42:51,340 --> 01:42:54,659
just planning something super in depth with Claude codes, plan mode,
1897
01:42:55,260 --> 01:42:57,720
somewhere during the plan, because we're folk, we're,
1898
01:42:57,920 --> 01:43:01,000
we're building a super like a granular line item scope here.
1899
01:43:01,020 --> 01:43:03,479
We're looking at all the tools and we're looking at the objects and whatever the
1900
01:43:03,479 --> 01:43:05,859
heck, there's like a lot that's going on out of the hood because we're doing
1901
01:43:05,859 --> 01:43:08,960
that. Claude code realizes that it won't work halfway through,
1902
01:43:09,159 --> 01:43:11,500
and then just recreates a better plan that does it.
1903
01:43:12,159 --> 01:43:16,180
The total amount of time it takes for you to like get to the building is just
1904
01:43:16,180 --> 01:43:18,420
five minutes plus five minutes, 10 minutes.
1905
01:43:18,520 --> 01:43:20,699
And then maybe your actual build time now,
1906
01:43:20,720 --> 01:43:23,600
because it's like so much better and faster and stuff like that is only five
1907
01:43:23,600 --> 01:43:25,680
minutes or 15. So you think about it,
1908
01:43:25,680 --> 01:43:28,460
like not only have we saved 20 minutes on a single build,
1909
01:43:28,899 --> 01:43:30,920
and we've also done so with significantly fewer tokens.
1910
01:43:31,579 --> 01:43:35,939
What that means is it's much better to like do all of your work here,
1911
01:43:37,540 --> 01:43:40,800
basically during the planning of the spec.
1912
01:43:41,539 --> 01:43:43,380
And this is true not only from Claude code,
1913
01:43:43,479 --> 01:43:45,920
but any sort of programming or really any sort of project development,
1914
01:43:46,800 --> 01:43:51,340
as opposed to here, which is like where, you know,
1915
01:43:51,340 --> 01:43:53,600
your machines are actually building this thing,
1916
01:43:53,699 --> 01:43:56,659
like this fantastic, amazing Lego block based construction.
1917
01:43:57,439 --> 01:44:00,020
I'm just going to pretend that like we're building some sort of building or
1918
01:44:00,020 --> 01:44:03,520
pyramid here, right? Because, you know,
1919
01:44:03,560 --> 01:44:04,680
if you screw this up,
1920
01:44:04,699 --> 01:44:07,199
what that means is now you have to knock all these Lego blocks down,
1921
01:44:07,199 --> 01:44:09,579
and then you have to rebuild it from scratch all over again.
1922
01:44:09,840 --> 01:44:13,520
So better to go off the blueprint or the architecture diagram or whatever,
1923
01:44:13,539 --> 01:44:15,460
and make changes there than in the physical world.
1924
01:44:15,560 --> 01:44:18,220
The physical world incurs a fair amount of real costs. By the way,
1925
01:44:18,220 --> 01:44:19,579
I know we're working in the virtual world here,
1926
01:44:19,579 --> 01:44:22,100
but it's the same thing as like planning a construction project, right?
1927
01:44:22,279 --> 01:44:25,479
You plan construction projects that you don't run into a situation where you
1928
01:44:25,479 --> 01:44:27,600
don't have enough materials on site. And you're like, Oh my God,
1929
01:44:27,619 --> 01:44:30,340
I got to fricking stop everything for the day and go find some.
1930
01:44:30,500 --> 01:44:33,060
So how do you actually use plan mode in reality? Well,
1931
01:44:33,060 --> 01:44:35,819
what I want to do next is I want to use plan mode to build out a pretty
1932
01:44:35,819 --> 01:44:36,819
complicated project.
1933
01:44:37,280 --> 01:44:40,880
This project is going to basically be a full stack web application.
1934
01:44:41,000 --> 01:44:42,260
It's going to have a front end.
1935
01:44:42,560 --> 01:44:46,300
It's going to have authentication and like an interface where you can log in.
1936
01:44:46,359 --> 01:44:49,020
And it's also going to have a backend and we're going to build it in just a few
1937
01:44:49,020 --> 01:44:49,500
minutes.
1938
01:44:49,819 --> 01:44:53,380
The specific project that I'd like to build today is basically a proposal
1939
01:44:53,380 --> 01:44:54,699
generation platform.
1940
01:44:55,079 --> 01:44:58,659
I want to automatically be able to generate proposals,
1941
01:44:58,979 --> 01:45:03,539
high quality sales documents that I can then send to prospects through this
1942
01:45:03,539 --> 01:45:05,840
web interface. I want to do it all natively.
1943
01:45:05,840 --> 01:45:08,840
And I basically want to rebuild the functionality of, I don't know,
1944
01:45:08,880 --> 01:45:10,979
like docuSign or like Panda doc.
1945
01:45:11,300 --> 01:45:13,539
I want there to be all the bells and whistles on it.
1946
01:45:13,600 --> 01:45:17,100
I want there to be like the ability for people to sign, but also to like pay.
1947
01:45:17,440 --> 01:45:21,100
I want to have my own little login screen so that I can give it to my clients.
1948
01:45:21,159 --> 01:45:23,680
And then maybe my colleagues. And I can obviously also use it myself.
1949
01:45:24,319 --> 01:45:25,060
I want to, you know,
1950
01:45:25,060 --> 01:45:28,159
have like a couple of templates that I produce based off of it basically end to
1951
01:45:28,159 --> 01:45:29,979
end. I want to build a fricking app today.
1952
01:45:30,640 --> 01:45:33,300
This is much more complicated than just a simple landing page. Right?
1953
01:45:33,579 --> 01:45:35,199
So how am I going to go about doing it? Well,
1954
01:45:35,199 --> 01:45:37,340
the first thing I'm going to do is I'm actually just going to build out what
1955
01:45:37,340 --> 01:45:39,859
I'd consider to be a pretty straightforward project spec,
1956
01:45:40,420 --> 01:45:43,140
which is just a list of things that I want this to be able to do.
1957
01:45:43,539 --> 01:45:46,640
And there's a bunch of different formatting methodologies here and like
1958
01:45:46,640 --> 01:45:49,159
different ways of doing it. You don't really have to worry too much about that.
1959
01:45:49,399 --> 01:45:52,760
All I'm going to do is I'm basically going to dump everything in via voice
1960
01:45:52,760 --> 01:45:54,800
transcript to a little text tab.
1961
01:45:54,960 --> 01:45:57,119
And then I'm going to feed that into Claude Code and have it actually format
1962
01:45:57,119 --> 01:45:59,020
that into a specs document for me.
1963
01:45:59,239 --> 01:46:02,039
So I'm going to open up my voice transcription tool and get after it.
1964
01:46:02,819 --> 01:46:06,359
My goal today is to build a proposal generation platform.
1965
01:46:06,680 --> 01:46:11,680
I want this proposal generation platform to have everything that a common tool
1966
01:46:11,680 --> 01:46:16,460
like Panda doc might have in so far that I want it to be able to
1967
01:46:16,900 --> 01:46:20,659
generate end to end high quality proposals as okay.
1968
01:46:20,720 --> 01:46:23,460
So I just did that. I have a tremendous amount of context.
1969
01:46:23,720 --> 01:46:26,119
Now what I'm going to do is I'm actually going to go to a new window and
1970
01:46:26,119 --> 01:46:27,880
antigravity, which just closed out of the old one.
1971
01:46:28,460 --> 01:46:32,560
I'm then going to open up a new folder. So go open folder.
1972
01:46:32,939 --> 01:46:37,159
And here I'm going to say new one. Let's just call this proposal generator app.
1973
01:46:38,180 --> 01:46:40,420
Once I've created this, I'm going to dump right in.
1974
01:46:40,739 --> 01:46:42,739
Then I'm going to go to Claude Code here.
1975
01:46:43,239 --> 01:46:45,960
Let me zoom in so we could see this a little bit better down here.
1976
01:46:45,960 --> 01:46:49,119
I'm going to go, um, sorry, not by a past permissions plan mode.
1977
01:46:49,119 --> 01:46:52,180
As you can see, I'm pretty eager. And then I'm going to go back here,
1978
01:46:52,359 --> 01:46:56,239
copy this and then just dump all this in. It's for a matter of white space.
1979
01:46:56,279 --> 01:46:58,239
So bear with me. And what I did here is I just,
1980
01:46:58,239 --> 01:47:01,340
I just dumped in more or less everything that I wanted to do in the app.
1981
01:47:01,760 --> 01:47:04,659
So I didn't specify things in a technical way.
1982
01:47:04,720 --> 01:47:06,000
I just told it what I wanted.
1983
01:47:06,539 --> 01:47:08,619
My goal today is to build a proposal generation platform.
1984
01:47:08,800 --> 01:47:11,460
I want this proposal generation platform to have almost everything that a common
1985
01:47:11,460 --> 01:47:14,539
tool like Panda doc might have, except for the template builder functionalities.
1986
01:47:14,539 --> 01:47:16,420
I just want to give you a template and have you do it.
1987
01:47:16,500 --> 01:47:18,539
Aside from that, I want to be able to generate end to end high quality
1988
01:47:18,539 --> 01:47:22,319
proposals as static pages that I could send the URL to the client with.
1989
01:47:22,840 --> 01:47:24,859
And now it's going to ask me a bunch of questions about it.
1990
01:47:24,859 --> 01:47:28,000
So what front end framework do you want to use? I don't know, whatever's the best.
1991
01:47:28,039 --> 01:47:30,659
So I'm just going to say this one. Sure. For e-signatures,
1992
01:47:30,779 --> 01:47:33,659
how legally robust do you need them to be? Um, I don't know what that means.
1993
01:47:33,680 --> 01:47:35,840
I'll just click the simplest one for straight payments.
1994
01:47:35,899 --> 01:47:38,779
Will proposals have a fixed price or variable amounts you set on proposal?
1995
01:47:38,840 --> 01:47:42,220
That's a great question. I'll say variable are using super base for the database too.
1996
01:47:42,220 --> 01:47:44,680
I'll say super base for everything. Cool. Submit answers.
1997
01:47:45,359 --> 01:47:48,680
So what basically this just did is it crafted a little graphically user
1998
01:47:48,680 --> 01:47:51,979
interface for me to ask me some questions about specific ways that it wants to do
1999
01:47:51,979 --> 01:47:55,439
the project. Um, and in this way we can go back and forth, which is quite nice.
2000
01:47:56,380 --> 01:48:00,199
Okay. Tailwind for utility, CSS, shad, CN UI for polished.
2001
01:48:00,399 --> 01:48:02,119
I don't know what the hell that means. Let's just click it.
2002
01:48:02,579 --> 01:48:05,680
Can you share the proposal template now? Paste it, link it, or tell me the thought path.
2003
01:48:05,739 --> 01:48:07,739
I'll paste it next message. That sounds great.
2004
01:48:08,079 --> 01:48:11,060
So what I'm going to do now is I'm going to go find a template of a proposal that
2005
01:48:11,060 --> 01:48:13,119
I want it to automatically generate for me. Okay.
2006
01:48:13,119 --> 01:48:16,180
So I have my proposal template over here. It's pretty sexy. You know,
2007
01:48:16,180 --> 01:48:19,939
I give people some problem areas, some solutions. Um, you know,
2008
01:48:19,939 --> 01:48:23,880
I talk about why us, I have a little photo of me, Alex Ramosi and Sam Evans up there.
2009
01:48:23,960 --> 01:48:25,319
So it's pretty sexy. What I'm going to do next.
2010
01:48:25,399 --> 01:48:28,779
I'm just going to move this into my workspace one-time project.
2011
01:48:29,579 --> 01:48:32,399
And over here, I'm just going to rename this to call this proposal template.
2012
01:48:33,600 --> 01:48:36,880
That's okay. And then over here, I'll say, great,
2013
01:48:37,220 --> 01:48:39,220
it's in proposal template.pdf.
2014
01:48:39,220 --> 01:48:42,100
And, um, just because I also want the design to be really cool,
2015
01:48:42,560 --> 01:48:45,579
use a simple clean design, sort of like, uh, Apple,
2016
01:48:46,159 --> 01:48:50,420
follow the proposal template design in the actual generation of the page for
2017
01:48:50,420 --> 01:48:53,399
everything else though, make it kind of Apple-esque. Okay. Next up,
2018
01:48:53,539 --> 01:48:56,819
it'll read through my proposal template and then think up what to do next.
2019
01:48:57,060 --> 01:48:58,899
And now it is generating a plan for me.
2020
01:48:58,899 --> 01:49:01,239
It's figured out the nine page proposal document.
2021
01:49:01,700 --> 01:49:05,460
It's designing some detailed implementation thing with all the information,
2022
01:49:05,479 --> 01:49:07,140
the user flow and so on and so forth.
2023
01:49:07,140 --> 01:49:08,899
What's interesting is it's giving this to a sub agent.
2024
01:49:09,020 --> 01:49:11,180
You could see because it's using the task feature,
2025
01:49:11,199 --> 01:49:14,359
which is basically coded sub agent language. As you can see,
2026
01:49:14,380 --> 01:49:17,279
there's a tremendous amount of information that it's going through in order to
2027
01:49:17,279 --> 01:49:19,079
generate this. It's also doing some research,
2028
01:49:19,239 --> 01:49:22,859
like looking up things from Panda doc, just because I referenced it. Okay.
2029
01:49:22,859 --> 01:49:25,340
And at the end it's now finished the final plan file.
2030
01:49:25,720 --> 01:49:27,760
So what I'm going to do is I'm just going to scroll through it and read it for
2031
01:49:27,760 --> 01:49:31,800
myself. It's very comprehensive proposal generator platform implementation plan.
2032
01:49:31,899 --> 01:49:34,640
We're going to build a Panda doc like proposal generation platform for left
2033
01:49:34,640 --> 01:49:37,960
like users will sign in, create proposals via AI and share public URLs with
2034
01:49:37,960 --> 01:49:42,020
clients. Clients will view sign canvas signature and pay.
2035
01:49:42,380 --> 01:49:44,920
The proposal page will follow the provided PF template design.
2036
01:49:45,439 --> 01:49:48,680
Also the app is Apple esque and minimal. Here's the tech stack.
2037
01:49:48,800 --> 01:49:50,479
I don't know what most of that stuff means to be honest,
2038
01:49:50,500 --> 01:49:53,100
and I'm not going to worry about it. Proposal template sections,
2039
01:49:53,420 --> 01:49:56,300
cover your problem areas, your solution. Why us, our team,
2040
01:49:56,399 --> 01:49:58,279
what working with us looks like, what your investing contracts,
2041
01:49:58,300 --> 01:50:01,819
signature payment, database schema profiles. I don't know again,
2042
01:50:01,840 --> 01:50:03,560
what the heck this means. I'm not going to worry about it.
2043
01:50:04,480 --> 01:50:08,579
And then over here we have a bunch of routes, API things, false structures,
2044
01:50:08,619 --> 01:50:10,920
you know, as somebody that is not a developer by trade,
2045
01:50:10,920 --> 01:50:14,439
I'm not going to focus too much on that stuff, but it looks like when people sign in,
2046
01:50:14,479 --> 01:50:17,800
they hit log in and those will be a dashboard page. When they create,
2047
01:50:17,840 --> 01:50:20,199
they'll click new proposal, which will go to dashboard slash new.
2048
01:50:20,680 --> 01:50:23,680
There'll be a few form fields to fill out like brief description and pricing rows.
2049
01:50:24,100 --> 01:50:27,180
They'll submit it. That'll call Opus and then we'll generate them.
2050
01:50:27,300 --> 01:50:30,119
And then in order to copy, we just copy this URL and send it to the client.
2051
01:50:30,600 --> 01:50:33,539
That looks pretty clean to me. I'm sure it's not going to be perfect, but yeah,
2052
01:50:33,539 --> 01:50:34,460
why don't we give it a go?
2053
01:50:35,420 --> 01:50:37,420
So what I'm going to do is I'm going to so auto accept.
2054
01:50:37,920 --> 01:50:41,840
And I know just because I've done some things before with this tool stack,
2055
01:50:42,100 --> 01:50:44,079
SuperBase specifically, I'm just going to go through it.
2056
01:50:44,100 --> 01:50:46,720
I'm going to set up a SuperBase account while it's running me through all of the
2057
01:50:46,720 --> 01:50:49,039
stuff that way I can kind of, you know, double up on the time.
2058
01:50:49,140 --> 01:50:52,039
While this does some work for me, I can go and do the, the SuperBase stuff.
2059
01:50:52,199 --> 01:50:53,560
So SuperBase is a simple database.
2060
01:50:53,600 --> 01:50:57,239
Basically it just handles like the logins and also handles like the generation of
2061
01:50:57,239 --> 01:50:59,140
records and stuff. First thing that you would want to do,
2062
01:50:59,159 --> 01:51:01,720
if you were doing something similar, is you just log right into SuperBase.
2063
01:51:01,720 --> 01:51:04,359
Set up a new account if you don't already have one and then start your project.
2064
01:51:04,579 --> 01:51:05,319
I'm doing this for free.
2065
01:51:05,420 --> 01:51:07,579
So I just started one called proposal underscore generator,
2066
01:51:07,579 --> 01:51:10,100
and then I'll click on it, which will take me to the project.
2067
01:51:10,260 --> 01:51:13,100
Somewhere on the left-hand side here, we have API keys.
2068
01:51:13,619 --> 01:51:16,600
API keys are basically just what we want to give to this so that it just does
2069
01:51:16,600 --> 01:51:20,020
everything for me. So let's see here.
2070
01:51:20,699 --> 01:51:22,960
We want to give it all keys.
2071
01:51:23,119 --> 01:51:25,659
So I'm just going to go copy API key.
2072
01:51:26,779 --> 01:51:28,640
And then also I'm just going to,
2073
01:51:28,640 --> 01:51:31,340
looks like it's asking me some questions here because it's now, oh,
2074
01:51:31,340 --> 01:51:33,199
it's still in plan mode. So keep in mind,
2075
01:51:33,199 --> 01:51:35,520
we want to go to bypass permissions mode now,
2076
01:51:35,619 --> 01:51:38,500
because instead of having to ask me every five seconds for things, you know,
2077
01:51:38,500 --> 01:51:41,180
I want this to be able to proceed. And then I'm just going to give it some stuff.
2078
01:51:41,340 --> 01:51:45,220
I'll say SuperBase, I don't know, secret key.
2079
01:51:45,659 --> 01:51:50,979
Just going to give it to it and also give it my SuperBase public key.
2080
01:51:51,560 --> 01:51:52,539
Why am I doing all this?
2081
01:51:52,539 --> 01:51:55,739
Because I know it's going to need this information in order to move forward.
2082
01:51:55,840 --> 01:51:59,579
Now in Stripe, I'm going to go over to one of my accounts and then I'll go test
2083
01:51:59,579 --> 01:52:00,960
mode, create sandbox.
2084
01:52:01,100 --> 01:52:04,899
What this will do is this will give me like a little sandbox version of Stripe
2085
01:52:04,899 --> 01:52:07,840
that I could use with its own API keys and everything like that.
2086
01:52:08,079 --> 01:52:10,119
This way I can basically like, you know,
2087
01:52:10,279 --> 01:52:14,500
process the payments and stuff like that using this test. So here it is right now.
2088
01:52:14,500 --> 01:52:17,640
And then if I want to get my API keys, I have them both over here.
2089
01:52:17,640 --> 01:52:20,800
So I'm just going to copy the Publishal key. You know, I said,
2090
01:52:20,859 --> 01:52:23,380
I want you to take payments during using Stripe basically,
2091
01:52:23,439 --> 01:52:26,680
which is why it's doing this. Let's go public.
2092
01:52:28,620 --> 01:52:31,779
And then over here, I'll go private key. Cool.
2093
01:52:32,279 --> 01:52:35,680
And so now I basically loaded it up with what I think is everything that it'll
2094
01:52:35,680 --> 01:52:37,960
need in order to actually go and like, you know, connect.
2095
01:52:38,460 --> 01:52:40,359
So I'm just going to press enter here.
2096
01:52:41,100 --> 01:52:42,659
In case you guys didn't know, when you press enter,
2097
01:52:42,720 --> 01:52:44,699
what you do is you basically queue up another message.
2098
01:52:45,000 --> 01:52:46,899
So when this is done with all of its tasks,
2099
01:52:47,260 --> 01:52:49,380
it'll now have access to all of my keys and stuff.
2100
01:52:49,840 --> 01:52:50,920
So now that it's done that task,
2101
01:52:50,920 --> 01:52:53,840
it's going to create all the files and it's just adding all of the information
2102
01:52:53,840 --> 01:52:54,920
and stuff like that.
2103
01:52:54,920 --> 01:52:57,420
It looks like we have the SuperBaseAnon key.
2104
01:52:57,520 --> 01:52:59,020
I think that might be something else that we need.
2105
01:52:59,079 --> 01:53:00,659
So I'm going to have to find that information out.
2106
01:53:01,260 --> 01:53:04,159
It'll ask me to do this in a moment. So it's not that big of a deal. This is here.
2107
01:53:04,239 --> 01:53:07,159
It just got my API keys. So it's going to update the ENV file.
2108
01:53:07,319 --> 01:53:09,239
And then at the end of this, it's probably just going to ask me like, Hey,
2109
01:53:09,260 --> 01:53:11,539
can you also include X, Y, and Z? Now I could have, of course,
2110
01:53:11,560 --> 01:53:13,500
just asked this thing to start building for me. You know,
2111
01:53:13,500 --> 01:53:15,520
I could have just given it all the specs and said, go for it.
2112
01:53:15,659 --> 01:53:21,819
But the planning that I did not only improves the probability that it'll be able
2113
01:53:21,819 --> 01:53:23,619
to do this on a quote unquote one shot,
2114
01:53:23,619 --> 01:53:28,319
but it also improves the token efficiency because it's not going to be exploring
2115
01:53:28,319 --> 01:53:31,739
10 different approaches at the time of building instead. You know,
2116
01:53:31,739 --> 01:53:35,039
it has like a document it can refer to. And that's kind of interesting,
2117
01:53:35,039 --> 01:53:38,060
but human beings sort of do better that way too, right?
2118
01:53:38,079 --> 01:53:40,840
Like if they're in a business and then you give them an SOP,
2119
01:53:40,979 --> 01:53:43,560
standard operating procedure, or you give them a checklist or something,
2120
01:53:43,560 --> 01:53:46,439
or you give them a simple three-step rule, they always have to accommodate.
2121
01:53:47,079 --> 01:53:53,600
They're much, much more likely to actually use those rules. So, uh,
2122
01:54:02,920 --> 01:54:04,319
yeah,
2123
01:54:22,180 --> 01:54:23,579
yeah,
2124
01:54:23,579 --> 01:54:26,279
the time that I'm back, this thing is either still working
2125
01:54:26,279 --> 01:54:28,060
or it's just wrapping up its completion.
2126
01:54:28,899 --> 01:54:31,239
I think right now we're like six or seven minutes in,
2127
01:54:32,039 --> 01:54:34,199
but what's really cool is you can parallelize your work.
2128
01:54:34,479 --> 01:54:35,979
So obviously this is all about being productive,
2129
01:54:35,979 --> 01:54:38,340
but there is also sort of like a time management
2130
01:54:38,340 --> 01:54:39,460
component to this as well.
2131
01:54:39,779 --> 01:54:42,060
Like after you do a plan and we're building a real big
2132
01:54:42,060 --> 01:54:44,079
full stack app here, this is not a trivial enterprise.
2133
01:54:44,640 --> 01:54:46,079
After we do that, like we're gonna have to wait
2134
01:54:46,079 --> 01:54:46,619
a few minutes.
2135
01:54:47,119 --> 01:54:48,600
So, you can just set this aside,
2136
01:54:49,340 --> 01:54:52,340
the value that this thing is going to get just watching,
2137
01:54:52,340 --> 01:54:54,439
having me just watch it is quite low.
2138
01:54:54,739 --> 01:54:55,960
You can actually just set this aside,
2139
01:54:56,140 --> 01:54:57,760
let it continue the building and then come back
2140
01:54:57,760 --> 01:55:00,279
either when it's done or when you hear that little hook
2141
01:55:00,279 --> 01:55:01,880
chime go off, which is personally what I use
2142
01:55:01,880 --> 01:55:03,000
to make sure I'm always in the loop.
2143
01:55:03,479 --> 01:55:04,720
Anyway, I'm gonna go marinate the salmon.
2144
01:55:04,880 --> 01:55:06,180
When I come back, this app should be done.
2145
01:55:06,439 --> 01:55:07,779
Okay, so three or four minutes later,
2146
01:55:07,779 --> 01:55:10,500
I just got back and I see that it is now good to go.
2147
01:55:10,520 --> 01:55:12,159
It's just asking me for a few things.
2148
01:55:12,380 --> 01:55:14,260
SuperBase project URL, which I'll find,
2149
01:55:14,600 --> 01:55:17,699
my Anthropic API key, I need to run an SQL migration,
2150
01:55:18,279 --> 01:55:21,439
give it a Stripe webhook, then ultimately deploy to Netlify.
2151
01:55:21,439 --> 01:55:23,659
What I'm gonna do is I'm gonna focus on testing
2152
01:55:23,659 --> 01:55:25,960
all this stuff locally, and then I'm gonna give it
2153
01:55:25,960 --> 01:55:26,979
access to all this information.
2154
01:55:27,399 --> 01:55:29,100
And then after I'm done, I'll do the pushing
2155
01:55:29,100 --> 01:55:30,119
and the deploying and I'll run and go see
2156
01:55:30,119 --> 01:55:30,800
what that looks like.
2157
01:55:31,239 --> 01:55:32,920
Keep in mind, you don't need to have any computer
2158
01:55:32,920 --> 01:55:34,039
programming experience to do this.
2159
01:55:34,479 --> 01:55:35,920
I mean, I didn't really give it anything
2160
01:55:35,920 --> 01:55:37,000
that was programming specific,
2161
01:55:37,039 --> 01:55:38,319
I just gave it a bunch of needs.
2162
01:55:38,640 --> 01:55:40,420
And while of course it went through and did a bunch
2163
01:55:40,420 --> 01:55:42,359
of things that were most definitely programming,
2164
01:55:42,739 --> 01:55:44,720
I wasn't really a part of that, which is quite valuable.
2165
01:55:44,979 --> 01:55:46,340
So I'm gonna go find this information,
2166
01:55:46,479 --> 01:55:48,399
I saw your next public SuperBase URL
2167
01:55:48,399 --> 01:55:50,079
and then my Anthropic API key.
2168
01:55:50,079 --> 01:55:53,420
Okay, so I see it says, reference using APIs and URLs,
2169
01:55:53,520 --> 01:55:56,119
this project ID, so I imagine that's probably that.
2170
01:55:56,699 --> 01:55:59,779
I'll say project ID for SuperBase is here,
2171
01:56:00,119 --> 01:56:02,260
and then throw up a key, I'll just sign into Cloud
2172
01:56:02,260 --> 01:56:05,100
real quick and grab, okay, so then I'm gonna grab this
2173
01:56:05,100 --> 01:56:07,659
and then over here, I'm just gonna call it
2174
01:56:07,659 --> 01:56:09,479
proposal generator app.
2175
01:56:10,539 --> 01:56:12,939
And so I'm gonna give me a key that I could use to copy
2176
01:56:12,939 --> 01:56:15,920
and no, you can't steal this from me because I
2177
01:56:17,739 --> 01:56:19,119
I will have deleted it right after this.
2178
01:56:19,119 --> 01:56:20,520
Nice try folks.
2179
01:56:21,100 --> 01:56:22,460
You'd be surprised at how many YouTubers don't,
2180
01:56:22,479 --> 01:56:24,920
which is hilarious, like half the YouTube API keys
2181
01:56:24,920 --> 01:56:27,239
that you see still work like six months later.
2182
01:56:27,880 --> 01:56:30,560
Be careful fellow YouTubers, run the SQL migration is next.
2183
01:56:30,640 --> 01:56:32,199
So paste the contents of this thing
2184
01:56:32,199 --> 01:56:33,539
into your SuperBase SQL editor.
2185
01:56:34,660 --> 01:56:36,619
So I guess I need to do that myself.
2186
01:56:36,659 --> 01:56:40,119
So I'm just gonna grab this, copy all this and then what?
2187
01:56:40,359 --> 01:56:42,460
SuperBase SQL editor and execute it.
2188
01:56:42,739 --> 01:56:44,640
Okay, while I'm doing that, I'm just gonna give it this
2189
01:56:44,640 --> 01:56:46,840
and then where do I get that?
2190
01:56:49,040 --> 01:56:50,399
SuperBase SQL editor.
2191
01:56:50,859 --> 01:56:52,100
Okay, there's one right over here.
2192
01:56:52,739 --> 01:56:54,920
That looks like it, no clue what the heck I'm doing.
2193
01:56:55,000 --> 01:56:58,399
I'm gonna click run, success, no rows returned, awesome.
2194
01:56:59,119 --> 01:57:00,640
I think that's what's supposed to happen.
2195
01:57:00,800 --> 01:57:02,659
Anyway, we'll see, it'll tell me if there are any issues.
2196
01:57:03,880 --> 01:57:06,800
Stripe webhook, register this in the Stripe dashboard
2197
01:57:06,800 --> 01:57:09,399
and put the whatever secret in ENV various.
2198
01:57:09,640 --> 01:57:10,680
I don't know what that means
2199
01:57:10,680 --> 01:57:12,020
and I honestly don't think I need to do that.
2200
01:57:12,020 --> 01:57:15,579
So I'm just gonna ask, okay, let's test this puppy locally.
2201
01:57:15,579 --> 01:57:17,680
Okay, so it's giving me the information.
2202
01:57:18,119 --> 01:57:21,579
It's also saying that the local host thing is ready to go.
2203
01:57:21,600 --> 01:57:23,539
So I'm actually just gonna open this up,
2204
01:57:24,199 --> 01:57:26,539
paste this in and see, cool, I got it.
2205
01:57:26,539 --> 01:57:28,119
So it says I'm gonna have to confirm my email.
2206
01:57:28,159 --> 01:57:29,060
So I don't really like that.
2207
01:57:29,060 --> 01:57:32,260
So the first thing I'm gonna do is I'll say, looks good.
2208
01:57:32,699 --> 01:57:34,760
If the user email isn't confirmed,
2209
01:57:34,920 --> 01:57:38,920
don't give it to them in a red error message
2210
01:57:38,920 --> 01:57:40,579
that's kind of unfriendly.
2211
01:57:40,659 --> 01:57:42,180
Just tell them to check their email
2212
01:57:42,180 --> 01:57:43,859
after their initial signup
2213
01:57:43,859 --> 01:57:46,159
because right now there's no notification with that.
2214
01:57:47,619 --> 01:57:49,739
And then basically I'm just gonna like work through this
2215
01:57:49,739 --> 01:57:51,279
step by step, page by page.
2216
01:57:51,680 --> 01:57:52,739
Okay, and the first thing I'm getting
2217
01:57:52,739 --> 01:57:54,039
is I check my email inbox.
2218
01:57:54,199 --> 01:57:55,239
I'm not seeing an email.
2219
01:57:55,380 --> 01:57:58,140
So I'm just going to give it a message telling it,
2220
01:57:58,619 --> 01:58:00,479
hey, first of all, let them know
2221
01:58:00,479 --> 01:58:01,640
that they need to confirm their email.
2222
01:58:02,020 --> 01:58:03,659
Second of all, actually make sure
2223
01:58:03,659 --> 01:58:04,859
that the email is being confirmed
2224
01:58:04,859 --> 01:58:06,659
because I'm not getting it upon the sign in.
2225
01:58:06,960 --> 01:58:08,600
Okay, and then it gave me the ability
2226
01:58:08,600 --> 01:58:09,979
to turn off the toggle email.
2227
01:58:10,039 --> 01:58:11,579
So I'm just gonna save that.
2228
01:58:12,460 --> 01:58:15,340
So we now no longer need to confirm the email.
2229
01:58:15,500 --> 01:58:16,739
And I'm gonna go back here.
2230
01:58:16,840 --> 01:58:19,300
Okay, cool, and it looks like I'm now into the dashboard.
2231
01:58:19,399 --> 01:58:21,779
Bottom left-hand corner, we have what looks to be,
2232
01:58:21,779 --> 01:58:23,319
I don't know, some Next.js stuff, I think.
2233
01:58:23,359 --> 01:58:24,460
I'm not really sure what this is.
2234
01:58:24,460 --> 01:58:25,880
It might just be like some developer stuff.
2235
01:58:26,680 --> 01:58:28,939
On the top right-hand corner, it looks like we can sign out.
2236
01:58:29,000 --> 01:58:30,159
So let me just try signing out.
2237
01:58:31,880 --> 01:58:34,039
Cool, and now in the middle, we can create a new proposal.
2238
01:58:34,239 --> 01:58:35,539
Just says proposals up here.
2239
01:58:35,539 --> 01:58:36,500
So click create new.
2240
01:58:37,100 --> 01:58:38,359
Now there's a bunch of information.
2241
01:58:38,460 --> 01:58:39,239
I like this.
2242
01:58:39,239 --> 01:58:41,260
So why don't I just go my own information?
2243
01:58:42,460 --> 01:58:44,340
I wonder if I just generate proposal if that's gonna work.
2244
01:58:44,399 --> 01:58:46,739
Let's do 1,000, 1,500, 2,000.
2245
01:58:46,859 --> 01:58:49,239
Okay, and then AI, Powered Sales Pipeline.
2246
01:58:49,260 --> 01:58:50,500
I actually like this, so why don't we do that.
2247
01:58:50,720 --> 01:58:52,600
The client needs an automated lead generation system
2248
01:58:52,600 --> 01:58:54,100
that integrates with their existing CRM.
2249
01:58:54,180 --> 01:58:56,340
They currently spend 20 hours a week on manual outreach
2250
01:58:56,340 --> 01:58:57,779
and wanna reduce this to under five hours
2251
01:58:57,779 --> 01:59:00,159
while increasing qualified leads by 3x.
2252
01:59:00,460 --> 01:59:02,819
I know they want to get to 100K a month.
2253
01:59:02,819 --> 01:59:03,460
Let's do that.
2254
01:59:03,560 --> 01:59:07,699
Okay, now for the money shot, let's generate proposal.
2255
01:59:08,880 --> 01:59:11,039
Click on the button, don't know what's going on.
2256
01:59:11,239 --> 01:59:12,279
No clue whether this is working.
2257
01:59:12,819 --> 01:59:15,020
Generally speaking, when you see a little bar like this
2258
01:59:15,020 --> 01:59:16,640
with a little circular thing,
2259
01:59:17,619 --> 01:59:21,159
like this is pretty poor in terms of like user experience
2260
01:59:21,159 --> 01:59:22,760
because I just don't know if it's working or not.
2261
01:59:22,760 --> 01:59:23,579
I'm not really sure.
2262
01:59:23,880 --> 01:59:25,840
Be nice if there could be some sort of progress,
2263
01:59:25,979 --> 01:59:27,960
some way that I could see the thing actually being generated
2264
01:59:27,960 --> 01:59:30,880
or upon clicking this, it'd be nice if I went to a new page.
2265
01:59:31,280 --> 01:59:33,439
So I think I'm probably gonna do that.
2266
01:59:34,320 --> 01:59:36,840
Hey, I'm not sure if the proposal has been generated.
2267
01:59:36,840 --> 01:59:39,760
It's been 10 or 15 seconds right now.
2268
01:59:39,880 --> 01:59:42,680
Could we do some additional user feedback
2269
01:59:42,680 --> 01:59:44,560
after they click the generate proposal button?
2270
01:59:44,899 --> 01:59:47,479
Some sort of status, some sort of updates.
2271
01:59:47,960 --> 01:59:49,779
Basically, there just needs to be some way that I know
2272
01:59:49,779 --> 01:59:51,380
that the proposal is actually being generated,
2273
01:59:51,439 --> 01:59:52,560
not just hanging all day.
2274
01:59:53,060 --> 01:59:55,579
Okay, it did end up generating the proposal after a while.
2275
01:59:55,619 --> 01:59:57,979
It looks very clean, but still I want you to do this.
2276
01:59:58,039 --> 01:59:59,920
Okay, so I'm just gonna feed that in here.
2277
02:00:00,500 --> 02:00:01,319
I'm really liking this.
2278
02:00:01,420 --> 02:00:03,039
I mean, look at the logo even, that's very sexy.
2279
02:00:03,140 --> 02:00:05,319
Using the same font, nice confidential.
2280
02:00:06,279 --> 02:00:07,840
Oh, this is so sexy.
2281
02:00:07,939 --> 02:00:08,960
Look at that, huh?
2282
02:00:08,960 --> 02:00:11,720
Wow, I just built a proposal for this.
2283
02:00:13,399 --> 02:00:15,159
What I'm gonna do now is just give it some more feedback.
2284
02:00:15,800 --> 02:00:18,920
I don't like how the text immediately
2285
02:00:18,920 --> 02:00:23,800
under your problem areas is really constrained width-wise.
2286
02:00:24,399 --> 02:00:26,140
You should make that a little longer,
2287
02:00:26,159 --> 02:00:28,720
maybe two times as wide.
2288
02:00:30,579 --> 02:00:34,260
In each of the sub benefits
2289
02:00:34,260 --> 02:00:39,220
underneath 01, 02, 03, 04, it's a little too wide now.
2290
02:00:39,260 --> 02:00:41,260
So make that maybe 75% as wide.
2291
02:00:42,060 --> 02:00:44,579
Do the same thing with the text under your solution.
2292
02:00:46,479 --> 02:00:48,060
Under YS looks great.
2293
02:00:48,239 --> 02:00:50,979
I want to have that image of myself,
2294
02:00:51,239 --> 02:00:53,420
Alex Formosy and Sam Ovens in there somewhere.
2295
02:00:53,739 --> 02:00:55,420
So find a way to include the image
2296
02:00:55,420 --> 02:00:57,060
in a high quality manner.
2297
02:00:58,180 --> 02:01:01,300
There's some minor spacing problems
2298
02:01:01,300 --> 02:01:04,220
with the we've done this before,
2299
02:01:04,439 --> 02:01:06,939
we focus on money and we don't treat AI as a fad.
2300
02:01:07,199 --> 02:01:08,960
They're not perfectly lined up to the numbers
2301
02:01:08,960 --> 02:01:10,600
one, two, three on the left-hand side.
2302
02:01:11,479 --> 02:01:13,579
Add some images of myself and Noah.
2303
02:01:17,399 --> 02:01:19,579
The what you're investing looks pretty clean.
2304
02:01:25,199 --> 02:01:28,880
But in general, there's a bit of a discord
2305
02:01:28,880 --> 02:01:30,939
between everything being left aligned
2306
02:01:30,939 --> 02:01:34,300
and then the service agreement being in white in the middle.
2307
02:01:35,380 --> 02:01:36,960
Find a way to fix that.
2308
02:01:41,220 --> 02:01:43,199
Okay, and now there's one more thing I want to do.
2309
02:01:43,239 --> 02:01:45,140
I just want to verify this works.
2310
02:01:50,859 --> 02:01:52,560
Okay, and now I'm just going to click sign and pay
2311
02:01:52,560 --> 02:01:53,500
and we're going to see what happens.
2312
02:01:53,760 --> 02:01:55,819
Okay, cool, looks like we're here in the example sandbox.
2313
02:01:55,880 --> 02:01:56,319
That's awesome.
2314
02:01:56,380 --> 02:01:58,500
I'm just going to pump in some payment information here.
2315
02:01:58,680 --> 02:02:00,340
Cool, looks like the payment went through
2316
02:02:00,340 --> 02:02:02,859
and then we also have this wonderful payment received button.
2317
02:02:03,020 --> 02:02:03,779
You can close this window.
2318
02:02:03,819 --> 02:02:04,380
That's awesome.
2319
02:02:04,800 --> 02:02:07,760
Okay, great, so let's just adjust that final bit.
2320
02:02:08,439 --> 02:02:09,779
Excellent, everything worked great.
2321
02:02:09,880 --> 02:02:12,819
On the final page where you do the confetti,
2322
02:02:13,100 --> 02:02:14,840
make the confetti last a little bit shorter.
2323
02:02:14,939 --> 02:02:16,779
The ones on the left and the right were a little long.
2324
02:02:17,460 --> 02:02:20,380
And then change will be in touch shortly to get started.
2325
02:02:22,239 --> 02:02:24,640
You'll receive an email with more details
2326
02:02:24,640 --> 02:02:26,460
and a link to book a kickoff call.
2327
02:02:27,919 --> 02:02:29,279
Actually, screw that.
2328
02:02:29,279 --> 02:02:31,140
Let's just give them a direct calendar link
2329
02:02:31,140 --> 02:02:32,220
to book a kickoff call.
2330
02:02:32,260 --> 02:02:32,800
Why not?
2331
02:02:32,899 --> 02:02:34,479
That's way easier and way faster.
2332
02:02:34,880 --> 02:02:37,439
Okay, so I'm just going to give it my own calendar.
2333
02:02:39,520 --> 02:02:41,979
I'll just give it an example here and then boom,
2334
02:02:42,000 --> 02:02:43,340
I'll just have it go off again.
2335
02:02:43,500 --> 02:02:44,779
So I mean, this looks really clean so far.
2336
02:02:44,819 --> 02:02:46,199
I guess there's one more thing I have to check.
2337
02:02:46,220 --> 02:02:48,640
I have to check and see if we can see the proposals listed.
2338
02:02:48,739 --> 02:02:49,460
Okay, so yeah, we can.
2339
02:02:49,500 --> 02:02:50,359
So can I click on this?
2340
02:02:50,720 --> 02:02:51,760
Can we go right back to the page?
2341
02:02:51,880 --> 02:02:52,239
Nice.
2342
02:02:52,600 --> 02:02:54,859
Now, can I just open this up in some new tab
2343
02:02:54,859 --> 02:02:55,659
that's not logged in?
2344
02:02:56,300 --> 02:02:58,479
Nice, so the slash P must be slash public.
2345
02:02:58,479 --> 02:02:59,180
That's really clean.
2346
02:02:59,960 --> 02:03:00,539
So I mean, I like this.
2347
02:03:00,640 --> 02:03:02,199
We did this in just a few minutes.
2348
02:03:03,159 --> 02:03:04,819
Honestly, very sexy as you guys could see.
2349
02:03:04,939 --> 02:03:05,899
I did very little work.
2350
02:03:06,500 --> 02:03:08,560
And yeah, I just need to find a way to basically
2351
02:03:09,460 --> 02:03:10,840
standardize the spacing and the width.
2352
02:03:11,020 --> 02:03:12,939
I don't like how this one over here
2353
02:03:12,939 --> 02:03:13,979
is on the left-hand side
2354
02:03:13,979 --> 02:03:15,960
and then this stuff stretches all the way up to the right.
2355
02:03:16,159 --> 02:03:17,539
But this is just a minor design thing
2356
02:03:17,539 --> 02:03:19,739
and we can absolutely significantly upgrade this.
2357
02:03:19,880 --> 02:03:21,859
God, we even have the signature here, which looks so cool.
2358
02:03:22,359 --> 02:03:25,260
I love how that you can now build your own apps, right?
2359
02:03:25,260 --> 02:03:26,140
Like you don't actually have to go
2360
02:03:26,140 --> 02:03:28,579
to like a big developer or pay out the ass
2361
02:03:28,579 --> 02:03:29,439
for some big platform.
2362
02:03:29,560 --> 02:03:31,119
You can just like one-shot an app like this
2363
02:03:31,119 --> 02:03:32,420
with good enough Claude Code skills.
2364
02:03:33,319 --> 02:03:35,760
Okay, and it's gone through and it's updated the widths
2365
02:03:35,760 --> 02:03:36,319
and stuff like that.
2366
02:03:36,319 --> 02:03:37,000
That looks pretty clean.
2367
02:03:37,039 --> 02:03:38,359
Now I'm just gonna go give it some images
2368
02:03:38,359 --> 02:03:39,340
and then it should be good.
2369
02:03:39,359 --> 02:03:41,859
We're gonna add them to public slash images apparently.
2370
02:03:42,060 --> 02:03:43,960
Nice, looking pretty clean if I do say so myself.
2371
02:03:44,220 --> 02:03:45,239
Don't know what the hell I was doing
2372
02:03:45,860 --> 02:03:47,199
with cuffing my pants like that,
2373
02:03:47,199 --> 02:03:47,779
but what are you gonna do?
2374
02:03:48,220 --> 02:03:50,199
Just looking at what it changed.
2375
02:03:50,239 --> 02:03:51,260
It made this a little bit wider,
2376
02:03:51,260 --> 02:03:53,060
but then it made this much, much smaller.
2377
02:03:53,199 --> 02:03:55,020
So I think what I'm gonna do is I'm just gonna enforce
2378
02:03:55,020 --> 02:03:57,220
like the same width across the entire page.
2379
02:03:57,380 --> 02:03:58,720
That probably makes the most sense.
2380
02:03:58,800 --> 02:04:00,279
Why don't we just like constrain it
2381
02:04:00,279 --> 02:04:01,420
so it'll be like here?
2382
02:04:02,360 --> 02:04:04,579
I don't know, like here or something.
2383
02:04:05,100 --> 02:04:06,279
That way it'll be somewhere in the middle.
2384
02:04:06,619 --> 02:04:07,960
Just gonna take a screenshot of this.
2385
02:04:08,220 --> 02:04:09,060
Hey, this looks good,
2386
02:04:09,060 --> 02:04:10,939
but I'm finding it a little too wide at the moment.
2387
02:04:11,060 --> 02:04:13,140
I believe we should just constrain it
2388
02:04:13,140 --> 02:04:15,960
and do a bunch of padding on the left and the right.
2389
02:04:16,359 --> 02:04:18,239
I sent you a screenshot of a quick example.
2390
02:04:18,619 --> 02:04:20,699
Now I guess we didn't actually do the screenshot, huh?
2391
02:04:21,340 --> 02:04:21,859
Cause I mean, it's good
2392
02:04:21,859 --> 02:04:23,380
cause it's like mobile optimized and stuff,
2393
02:04:23,380 --> 02:04:25,640
but obviously, you know, on my actual desktop,
2394
02:04:25,699 --> 02:04:26,880
there's just so much white space.
2395
02:04:27,220 --> 02:04:31,060
Let's just center everything, make it scrollable.
2396
02:04:31,279 --> 02:04:33,699
And then I'm just going to, yeah,
2397
02:04:33,699 --> 02:04:36,300
I'm not really sure why I couldn't take a screenshot
2398
02:04:36,300 --> 02:04:38,260
of those, but whatever.
2399
02:04:38,500 --> 02:04:39,520
That looks good to me.
2400
02:04:39,640 --> 02:04:40,779
Boom, just fed that in
2401
02:04:40,779 --> 02:04:43,640
and we should be pretty good to go, I think.
2402
02:04:43,960 --> 02:04:45,140
Holy, that salmon's good.
2403
02:04:45,359 --> 02:04:46,899
I am definitely doing that again.
2404
02:04:47,579 --> 02:04:49,039
Anyway, I gave it some more time
2405
02:04:49,039 --> 02:04:51,539
and it's centered most of this, I wanna say.
2406
02:04:51,900 --> 02:04:53,659
Looks pretty clean, all things considered.
2407
02:04:54,000 --> 02:04:56,100
You know, we're doing some cutting off of faces and whatnot,
2408
02:04:56,119 --> 02:04:56,979
but it's not that bad.
2409
02:04:57,720 --> 02:04:59,000
And yeah, honestly, this is very similar
2410
02:04:59,000 --> 02:05:00,140
to like the quality of a Panadoc.
2411
02:05:00,659 --> 02:05:01,460
I guess the last thing I'm gonna do
2412
02:05:01,460 --> 02:05:03,460
is I'm just gonna say, stretch the strategy bit
2413
02:05:04,280 --> 02:05:05,560
all the way to the end.
2414
02:05:07,060 --> 02:05:08,140
That probably makes the most sense.
2415
02:05:10,280 --> 02:05:12,020
Stretch this bit all the way
2416
02:05:12,020 --> 02:05:14,920
to the bounding boxes of the container,
2417
02:05:15,199 --> 02:05:17,520
i.e. the white box should go all the way.
2418
02:05:17,819 --> 02:05:19,720
Okay, here's one more thing that I think
2419
02:05:19,720 --> 02:05:21,340
this is a good opportunity to talk about.
2420
02:05:21,340 --> 02:05:22,979
A lot of the time, this will tell you
2421
02:05:22,979 --> 02:05:24,420
to do things like create a GitHub repo,
2422
02:05:24,439 --> 02:05:25,439
push the code, et cetera.
2423
02:05:25,960 --> 02:05:27,779
Just ask the agent to do it.
2424
02:05:27,819 --> 02:05:29,520
Most of the time, it can actually do what it is
2425
02:05:29,520 --> 02:05:30,539
that it's asking you to do.
2426
02:05:31,140 --> 02:05:33,039
If it can, you know, let it try
2427
02:05:33,039 --> 02:05:34,159
and then it'll tell you, absolutely.
2428
02:05:34,960 --> 02:05:36,260
Hey, can you do all this for me?
2429
02:05:38,280 --> 02:05:40,180
And then it'll just tell you what parts it can do
2430
02:05:40,180 --> 02:05:42,180
and which parts it can't.
2431
02:05:42,760 --> 02:05:44,220
Okay, taking a peek here.
2432
02:05:44,520 --> 02:05:46,420
It's telling me to go deploy the project.
2433
02:05:46,520 --> 02:05:48,699
So go here, add new site, import an existing project.
2434
02:05:48,739 --> 02:05:49,840
I can do that, select.
2435
02:05:51,579 --> 02:05:53,680
And then we need to build settings.
2436
02:05:54,000 --> 02:05:56,079
Should auto-fill, confirm and click deploy.
2437
02:05:56,680 --> 02:05:58,100
Proposal generator is available.
2438
02:05:58,479 --> 02:05:58,979
That's funny.
2439
02:06:00,279 --> 02:06:02,819
This is like the universal domain name, you're right.
2440
02:06:02,939 --> 02:06:04,680
Like anybody will be able to access this.
2441
02:06:08,440 --> 02:06:10,600
I'll put an A at the end because I think it's funny.
2442
02:06:11,300 --> 02:06:13,199
Okay, automatically detected next.
2443
02:06:13,859 --> 02:06:14,359
What else?
2444
02:06:14,819 --> 02:06:15,439
Confirm, click deploy.
2445
02:06:15,619 --> 02:06:16,960
Okay, so go to site settings.
2446
02:06:17,819 --> 02:06:19,960
And then we need to add all this information in.
2447
02:06:20,020 --> 02:06:20,819
So I'll do that.
2448
02:06:20,819 --> 02:06:24,060
Environment variables, import from a .env file.
2449
02:06:24,100 --> 02:06:25,300
So I'm just gonna paste this in.
2450
02:06:27,680 --> 02:06:29,260
So there's this .env local.
2451
02:06:29,279 --> 02:06:29,960
Let me grab that.
2452
02:06:30,119 --> 02:06:32,380
Okay, and we just imported all of these.
2453
02:06:35,000 --> 02:06:36,659
Nice, oh, that's nice.
2454
02:06:38,720 --> 02:06:41,779
Now I need to go set up my Stripe webhook.
2455
02:06:41,899 --> 02:06:43,000
So let's just paste that in.
2456
02:06:43,180 --> 02:06:44,119
Add a destination.
2457
02:06:45,140 --> 02:06:47,020
We need to add this endpoint URL.
2458
02:06:47,140 --> 02:06:48,359
So proposal generator.
2459
02:06:48,460 --> 02:06:50,239
I don't know exactly what all this stuff means,
2460
02:06:50,239 --> 02:06:52,539
but just gonna select all.
2461
02:06:53,079 --> 02:06:56,560
And then I guess it's just proposal generator.
2462
02:06:57,180 --> 02:06:59,739
Okay, and then no description, I think.
2463
02:07:01,399 --> 02:07:02,260
That looks good to me.
2464
02:07:02,520 --> 02:07:04,399
Okay, everything is now added.
2465
02:07:04,680 --> 02:07:07,460
So go through and then make sure my site's deployed.
2466
02:07:07,619 --> 02:07:09,020
I saw some issue with it earlier.
2467
02:07:09,159 --> 02:07:11,880
All right, so this is now gonna take whatever this is.
2468
02:07:11,880 --> 02:07:14,060
And now that it actually has access to the app,
2469
02:07:14,060 --> 02:07:15,720
it should be able to update it for me.
2470
02:07:16,000 --> 02:07:17,380
I don't know for sure, to be honest.
2471
02:07:17,539 --> 02:07:18,359
We'll figure it out.
2472
02:07:18,619 --> 02:07:19,560
Hopefully you guys can tell.
2473
02:07:20,120 --> 02:07:23,100
A lot of this stuff is me just saying, hey, fix it.
2474
02:07:23,319 --> 02:07:25,319
And if it can't fix it, what the hell do I do?
2475
02:07:25,380 --> 02:07:26,560
And then it just tells you what to do,
2476
02:07:26,560 --> 02:07:27,359
and then you're good to go.
2477
02:07:28,100 --> 02:07:29,939
What's important really is like,
2478
02:07:30,060 --> 02:07:31,619
if you think about it, like this software engineering stuff,
2479
02:07:31,619 --> 02:07:33,239
this is like almost completely automated.
2480
02:07:33,739 --> 02:07:36,260
I mean, I was doing more cooking of my salmon rice bowl
2481
02:07:36,260 --> 02:07:37,859
than I was actually, you know,
2482
02:07:37,979 --> 02:07:39,880
steering the ship after a certain point.
2483
02:07:40,119 --> 02:07:42,420
And that's because we made use of the plan mode so heavily.
2484
02:07:42,920 --> 02:07:44,500
But what's important really is like your agency
2485
02:07:44,500 --> 02:07:47,600
as a developer and like your ideas and your willingness
2486
02:07:47,600 --> 02:07:50,579
and capability to like put together things.
2487
02:07:51,039 --> 02:07:53,159
In my case, you know, I do a lot of proposals.
2488
02:07:53,359 --> 02:07:55,899
I send out maybe one every couple of days right now.
2489
02:07:56,220 --> 02:07:58,220
At our peak, we were sending like four or five out a day.
2490
02:07:58,380 --> 02:07:59,739
And so doing all that stuff manually
2491
02:07:59,739 --> 02:08:01,060
was obviously very time intensive.
2492
02:08:01,619 --> 02:08:02,720
Well, if I could just one shot it
2493
02:08:02,720 --> 02:08:03,800
with like a little voice transcript
2494
02:08:03,800 --> 02:08:05,140
and then an AI prompt, obviously,
2495
02:08:05,260 --> 02:08:06,359
and then generate my own landing page,
2496
02:08:06,460 --> 02:08:08,279
like that's really valuable for me as a business.
2497
02:08:08,560 --> 02:08:10,939
That's something that AI would not know of right now
2498
02:08:10,939 --> 02:08:12,439
and would not really be able to do.
2499
02:08:13,640 --> 02:08:16,159
So, you know, allow the AI to be your hands.
2500
02:08:17,140 --> 02:08:18,739
You, similar to the way that like, you know,
2501
02:08:18,960 --> 02:08:19,880
keys and a keyboard are,
2502
02:08:20,159 --> 02:08:21,119
you're the person that's coming up
2503
02:08:21,119 --> 02:08:22,100
with the ideas and thinking.
2504
02:08:22,439 --> 02:08:24,340
Okay, so I'm not sure if you guys are paying attention
2505
02:08:24,340 --> 02:08:25,619
while all of this is occurring,
2506
02:08:25,960 --> 02:08:30,819
but did you see this little context tab get filled up?
2507
02:08:30,960 --> 02:08:33,760
Because this is at 100% more than once at this point.
2508
02:08:34,439 --> 02:08:36,420
Essentially what occurs is this is your total amount
2509
02:08:36,420 --> 02:08:37,579
of context available to you
2510
02:08:37,579 --> 02:08:38,680
as somebody that's doing a build, right?
2511
02:08:39,500 --> 02:08:41,899
Well, when this reaches a certain limit,
2512
02:08:41,899 --> 02:08:44,020
when it hits, you know, 99 or 100% or whatever,
2513
02:08:44,540 --> 02:08:46,140
what it'll do is it'll take all of the texts
2514
02:08:46,140 --> 02:08:47,119
that you've written so far,
2515
02:08:47,300 --> 02:08:49,619
and it'll compress it down as tightly as humanly possible.
2516
02:08:50,119 --> 02:08:51,600
You know, now let me commit and push.
2517
02:08:51,760 --> 02:08:53,659
So Netlify Rebuilds might literally just turn
2518
02:08:53,659 --> 02:08:55,079
into Netlify Rebuilding.
2519
02:08:55,880 --> 02:08:57,399
It'll save all those tokens,
2520
02:08:58,100 --> 02:09:00,060
but in doing so also increase the information density
2521
02:09:00,060 --> 02:09:00,500
of your prompt.
2522
02:09:00,760 --> 02:09:02,899
And then it'll basically compact it.
2523
02:09:03,020 --> 02:09:03,880
That's what the term is.
2524
02:09:04,720 --> 02:09:06,739
So that you have more information
2525
02:09:06,739 --> 02:09:08,119
in the same amount of tokens.
2526
02:09:08,300 --> 02:09:11,039
So the next prompt that you use is both higher quality,
2527
02:09:11,039 --> 02:09:13,939
but then also doesn't actually run over the token limit.
2528
02:09:14,899 --> 02:09:16,140
The unfortunate reality is models right now
2529
02:09:16,140 --> 02:09:17,220
only have token limits of some more
2530
02:09:17,220 --> 02:09:18,600
between 200,000 to about a million.
2531
02:09:19,199 --> 02:09:20,920
Some of them have 200,000, other ones have a million.
2532
02:09:21,020 --> 02:09:22,779
The model I'm currently using is about 200K right now.
2533
02:09:22,939 --> 02:09:27,439
And that means that like after 199,909 tokens go in,
2534
02:09:27,520 --> 02:09:29,140
like there's only room for one more.
2535
02:09:29,920 --> 02:09:31,720
That's just the way that they're built, right?
2536
02:09:31,720 --> 02:09:32,520
That's just their infrastructure.
2537
02:09:33,180 --> 02:09:34,899
So Claude does a lot of these like automated
2538
02:09:34,899 --> 02:09:37,260
context management techniques without really telling you.
2539
02:09:37,300 --> 02:09:38,520
And that's core of what we're gonna learn
2540
02:09:38,520 --> 02:09:39,680
after this project is done.
2541
02:09:39,680 --> 02:09:41,640
Anyway, I went back and forth a couple of times.
2542
02:09:41,739 --> 02:09:43,760
And now you can see that we have the app live.
2543
02:09:43,819 --> 02:09:45,739
It's live on a public facing URL.
2544
02:09:45,800 --> 02:09:47,739
So I'm gonna go in nickywicky at gmail.com
2545
02:09:47,739 --> 02:09:49,800
and actually sign in with my previous account.
2546
02:09:50,800 --> 02:09:52,619
And now you can see, I actually have access
2547
02:09:52,619 --> 02:09:55,479
to that same pipeline, that same page that I had previously.
2548
02:09:55,600 --> 02:09:56,479
So I'm gonna give that a click.
2549
02:09:57,159 --> 02:09:58,739
Everything is nice and centered right now,
2550
02:09:58,739 --> 02:10:00,119
which is exactly what I wanted.
2551
02:10:00,660 --> 02:10:01,460
Super clean.
2552
02:10:02,340 --> 02:10:04,939
What's cool too is it stretched the strategy setup
2553
02:10:04,939 --> 02:10:06,359
and fee all the way to the right-hand side.
2554
02:10:06,420 --> 02:10:07,319
And then, you know, I have the ability
2555
02:10:07,319 --> 02:10:08,819
to do my signatures and whatnot.
2556
02:10:09,180 --> 02:10:11,000
So suffice to say like this, this worked.
2557
02:10:11,180 --> 02:10:12,239
This app is now functional.
2558
02:10:12,460 --> 02:10:12,859
It's live.
2559
02:10:13,340 --> 02:10:15,060
It's, you know, honestly probably better
2560
02:10:15,060 --> 02:10:16,640
for my purposes than Pandidak was,
2561
02:10:16,760 --> 02:10:18,159
which I was paying out the ass for.
2562
02:10:18,399 --> 02:10:19,659
Not that I don't think the company's cool,
2563
02:10:19,659 --> 02:10:21,600
but damn is that some expensive API pricing,
2564
02:10:21,600 --> 02:10:22,640
I think for what it's doing.
2565
02:10:23,039 --> 02:10:25,140
In my case, I'm doing all that now basically for free,
2566
02:10:25,420 --> 02:10:27,199
at least Netlify, you know, the deployment solution
2567
02:10:27,199 --> 02:10:28,479
that I had available was free.
2568
02:10:28,960 --> 02:10:30,439
So aside from the Claude code tokens, you know,
2569
02:10:30,439 --> 02:10:31,859
it's one of those things where you spend it once
2570
02:10:31,859 --> 02:10:34,380
and then every time I ever generate a proposal
2571
02:10:34,380 --> 02:10:35,880
from here, I know, it's sort of fixed.
2572
02:10:36,800 --> 02:10:38,300
Now, I mean, we built like an app here, right?
2573
02:10:38,300 --> 02:10:39,260
This is a full stack app.
2574
02:10:39,420 --> 02:10:39,899
That's what this is.
2575
02:10:39,979 --> 02:10:41,399
That's why there's like the login page.
2576
02:10:41,479 --> 02:10:42,300
There's stuff on the backend.
2577
02:10:42,439 --> 02:10:42,979
There's a database.
2578
02:10:43,239 --> 02:10:45,180
There's, you know, the front end and whatnot as well.
2579
02:10:45,699 --> 02:10:47,060
But I want you guys to know that like,
2580
02:10:47,180 --> 02:10:49,340
despite Claude code and how awesome it is,
2581
02:10:50,300 --> 02:10:52,380
I'd be very wary about taking apps
2582
02:10:52,380 --> 02:10:54,319
that are fully vibe coded
2583
02:10:54,319 --> 02:10:56,020
and then publishing them on the internet.
2584
02:10:56,779 --> 02:10:58,680
This is sort of my obligatory safety message
2585
02:10:59,780 --> 02:11:02,199
because there are people that are out there
2586
02:11:02,199 --> 02:11:04,560
that are using Claude code and similar tools
2587
02:11:04,560 --> 02:11:06,760
to try and find security vulnerabilities as well.
2588
02:11:06,760 --> 02:11:09,420
And unfortunately, despite how amazing Claude code is
2589
02:11:09,420 --> 02:11:11,539
right now, it's not at the point where it like fully,
2590
02:11:11,539 --> 02:11:13,840
100% patches everything on the front end and the backend.
2591
02:11:14,640 --> 02:11:16,140
So what this means is, okay,
2592
02:11:16,579 --> 02:11:17,939
there are a couple little safety precautions
2593
02:11:17,939 --> 02:11:18,880
that I recommend you have.
2594
02:11:19,699 --> 02:11:22,899
The first is I'd recommend that whatever, you know,
2595
02:11:23,039 --> 02:11:24,560
URL that you're putting together or whatnot,
2596
02:11:24,699 --> 02:11:26,680
it's not like an obvious or basic URL.
2597
02:11:27,180 --> 02:11:30,260
Like for instance, I wouldn't just go proposal generated
2598
02:11:30,260 --> 02:11:31,239
on elified.app-router.
2599
02:11:31,300 --> 02:11:32,600
I actually have my custom URL
2600
02:11:32,600 --> 02:11:35,340
and then I'd make the custom URL something that, you know,
2601
02:11:35,579 --> 02:11:36,600
realistically is not like trivial.
2602
02:11:36,600 --> 02:11:38,920
It wouldn't be like google.com, right?
2603
02:11:39,100 --> 02:11:40,380
Like not left click.ai.
2604
02:11:40,500 --> 02:11:41,239
I wouldn't make it short
2605
02:11:41,239 --> 02:11:42,680
because there are a bunch of services out there
2606
02:11:42,680 --> 02:11:45,180
that are scanning all DNS ranges and also all URLs,
2607
02:11:45,880 --> 02:11:48,060
which basically mean that like the shorter
2608
02:11:48,060 --> 02:11:49,659
and simpler your thing is, the riskier it is,
2609
02:11:49,659 --> 02:11:51,479
the more other human beings will have access to this.
2610
02:11:51,560 --> 02:11:53,579
Like there's probably already been, I don't know,
2611
02:11:53,659 --> 02:11:55,840
like 30 or 40 people that have accessed my service
2612
02:11:55,840 --> 02:11:57,260
despite the fact that I just whipped it up.
2613
02:11:57,500 --> 02:11:58,479
That's just how it works, right?
2614
02:11:58,520 --> 02:12:00,159
People are always constantly scanning the internet
2615
02:12:00,159 --> 02:12:01,000
and sending requests.
2616
02:12:01,800 --> 02:12:05,479
The second is I wouldn't charge money for these, okay,
2617
02:12:05,479 --> 02:12:08,239
without having a developer go through the authentication,
2618
02:12:08,399 --> 02:12:10,260
at least the front end, at least once.
2619
02:12:11,340 --> 02:12:12,939
And I say this for liability reasons,
2620
02:12:12,960 --> 02:12:16,920
like I don't want you guys to like get a bunch of user data,
2621
02:12:17,119 --> 02:12:19,020
like usernames, passwords, email addresses,
2622
02:12:19,319 --> 02:12:20,539
payment logs and stuff like that,
2623
02:12:20,539 --> 02:12:22,720
and then have that exposed to bad actors on the internet.
2624
02:12:23,159 --> 02:12:24,399
It just isn't really worth it right now.
2625
02:12:24,439 --> 02:12:26,659
Like if you guys are looking to sell apps with this approach,
2626
02:12:27,000 --> 02:12:30,039
you know, just pay some person, you know, a few hundred dollars,
2627
02:12:30,079 --> 02:12:31,640
have them look over your app, let's be real,
2628
02:12:31,680 --> 02:12:32,979
the software is not the mode anyways.
2629
02:12:33,000 --> 02:12:34,479
You can just give it to them, screw the NDA.
2630
02:12:34,479 --> 02:12:38,140
And just like have them tell you how to secure your application.
2631
02:12:38,420 --> 02:12:40,460
Hell, they can even give Claude Code some tips
2632
02:12:40,460 --> 02:12:42,260
or maybe like a prompt that you could use
2633
02:12:42,260 --> 02:12:43,539
to do it almost automatically.
2634
02:12:44,119 --> 02:12:45,079
But I guess what I'm trying to say is like,
2635
02:12:45,180 --> 02:12:48,000
despite how compelling it may be to like make these apps public
2636
02:12:48,000 --> 02:12:50,159
and stuff like that, and then charge people for their usage,
2637
02:12:50,819 --> 02:12:51,460
I personally wouldn't.
2638
02:12:51,640 --> 02:12:54,140
I personally only use apps right now,
2639
02:12:54,140 --> 02:12:56,479
internally within my teams or for my clients.
2640
02:12:56,680 --> 02:13:00,319
I do not roll these things out and then like try and make money
2641
02:13:00,319 --> 02:13:01,640
from them off the wider internet,
2642
02:13:01,819 --> 02:13:02,939
when like the app store or whatever.
2643
02:13:03,380 --> 02:13:05,020
I've just seen too many horror stories.
2644
02:13:05,579 --> 02:13:08,100
We saw Cloudbot a couple of weeks ago,
2645
02:13:08,140 --> 02:13:09,119
at least at the time of this recording,
2646
02:13:09,479 --> 02:13:10,899
which later turned into Moltbot,
2647
02:13:10,960 --> 02:13:12,180
which later turned into OpenCloud.
2648
02:13:12,539 --> 02:13:13,819
It rebranded 5 million times
2649
02:13:13,819 --> 02:13:15,880
because every fricking version of it
2650
02:13:15,880 --> 02:13:17,079
had major security issues.
2651
02:13:17,180 --> 02:13:18,699
And then people were getting prompt injected
2652
02:13:18,699 --> 02:13:19,960
and hacked and stuff like that.
2653
02:13:20,739 --> 02:13:21,779
And I mean, like, you know,
2654
02:13:21,880 --> 02:13:23,420
there's a fair amount of reputation that goes with that
2655
02:13:23,420 --> 02:13:24,520
as somebody in a business context,
2656
02:13:24,520 --> 02:13:26,359
but also you are playing with fire here.
2657
02:13:26,359 --> 02:13:29,239
This is like, you know, real human beings, consumer data.
2658
02:13:30,020 --> 02:13:32,380
So I don't want to make safety too big a part of my thing.
2659
02:13:32,380 --> 02:13:34,319
It's just Uncle Ben time.
2660
02:13:34,439 --> 02:13:36,000
With great power comes great responsibility.
2661
02:13:36,180 --> 02:13:37,939
And hopefully you guys see here, I mean, this took me,
2662
02:13:37,939 --> 02:13:40,180
I don't know, 15, 20 minutes, realistically end to end.
2663
02:13:40,319 --> 02:13:42,039
I was obviously making food and whatnot coming back.
2664
02:13:42,100 --> 02:13:43,500
I wasn't as efficient as I could have been.
2665
02:13:44,079 --> 02:13:46,420
But you are certainly wielding great power right now.
2666
02:13:46,539 --> 02:13:48,579
And if you're going to have other people trust you
2667
02:13:48,579 --> 02:13:50,560
with their credentials and logins and passwords
2668
02:13:50,560 --> 02:13:52,359
and everything like that, you need to make sure that,
2669
02:13:52,359 --> 02:13:54,399
you know, you're not using that power willy nilly.
2670
02:13:54,579 --> 02:13:57,079
Next up, I want to chat context management.
2671
02:13:57,460 --> 02:13:58,779
Now, for those of you guys that don't know,
2672
02:13:58,779 --> 02:14:03,039
context management is essentially you handling tokens
2673
02:14:03,039 --> 02:14:05,720
in a prompt as effectively as possible.
2674
02:14:06,140 --> 02:14:08,939
There are many people out there that overcomplicate
2675
02:14:08,939 --> 02:14:09,619
the hell out of this.
2676
02:14:09,739 --> 02:14:11,180
So I'm going to do my best not to.
2677
02:14:11,439 --> 02:14:14,420
If I open up a new instance of Claude Code over here,
2678
02:14:14,640 --> 02:14:17,920
and then I type this backslash and then scroll down,
2679
02:14:17,979 --> 02:14:19,380
you'll see that I have access to a bunch
2680
02:14:19,380 --> 02:14:20,880
of really cool functions here.
2681
02:14:21,079 --> 02:14:25,100
I can compact context, cost, debug, init.
2682
02:14:25,159 --> 02:14:26,220
I can do insights.
2683
02:14:26,220 --> 02:14:29,520
I have the ability to choose between models, thinking,
2684
02:14:29,880 --> 02:14:31,479
account and usage, fast mode.
2685
02:14:31,979 --> 02:14:33,640
We're going to talk all about this next,
2686
02:14:33,640 --> 02:14:35,800
but for now I want to focus specifically
2687
02:14:35,800 --> 02:14:38,819
on one slash command called slash context.
2688
02:14:39,500 --> 02:14:41,659
Look at what happens when I click this.
2689
02:14:42,659 --> 02:14:45,039
If I scroll up and then zoom in a little bit,
2690
02:14:45,039 --> 02:14:47,840
you could see here that at the very top,
2691
02:14:48,159 --> 02:14:50,960
cloud tells us essentially what is currently using
2692
02:14:50,960 --> 02:14:52,399
its context window.
2693
02:14:52,880 --> 02:14:53,899
For those of you guys that don't know,
2694
02:14:53,899 --> 02:14:57,939
context window in the domain of AI
2695
02:14:57,939 --> 02:15:01,720
just refers to the total amount or total number of tokens
2696
02:15:01,720 --> 02:15:04,340
that a specific model can deal with at once.
2697
02:15:04,880 --> 02:15:06,479
So if you guys remember earlier where we were doing a build,
2698
02:15:06,579 --> 02:15:09,420
I said it was about 200,000 for cloud Opus 4.6.
2699
02:15:09,439 --> 02:15:10,739
That's the model that I'm currently using.
2700
02:15:11,119 --> 02:15:13,819
There's some models out there like some sonnet series models
2701
02:15:13,819 --> 02:15:16,279
that can go up to one or 2 million tokens now,
2702
02:15:16,279 --> 02:15:18,979
but the number of tokens in a context window
2703
02:15:18,979 --> 02:15:21,699
aren't directly related to the performance of the model.
2704
02:15:21,699 --> 02:15:24,060
Context window is sort of separate from that.
2705
02:15:24,300 --> 02:15:27,520
So cloud Opus 4.6 has a context window of about 200,000 tokens.
2706
02:15:27,640 --> 02:15:32,100
And then you'll see here that so far I've used 26,400,
2707
02:15:32,340 --> 02:15:35,279
which means mathematically I'm 13% of the way through.
2708
02:15:35,859 --> 02:15:36,960
You might be asking, well, Nick,
2709
02:15:37,020 --> 02:15:38,140
how the hell is that possible?
2710
02:15:38,380 --> 02:15:40,819
All you've written so far is slash context.
2711
02:15:41,079 --> 02:15:44,640
Where are those other 26,398 tokens
2712
02:15:44,640 --> 02:15:45,760
coming from realistically?
2713
02:15:46,399 --> 02:15:47,260
And that's a great question.
2714
02:15:47,760 --> 02:15:50,220
Immediately underneath, you could find out for yourself.
2715
02:15:50,220 --> 02:15:52,819
And so what I reckon you guys do right now,
2716
02:15:52,819 --> 02:15:53,880
if you've never done this before,
2717
02:15:54,000 --> 02:15:55,779
is head over to your own Claude Code instance
2718
02:15:55,779 --> 02:15:56,920
without even watching any of this
2719
02:15:56,920 --> 02:15:58,659
and just type backslash context
2720
02:15:58,659 --> 02:16:00,000
and look at all of the things
2721
02:16:00,000 --> 02:16:02,420
that are currently consuming your prompt.
2722
02:16:02,899 --> 02:16:03,979
Now I should note that this is stuff
2723
02:16:03,979 --> 02:16:05,300
that you're actively billed for.
2724
02:16:05,500 --> 02:16:06,899
This is not stuff that's free.
2725
02:16:07,199 --> 02:16:10,300
Despite the fact that a lot of the time Anthropic and Cloud,
2726
02:16:11,039 --> 02:16:13,119
they'll add a bunch of things to your context
2727
02:16:13,119 --> 02:16:14,199
that really telling you,
2728
02:16:14,500 --> 02:16:15,640
this is still stuff that at the end of the day
2729
02:16:15,640 --> 02:16:16,439
you are paying for.
2730
02:16:16,720 --> 02:16:18,420
So if you submit a bunch of one-off requests
2731
02:16:18,420 --> 02:16:20,100
to like individual instances of Cloud,
2732
02:16:20,520 --> 02:16:21,880
note that there's gonna be your prompt,
2733
02:16:21,979 --> 02:16:22,659
which it'll bill you for,
2734
02:16:22,680 --> 02:16:25,800
but there's also gonna be always like a flat additional cost
2735
02:16:25,800 --> 02:16:27,720
of maybe five, 10, 15,000 tokens
2736
02:16:27,720 --> 02:16:29,539
or more depending on how you set it up.
2737
02:16:30,159 --> 02:16:31,739
Okay, so going down here under category,
2738
02:16:31,739 --> 02:16:33,680
you could see all of the different ways
2739
02:16:33,680 --> 02:16:35,260
that our tokens are currently being used
2740
02:16:35,260 --> 02:16:36,479
and all of the additional tokens
2741
02:16:36,479 --> 02:16:38,959
that we didn't really realize were making use of.
2742
02:16:39,840 --> 02:16:41,579
The first is your system prompt.
2743
02:16:41,739 --> 02:16:42,899
Now, if you guys remember,
2744
02:16:43,180 --> 02:16:46,639
cloud.md takes up a fair amount of your context.
2745
02:16:46,639 --> 02:16:49,299
And there's different types of cloud.mds.
2746
02:16:49,899 --> 02:16:53,959
You have your global tilde slash dot cloud slash.
2747
02:16:54,319 --> 02:16:56,620
That's the one that defines all workspaces,
2748
02:16:56,620 --> 02:16:58,379
not just the one that you're currently in.
2749
02:16:58,719 --> 02:17:02,100
Then you have the local dot cloud right over here in yellow.
2750
02:17:02,719 --> 02:17:05,340
In this case, we've broken them down into individual rule
2751
02:17:05,340 --> 02:17:07,459
or component cloud.mds.
2752
02:17:07,879 --> 02:17:10,520
Underneath, you also have capital memory.md.
2753
02:17:10,920 --> 02:17:13,840
And then, and only then do you actually send a message
2754
02:17:13,840 --> 02:17:15,180
basically and have your prompt.
2755
02:17:15,180 --> 02:17:16,340
And so earlier on,
2756
02:17:16,340 --> 02:17:18,579
you remember how we had like 26,000 tokens or so?
2757
02:17:18,860 --> 02:17:21,920
Well, probably, I don't know, 10,000 tokens
2758
02:17:21,920 --> 02:17:23,459
or something like that was just taken up
2759
02:17:23,459 --> 02:17:24,239
by all these system prompts.
2760
02:17:24,379 --> 02:17:25,340
We'll double check in a second
2761
02:17:25,340 --> 02:17:26,540
because we can actually see the real number.
2762
02:17:27,200 --> 02:17:28,799
And then only a couple of tokens,
2763
02:17:28,819 --> 02:17:30,219
in this case two or something,
2764
02:17:30,600 --> 02:17:32,540
were actually taken up by our other request.
2765
02:17:33,079 --> 02:17:35,860
So that begs the question, where are the other,
2766
02:17:35,860 --> 02:17:38,639
I guess, 15,000 or so tokens of the 26,400?
2767
02:17:38,860 --> 02:17:41,120
In addition to the system prompt,
2768
02:17:41,200 --> 02:17:44,200
which to be clear, this is your cloud.md.
2769
02:17:44,880 --> 02:17:45,700
And rules.
2770
02:17:46,659 --> 02:17:48,879
You also have system tools,
2771
02:17:48,899 --> 02:17:51,280
which is as of the time of this recording,
2772
02:17:51,500 --> 02:17:53,639
almost 17,000 tokens.
2773
02:17:54,159 --> 02:17:57,299
Now system tools are things like
2774
02:17:57,299 --> 02:17:59,659
the model's ability to run bash.
2775
02:17:59,819 --> 02:18:01,399
That just means open up a terminal.
2776
02:18:01,760 --> 02:18:04,479
It's the model's ability to run web search.
2777
02:18:04,639 --> 02:18:06,879
That means to request a webpage,
2778
02:18:07,079 --> 02:18:09,420
have that webpage information brought back,
2779
02:18:09,579 --> 02:18:10,799
parsed, and then dealt with.
2780
02:18:11,020 --> 02:18:13,139
It's the model's ability to do things
2781
02:18:13,139 --> 02:18:14,780
like create a plan.
2782
02:18:16,139 --> 02:18:17,879
These are all tools and functions
2783
02:18:17,879 --> 02:18:20,899
that you don't actually realize that Cloud has access to,
2784
02:18:21,139 --> 02:18:22,219
but it does.
2785
02:18:22,440 --> 02:18:24,760
And this is what the Claude Code developers,
2786
02:18:25,100 --> 02:18:27,079
Boris, Cherny, and all the rest of the team
2787
02:18:27,079 --> 02:18:28,200
have basically done.
2788
02:18:28,700 --> 02:18:30,620
Before you even get to your own message,
2789
02:18:30,639 --> 02:18:32,340
which is all the way down over here,
2790
02:18:32,340 --> 02:18:36,020
as we see, we have that cloud.md stuff.
2791
02:18:36,579 --> 02:18:38,139
Then we have the tools.
2792
02:18:38,360 --> 02:18:40,440
Then we have MCP, which I'll cover in a second.
2793
02:18:40,620 --> 02:18:42,959
Then we have that memory.md.
2794
02:18:42,959 --> 02:18:44,680
Then we have skills.
2795
02:18:45,219 --> 02:18:47,920
And then, and only then, do we actually have our messages.
2796
02:18:48,459 --> 02:18:49,879
So there's a lot to go yet.
2797
02:18:50,040 --> 02:18:51,639
These tools are constantly changing.
2798
02:18:51,719 --> 02:18:53,319
And if you guys want a list of all of them,
2799
02:18:53,319 --> 02:18:55,399
you can actually just ask your Cloud model.
2800
02:18:55,760 --> 02:18:56,379
So I'm just gonna say,
2801
02:18:56,520 --> 02:18:58,520
what tools do you have access to list them all?
2802
02:18:58,620 --> 02:18:59,540
And it's gonna go through,
2803
02:18:59,540 --> 02:19:01,540
and it's going to enumerate every single one.
2804
02:19:02,100 --> 02:19:03,920
So you see here, we have task.
2805
02:19:04,280 --> 02:19:06,559
That's what opens up every time we call a sub-agent.
2806
02:19:06,959 --> 02:19:08,979
There's task output, which is another tool
2807
02:19:08,979 --> 02:19:10,940
where it retrieves the output of the agent.
2808
02:19:10,940 --> 02:19:13,559
There's bash, which is how you execute shell commands.
2809
02:19:14,000 --> 02:19:15,879
Glob is finding a file by pattern.
2810
02:19:16,260 --> 02:19:17,920
Grep is searching file contents.
2811
02:19:18,459 --> 02:19:19,819
Read is just how it reads files.
2812
02:19:19,879 --> 02:19:21,620
You do need an additional tool for that.
2813
02:19:22,020 --> 02:19:23,440
Edit is how it changes things.
2814
02:19:23,899 --> 02:19:26,040
Write is how it creates and overwrites new files.
2815
02:19:26,600 --> 02:19:27,959
Notebook edit is something specific
2816
02:19:27,959 --> 02:19:29,979
for a type of file called a Jupyter Notebook.
2817
02:19:30,139 --> 02:19:31,600
A lot of people do like data science
2818
02:19:31,600 --> 02:19:32,819
and stuff like that in Claude Code.
2819
02:19:33,340 --> 02:19:34,920
And Jupyter Notebooks are a big chunk of that.
2820
02:19:35,239 --> 02:19:36,059
There's web-fetch,
2821
02:19:36,120 --> 02:19:39,079
which is how it calls various internet sources
2822
02:19:39,079 --> 02:19:39,920
and then returns it.
2823
02:19:39,920 --> 02:19:42,219
This is web search, which allows it to search
2824
02:19:42,219 --> 02:19:43,059
sort of like Google.
2825
02:19:43,440 --> 02:19:44,219
There's to-do write.
2826
02:19:44,360 --> 02:19:45,079
If you guys have ever wondered
2827
02:19:45,079 --> 02:19:47,120
where those little to-do lists come up
2828
02:19:47,120 --> 02:19:48,360
when Claude Code is doing stuff,
2829
02:19:48,579 --> 02:19:49,739
it's that one right over there.
2830
02:19:50,079 --> 02:19:51,079
Ask user question.
2831
02:19:51,139 --> 02:19:51,860
If you guys have ever wondered
2832
02:19:51,860 --> 02:19:53,940
where those little graphical user interfaces come up
2833
02:19:53,940 --> 02:19:55,180
where it says pick one, two, three,
2834
02:19:55,299 --> 02:19:57,399
or tell Cloud something, that's where that comes from.
2835
02:19:57,540 --> 02:19:59,899
There's enter plan mode, exit plan mode.
2836
02:20:00,219 --> 02:20:02,000
There's skill, which is just a meta-function
2837
02:20:02,000 --> 02:20:04,739
which more or less orchestrates how you call skills.
2838
02:20:05,059 --> 02:20:06,780
Then there's task stop, which is useful
2839
02:20:06,780 --> 02:20:08,239
because sometimes Cloud needs to stop
2840
02:20:08,239 --> 02:20:08,959
something that's running.
2841
02:20:09,599 --> 02:20:12,219
Okay, so basically of all of the context,
2842
02:20:12,399 --> 02:20:14,559
we scroll back up here and avoid this MCP tools.
2843
02:20:14,680 --> 02:20:15,600
We'll cover that in a second.
2844
02:20:16,700 --> 02:20:16,760
Okay.
2845
02:20:17,000 --> 02:20:20,840
16,800 tokens are being taken up by all those tools,
2846
02:20:21,260 --> 02:20:22,399
basically all of the time.
2847
02:20:22,420 --> 02:20:24,120
And there's nothing you can do to fix that
2848
02:20:24,120 --> 02:20:26,440
unless you wanna go in and make your own version
2849
02:20:26,440 --> 02:20:27,399
of Claude Code or something.
2850
02:20:27,879 --> 02:20:29,879
I will say, I think that some of these things
2851
02:20:29,879 --> 02:20:30,719
are unnecessary.
2852
02:20:30,899 --> 02:20:33,120
I mean, I definitely don't need the Jupyter Notebook calls.
2853
02:20:33,219 --> 02:20:34,879
I think there are a few additional features here
2854
02:20:34,879 --> 02:20:35,680
that maybe I don't need
2855
02:20:35,680 --> 02:20:36,979
or we could probably make them smaller.
2856
02:20:36,979 --> 02:20:38,979
But this is something that the Claude Code team
2857
02:20:38,979 --> 02:20:41,360
is constantly improving, constantly pruning
2858
02:20:41,360 --> 02:20:42,360
and so on and so forth.
2859
02:20:42,440 --> 02:20:44,620
Next up, we have the MCP tools.
2860
02:20:45,040 --> 02:20:46,239
Now, unlike system tools,
2861
02:20:46,459 --> 02:20:48,540
MCP tools are things that you define yourself,
2862
02:20:48,579 --> 02:20:50,420
which means every one of these tools
2863
02:20:50,420 --> 02:20:52,600
is something that I basically put together.
2864
02:20:52,860 --> 02:20:55,860
This is something that I connected to an MCP server
2865
02:20:55,860 --> 02:20:58,520
to basically extend the functionality of my Claude Code.
2866
02:20:59,020 --> 02:21:00,459
So basically what I'm trying to say is
2867
02:21:00,459 --> 02:21:02,079
these right here are default
2868
02:21:02,619 --> 02:21:04,719
and these ones right over here, you control.
2869
02:21:05,320 --> 02:21:07,840
And so, as a percentage of my total context,
2870
02:21:07,920 --> 02:21:10,739
I'm spending 2.8% on customizing my own Cloud instance
2871
02:21:10,739 --> 02:21:12,459
and then 8.4% with just the default.
2872
02:21:12,500 --> 02:21:13,899
Obviously the default ones are a lot bigger,
2873
02:21:14,120 --> 02:21:16,540
but some of these MCP tools can be pretty valuable.
2874
02:21:16,940 --> 02:21:19,040
Issues with some MCP tools are,
2875
02:21:19,040 --> 02:21:20,100
they're really, really big,
2876
02:21:20,120 --> 02:21:21,520
as you guys are gonna see when I screw around
2877
02:21:21,520 --> 02:21:22,760
with a couple of crappy libraries.
2878
02:21:23,360 --> 02:21:25,559
So you have to be pretty selective about how you choose them.
2879
02:21:25,760 --> 02:21:28,280
And that's what this next section is down here
2880
02:21:28,280 --> 02:21:29,239
called MCP tools.
2881
02:21:29,659 --> 02:21:32,379
So for instance, I downloaded an MCP,
2882
02:21:32,420 --> 02:21:34,399
a Model Context Protocol Toolkit
2883
02:21:34,399 --> 02:21:35,700
called Chrome DevTools.
2884
02:21:35,920 --> 02:21:37,879
This just allows Claude to open my browser.
2885
02:21:38,219 --> 02:21:39,360
So what I could do is I could say,
2886
02:21:39,739 --> 02:21:43,379
hey, open a Chrome instance and go to nixorayef.com.
2887
02:21:43,600 --> 02:21:44,399
If you think about it,
2888
02:21:44,520 --> 02:21:46,559
the context that I put together here,
2889
02:21:47,180 --> 02:21:50,139
let me change this and say, great work.
2890
02:21:50,959 --> 02:21:52,600
Go to leftclick.ai.
2891
02:21:53,399 --> 02:21:54,620
If you think about it,
2892
02:21:54,819 --> 02:21:56,440
immediately above each of my messages
2893
02:21:56,440 --> 02:21:57,979
is obviously all of the tools, right?
2894
02:21:58,020 --> 02:21:59,139
And so what these tools are,
2895
02:21:59,159 --> 02:22:01,399
is they're basically definitions that say, hello Claude,
2896
02:22:01,440 --> 02:22:03,659
you have access to the ability to take a screenshot.
2897
02:22:03,659 --> 02:22:04,760
If you wanna take a screenshot,
2898
02:22:05,120 --> 02:22:06,579
just call this specific tool
2899
02:22:06,579 --> 02:22:08,079
and it'll do the screenshotting for you.
2900
02:22:08,440 --> 02:22:11,459
And so this is all above sort of my initial prompt
2901
02:22:11,459 --> 02:22:13,040
where I say, great work, go to leftclick.ai.
2902
02:22:13,420 --> 02:22:15,520
And so when I say go to leftclick.ai, Claude knows,
2903
02:22:15,600 --> 02:22:16,860
okay, like earlier on it said,
2904
02:22:16,899 --> 02:22:19,620
if a user asks you to go to a website, call this tool,
2905
02:22:19,899 --> 02:22:21,579
it obviously just references the specific thing.
2906
02:22:21,840 --> 02:22:23,840
And as you guys could see here, it's navigating,
2907
02:22:24,020 --> 02:22:25,000
it's taking screenshots
2908
02:22:25,000 --> 02:22:26,760
and it's basically controlling my browser right now,
2909
02:22:26,760 --> 02:22:27,420
which is really cool.
2910
02:22:27,939 --> 02:22:29,459
So that's an example of a tool
2911
02:22:29,459 --> 02:22:30,600
that I think is pretty valuable.
2912
02:22:31,139 --> 02:22:32,379
That said, there are a lot of tools
2913
02:22:32,379 --> 02:22:33,459
that aren't super valuable.
2914
02:22:33,959 --> 02:22:36,360
And unfortunately, MCP tends to consume a fair amount
2915
02:22:36,360 --> 02:22:37,899
of your context if you're not careful.
2916
02:22:38,379 --> 02:22:40,379
As you see here, there's click, close page,
2917
02:22:40,420 --> 02:22:42,719
drag, emulate, evaluate script, fill, fill form,
2918
02:22:42,739 --> 02:22:43,579
and so on and so forth.
2919
02:22:43,879 --> 02:22:44,719
I'm not gonna cover all these
2920
02:22:44,719 --> 02:22:46,700
because there's just so many different MCPs that you could use
2921
02:22:46,700 --> 02:22:48,079
and each of them have so many different tools.
2922
02:22:48,260 --> 02:22:49,659
Underneath that, you have memory files.
2923
02:22:49,860 --> 02:22:51,520
You guys remember earlier when I told you
2924
02:22:51,520 --> 02:22:56,360
that there was this big like M-O-M-O-R-Y.M-D,
2925
02:22:56,479 --> 02:22:58,280
that memory is super straightforward.
2926
02:22:58,360 --> 02:23:00,280
And in our case, that's only 88 tokens,
2927
02:23:00,360 --> 02:23:01,180
not that big of a deal,
2928
02:23:01,180 --> 02:23:03,299
but it's basically Claude Scratchpad as it works.
2929
02:23:03,819 --> 02:23:04,659
Next you have skills.
2930
02:23:04,920 --> 02:23:09,020
If you guys remember, we had a Claude skills folder
2931
02:23:09,020 --> 02:23:10,059
in another repo.
2932
02:23:10,200 --> 02:23:12,700
That Claude skills folder basically in our case,
2933
02:23:12,959 --> 02:23:14,020
like, I don't know, browsed Amazon
2934
02:23:14,020 --> 02:23:15,200
and found something for us.
2935
02:23:15,379 --> 02:23:16,540
In this one, we don't.
2936
02:23:16,920 --> 02:23:18,100
So the only thing that's really storing
2937
02:23:18,100 --> 02:23:19,700
is just the skills definition,
2938
02:23:19,700 --> 02:23:21,340
which in this case is 61 tokens,
2939
02:23:21,739 --> 02:23:24,200
expressed as a fraction of the total number of tokens
2940
02:23:24,200 --> 02:23:25,579
we have available to us, 200,000.
2941
02:23:25,760 --> 02:23:28,620
You could see that that's not even 0.1%.
2942
02:23:28,620 --> 02:23:30,620
By the way, as I've communicated
2943
02:23:30,620 --> 02:23:32,840
and kept talking with Claude, we've accumulated more tokens.
2944
02:23:32,879 --> 02:23:35,200
So you can see how earlier it was at like 24,000.
2945
02:23:35,360 --> 02:23:37,379
Well, now we're at 30,600, right?
2946
02:23:37,399 --> 02:23:39,420
We've gone up from, I think, 13% to 15%.
2947
02:23:39,420 --> 02:23:41,379
So that'll continue happening as we go on.
2948
02:23:42,059 --> 02:23:43,579
Next up, of course, you have your messages.
2949
02:23:43,659 --> 02:23:45,739
And so in our case, we're consuming 2.6%
2950
02:23:45,739 --> 02:23:47,239
of our entire context window right now,
2951
02:23:47,239 --> 02:23:49,059
just through messages and just through back and forth.
2952
02:23:49,280 --> 02:23:51,299
This is sort of inescapable or unavoidable,
2953
02:23:51,379 --> 02:23:53,479
although there are ways to manage your context
2954
02:23:53,479 --> 02:23:54,239
a lot more efficiently.
2955
02:23:54,780 --> 02:23:57,520
A couple of ways are speak in high information density
2956
02:23:57,520 --> 02:23:58,799
ways wherever possible.
2957
02:23:59,120 --> 02:24:01,180
Obviously, voice transcript tools are kind of against that
2958
02:24:01,180 --> 02:24:03,579
because they take into account all of your ums and ahs
2959
02:24:03,579 --> 02:24:04,100
and whatnot.
2960
02:24:04,500 --> 02:24:06,579
But if you want it to be really, really efficient,
2961
02:24:06,840 --> 02:24:09,000
what you would do is you would take your voice transcript,
2962
02:24:09,139 --> 02:24:10,319
pump it into a cheaper model,
2963
02:24:10,420 --> 02:24:11,719
one that doesn't cost you as much money
2964
02:24:11,719 --> 02:24:12,760
that's in a separate tab,
2965
02:24:12,959 --> 02:24:15,120
have that summarize it into a very tight request,
2966
02:24:15,120 --> 02:24:18,600
and then actually send that to the initial Claude agent.
2967
02:24:18,799 --> 02:24:19,860
And that's a strategy that I've used
2968
02:24:19,860 --> 02:24:21,979
to manage really small context windows in the past.
2969
02:24:22,159 --> 02:24:23,760
Obligatory, this is where the conversation
2970
02:24:23,760 --> 02:24:25,079
with Claude actually occurs.
2971
02:24:25,520 --> 02:24:27,239
I should note that, I don't know if you guys remember,
2972
02:24:27,239 --> 02:24:29,360
but sometimes you can ask Claude stuff
2973
02:24:29,360 --> 02:24:31,260
and then a little thinking tab will pop up.
2974
02:24:31,420 --> 02:24:33,020
Well, that thinking tab isn't actually included
2975
02:24:33,020 --> 02:24:33,579
in the messages.
2976
02:24:33,879 --> 02:24:35,280
You are still billed for this separately,
2977
02:24:35,280 --> 02:24:37,700
but basically what happens is at the time
2978
02:24:37,700 --> 02:24:38,860
that you make a request
2979
02:24:38,860 --> 02:24:40,280
and at the time that the thinking occurs,
2980
02:24:40,620 --> 02:24:42,540
it sticks all that onto the big message chain
2981
02:24:42,540 --> 02:24:44,600
and then it uses that to figure out the next thing.
2982
02:24:44,940 --> 02:24:46,940
So it uses basically this thinking area,
2983
02:24:47,000 --> 02:24:48,639
it's almost a scratch pad to figure out more.
2984
02:24:48,860 --> 02:24:52,299
And then what it does is it collapses it, disappears it,
2985
02:24:52,299 --> 02:24:53,700
and then it just gives you the answer.
2986
02:24:53,879 --> 02:24:55,479
And then it pretends as if the reasoning
2987
02:24:55,479 --> 02:24:57,360
or thinking little section didn't even exist.
2988
02:24:57,819 --> 02:24:59,340
So don't worry about thinking here,
2989
02:24:59,459 --> 02:25:00,920
assuming you have extended thinking on,
2990
02:25:01,620 --> 02:25:03,020
that doesn't really get included,
2991
02:25:03,020 --> 02:25:04,760
although of course you are still paying for it.
2992
02:25:05,059 --> 02:25:07,420
And then finally, the bulk of our context is free space,
2993
02:25:07,579 --> 02:25:09,559
67.7%, which is good for us.
2994
02:25:09,600 --> 02:25:11,239
Not really sure why they include that here, but they do.
2995
02:25:12,020 --> 02:25:13,500
The last thing that you guys need to understand
2996
02:25:13,500 --> 02:25:15,200
is this idea of an auto compact buffer.
2997
02:25:15,440 --> 02:25:16,920
Now an auto compact buffer is basically
2998
02:25:16,920 --> 02:25:18,000
just a certain amount of space
2999
02:25:18,000 --> 02:25:20,540
that Claude's developers always leave available.
3000
02:25:20,879 --> 02:25:23,620
And then basically what happens is when you hit that buffer,
3001
02:25:23,620 --> 02:25:25,860
aka when there's only 33,000 tokens left,
3002
02:25:26,120 --> 02:25:27,739
it'll automatically compact
3003
02:25:27,739 --> 02:25:29,639
all of the previous conversation history.
3004
02:25:30,260 --> 02:25:31,620
Now this is done automatically,
3005
02:25:31,639 --> 02:25:34,459
but you can also do this manually by going slash compact.
3006
02:25:34,940 --> 02:25:36,459
What happens when you go slash compact
3007
02:25:36,459 --> 02:25:39,200
is it basically takes all of our conversation history here.
3008
02:25:39,700 --> 02:25:42,239
It'll take this, it'll take that, it'll take all that.
3009
02:25:42,500 --> 02:25:44,319
And then it'll just squash it down
3010
02:25:44,319 --> 02:25:46,200
into a very high information density summary.
3011
02:25:46,440 --> 02:25:48,340
And so what I'm gonna do is immediately after it compacts,
3012
02:25:48,340 --> 02:25:50,700
I'm actually gonna ask it to tell me what it just compacted.
3013
02:25:50,719 --> 02:25:53,180
Basically, hey, tell me what is currently available
3014
02:25:53,180 --> 02:25:53,899
in your context.
3015
02:25:54,120 --> 02:25:55,200
Okay, and as you can see here,
3016
02:25:55,200 --> 02:25:56,680
it says this session is being continued
3017
02:25:56,680 --> 02:25:58,639
from a previous conversation that ran out of context.
3018
02:25:58,760 --> 02:26:00,520
The summary below covers the earlier portion
3019
02:26:00,520 --> 02:26:01,379
of the conversation.
3020
02:26:01,979 --> 02:26:03,200
First, there's an analysis tab
3021
02:26:03,200 --> 02:26:05,459
where it chronologically analyzes your conversation.
3022
02:26:05,940 --> 02:26:08,479
First message user ran this, then user asked this,
3023
02:26:08,719 --> 02:26:10,760
then user asked this, then user asked this,
3024
02:26:10,879 --> 02:26:12,360
user asked this, user asked this,
3025
02:26:12,399 --> 02:26:13,299
and so on and so forth.
3026
02:26:13,739 --> 02:26:16,979
And so if you compare all of this to all of the messages
3027
02:26:16,979 --> 02:26:18,520
and all of the tool calls and everything like that
3028
02:26:18,520 --> 02:26:21,280
we did above, this will be fewer tokens, right?
3029
02:26:21,280 --> 02:26:23,360
Significantly so, probably like three or four X.
3030
02:26:24,079 --> 02:26:27,379
And so in this way, gradual and progressive compaction
3031
02:26:27,379 --> 02:26:30,280
of a conversation maximizes the information density.
3032
02:26:30,760 --> 02:26:32,000
And then Claude's really good
3033
02:26:32,000 --> 02:26:33,860
at like not leaving important things out.
3034
02:26:34,540 --> 02:26:36,280
So you tend to have most of the information
3035
02:26:36,280 --> 02:26:38,920
that you really want or really need in this context.
3036
02:26:39,639 --> 02:26:41,159
They've started also recently doing something
3037
02:26:41,159 --> 02:26:43,180
called auto-compaction, which is where this compaction
3038
02:26:43,180 --> 02:26:45,239
is occurring constantly in the background for you,
3039
02:26:45,360 --> 02:26:47,559
AKA your oldest messages are just like compacted
3040
02:26:47,559 --> 02:26:50,120
into higher information density summaries.
3041
02:26:50,120 --> 02:26:51,799
And then that's constantly sort of like a tail
3042
02:26:51,799 --> 02:26:53,040
behind your current conversation.
3043
02:26:53,399 --> 02:26:55,399
That's pretty cool because if you think about it,
3044
02:26:55,700 --> 02:26:57,079
us human beings are just not very good
3045
02:26:57,079 --> 02:26:59,379
at remaining really concise and being very precise
3046
02:26:59,379 --> 02:27:03,280
and constantly updating that context improves the quality
3047
02:27:03,280 --> 02:27:06,200
of subsequent outputs, as well as bills you less,
3048
02:27:06,440 --> 02:27:08,860
which is kind of interesting because Anthropexol
3049
02:27:08,860 --> 02:27:13,200
business model right now is monetizing Claude and Claude
3050
02:27:13,200 --> 02:27:13,860
and Claude code.
3051
02:27:14,200 --> 02:27:15,819
So the fact that they're doing this sort of runs contrary
3052
02:27:15,819 --> 02:27:17,260
to their interests, which is one of the reasons
3053
02:27:17,260 --> 02:27:18,159
why I like them as a company.
3054
02:27:18,159 --> 02:27:20,280
They're obviously motivated by the quality
3055
02:27:20,280 --> 02:27:21,479
of their product more necessarily
3056
02:27:21,479 --> 02:27:23,319
than their revenue and whatnot.
3057
02:27:23,979 --> 02:27:25,579
So Claude's website here is really helpful.
3058
02:27:25,700 --> 02:27:27,719
They have actually a whole section dedicated
3059
02:27:27,719 --> 02:27:30,200
to reducing token usage and minimizing the amount
3060
02:27:30,200 --> 02:27:32,399
of what's called context rot that accumulates
3061
02:27:32,399 --> 02:27:33,159
in a conversation.
3062
02:27:33,739 --> 02:27:35,180
I'm just gonna run through them with you guys.
3063
02:27:35,180 --> 02:27:37,299
And I want you to know this is constantly being updated.
3064
02:27:37,479 --> 02:27:39,100
So the time that you look at it might be a little bit
3065
02:27:39,100 --> 02:27:40,379
different from the time that I'm looking at it.
3066
02:27:40,500 --> 02:27:42,899
Again, if you guys want like up to date tips,
3067
02:27:43,280 --> 02:27:45,719
I recommend checking out Twitter, x.com, talking to Grok
3068
02:27:45,719 --> 02:27:48,040
and just saying, summarize the best strategies
3069
02:27:48,040 --> 02:27:50,500
to reduce token usage that users have been talking about
3070
02:27:50,500 --> 02:27:51,520
in the last month or so.
3071
02:27:51,920 --> 02:27:53,459
So you have strategies like RAG,
3072
02:27:53,620 --> 02:27:54,739
retrieval augmented generation,
3073
02:27:54,899 --> 02:27:56,280
you have strategies like continuously
3074
02:27:56,280 --> 02:27:58,879
and consistently compressing the Claude.md.
3075
02:27:58,959 --> 02:28:01,360
You have strategies like telling Claude to write
3076
02:28:01,360 --> 02:28:05,040
as concisely as possible, but then turning on extended
3077
02:28:05,040 --> 02:28:06,799
thinking, which is a feature I'll run you guys through later,
3078
02:28:06,899 --> 02:28:09,120
which basically means you blow up the reasoning tokens,
3079
02:28:09,180 --> 02:28:11,979
but then the actual token spill ends up being very low
3080
02:28:11,979 --> 02:28:13,340
and so on and so forth.
3081
02:28:13,860 --> 02:28:15,780
So the number one recommendation that they have
3082
02:28:15,780 --> 02:28:18,579
is to manage your contacts proactively by using slash cost.
3083
02:28:18,799 --> 02:28:20,280
This helps you check your current token usage.
3084
02:28:20,500 --> 02:28:22,180
You can also configure a status line
3085
02:28:22,180 --> 02:28:23,299
to display continuously.
3086
02:28:23,500 --> 02:28:25,700
In order to configure a status line in Claude code,
3087
02:28:25,760 --> 02:28:27,459
you just go slash status line.
3088
02:28:27,559 --> 02:28:29,239
You'll notice that you can't currently do this
3089
02:28:29,239 --> 02:28:30,440
inside of the GUI version.
3090
02:28:30,479 --> 02:28:32,399
So what you have to do instead is you have to open Claude
3091
02:28:32,399 --> 02:28:34,719
in a terminal here because, you know,
3092
02:28:34,840 --> 02:28:36,860
graphical user interfaces don't have a status line.
3093
02:28:37,139 --> 02:28:39,200
A status line is basically this little piece of text
3094
02:28:39,200 --> 02:28:40,040
that occurs before.
3095
02:28:40,040 --> 02:28:42,620
And then you just go slash status, sorry,
3096
02:28:42,739 --> 02:28:44,319
slash status line here.
3097
02:28:45,079 --> 02:28:46,940
It'll ask you what you wanna put in your status line.
3098
02:28:48,940 --> 02:28:51,319
And so I'm basically just gonna ask it to include
3099
02:28:51,319 --> 02:28:53,940
a little like loading bar with the total number
3100
02:28:53,940 --> 02:28:55,020
of tokens that I've used.
3101
02:28:56,540 --> 02:28:58,940
Update my status line so it includes a little loading bar
3102
02:28:58,940 --> 02:29:01,239
that is how many tokens that I've used
3103
02:29:01,239 --> 02:29:02,600
out of my total context.
3104
02:29:02,819 --> 02:29:04,959
So as you could see, it converted that into another mini
3105
02:29:04,959 --> 02:29:06,899
prompt using a status line setup agent,
3106
02:29:06,899 --> 02:29:09,579
and then it's gonna do this kind of cool little
3107
02:29:09,579 --> 02:29:10,440
status effect.
3108
02:29:10,479 --> 02:29:11,719
So I'm actually gonna get to see it down here.
3109
02:29:11,760 --> 02:29:12,959
I'll show you guys what that looks like in a sec.
3110
02:29:13,159 --> 02:29:14,280
Okay, and as we could see here,
3111
02:29:14,280 --> 02:29:15,520
we now have that little bar.
3112
02:29:15,780 --> 02:29:18,579
So 13% of my tokens are used up.
3113
02:29:18,799 --> 02:29:19,340
That's kind of neat.
3114
02:29:19,399 --> 02:29:20,600
We also see the current model.
3115
02:29:21,079 --> 02:29:23,000
And then, you know, the branch that we're on
3116
02:29:23,000 --> 02:29:25,319
if you're into programming with repositories
3117
02:29:25,319 --> 02:29:27,180
and like get workflows and stuff like that.
3118
02:29:27,520 --> 02:29:29,280
This to me isn't like super valuable to be honest,
3119
02:29:29,360 --> 02:29:31,219
if I'm being frank, I just thought it was kind of cool.
3120
02:29:31,540 --> 02:29:34,600
So just another reason why doing all of this in the terminal
3121
02:29:34,600 --> 02:29:35,899
gives you significantly more latitude.
3122
02:29:36,200 --> 02:29:38,280
You can't really just like add a status line
3123
02:29:38,280 --> 02:29:39,680
to the GUI version, at least not now,
3124
02:29:39,760 --> 02:29:40,680
but this one's very hackable.
3125
02:29:40,739 --> 02:29:42,620
Another thing you can do is you can add custom
3126
02:29:42,620 --> 02:29:43,559
compaction instructions.
3127
02:29:44,000 --> 02:29:45,940
So you can actually say slash compact
3128
02:29:45,940 --> 02:29:48,680
and then give it a prompt telling it what to prioritize.
3129
02:29:48,979 --> 02:29:50,219
You could do this every now and then,
3130
02:29:50,219 --> 02:29:51,420
which is obviously quite valuable.
3131
02:29:52,180 --> 02:29:54,520
You can use slash clear to start fresh
3132
02:29:54,520 --> 02:29:56,180
when switching to something that is unrelated.
3133
02:29:56,540 --> 02:29:58,139
So what I mean by this is if I just delete
3134
02:29:58,139 --> 02:29:59,700
this little terminal instance down here,
3135
02:29:59,799 --> 02:30:01,079
just go back slash clear,
3136
02:30:01,319 --> 02:30:03,020
what it'll do is it'll clear the entire conversation
3137
02:30:03,020 --> 02:30:04,299
so you have no context anymore.
3138
02:30:04,659 --> 02:30:06,520
So now there's no previous context.
3139
02:30:06,520 --> 02:30:08,440
If I go back to slash context,
3140
02:30:08,579 --> 02:30:10,159
you can see that scrolling up to messages,
3141
02:30:10,159 --> 02:30:12,700
we have 152 tokens, which is basically everything
3142
02:30:12,700 --> 02:30:13,700
that we've done here so far.
3143
02:30:13,799 --> 02:30:15,600
Aside from that, you can use instructions
3144
02:30:15,600 --> 02:30:17,520
inside of the Clawed-down MD to basically try
3145
02:30:17,520 --> 02:30:19,540
and minimize the total number of tokens generated,
3146
02:30:19,540 --> 02:30:20,180
as I mentioned.
3147
02:30:20,420 --> 02:30:21,360
So you could say something like,
3148
02:30:21,500 --> 02:30:23,180
hey, write as succinctly as possible.
3149
02:30:23,319 --> 02:30:24,739
You can reason all that you want
3150
02:30:24,739 --> 02:30:26,100
because that isn't added to the context,
3151
02:30:26,159 --> 02:30:27,440
but when you actually give me something,
3152
02:30:27,479 --> 02:30:28,860
just give me the bare bones information.
3153
02:30:28,920 --> 02:30:30,540
If I need more, I'll actually ask you.
3154
02:30:30,959 --> 02:30:32,340
Choosing the right model is really big.
3155
02:30:32,659 --> 02:30:35,059
So if you're using a really simple sub agent or something,
3156
02:30:35,059 --> 02:30:36,899
we'll talk about how to develop those later on.
3157
02:30:37,100 --> 02:30:38,979
I recommend using smaller models like Sonnet.
3158
02:30:39,360 --> 02:30:41,059
These smaller models are typically less intelligent,
3159
02:30:41,079 --> 02:30:42,520
but they have much larger context windows
3160
02:30:42,520 --> 02:30:43,260
and then you'll build less.
3161
02:30:43,340 --> 02:30:45,299
So that allows you to like do all the heavy lifting
3162
02:30:45,299 --> 02:30:46,680
inside of the sub agent that's cheaper,
3163
02:30:46,680 --> 02:30:48,299
and then they just return you those results,
3164
02:30:48,299 --> 02:30:48,799
which is great.
3165
02:30:49,540 --> 02:30:51,959
As you see here, the Anthropic team specifies
3166
02:30:51,959 --> 02:30:53,659
to reduce the MCP server overhead.
3167
02:30:53,879 --> 02:30:55,760
And that's because, as I mentioned to you guys,
3168
02:30:55,860 --> 02:30:57,219
some MCP servers just suck.
3169
02:30:57,319 --> 02:30:58,899
They just have a bajillion tools.
3170
02:30:58,940 --> 02:31:01,059
You'll download one and 20% of your token usage
3171
02:31:01,059 --> 02:31:02,020
will be gone immediately.
3172
02:31:02,319 --> 02:31:03,520
That's obviously quite costly,
3173
02:31:03,520 --> 02:31:04,959
and then it makes Claude much dumber.
3174
02:31:05,420 --> 02:31:07,739
So, you know, there are ways to reduce MCP server overhead.
3175
02:31:07,840 --> 02:31:08,600
They have what's called
3176
02:31:08,600 --> 02:31:10,559
advanced and automatic tool search now.
3177
02:31:10,920 --> 02:31:13,540
When MCP tool descriptions exceed 10% of your context window,
3178
02:31:13,739 --> 02:31:14,760
they won't actually load all of them.
3179
02:31:14,760 --> 02:31:16,579
They'll just try and search for them before.
3180
02:31:16,899 --> 02:31:17,959
So meaning you'll say, hey, you know,
3181
02:31:17,979 --> 02:31:21,379
can you open up a new page in Chrome DevTools or something?
3182
02:31:21,739 --> 02:31:23,639
It won't actually have access to all that immediately.
3183
02:31:23,739 --> 02:31:26,540
What it'll do is it'll search first a list of tools
3184
02:31:26,540 --> 02:31:27,940
using Gratper or something like that,
3185
02:31:27,959 --> 02:31:29,379
which is its own built-in search tool.
3186
02:31:29,579 --> 02:31:31,860
And then it'll find one that says open the Chrome DevTools
3187
02:31:31,860 --> 02:31:32,799
and then it'll load it.
3188
02:31:32,799 --> 02:31:35,799
That helps you avoid massive MCP server overheads
3189
02:31:35,799 --> 02:31:37,200
and then obviously wasting a lot of tokens.
3190
02:31:37,360 --> 02:31:39,139
Some other tips are to move instructions
3191
02:31:39,139 --> 02:31:40,399
from Claude MD to skills.
3192
02:31:40,879 --> 02:31:42,639
So remember how earlier I said your Claude MD
3193
02:31:42,639 --> 02:31:45,340
should be like 200 to like four or 500 tokens,
3194
02:31:45,459 --> 02:31:46,739
lines maximum.
3195
02:31:47,079 --> 02:31:48,879
Some people make it even longer, but you shouldn't.
3196
02:31:49,020 --> 02:31:50,639
Instead, what you can do is you can break those down
3197
02:31:50,639 --> 02:31:51,600
into specific rules.
3198
02:31:51,899 --> 02:31:54,000
And then any rules that are more tasks than rules,
3199
02:31:54,020 --> 02:31:55,500
you can actually just turn into skills.
3200
02:31:56,040 --> 02:31:57,239
So skills will load on demand,
3201
02:31:57,479 --> 02:31:59,739
meaning that only when you specifically invoke them
3202
02:31:59,739 --> 02:32:00,819
will they be added to your context,
3203
02:32:00,860 --> 02:32:01,579
which is quite helpful.
3204
02:32:01,579 --> 02:32:04,020
You can also adjust extended thinking.
3205
02:32:04,319 --> 02:32:06,079
We haven't chatted too much about extended thinking,
3206
02:32:06,120 --> 02:32:07,360
but if you go back to Claude here,
3207
02:32:07,479 --> 02:32:09,520
if you go to slash model,
3208
02:32:09,719 --> 02:32:11,899
you have the ability to switch which model you're using.
3209
02:32:12,280 --> 02:32:14,340
And then additionally, if you go over here,
3210
02:32:14,520 --> 02:32:15,899
there's also a thinking tab,
3211
02:32:16,079 --> 02:32:18,760
which allows you to turn on and off that little reasoning
3212
02:32:18,760 --> 02:32:20,059
or thinking window.
3213
02:32:20,159 --> 02:32:21,340
As I mentioned, thinking is pretty valuable
3214
02:32:21,340 --> 02:32:23,340
because it avoids you wasting tons of tokens
3215
02:32:23,340 --> 02:32:24,920
in the conversation chain itself.
3216
02:32:25,100 --> 02:32:26,780
It offloads it to a little thinking tab.
3217
02:32:27,280 --> 02:32:28,819
And what you can do is you can actually modify
3218
02:32:28,819 --> 02:32:31,280
the effort level using slash model.
3219
02:32:31,719 --> 02:32:33,360
You can disable thinking completely,
3220
02:32:33,360 --> 02:32:35,219
or you can turn the number of tokens
3221
02:32:35,219 --> 02:32:38,200
that you give it to like maximum think from,
3222
02:32:38,200 --> 02:32:41,059
I don't know, 8,000 to like 32,000 or more.
3223
02:32:41,159 --> 02:32:43,520
Now agent teams is another feature of Claude code,
3224
02:32:43,579 --> 02:32:45,200
which I'm looking forward to covering with you guys,
3225
02:32:45,239 --> 02:32:46,440
but currently it costs a lot,
3226
02:32:46,600 --> 02:32:48,700
about seven times more tokens than standard sessions,
3227
02:32:48,879 --> 02:32:50,459
especially when teammates run in plan mode,
3228
02:32:50,479 --> 02:32:52,719
because every teammate maintains its own context window.
3229
02:32:52,979 --> 02:32:54,920
So they actually kind of recommend against it
3230
02:32:54,920 --> 02:32:56,819
if minimizing token usage is the number one thing
3231
02:32:56,819 --> 02:32:57,479
that you wanna do.
3232
02:32:57,479 --> 02:33:00,319
And then finally, writing specific prompts
3233
02:33:00,319 --> 02:33:02,620
is probably the highest ROI tip that I could give you here.
3234
02:33:03,020 --> 02:33:04,739
Instead of improve this code base,
3235
02:33:05,100 --> 02:33:06,340
you saying something specific,
3236
02:33:06,440 --> 02:33:09,079
hey, fix this one feature that I found in this file
3237
02:33:09,079 --> 02:33:10,479
is a lot more precise.
3238
02:33:10,600 --> 02:33:12,959
And as a result, despite the fact that it'll,
3239
02:33:13,000 --> 02:33:14,500
it takes a little bit more thinking on your end,
3240
02:33:14,879 --> 02:33:16,379
a little bit more of your extended thinking,
3241
02:33:17,219 --> 02:33:19,719
Claude's token usage ends up being significantly decreased.
3242
02:33:19,979 --> 02:33:21,940
Finally, even Anthropic says that planning
3243
02:33:21,940 --> 02:33:23,659
for complex tasks is the way to go
3244
02:33:23,659 --> 02:33:25,579
because this significantly reduces
3245
02:33:25,579 --> 02:33:27,120
the total number of tokens you use
3246
02:33:27,120 --> 02:33:28,520
when you're actually building solutions.
3247
02:33:28,780 --> 02:33:30,659
Usually API calls and calling servers
3248
02:33:30,659 --> 02:33:32,280
and requesting web pages and stuff,
3249
02:33:32,479 --> 02:33:34,159
these load a ton of tokens in the context.
3250
02:33:34,659 --> 02:33:37,159
So avoiding doing research entirely is pretty valuable.
3251
02:33:37,540 --> 02:33:38,840
Once you're at the building stage,
3252
02:33:39,100 --> 02:33:40,299
just front load the research with plan
3253
02:33:40,299 --> 02:33:41,159
and worry about it later.
3254
02:33:41,680 --> 02:33:42,940
Now it's time to chat skills,
3255
02:33:42,940 --> 02:33:44,620
which in my opinion is probably one
3256
02:33:44,620 --> 02:33:46,620
of the most economically valuable ways
3257
02:33:46,620 --> 02:33:47,899
that you can use Claude code.
3258
02:33:48,280 --> 02:33:51,159
This is a Claude code in aggregate tutorial, obviously.
3259
02:33:51,159 --> 02:33:52,659
So I don't just wanna talk about skills.
3260
02:33:52,700 --> 02:33:55,100
If you guys wanna know more about how I personally use skills
3261
02:33:55,100 --> 02:33:56,180
and things like skills,
3262
02:33:56,180 --> 02:33:58,360
I do also have another course that talks all about
3263
02:33:58,360 --> 02:33:59,700
what I call agentic workflows,
3264
02:34:00,260 --> 02:34:01,340
which are analogous to skills.
3265
02:34:02,340 --> 02:34:04,059
But for now, anybody that's not acquainted with this,
3266
02:34:04,139 --> 02:34:05,139
I just wanna run a quick demo.
3267
02:34:05,319 --> 02:34:07,159
So if we open up this .Claude folder
3268
02:34:07,159 --> 02:34:08,239
in the top left-hand side,
3269
02:34:08,280 --> 02:34:10,680
you can see that we also have a nested skills folder.
3270
02:34:10,899 --> 02:34:13,040
And I have a bunch of different skills here.
3271
02:34:13,459 --> 02:34:16,020
I have skills that allow me to classify leads,
3272
02:34:16,479 --> 02:34:17,700
create proposals automatically,
3273
02:34:18,120 --> 02:34:20,260
not dissimilar to the proposal generator app
3274
02:34:20,260 --> 02:34:21,139
that we did before.
3275
02:34:21,700 --> 02:34:23,340
I find outliers in my niche,
3276
02:34:24,199 --> 02:34:26,180
update and auto-reply to emails,
3277
02:34:26,959 --> 02:34:28,959
edit my YouTube videos for me,
3278
02:34:29,260 --> 02:34:30,979
onboard new clients to my agency,
3279
02:34:31,420 --> 02:34:33,420
apply to Upwork jobs and so on and so forth,
3280
02:34:33,799 --> 02:34:36,440
monitor and then classify my school posts.
3281
02:34:36,799 --> 02:34:37,459
I mean, if you think about it,
3282
02:34:37,459 --> 02:34:39,420
what this is, is this is a collection of all the things
3283
02:34:39,420 --> 02:34:41,219
that I usually do in a daily basis,
3284
02:34:41,440 --> 02:34:43,760
like for my own intellectually valuable knowledge work,
3285
02:34:43,979 --> 02:34:45,459
the stuff that I basically get paid for.
3286
02:34:45,819 --> 02:34:47,059
And then what I've done is I've just turned them
3287
02:34:47,959 --> 02:34:48,840
into checklists,
3288
02:34:48,840 --> 02:34:50,940
and then I've just given these checklists over to Claude.
3289
02:34:50,940 --> 02:34:54,399
So let's pretend that I wanna do one of these tasks today.
3290
02:34:54,700 --> 02:34:56,399
In my case, I want to scrape some leads.
3291
02:34:57,100 --> 02:34:58,860
So what I've done is I've created a skill up here
3292
02:34:58,860 --> 02:35:00,420
called scrape leads that scrapes
3293
02:35:00,420 --> 02:35:02,379
and verifies business leads using a service.
3294
02:35:02,520 --> 02:35:04,340
Then it classifies with a large language model,
3295
02:35:04,739 --> 02:35:06,860
enriches the emails and saves it to a Google Sheet.
3296
02:35:07,079 --> 02:35:08,559
Use when the user asks to find leads,
3297
02:35:08,739 --> 02:35:10,219
scrape businesses, generate prospect lists,
3298
02:35:10,260 --> 02:35:12,600
or build lead databases for any industry or location.
3299
02:35:12,979 --> 02:35:14,360
I then have a goal up top,
3300
02:35:14,500 --> 02:35:16,379
which is to scrape leads using a particular source.
3301
02:35:16,780 --> 02:35:17,700
I have a bunch of inputs.
3302
02:35:18,059 --> 02:35:19,879
I even have some scripts that I could use to run these.
3303
02:35:19,879 --> 02:35:21,659
And then I have a process, and this is my checklist.
3304
02:35:21,739 --> 02:35:23,719
Start with a test scrape, then do verification,
3305
02:35:23,860 --> 02:35:26,000
then do a full scrape, then do LLM classification,
3306
02:35:26,120 --> 02:35:28,379
upload to a Google Sheet, enrich missing emails,
3307
02:35:28,739 --> 02:35:30,079
and so on and so on and so forth.
3308
02:35:30,639 --> 02:35:32,479
Okay, so as you see here, big, big deal.
3309
02:35:32,559 --> 02:35:33,920
This is a fair amount of time and energy
3310
02:35:33,920 --> 02:35:36,600
that I used to take to do these lead scraping things.
3311
02:35:36,819 --> 02:35:40,239
As part of my work is both for my dental company
3312
02:35:40,239 --> 02:35:42,819
and then for LeftClick, on behalf of my clients,
3313
02:35:43,260 --> 02:35:44,399
lead scraping is like a major chunk
3314
02:35:44,399 --> 02:35:46,620
of what makes a successful cold email campaign.
3315
02:35:47,200 --> 02:35:49,100
And I just had to do it myself every time.
3316
02:35:49,100 --> 02:35:49,959
It took like an hour or two.
3317
02:35:50,159 --> 02:35:51,379
Well, what I can do now is I can just turn
3318
02:35:51,379 --> 02:35:53,680
all of my own knowledge into a skill.
3319
02:35:54,020 --> 02:35:55,819
Okay, I can define it in Markdown format here,
3320
02:35:55,819 --> 02:35:57,260
and I can write it with Claude,
3321
02:35:57,260 --> 02:36:00,700
and then I can just say, scrape me 1K dentists,
3322
02:36:00,719 --> 02:36:05,360
or 1,000 dentists across the United States.
3323
02:36:06,260 --> 02:36:08,540
Now, when I press this button, what's happening now
3324
02:36:08,540 --> 02:36:10,739
is it's successfully loading the skill.
3325
02:36:11,079 --> 02:36:13,500
It's starting with a test scrape of 25 dentists
3326
02:36:13,500 --> 02:36:14,540
to verify my quality.
3327
02:36:15,040 --> 02:36:17,459
It already automatically finds the different filters
3328
02:36:17,459 --> 02:36:19,459
I wanna use and so on and so forth.
3329
02:36:19,799 --> 02:36:22,280
And then it's gonna dump these into a little folder for me.
3330
02:36:22,659 --> 02:36:24,879
What it'll do after, according to my skill spec,
3331
02:36:25,000 --> 02:36:27,920
is it's going to read through each of these 25 leads,
3332
02:36:28,420 --> 02:36:30,420
sometimes do a little bit of background research to say,
3333
02:36:30,459 --> 02:36:32,159
hey, are these the sorts of leads that I'm actually,
3334
02:36:32,700 --> 02:36:34,459
Nick is probably actually interested in?
3335
02:36:34,940 --> 02:36:36,540
And then if so, then it proceeds
3336
02:36:36,540 --> 02:36:39,260
with a full parallel scrape of 1,000 simultaneously,
3337
02:36:39,559 --> 02:36:40,579
and that occurs quite quickly.
3338
02:36:41,000 --> 02:36:43,139
So in this case, it started four of these scrapers
3339
02:36:43,139 --> 02:36:45,159
and it's just parallelizing these,
3340
02:36:45,180 --> 02:36:46,500
so I'm gonna get 250 from each.
3341
02:36:46,500 --> 02:36:48,579
To be clear, previously, this probably would have taken me
3342
02:36:48,579 --> 02:36:51,100
15 or 20 minutes to set up the filters, to set everything,
3343
02:36:51,760 --> 02:36:54,059
kind of configure that initial search, right?
3344
02:36:54,360 --> 02:36:56,420
And then if I wanted to do that search at 25,
3345
02:36:56,500 --> 02:36:58,600
I would have had to manually verify them myself,
3346
02:36:58,600 --> 02:37:00,299
which took me another 10 or 15 minutes.
3347
02:37:00,579 --> 02:37:02,659
After that, I would have started the actual scraper,
3348
02:37:02,840 --> 02:37:05,020
then I would have had to upload them into a Google Sheet,
3349
02:37:05,159 --> 02:37:06,920
I would have had to cross-reference the leads
3350
02:37:06,920 --> 02:37:07,760
to make sure they're good,
3351
02:37:08,000 --> 02:37:10,399
I would have had to run some additional AI-based flows,
3352
02:37:10,780 --> 02:37:12,559
and it just would have been a big pain in my ass
3353
02:37:12,559 --> 02:37:13,479
to make a long story short.
3354
02:37:13,920 --> 02:37:15,360
Now, A is capable of doing this for me
3355
02:37:15,360 --> 02:37:16,219
in just a couple of minutes.
3356
02:37:16,219 --> 02:37:18,120
And I'm running this in terminal because I have access
3357
02:37:18,120 --> 02:37:19,940
to what's called fast mode right now.
3358
02:37:20,100 --> 02:37:22,500
Essentially, Anthropec's new Opus 4.6 model
3359
02:37:22,500 --> 02:37:24,540
has launched with the ability to run two and a half times
3360
02:37:24,540 --> 02:37:26,319
faster for approximately three times the price,
3361
02:37:26,600 --> 02:37:28,379
so I'm happy to pay a little bit more money
3362
02:37:28,379 --> 02:37:30,280
if it means that I can do all of the knowledge work
3363
02:37:30,280 --> 02:37:31,600
that I need to do a little bit faster.
3364
02:37:31,700 --> 02:37:33,040
As you see here on the right-hand side,
3365
02:37:33,040 --> 02:37:34,799
it's now finding a bunch of my leads for me,
3366
02:37:35,239 --> 02:37:36,760
it's compiling them into a list,
3367
02:37:37,199 --> 02:37:38,579
250 leads done from that search,
3368
02:37:38,700 --> 02:37:40,020
250 leads done from that search,
3369
02:37:40,280 --> 02:37:41,620
250 leads done from that search,
3370
02:37:41,620 --> 02:37:42,579
and we just have one more to go.
3371
02:37:42,659 --> 02:37:44,360
Now, what's really cool about skills is
3372
02:37:44,360 --> 02:37:46,040
it doesn't need to be right every single time,
3373
02:37:46,040 --> 02:37:46,940
it's not like a program,
3374
02:37:47,079 --> 02:37:48,239
it's not like I put something together
3375
02:37:48,239 --> 02:37:50,239
and then the second that it makes a mistake, it's done.
3376
02:37:50,659 --> 02:37:53,360
As you see here, it scraped about 1,000 leads in 87 seconds
3377
02:37:53,360 --> 02:37:54,879
and now it's uploading to Google Sheets.
3378
02:37:55,299 --> 02:37:57,319
And somewhere along the line, there was an issue.
3379
02:37:57,680 --> 02:37:59,739
And the issue was, it turns out I can't use spaces
3380
02:37:59,739 --> 02:38:01,020
and stuff like that in the file.
3381
02:38:01,360 --> 02:38:03,719
So what it did is it realized that it made a problem,
3382
02:38:04,199 --> 02:38:06,299
and then it uploaded it to Google Sheets
3383
02:38:06,299 --> 02:38:08,040
with the proposed solution, it went through
3384
02:38:08,040 --> 02:38:10,040
and it read through a little bit of the API documentation
3385
02:38:10,040 --> 02:38:11,100
and stuff like that to do that.
3386
02:38:11,459 --> 02:38:13,020
This is stuff that I previously would have had to do
3387
02:38:13,020 --> 02:38:15,159
and that try and retry loop just takes forever.
3388
02:38:15,159 --> 02:38:16,600
On top of that, what it does is it goes
3389
02:38:16,600 --> 02:38:18,360
and enriches the emails for me.
3390
02:38:18,420 --> 02:38:20,020
And then what I end up with is I end up with a list
3391
02:38:20,020 --> 02:38:21,100
that looks something like this.
3392
02:38:21,100 --> 02:38:22,819
So I just bold this and then I make this a little bit bigger.
3393
02:38:23,219 --> 02:38:25,219
I've since hidden the email columns here
3394
02:38:25,219 --> 02:38:27,959
just because I don't wanna show too much information.
3395
02:38:28,340 --> 02:38:30,159
We have clinic phone numbers and stuff like that,
3396
02:38:30,260 --> 02:38:31,319
company phone numbers and addresses.
3397
02:38:31,379 --> 02:38:33,879
But as you can see here, we have tons of information
3398
02:38:33,879 --> 02:38:36,260
about dentists that are across the United States.
3399
02:38:36,500 --> 02:38:38,639
Looks like a big chunk of them are in Philadelphia,
3400
02:38:38,760 --> 02:38:41,180
New York, Moorstown, Boston, we have cities,
3401
02:38:41,260 --> 02:38:41,940
we have everything that we need.
3402
02:38:42,319 --> 02:38:44,040
And so what I'd do with this now is I would take this,
3403
02:38:44,040 --> 02:38:46,360
then I would send it into a tool like Instantly,
3404
02:38:46,459 --> 02:38:47,540
which is my cold email platform
3405
02:38:47,540 --> 02:38:48,760
and then I would immediately start sending.
3406
02:38:49,500 --> 02:38:51,319
And as I mentioned, this takes a pre-existing process
3407
02:38:51,319 --> 02:38:52,479
that would have taken me at least half an hour,
3408
02:38:52,479 --> 02:38:54,200
probably more, and it turns into one
3409
02:38:54,200 --> 02:38:55,920
that I literally did in 87 seconds.
3410
02:38:56,000 --> 02:38:56,760
So as you can see,
3411
02:38:56,979 --> 02:38:58,719
skills can be extremely economically valuable.
3412
02:38:58,899 --> 02:39:00,979
The question is, how do you actually go about creating them
3413
02:39:00,979 --> 02:39:03,319
and creating them in a way that I think is reproducible
3414
02:39:03,319 --> 02:39:04,719
and efficient and so on and so forth.
3415
02:39:05,420 --> 02:39:07,979
Well, the first thing is you need to know how script
3416
02:39:07,979 --> 02:39:09,760
or rather skill structure works.
3417
02:39:09,899 --> 02:39:11,860
If I just zoom in on this to make it a lot easier,
3418
02:39:12,620 --> 02:39:15,159
you could see that our scrape leads skill
3419
02:39:15,159 --> 02:39:17,139
is broken up into a few components.
3420
02:39:17,899 --> 02:39:20,440
First, we have the folder itself, scrape-leads.
3421
02:39:20,819 --> 02:39:23,280
Then we have another folder inside called scripts.
3422
02:39:23,379 --> 02:39:25,819
This runs the program aspect of the skill.
3423
02:39:26,059 --> 02:39:28,719
And then finally, we have the actual skill.md in Markdown.
3424
02:39:29,159 --> 02:39:31,159
So I want you to treat what we're seeing here
3425
02:39:31,159 --> 02:39:36,140
in the skill.md as basically like the orchestrator
3426
02:39:36,939 --> 02:39:38,180
of this whole affair.
3427
02:39:39,039 --> 02:39:47,920
So the skill.md is like the checklist or orchestrator.
3428
02:39:49,680 --> 02:39:50,979
You know, in an orchestra,
3429
02:39:51,219 --> 02:39:53,399
the orchestrator is the person with the little,
3430
02:39:53,420 --> 02:39:54,319
I don't know, those sticks.
3431
02:39:54,540 --> 02:39:55,639
My sister does some of that actually,
3432
02:39:55,680 --> 02:39:56,959
which is funny, I don't even know what the hell they're called.
3433
02:39:57,040 --> 02:39:58,920
But you know, it's where you kind of wave them around
3434
02:39:58,920 --> 02:39:59,760
and do all that stuff.
3435
02:39:59,920 --> 02:40:01,379
And then what happens is, you know,
3436
02:40:01,379 --> 02:40:03,299
the orchestrator is not the person making,
3437
02:40:03,379 --> 02:40:04,399
you know, the conductor, I should say,
3438
02:40:04,399 --> 02:40:06,579
is not the person that's making the music.
3439
02:40:06,579 --> 02:40:08,540
What they're doing is they are orchestrating
3440
02:40:08,540 --> 02:40:11,500
the production of music from a variety of other sources.
3441
02:40:12,420 --> 02:40:15,920
Inside of scripts, we have, you know,
3442
02:40:16,000 --> 02:40:19,579
the actual musicians themselves, violinists,
3443
02:40:20,219 --> 02:40:23,700
you know, the cellists, we have the pianists,
3444
02:40:23,899 --> 02:40:25,500
and so on and so on and so forth.
3445
02:40:25,959 --> 02:40:28,059
And so basically what occurs is
3446
02:40:28,059 --> 02:40:31,120
we give it a big checklist of tasks in the skill.md.
3447
02:40:31,260 --> 02:40:32,840
We give it a bunch of reference information
3448
02:40:32,840 --> 02:40:33,659
and everything that it needs.
3449
02:40:34,120 --> 02:40:36,200
And we treat it just like we treat a junior employee.
3450
02:40:36,200 --> 02:40:38,139
We say, okay, here's the checklist, go out and do it.
3451
02:40:38,879 --> 02:40:40,659
And then where the orchestration kind of comes in
3452
02:40:40,659 --> 02:40:43,920
is if there's an issue with the step-by-step execution
3453
02:40:43,920 --> 02:40:45,200
of different subtasks,
3454
02:40:45,280 --> 02:40:47,079
some of which are going to be scripts and stuff like that,
3455
02:40:47,979 --> 02:40:49,860
then Claude gets to use its own native intelligence
3456
02:40:49,860 --> 02:40:51,239
to fix it in real time.
3457
02:40:51,680 --> 02:40:53,819
Not only do they fix it, but then it also goes in
3458
02:40:53,819 --> 02:40:56,399
and it updates the skill so that if there's another issue
3459
02:40:56,399 --> 02:40:58,100
in the future, or if another instance of Claude
3460
02:40:58,100 --> 02:40:59,979
tries running this, it doesn't run into the same problem.
3461
02:41:00,540 --> 02:41:02,000
So as you can see, they're very, very valuable.
3462
02:41:02,180 --> 02:41:03,799
They're more or less exactly the same way
3463
02:41:03,799 --> 02:41:05,379
that like a person would go and do a task.
3464
02:41:05,799 --> 02:41:07,420
Now inside of my scripts folder here,
3465
02:41:07,540 --> 02:41:09,360
I have, as you can see, a bunch of different
3466
02:41:10,099 --> 02:41:11,639
actual Python scripts that have been developed
3467
02:41:11,639 --> 02:41:12,260
for this purpose.
3468
02:41:12,860 --> 02:41:14,819
Do I know anything that goes on in here?
3469
02:41:15,059 --> 02:41:16,420
No, I haven't even looked at this code.
3470
02:41:16,520 --> 02:41:17,860
It's probably the first time that I'm ever opening up
3471
02:41:17,860 --> 02:41:18,280
this file.
3472
02:41:18,700 --> 02:41:21,540
What I did is I told Claude that I wanted it to go
3473
02:41:21,540 --> 02:41:24,379
and do things in my checklist and then go create scripts
3474
02:41:24,379 --> 02:41:25,440
that would do them all for me.
3475
02:41:25,760 --> 02:41:27,620
It's much better to do this than just tell Claude
3476
02:41:27,620 --> 02:41:30,180
to do it from fresh and from scratch every time.
3477
02:41:30,260 --> 02:41:31,620
Because obviously if it's the same thing
3478
02:41:31,620 --> 02:41:32,479
that you need to do every time,
3479
02:41:32,620 --> 02:41:35,299
you should turn it into like a defined program, right?
3480
02:41:35,299 --> 02:41:37,040
Because then it's always gonna execute similarly.
3481
02:41:37,719 --> 02:41:39,239
That way Claude is not actually doing
3482
02:41:39,239 --> 02:41:40,780
the executions himself.
3483
02:41:40,860 --> 02:41:43,239
What it's doing is it's just using the scripts here,
3484
02:41:43,239 --> 02:41:44,379
just like it uses tools.
3485
02:41:44,659 --> 02:41:46,520
You know how it has access to bash and web search
3486
02:41:46,520 --> 02:41:46,940
and stuff like that?
3487
02:41:46,959 --> 02:41:47,719
This is the same idea.
3488
02:41:47,739 --> 02:41:49,500
It's just we're doing it encapsulated in a skill.
3489
02:41:50,319 --> 02:41:52,120
Okay, so it takes this information.
3490
02:41:52,620 --> 02:41:53,780
It goes through the skill.
3491
02:41:53,979 --> 02:41:55,879
It says, okay, step one is test scrape.
3492
02:41:55,940 --> 02:41:58,079
So I need to run the scrape appify with this query,
3493
02:41:58,299 --> 02:42:00,020
max items 25, whatever the heck that means.
3494
02:42:00,360 --> 02:42:01,680
Then it goes, it executes this.
3495
02:42:02,379 --> 02:42:04,420
Once it's done, it checks the result.
3496
02:42:04,420 --> 02:42:06,680
If that's the case, then it goes back
3497
02:42:06,680 --> 02:42:08,120
and then it runs the same scraper
3498
02:42:08,120 --> 02:42:09,319
except with different parameters.
3499
02:42:10,159 --> 02:42:10,920
Assuming that that's good,
3500
02:42:10,940 --> 02:42:14,120
then it uses this classify leads LLM script afterwards
3501
02:42:14,679 --> 02:42:16,260
to tabulate that information.
3502
02:42:16,500 --> 02:42:17,239
Assuming that that's good,
3503
02:42:17,319 --> 02:42:20,540
it goes into what looks like update sheet
3504
02:42:20,540 --> 02:42:22,540
to like create a Google sheet and then send it.
3505
02:42:22,639 --> 02:42:23,500
Assuming that that's good,
3506
02:42:23,540 --> 02:42:25,440
it then goes enriches the missing emails
3507
02:42:25,440 --> 02:42:26,440
and so on and so forth.
3508
02:42:26,500 --> 02:42:28,600
And there's different paths here based off of
3509
02:42:29,139 --> 02:42:30,479
how many people we wanna scrape.
3510
02:42:30,639 --> 02:42:32,860
I have a few other skills that I use pretty often as well.
3511
02:42:32,860 --> 02:42:35,159
This one's called literature research.
3512
02:42:35,479 --> 02:42:37,700
And so, if I'm trying to perform research on a task,
3513
02:42:37,819 --> 02:42:41,500
I will actually say, go perform a lit review
3514
02:42:41,500 --> 02:42:46,299
on the recommended daily dose of, let's say vitamin D
3515
02:42:46,299 --> 02:42:50,299
and IUD for males in their early thirties.
3516
02:42:51,020 --> 02:42:52,459
What this will do, okay,
3517
02:42:52,479 --> 02:42:54,459
in addition to reading the CLAW.MD
3518
02:42:54,459 --> 02:42:56,040
to get context about this whole thing,
3519
02:42:56,200 --> 02:42:57,459
is it'll go through and it'll read
3520
02:42:57,459 --> 02:42:58,879
this literature research skill.
3521
02:42:59,079 --> 02:43:01,059
If I open this up so that we can all see,
3522
02:43:01,960 --> 02:43:03,719
the first thing it's gonna do is it's gonna query
3523
02:43:03,719 --> 02:43:05,959
like this database, which I'm suggesting that it queries.
3524
02:43:06,299 --> 02:43:08,799
So this database, I think, was called PubMed.
3525
02:43:09,120 --> 02:43:11,299
After that, it's going to analyze
3526
02:43:11,299 --> 02:43:12,920
using this little deep review script.
3527
02:43:13,319 --> 02:43:15,200
And you'll notice that if I make this big again,
3528
02:43:15,940 --> 02:43:17,120
I made some mistakes here, right?
3529
02:43:17,120 --> 02:43:17,680
For whatever reason,
3530
02:43:17,700 --> 02:43:20,079
the first query did not actually work fine,
3531
02:43:20,260 --> 02:43:23,100
but it ended up redoing it over and over and over again
3532
02:43:23,100 --> 02:43:24,059
until it figured it out.
3533
02:43:24,379 --> 02:43:26,239
And so this is the orchestration aspect that I'm talking about.
3534
02:43:26,280 --> 02:43:27,000
You can give it a checklist,
3535
02:43:27,059 --> 02:43:28,879
but obviously not everything goes right perfectly.
3536
02:43:29,120 --> 02:43:30,540
Because not everything goes right perfectly,
3537
02:43:30,540 --> 02:43:31,959
you need to give it some flexibility
3538
02:43:31,959 --> 02:43:33,420
in order to do your tasks.
3539
02:43:33,979 --> 02:43:35,559
And that's what it's doing right now, right?
3540
02:43:35,639 --> 02:43:37,979
It's gone through and it's gone and created
3541
02:43:37,979 --> 02:43:40,680
a bunch of literature review-based information for me.
3542
02:43:40,780 --> 02:43:42,600
Why would I use this versus, let's just say,
3543
02:43:42,780 --> 02:43:44,180
telling CLAW to go find that information?
3544
02:43:44,340 --> 02:43:47,459
Because I've already just put in the infrastructure
3545
02:43:47,459 --> 02:43:50,100
to query specific databases that I really like.
3546
02:43:50,479 --> 02:43:52,479
I've taught it how to run parallel queries
3547
02:43:52,479 --> 02:43:54,239
so I can do this research in 10th of the time.
3548
02:43:54,659 --> 02:43:55,780
I've taught it to use models
3549
02:43:55,780 --> 02:43:57,680
that might be a little bit less capable,
3550
02:43:57,680 --> 02:43:59,379
but might have much longer context windows
3551
02:43:59,379 --> 02:44:00,299
and so on and so forth.
3552
02:44:00,780 --> 02:44:02,280
And so this enables you to find a workflow
3553
02:44:02,280 --> 02:44:03,379
that works really, really well,
3554
02:44:03,620 --> 02:44:04,559
and then just consolidate it
3555
02:44:04,559 --> 02:44:05,600
and then do it the same every time.
3556
02:44:06,159 --> 02:44:07,360
This is why I no longer hire.
3557
02:44:07,579 --> 02:44:09,200
I mean, my businesses collectively
3558
02:44:09,200 --> 02:44:11,780
still make over $300-something thousand per month right now
3559
02:44:11,780 --> 02:44:12,239
in profit.
3560
02:44:13,059 --> 02:44:13,979
That's a lot of money.
3561
02:44:14,799 --> 02:44:17,700
I don't have staff members to do these things for me anymore.
3562
02:44:17,959 --> 02:44:19,280
Anytime I want anything done,
3563
02:44:19,360 --> 02:44:21,700
I'll just tell CLAW to do it with one of these skills.
3564
02:44:22,059 --> 02:44:24,479
Because to be honest, it's the exact same thing anyway.
3565
02:44:24,520 --> 02:44:25,680
I would have just hired a contractor
3566
02:44:25,680 --> 02:44:27,239
to do this sort of literature research.
3567
02:44:27,239 --> 02:44:29,600
I would have hired a contractor to do my lead scraping.
3568
02:44:30,159 --> 02:44:32,299
Why do I have to wait around a whole day or two for them now
3569
02:44:32,299 --> 02:44:34,780
if I could just execute a skill to go do the thing,
3570
02:44:35,040 --> 02:44:36,659
retrieve me the results, and then, I don't know,
3571
02:44:36,659 --> 02:44:38,879
maybe feed it into another skill in 100th of the time
3572
02:44:38,879 --> 02:44:39,879
for like 100th of the cost.
3573
02:44:39,979 --> 02:44:42,579
Okay, so while all of this is occurring in this tab
3574
02:44:42,579 --> 02:44:43,520
and I'm doing that research,
3575
02:44:43,600 --> 02:44:44,120
why don't I show you guys
3576
02:44:44,120 --> 02:44:45,719
how to actually create a skill in practice.
3577
02:44:46,219 --> 02:44:47,979
To make a skill, it's really straightforward.
3578
02:44:48,079 --> 02:44:49,879
You basically just give it like a bullet point list
3579
02:44:49,879 --> 02:44:51,020
of things that you want it to do.
3580
02:44:51,299 --> 02:44:53,799
So I'm going to say today we're creating a skill
3581
02:44:53,799 --> 02:44:55,819
and why don't I just use my voice transcript tool?
3582
02:44:55,819 --> 02:44:56,559
That's way easier.
3583
02:44:57,399 --> 02:45:00,100
This skill will design websites in a format
3584
02:45:00,100 --> 02:45:02,420
that I really like using a template that I really like.
3585
02:45:02,579 --> 02:45:04,680
I want the websites designed very similarly every time
3586
02:45:04,680 --> 02:45:06,180
because I'm going to use them to pitch people.
3587
02:45:06,979 --> 02:45:08,280
In short, what I'm going to give you
3588
02:45:08,280 --> 02:45:10,079
is I'm going to give you a bunch of information
3589
02:45:10,079 --> 02:45:12,600
about a prospect and then I want you to design a website
3590
02:45:12,600 --> 02:45:13,760
using a specific template.
3591
02:45:14,059 --> 02:45:16,100
The template I'm going to supply you is this one.
3592
02:45:16,180 --> 02:45:17,760
And then what I'm going to do is,
3593
02:45:17,860 --> 02:45:21,399
you know how earlier we went through godly.website
3594
02:45:21,399 --> 02:45:22,879
and then we found a template that we really liked?
3595
02:45:22,959 --> 02:45:24,059
Well, I'm just going to scroll through
3596
02:45:24,059 --> 02:45:26,079
and I'm going to find a template that I really like.
3597
02:45:26,399 --> 02:45:28,680
So scrolling through, I don't know,
3598
02:45:28,680 --> 02:45:30,059
I just want this to be a simple website
3599
02:45:30,059 --> 02:45:32,520
that I could use for, let's just do like,
3600
02:45:32,520 --> 02:45:34,280
I don't know, dentists hypothetically right now.
3601
02:45:34,540 --> 02:45:35,920
So I'm going to go over here
3602
02:45:35,920 --> 02:45:38,399
and then I like this build an Amsterdam one.
3603
02:45:40,120 --> 02:45:42,120
Okay, and then what I'm going to do is I'm just going to,
3604
02:45:42,120 --> 02:45:43,200
I think that's it honestly,
3605
02:45:43,299 --> 02:45:44,479
I think I'm just going to screenshot this
3606
02:45:44,479 --> 02:45:46,600
and they'll just make one pager for Claude.
3607
02:45:47,040 --> 02:45:48,399
Just going to screenshot it.
3608
02:45:48,420 --> 02:45:51,059
Okay, and then I'm going to go back to my anti-gravity
3609
02:45:51,059 --> 02:45:51,719
and then paste it.
3610
02:45:51,760 --> 02:45:53,860
I want you to use screenshot functionality
3611
02:45:53,860 --> 02:45:55,600
to mirror the style of the website.
3612
02:45:56,139 --> 02:45:57,920
I'm also going to paste in some of the HTML
3613
02:45:57,920 --> 02:46:00,059
so you can use that to create a style guide, et cetera.
3614
02:46:00,479 --> 02:46:03,299
You'll receive as input, like a Google sheet
3615
02:46:03,299 --> 02:46:05,139
with information about a prospect
3616
02:46:05,139 --> 02:46:07,620
and then you just create a website that matches.
3617
02:46:08,899 --> 02:46:11,899
Find web images using publicly available sources,
3618
02:46:12,100 --> 02:46:13,100
make sure it's really pretty
3619
02:46:13,559 --> 02:46:15,799
and yeah, follow the template as closely as possible.
3620
02:46:15,860 --> 02:46:17,079
Then I'm going to go on the website.
3621
02:46:17,280 --> 02:46:18,979
I'm going to, let's just make it really wide
3622
02:46:18,979 --> 02:46:20,739
because sometimes websites are different.
3623
02:46:22,040 --> 02:46:23,319
And then what I'm going to do
3624
02:46:23,319 --> 02:46:25,260
is I think I'm just going to copy all of this.
3625
02:46:26,000 --> 02:46:27,280
It's really, really long, right?
3626
02:46:27,360 --> 02:46:28,280
I'm just going to paste it in.
3627
02:46:29,219 --> 02:46:29,940
So that's going to be huge.
3628
02:46:30,020 --> 02:46:31,979
It's going to be a lot of stuff to paste, 474 lines.
3629
02:46:32,960 --> 02:46:35,040
And then, hmm, anything else that we need to do?
3630
02:46:35,659 --> 02:46:36,340
I don't think so.
3631
02:46:36,520 --> 02:46:37,739
I guess I just need to give it an example
3632
02:46:37,739 --> 02:46:38,420
of some of the input.
3633
02:46:38,559 --> 02:46:40,540
So I'm going to go and then find that Google sheet
3634
02:46:40,540 --> 02:46:42,299
that we just had with a bunch of dentists.
3635
02:46:42,680 --> 02:46:44,559
Then I'm just going to copy all of this information
3636
02:46:45,079 --> 02:46:46,739
and I'll say example of the data
3637
02:46:46,739 --> 02:46:47,959
and then I'll paste that in.
3638
02:46:48,200 --> 02:46:50,500
Okay, so I mean, I just fed in a tremendous amount
3639
02:46:50,500 --> 02:46:51,360
of information here, right?
3640
02:46:51,360 --> 02:46:52,520
Like this is really, really big.
3641
02:46:52,940 --> 02:46:54,920
But with our little fast mode,
3642
02:46:56,840 --> 02:46:59,639
plus some pretty precise instructions,
3643
02:46:59,680 --> 02:47:01,319
I think we can probably generate a cool skill
3644
02:47:01,319 --> 02:47:02,120
in just a couple of minutes
3645
02:47:02,120 --> 02:47:03,340
that does this sort of thing automatically.
3646
02:47:03,840 --> 02:47:04,979
And after this, I'll have a system
3647
02:47:04,979 --> 02:47:06,700
where I can basically just feed into Google Sheet
3648
02:47:06,700 --> 02:47:08,379
and then I can generate a beautiful,
3649
02:47:08,579 --> 02:47:10,620
customized website for a prospect in like two seconds,
3650
02:47:10,739 --> 02:47:12,059
which has information about them
3651
02:47:12,059 --> 02:47:14,139
that clearly is customized and so on and so forth.
3652
02:47:14,800 --> 02:47:15,879
And then I can just give it to them
3653
02:47:15,879 --> 02:47:16,959
as sort of a lead magnet or something.
3654
02:47:17,000 --> 02:47:17,700
That sounds pretty fun.
3655
02:47:17,799 --> 02:47:19,559
And it's already gone through and it's done some stuff.
3656
02:47:19,659 --> 02:47:21,620
Now I'm not using plan mode for this, but you absolutely can.
3657
02:47:21,620 --> 02:47:23,979
I just wanted to one shot a skill with this fast mode
3658
02:47:23,979 --> 02:47:25,459
just so that I could do something
3659
02:47:25,459 --> 02:47:26,979
while I was waiting for the literature review to finish.
3660
02:47:27,139 --> 02:47:29,219
As you can see, it's loaded in the skill pattern
3661
02:47:29,219 --> 02:47:31,579
and structure from the other skills
3662
02:47:31,579 --> 02:47:33,020
as well as the Claude.md.
3663
02:47:33,079 --> 02:47:35,159
And now it's just gonna ask me some information.
3664
02:47:35,440 --> 02:47:36,879
So where should the output of the skill be?
3665
02:47:36,940 --> 02:47:38,000
A local HTML file?
3666
02:47:38,100 --> 02:47:39,719
Yeah, let's just use local HTML for now.
3667
02:47:40,079 --> 02:47:41,440
How will you provide prospect data?
3668
02:47:41,579 --> 02:47:42,739
We'll just do Google Sheet URL.
3669
02:47:43,219 --> 02:47:45,040
For images, which approach do you recommend?
3670
02:47:45,100 --> 02:47:46,600
Yeah, sure, let's do the unsplash API.
3671
02:47:46,840 --> 02:47:47,860
Should the website be a mockup
3672
02:47:47,860 --> 02:47:49,020
of what their business site could like
3673
02:47:49,020 --> 02:47:50,420
or a pitch page about your services?
3674
02:47:50,420 --> 02:47:51,399
Mockup of their site.
3675
02:47:51,479 --> 02:47:52,500
Cool, that looks great.
3676
02:47:53,239 --> 02:47:55,799
So that's sort of its plan mode analogy.
3677
02:47:56,239 --> 02:47:57,739
And this actually initiated plan mode
3678
02:47:57,739 --> 02:47:59,180
without me even having to ask basically.
3679
02:47:59,299 --> 02:48:00,479
I just make this a little bigger
3680
02:48:00,479 --> 02:48:02,200
so you could see the entire chat.
3681
02:48:02,739 --> 02:48:04,540
This went through and then turned on plan mode
3682
02:48:04,540 --> 02:48:05,200
like on its own.
3683
02:48:05,319 --> 02:48:06,319
I didn't even have to ask it to.
3684
02:48:06,399 --> 02:48:07,520
And that's what occurs sometimes
3685
02:48:07,520 --> 02:48:08,780
when you do bypass permissions.
3686
02:48:08,799 --> 02:48:10,399
It'll just choose to create a plan
3687
02:48:10,399 --> 02:48:11,840
for a more complicated software build.
3688
02:48:12,180 --> 02:48:13,920
Cool, and now I'm going to bypass permissions
3689
02:48:13,920 --> 02:48:14,459
and we're gonna go.
3690
02:48:14,600 --> 02:48:15,280
While that's occurring,
3691
02:48:15,399 --> 02:48:16,860
just scrolling through this literature review.
3692
02:48:16,940 --> 02:48:17,600
Looks pretty cool.
3693
02:48:17,680 --> 02:48:18,719
It gives me a bunch of information.
3694
02:48:18,860 --> 02:48:20,020
Apparently one to 2000.
3695
02:48:20,020 --> 02:48:21,280
So that looks pretty fun.
3696
02:48:21,620 --> 02:48:23,600
Okay, and then this looks like the little demo
3697
02:48:23,600 --> 02:48:24,299
that we put together.
3698
02:48:24,440 --> 02:48:25,659
This is a pretty basic demo.
3699
02:48:25,680 --> 02:48:27,139
Not that big of a fan to be honest.
3700
02:48:27,159 --> 02:48:29,379
So I think we're gonna have to go do some back and forth.
3701
02:48:29,659 --> 02:48:32,200
So we did build a website in just a few seconds for them,
3702
02:48:32,200 --> 02:48:32,760
which is kind of neat.
3703
02:48:32,819 --> 02:48:35,260
Okay, it's now gonna take a screenshot of this page for us.
3704
02:48:35,340 --> 02:48:35,920
And as you can see,
3705
02:48:35,920 --> 02:48:38,520
it's now accumulated like 19 or 20,000 tokens,
3706
02:48:38,540 --> 02:48:39,280
which is kind of cool.
3707
02:48:40,540 --> 02:48:41,059
Here's what we got.
3708
02:48:41,260 --> 02:48:42,260
Full viewport hero.
3709
02:48:42,520 --> 02:48:43,719
Okay, so I'm just gonna say,
3710
02:48:43,959 --> 02:48:45,780
not a very big fan of the website design.
3711
02:48:45,840 --> 02:48:47,360
I don't think this matches the website.
3712
02:48:47,360 --> 02:48:50,340
I'd like you to get pixel perfect accuracy
3713
02:48:50,340 --> 02:48:53,799
by screenshotting the comparison back and forth.
3714
02:48:54,239 --> 02:48:56,860
Go find some library that allows you to do this as necessary.
3715
02:48:57,639 --> 02:48:58,719
In terms of Unsplash,
3716
02:48:58,860 --> 02:49:00,079
how are you currently getting your images?
3717
02:49:00,360 --> 02:49:01,239
Let's just do that.
3718
02:49:01,239 --> 02:49:01,700
That's fine.
3719
02:49:01,840 --> 02:49:03,159
I don't really want it to go, you know,
3720
02:49:03,280 --> 02:49:04,920
force me to get an API key or something like that.
3721
02:49:04,920 --> 02:49:05,659
I'm just gonna have it run.
3722
02:49:06,020 --> 02:49:08,059
Okay, that's looking a lot better than what we had before.
3723
02:49:08,120 --> 02:49:08,959
I like this.
3724
02:49:09,219 --> 02:49:11,520
It looks like it took some photos of areas
3725
02:49:11,520 --> 02:49:13,860
that were similar to where this place is located.
3726
02:49:14,399 --> 02:49:15,180
And as we scroll through,
3727
02:49:15,180 --> 02:49:16,700
we obviously have the information
3728
02:49:16,700 --> 02:49:17,700
and the template and stuff.
3729
02:49:17,959 --> 02:49:19,280
I don't like how a lot of these images are the same.
3730
02:49:19,559 --> 02:49:21,079
So I'm just gonna say, nice job.
3731
02:49:21,239 --> 02:49:22,899
I don't like how all these images are the same though.
3732
02:49:23,040 --> 02:49:23,840
Get different images.
3733
02:49:23,860 --> 02:49:24,639
Looks really clean.
3734
02:49:25,040 --> 02:49:27,059
We even have like their phone numbers and stuff like that.
3735
02:49:27,340 --> 02:49:29,360
So we're now capable of basically like one-shotting
3736
02:49:29,360 --> 02:49:30,760
a website for somebody.
3737
02:49:30,940 --> 02:49:32,000
And as you can see,
3738
02:49:32,000 --> 02:49:34,600
we can generate these super, super easily and very quickly.
3739
02:49:35,219 --> 02:49:37,360
What I'll do now that we have this is realistically,
3740
02:49:37,379 --> 02:49:38,780
I'm gonna try it with one row
3741
02:49:38,780 --> 02:49:39,659
and then just see how quickly
3742
02:49:39,659 --> 02:49:40,940
it can put together the site for me.
3743
02:49:41,239 --> 02:49:41,459
Cool.
3744
02:49:41,659 --> 02:49:44,139
Now I'm going to test it with some new information
3745
02:49:44,139 --> 02:49:46,040
and let's see how quickly it can put that together.
3746
02:49:46,180 --> 02:49:47,219
Cool. We've now done the same thing
3747
02:49:47,219 --> 02:49:49,479
with Bennington Dental Center.
3748
02:49:49,559 --> 02:49:50,040
So that's neat.
3749
02:49:50,079 --> 02:49:52,040
We have some images generated and stuff like that.
3750
02:49:52,399 --> 02:49:54,799
It is telling me that the reason why we have images
3751
02:49:54,799 --> 02:49:56,459
of dogs and stuff is because I don't want to supply
3752
02:49:56,459 --> 02:49:57,819
my Unsplash API key.
3753
02:49:58,620 --> 02:49:59,180
You know, if we do,
3754
02:49:59,260 --> 02:50:01,500
then obviously there'll be much more dentally oriented.
3755
02:50:01,899 --> 02:50:02,620
I think that's fine.
3756
02:50:02,680 --> 02:50:03,680
Hopefully you guys get the idea.
3757
02:50:03,819 --> 02:50:05,100
You could build stuff like this really quickly.
3758
02:50:05,440 --> 02:50:06,680
In this case, it took 30 seconds.
3759
02:50:07,219 --> 02:50:08,020
So I mean, like what we could do
3760
02:50:08,020 --> 02:50:09,639
if we wanted to like build this out as a service
3761
02:50:09,639 --> 02:50:11,840
and like actually just like generate custom websites
3762
02:50:11,840 --> 02:50:13,959
for people, send them out and so on and so forth.
3763
02:50:14,340 --> 02:50:16,700
We could turn the skill into a sub agent
3764
02:50:16,700 --> 02:50:17,879
to show you guys how to do later
3765
02:50:17,879 --> 02:50:20,719
where basically we can spin up 10 of these simultaneously
3766
02:50:20,719 --> 02:50:23,379
and basically in parallel, just generate 10 every 30 seconds.
3767
02:50:23,639 --> 02:50:26,040
That's a per website generation time of about three seconds.
3768
02:50:26,319 --> 02:50:28,180
And so now that we're generating them every three seconds
3769
02:50:28,180 --> 02:50:30,280
with customized information, matching widths and heights
3770
02:50:30,280 --> 02:50:32,079
and stuff like that, making it really custom and sexy,
3771
02:50:32,719 --> 02:50:34,860
you know, you could do 10,000 leads
3772
02:50:34,860 --> 02:50:36,639
in approximately 30,000 seconds.
3773
02:50:36,700 --> 02:50:37,739
I don't know how long that would actually take.
3774
02:50:37,979 --> 02:50:38,280
Let's see.
3775
02:50:38,340 --> 02:50:41,360
30,000 divided by 60 is 500.
3776
02:50:41,360 --> 02:50:44,200
So it might take 500 minutes or I don't know,
3777
02:50:44,219 --> 02:50:46,139
eight hours for a full 10,000 list.
3778
02:50:46,500 --> 02:50:47,879
But yeah, combine that with the scraper,
3779
02:50:48,040 --> 02:50:49,799
combine that with you sending people customized websites
3780
02:50:49,799 --> 02:50:51,239
and combine that with some other skills that I've set up
3781
02:50:51,239 --> 02:50:52,239
to like automate the process
3782
02:50:52,239 --> 02:50:53,879
of whipping up instantly campaigns and stuff.
3783
02:50:54,399 --> 02:50:55,319
And hopefully you guys can see
3784
02:50:55,319 --> 02:50:56,920
we get a pretty solid system in our hands.
3785
02:50:57,120 --> 02:50:58,840
And that took me just a few minutes to put together.
3786
02:50:58,979 --> 02:51:00,079
Now that we know all about skills,
3787
02:51:00,219 --> 02:51:02,700
let's talk a little bit about the next logical thing,
3788
02:51:02,739 --> 02:51:04,219
which is model context protocol.
3789
02:51:04,579 --> 02:51:06,579
So now that you guys understand sort of how skills work,
3790
02:51:06,579 --> 02:51:09,979
which to be clear is that skills are basically
3791
02:51:09,979 --> 02:51:13,920
like backend functions that you can run scripts almost
3792
02:51:13,920 --> 02:51:16,680
that use the flexible intelligence of AI
3793
02:51:16,680 --> 02:51:19,959
and the procedural rigor of Python scripts
3794
02:51:19,959 --> 02:51:23,180
and other programming tools to do the same thing every time,
3795
02:51:23,239 --> 02:51:25,799
but also allow you the flexibility to air handle.
3796
02:51:26,200 --> 02:51:27,260
It's not that we understand that.
3797
02:51:28,020 --> 02:51:30,180
Let's talk about model context protocol.
3798
02:51:30,819 --> 02:51:33,159
And so the way that I see it is these are just skills
3799
02:51:33,159 --> 02:51:35,360
except other people make the skills for you.
3800
02:51:35,399 --> 02:51:36,860
I want to say other people, for the most part,
3801
02:51:36,920 --> 02:51:38,780
it's like developer teams and stuff like that.
3802
02:51:38,780 --> 02:51:40,180
Very similar idea.
3803
02:51:40,399 --> 02:51:42,360
You're basically just giving your agent access
3804
02:51:42,360 --> 02:51:43,719
to a piece of software.
3805
02:51:44,260 --> 02:51:46,799
And then just like it calls its own tools like web search
3806
02:51:46,799 --> 02:51:49,399
and bash and the Chrome dev tools, MCP and the screenshot,
3807
02:51:49,520 --> 02:51:50,739
all the stuff that we've already looked at.
3808
02:51:51,340 --> 02:51:54,780
What we're doing here is we're just calling them,
3809
02:51:55,680 --> 02:51:58,360
but somebody else is responsible for putting them together.
3810
02:51:58,860 --> 02:51:59,920
Now that obviously begs the question,
3811
02:51:59,979 --> 02:52:02,379
where do I get MCPs?
3812
02:52:03,139 --> 02:52:06,719
Well, you can just go on websites like MCP servers.org,
3813
02:52:06,719 --> 02:52:10,959
model context protocol slash servers, and then MCP market.
3814
02:52:11,719 --> 02:52:13,559
I want you guys to know that not all of these
3815
02:52:13,559 --> 02:52:15,520
are going to be 100% safe or secure.
3816
02:52:15,959 --> 02:52:17,760
These are third party libraries
3817
02:52:17,760 --> 02:52:19,399
that people are putting together basically
3818
02:52:19,399 --> 02:52:22,139
that try and tabulate the number one MCP skills
3819
02:52:22,139 --> 02:52:24,719
and so on, MCP tools and so on and so forth.
3820
02:52:25,340 --> 02:52:27,719
But a lot of these are pretty well vetted at this point.
3821
02:52:27,739 --> 02:52:29,100
And I'm going to show you at least a couple
3822
02:52:29,100 --> 02:52:29,799
that I really like.
3823
02:52:30,299 --> 02:52:32,639
The biggest one is probably the Chrome dev tools MCP.
3824
02:52:33,020 --> 02:52:34,680
This is one that I use constantly,
3825
02:52:34,680 --> 02:52:36,620
basically every day, many, many times,
3826
02:52:36,860 --> 02:52:39,159
because it allows your coding agent to control
3827
02:52:39,159 --> 02:52:40,739
and then inspect a live Chrome browser.
3828
02:52:41,239 --> 02:52:44,420
In my opinion, it is significantly higher quality
3829
02:52:44,420 --> 02:52:46,520
than any of the current browser tools that,
3830
02:52:46,520 --> 02:52:48,780
Clawed or other platforms have given us.
3831
02:52:49,280 --> 02:52:51,440
So I mean, I have this little Chrome extension here
3832
02:52:51,440 --> 02:52:55,340
that I can actually use to control this instance of Chrome
3833
02:52:55,340 --> 02:52:56,520
through this Clawed tool.
3834
02:52:56,579 --> 02:52:58,840
It's developed specifically by the Clawed team.
3835
02:52:58,899 --> 02:53:01,879
And I could say, hey, summarize this page.
3836
02:53:01,879 --> 02:53:04,840
And then what it can do is it can copy all the text
3837
02:53:04,840 --> 02:53:06,959
on this page, so it can extract the page text.
3838
02:53:07,360 --> 02:53:09,620
And then it can take a screenshot of it.
3839
02:53:09,739 --> 02:53:12,299
And then it can tell me about it and so on and so forth.
3840
02:53:12,600 --> 02:53:14,319
I can also have it do things like click.
3841
02:53:14,579 --> 02:53:19,799
I could say, okay, star this on GitHub
3842
02:53:19,799 --> 02:53:20,920
or something like that.
3843
02:53:21,540 --> 02:53:23,680
And then I can give it some additional instructions
3844
02:53:23,680 --> 02:53:26,739
and then it can go through, look for the GitHub link.
3845
02:53:27,079 --> 02:53:28,059
I don't know, maybe click it.
3846
02:53:28,500 --> 02:53:30,100
And then now that we have this thing open,
3847
02:53:30,100 --> 02:53:32,040
it's gonna go and it's gonna try and star this puppy.
3848
02:53:32,819 --> 02:53:33,479
So that's pretty cool.
3849
02:53:33,659 --> 02:53:35,540
But you'll find that it also takes a fair amount of time.
3850
02:53:36,079 --> 02:53:38,719
And the Chrome DevTools MCP bypasses that completely.
3851
02:53:38,719 --> 02:53:40,399
And it's like a hundred times faster.
3852
02:53:40,639 --> 02:53:41,959
And not only is it a hundred times faster,
3853
02:53:42,059 --> 02:53:44,520
because you can weave it into skill-based scenarios,
3854
02:53:44,520 --> 02:53:47,840
you can actually just run really, really procedural things
3855
02:53:47,840 --> 02:53:49,959
in the browser that previously would have taken you
3856
02:53:49,959 --> 02:53:51,100
like a fair amount of time to automate.
3857
02:53:51,180 --> 02:53:53,079
So I mean, I already have access to this right now,
3858
02:53:53,079 --> 02:53:54,920
but for the purpose of this demonstration,
3859
02:53:55,120 --> 02:53:57,540
let me just open up a new Clawed instance in my terminal
3860
02:53:57,540 --> 02:53:59,280
and then double check the fast mode is on.
3861
02:53:59,280 --> 02:54:00,379
It looks like it is.
3862
02:54:01,139 --> 02:54:04,219
All I would really do if I wanted to download the MCP
3863
02:54:04,219 --> 02:54:07,020
for any tool really now is I would just paste in
3864
02:54:07,919 --> 02:54:10,840
this definition you can find right over here.
3865
02:54:12,100 --> 02:54:15,200
Basically all MCP tools are going to have some sort of JSON
3866
02:54:15,200 --> 02:54:17,200
that looks like this, where there's a curly bracket,
3867
02:54:17,239 --> 02:54:19,520
it says MCP servers, it'll say the server name.
3868
02:54:19,680 --> 02:54:20,840
There's a bunch of commands in RX,
3869
02:54:21,059 --> 02:54:22,200
which really don't matter whatsoever.
3870
02:54:22,600 --> 02:54:24,680
But basically you just go on whatever page
3871
02:54:25,200 --> 02:54:27,040
of the MCP supplies this information.
3872
02:54:27,659 --> 02:54:28,559
You copy this in.
3873
02:54:28,559 --> 02:54:29,780
So if you want to install one,
3874
02:54:29,840 --> 02:54:32,100
all you really do is you just paste in that little,
3875
02:54:32,100 --> 02:54:34,000
you know, JSON snippet that we saw earlier.
3876
02:54:34,399 --> 02:54:38,979
And we say, I want to install this in my local workspace.
3877
02:54:39,819 --> 02:54:41,659
It's important that you say local workspace here.
3878
02:54:42,139 --> 02:54:43,579
What it's going to do is just going to grab that data
3879
02:54:43,579 --> 02:54:45,059
and then install it for you.
3880
02:54:45,159 --> 02:54:46,440
My case, it's already installed.
3881
02:54:46,940 --> 02:54:48,659
So I don't actually need to change anything,
3882
02:54:48,659 --> 02:54:51,000
but now I'll say, great, run it.
3883
02:54:51,799 --> 02:54:53,200
Now, sometimes when you're using a tool
3884
02:54:53,200 --> 02:54:54,379
that requires authentication,
3885
02:54:54,979 --> 02:54:58,840
what it'll do is it'll force you to go and grab an API key
3886
02:54:58,840 --> 02:55:00,280
or an API token or something like that.
3887
02:55:00,540 --> 02:55:02,879
So I'm going to show you guys an example of using a tool
3888
02:55:02,879 --> 02:55:04,819
that requires some API credentials in a second.
3889
02:55:05,280 --> 02:55:06,819
First, let's just say, okay,
3890
02:55:06,920 --> 02:55:10,200
open and navigate to left click AI,
3891
02:55:10,980 --> 02:55:14,440
then screenshot the site and tell me about it visually.
3892
02:55:15,659 --> 02:55:17,260
So what it's going to do is it's going to open up
3893
02:55:17,260 --> 02:55:19,520
that browser, going to navigate to left click.ai.
3894
02:55:19,979 --> 02:55:21,020
Now it's going to take a screenshot,
3895
02:55:21,100 --> 02:55:21,979
which I think it just did.
3896
02:55:22,459 --> 02:55:23,639
Now it's going to read the screenshot
3897
02:55:23,639 --> 02:55:24,899
and then it's going to, I don't know,
3898
02:55:24,940 --> 02:55:27,180
give me some high level stuff about the website.
3899
02:55:27,620 --> 02:55:30,879
So the header is a simple nav bar with the left click logo,
3900
02:55:31,120 --> 02:55:33,659
case studies about links and a let's talk CTA button,
3901
02:55:33,860 --> 02:55:35,600
hero sections, large, bold, serif, right?
3902
02:55:36,059 --> 02:55:37,659
Okay, great.
3903
02:55:38,299 --> 02:55:41,780
Go to amazon.ca and find me a bunch of cheap,
3904
02:55:42,100 --> 02:55:45,040
but effective light boxes for my studio.
3905
02:55:45,700 --> 02:55:46,959
So now I'm going to open this up.
3906
02:55:47,100 --> 02:55:48,680
It's going to do the same thing with Amazon.
3907
02:55:48,979 --> 02:55:50,620
I'm in Canada, hence the .ca,
3908
02:55:50,620 --> 02:55:54,040
and it's going to start pumping in various search terms
3909
02:55:54,040 --> 02:55:55,379
for light boxes and whatnot.
3910
02:55:56,079 --> 02:55:58,819
I don't know why Twilight is recommended to me.
3911
02:55:59,520 --> 02:56:01,239
Must say something about my browsing history.
3912
02:56:02,219 --> 02:56:03,239
Now it's going through,
3913
02:56:03,440 --> 02:56:05,219
finding a bunch of light boxes and stuff like that.
3914
02:56:05,239 --> 02:56:07,020
It's going to take screenshots of the page
3915
02:56:07,020 --> 02:56:09,680
and then deliver me a bunch of options
3916
02:56:09,680 --> 02:56:10,379
that I could choose from.
3917
02:56:10,520 --> 02:56:13,479
And you can see all this occur underneath the tool call.
3918
02:56:13,899 --> 02:56:15,780
So this little green boxes are,
3919
02:56:15,780 --> 02:56:17,760
little green circles, I should say, are tool calls.
3920
02:56:17,760 --> 02:56:21,059
They have the specific name of the MCP over here.
3921
02:56:21,120 --> 02:56:22,479
And then they have the tool that they're calling
3922
02:56:22,479 --> 02:56:23,860
from the MCP over here as well.
3923
02:56:24,260 --> 02:56:25,520
And what they're doing here is now
3924
02:56:25,520 --> 02:56:26,979
that it's taking a screenshot and stuff like that,
3925
02:56:26,979 --> 02:56:29,159
it's giving me summaries of all the information.
3926
02:56:29,340 --> 02:56:31,079
Then it's even recommending a certain one.
3927
02:56:31,120 --> 02:56:31,700
Now, a lot of the time,
3928
02:56:31,719 --> 02:56:34,760
you can also just type in the name of the tool you want,
3929
02:56:34,799 --> 02:56:36,899
and then the word MCP server.
3930
02:56:37,340 --> 02:56:39,000
And a lot of these tools will actually have gone through
3931
02:56:39,000 --> 02:56:40,040
and then created the stuff.
3932
02:56:40,159 --> 02:56:41,700
That'll take me to the clickup page
3933
02:56:41,700 --> 02:56:43,260
with MCP server setup instructions.
3934
02:56:43,420 --> 02:56:45,079
And then what I'm going to do is I'm just going to copy
3935
02:56:45,079 --> 02:56:46,799
over this stuff, just like I did before.
3936
02:56:46,799 --> 02:56:48,920
And then we're going to go back to my agent.
3937
02:56:48,940 --> 02:56:51,260
So what I'm going to do is I'll just go install this MCP.
3938
02:56:51,319 --> 02:56:52,219
I'm going to paste this in.
3939
02:56:53,120 --> 02:56:55,760
This includes all of the details and documentation here.
3940
02:56:56,219 --> 02:56:58,059
So first thing it's going to do is look for some sort
3941
02:56:58,059 --> 02:56:59,579
of configuration file that's preexisting.
3942
02:56:59,700 --> 02:57:00,500
It's not going to find one.
3943
02:57:00,500 --> 02:57:02,239
So it's going to go and then just make mine.
3944
02:57:02,420 --> 02:57:03,700
Then eventually what it's going to ask me to do
3945
02:57:03,700 --> 02:57:05,260
is go grab my API key.
3946
02:57:05,319 --> 02:57:07,000
So I'll head over here to click up API.
3947
02:57:07,079 --> 02:57:09,860
And then I'm just going to copy my API token.
3948
02:57:10,139 --> 02:57:10,860
I'll then confirm it.
3949
02:57:10,860 --> 02:57:13,500
And then I can copy my token in, and then I'll go back here.
3950
02:57:13,819 --> 02:57:15,040
Then I'll say, great.
3951
02:57:15,040 --> 02:57:17,000
Here's my API details.
3952
02:57:17,780 --> 02:57:18,979
Going to feed that in.
3953
02:57:19,360 --> 02:57:21,500
And then every time you install a new MCP server
3954
02:57:21,500 --> 02:57:23,079
you do have to open up a new thing.
3955
02:57:23,120 --> 02:57:24,319
So that's what I just did here.
3956
02:57:24,399 --> 02:57:26,100
Next thing it asked me which workspace I want to connect to.
3957
02:57:26,120 --> 02:57:27,979
I have multiple, so I'll click connect workspace here.
3958
02:57:28,520 --> 02:57:31,420
Then I can just go back and then I'll say, great.
3959
02:57:32,079 --> 02:57:35,059
Do you have access to my ClickUp MCP?
3960
02:57:38,219 --> 02:57:39,659
I'll say, awesome.
3961
02:57:39,979 --> 02:57:45,020
Create a new content idea called Claude Code course.
3962
02:57:45,040 --> 02:57:47,780
Now what it's going to do is scroll through all of my lists.
3963
02:57:48,000 --> 02:57:50,319
It's then going to search for various ones
3964
02:57:50,319 --> 02:57:51,440
that I may or may not have.
3965
02:57:52,020 --> 02:57:54,959
So I have lists called like content ideas
3966
02:57:54,959 --> 02:57:56,340
and trends and stuff like that.
3967
02:57:56,459 --> 02:57:58,780
And I'm going to ask it to insert it in my main YouTube queue.
3968
02:57:59,040 --> 02:57:59,920
So I'm going to do that.
3969
02:57:59,959 --> 02:58:03,079
And now you can see there's a task called Claude Code course.
3970
02:58:03,120 --> 02:58:06,899
If I go back here to my ClickUp, open up the specific task.
3971
02:58:07,479 --> 02:58:09,420
There's now a course that's basically been created.
3972
02:58:09,479 --> 02:58:10,799
I don't like how the status is archived.
3973
02:58:10,840 --> 02:58:12,979
So I'm going to say, the status is archived right now.
3974
02:58:12,979 --> 02:58:15,260
And as you see here, it's now set to record.
3975
02:58:15,459 --> 02:58:16,040
So that's pretty neat.
3976
02:58:16,260 --> 02:58:18,000
The last thing I want to talk about now
3977
02:58:18,000 --> 02:58:21,540
is if we go slash context and scroll all the way up,
3978
02:58:21,920 --> 02:58:24,739
you start to get an appreciation for just how many tokens
3979
02:58:24,739 --> 02:58:28,440
can get used up by poorly drawn or poorly written MCPs.
3980
02:58:29,139 --> 02:58:31,139
And so in this case, I'm not saying the ClickUp MCP
3981
02:58:31,139 --> 02:58:31,940
is really that bad.
3982
02:58:31,959 --> 02:58:32,600
It's not terrible.
3983
02:58:32,620 --> 02:58:34,600
I've seen many, many far worse ones,
3984
02:58:34,680 --> 02:58:36,500
but it does consume a hell of a lot of tokens.
3985
02:58:36,840 --> 02:58:40,979
As you see here, just the ClickUp search tool consumes 1,600.
3986
02:58:40,979 --> 02:58:43,399
The Get Workspace hierarchy is 419.
3987
02:58:43,579 --> 02:58:44,700
This one's 1.1K.
3988
02:58:44,840 --> 02:58:46,760
If we added all of them up together,
3989
02:58:47,420 --> 02:58:49,239
as you could see, my MCP tooling
3990
02:58:49,239 --> 02:58:51,500
is now taking up almost 20,000 tokens.
3991
02:58:51,700 --> 02:58:54,120
That's actually now more than the system tools,
3992
02:58:54,440 --> 02:58:56,200
which previously used to be really, really big.
3993
02:58:56,680 --> 02:58:58,360
And what that means is right off the very get-go,
3994
02:58:58,459 --> 02:58:59,979
basically like right at the very beginning,
3995
02:59:00,780 --> 02:59:05,620
we are already at something like 35,000 tokens or so
3996
02:59:05,620 --> 02:59:08,239
before I enter my prompt, before I enter anything.
3997
02:59:08,639 --> 02:59:10,479
If you take into account the system prompt as well,
3998
02:59:10,479 --> 02:59:11,860
we're now at 40,000.
3999
02:59:11,860 --> 02:59:14,260
You take into account some memory files and my skills.
4000
02:59:14,559 --> 02:59:15,860
We're not closer to 45.
4001
02:59:16,100 --> 02:59:17,739
And this is all before I've sent a message, right?
4002
02:59:17,959 --> 02:59:21,420
Keep in mind that 45% is, I don't know,
4003
02:59:21,440 --> 02:59:23,340
let's just say 45 over 200.
4004
02:59:23,559 --> 02:59:26,180
That's about equivalent to a quarter.
4005
02:59:26,479 --> 02:59:28,159
And so one quarter of all my contexts,
4006
02:59:28,180 --> 02:59:31,100
and by the way, this is the highest quality section
4007
02:59:31,100 --> 02:59:32,360
of my prompt.
4008
02:59:33,959 --> 02:59:36,000
If I were to write actual messages here,
4009
02:59:36,000 --> 02:59:37,659
this would be the highest quality output.
4010
02:59:37,799 --> 02:59:39,200
Basically, the highest ROI section
4011
02:59:39,200 --> 02:59:41,639
is currently being taken up by a ton of MCP tools and stuff.
4012
02:59:42,520 --> 02:59:44,940
In addition, you'll compare this to skills,
4013
02:59:45,219 --> 02:59:48,260
and you'll see that scrape leads only takes up 63 tokens.
4014
02:59:48,579 --> 02:59:50,680
School monitor takes up 59, right?
4015
02:59:50,680 --> 02:59:52,180
Cross-niche outliers takes up 58.
4016
02:59:52,540 --> 02:59:56,639
So it's like, oh wow, a single one of these MCP tools,
4017
02:59:56,680 --> 02:59:58,860
like update task, consumes more than basically
4018
02:59:58,860 --> 03:00:00,260
all of my skills combined.
4019
03:00:00,739 --> 03:00:02,739
It's kind of like, why the hell would I even use MCP tooling
4020
03:00:02,739 --> 03:00:04,540
if I can just do a skill instead?
4021
03:00:05,180 --> 03:00:06,819
The reason really is just the convenience of it.
4022
03:00:06,879 --> 03:00:08,540
MCP, as you see, is pretty easy to set up
4023
03:00:08,540 --> 03:00:10,280
where skills, as you saw, take a little bit longer.
4024
03:00:10,420 --> 03:00:12,559
That skill back there that does those website designs,
4025
03:00:12,700 --> 03:00:13,780
that took me, I don't know,
4026
03:00:13,840 --> 03:00:15,360
probably like five minutes end to end to create.
4027
03:00:15,700 --> 03:00:17,420
Once I've created it, it's obviously super efficient
4028
03:00:17,420 --> 03:00:18,260
and so on and so forth.
4029
03:00:19,180 --> 03:00:21,079
But the click of MCP, all I really had to do
4030
03:00:21,079 --> 03:00:23,299
was just like log in and then give it one line,
4031
03:00:23,299 --> 03:00:24,260
and then I did that.
4032
03:00:24,659 --> 03:00:26,620
So basically the way that I personally use MCPs
4033
03:00:26,620 --> 03:00:28,700
is I use them aside from the Chrome DevTools MCP,
4034
03:00:28,719 --> 03:00:30,379
because I just think that's fire, and I use it all the time.
4035
03:00:30,639 --> 03:00:32,680
I use them to very quickly sketch out
4036
03:00:32,680 --> 03:00:33,680
whether or not something's possible.
4037
03:00:33,959 --> 03:00:35,120
I'll basically go to a new tool
4038
03:00:35,120 --> 03:00:36,239
that I wanna see if I can integrate,
4039
03:00:36,239 --> 03:00:38,299
and I'll just say, hey, here's the MCP details,
4040
03:00:38,299 --> 03:00:39,159
can we do X, Y, and Z?
4041
03:00:39,219 --> 03:00:40,620
And then if it can do X, Y, Z the first time,
4042
03:00:40,700 --> 03:00:41,680
then I'll say, okay, this is great.
4043
03:00:41,899 --> 03:00:43,059
I want you to take what you just did,
4044
03:00:43,340 --> 03:00:44,979
and I want you to convert it to a skill instead.
4045
03:00:45,219 --> 03:00:47,700
And I want you to go and find like the API endpoints
4046
03:00:47,700 --> 03:00:50,299
and stuff, and then build a script that does all that for me
4047
03:00:50,299 --> 03:00:53,299
instead of me having to use the super bloated MCP tool.
4048
03:00:53,379 --> 03:00:55,079
By the way, have you ever wondered why skills
4049
03:00:55,079 --> 03:00:57,219
consume so few tokens relative to everything else?
4050
03:00:57,479 --> 03:00:59,260
That's because the whole skill
4051
03:00:59,260 --> 03:01:01,819
is not actually loaded into context.
4052
03:01:02,100 --> 03:01:03,440
We go to the scrape lead skill.
4053
03:01:03,819 --> 03:01:06,260
The only section here that's actually loaded into context
4054
03:01:06,260 --> 03:01:07,559
is this section right up here.
4055
03:01:07,559 --> 03:01:10,799
And this in markdown format is referred to
4056
03:01:10,799 --> 03:01:13,040
as the front matter of the file.
4057
03:01:13,780 --> 03:01:16,760
And so what's really cool is the Claude code developers
4058
03:01:16,760 --> 03:01:20,780
realized that they could load in a name and description
4059
03:01:20,780 --> 03:01:22,579
and then some allowed tools to the front matter,
4060
03:01:22,739 --> 03:01:24,879
and then only feed that into context.
4061
03:01:25,100 --> 03:01:27,420
And then only if Claude really thinks that it needs to use
4062
03:01:27,420 --> 03:01:29,440
us if I specifically say, hey, use the scrape leads file,
4063
03:01:29,719 --> 03:01:31,299
then and only then will it actually load it all.
4064
03:01:31,540 --> 03:01:33,000
Which means I get most of the benefits
4065
03:01:33,000 --> 03:01:34,520
of having access to a bunch of tools
4066
03:01:34,520 --> 03:01:37,260
and giving my agent the ability to do
4067
03:01:37,260 --> 03:01:37,819
so much of things,
4068
03:01:37,819 --> 03:01:39,180
but I don't have to like load all that
4069
03:01:39,180 --> 03:01:40,239
in the context immediately.
4070
03:01:40,840 --> 03:01:42,600
Which means I get better decision making at the beginning
4071
03:01:42,600 --> 03:01:45,120
because performance in prompts are typically the best
4072
03:01:45,120 --> 03:01:46,260
the very beginning of said prompt
4073
03:01:46,260 --> 03:01:48,159
of the context window I should say.
4074
03:01:48,579 --> 03:01:50,739
And then I also don't have to pay a lot of money for it.
4075
03:01:51,020 --> 03:01:52,899
So just another point towards Anthropic,
4076
03:01:53,180 --> 03:01:54,079
minimizing our total costs,
4077
03:01:54,100 --> 03:01:55,700
which I think I very much appreciate.
4078
03:01:55,879 --> 03:01:57,459
So just because this is a practical course,
4079
03:01:57,520 --> 03:01:58,920
I'm actually gonna show an example of this.
4080
03:01:59,000 --> 03:02:00,100
I'm gonna draft out a task.
4081
03:02:00,239 --> 03:02:01,979
I'm then gonna try it with an MCP server,
4082
03:02:02,020 --> 03:02:03,559
which is gonna be a 10th of the time to implement.
4083
03:02:03,700 --> 03:02:04,540
And then if it works,
4084
03:02:04,879 --> 03:02:06,159
I'm gonna build a skill to do it instead.
4085
03:02:06,799 --> 03:02:07,959
What I wanna do today,
4086
03:02:08,159 --> 03:02:12,680
sort of like my task is I want to label my emails.
4087
03:02:13,639 --> 03:02:14,620
So what I'm gonna do,
4088
03:02:14,680 --> 03:02:15,680
if you think about it,
4089
03:02:15,860 --> 03:02:19,360
the task is really I'm going to list last,
4090
03:02:19,360 --> 03:02:20,799
I don't know, X emails.
4091
03:02:22,319 --> 03:02:24,760
I'm gonna have Claude read them.
4092
03:02:25,719 --> 03:02:32,120
And then I'll also have it label according to some scheme
4093
03:02:33,039 --> 03:02:33,819
that I put together.
4094
03:02:34,239 --> 03:02:35,059
And in this way,
4095
03:02:35,059 --> 03:02:37,520
I'm not gonna replace the job of an email manager,
4096
03:02:37,579 --> 03:02:39,579
but I'm gonna make the job of an email manager much easier.
4097
03:02:39,840 --> 03:02:41,139
And if later on I want Claude to,
4098
03:02:41,139 --> 03:02:42,360
how do I manage my emails or whatever,
4099
03:02:42,500 --> 03:02:43,920
well, now it'll have some pre-existing labels
4100
03:02:43,920 --> 03:02:45,260
and organized structures for it.
4101
03:02:45,540 --> 03:02:47,940
So first thing I'm gonna do is I'm gonna go back to Claude.
4102
03:02:48,020 --> 03:02:49,020
Let's go to anti-gravity.
4103
03:02:49,979 --> 03:02:51,659
I'm gonna do this in the GUI this time,
4104
03:02:51,700 --> 03:02:54,360
not the other mechanism, not the terminal,
4105
03:02:54,639 --> 03:02:56,559
because I don't think fast mode's super important for this.
4106
03:02:57,020 --> 03:02:57,739
And I'm just gonna say,
4107
03:02:57,979 --> 03:03:00,079
hey, I want to organize my personal mailbox.
4108
03:03:00,280 --> 03:03:02,399
Could you provide me a list of high ROI labels
4109
03:03:02,399 --> 03:03:04,920
that tend to work well for personal mailboxes?
4110
03:03:06,299 --> 03:03:07,719
Just make sure the thinking tab is on,
4111
03:03:07,780 --> 03:03:09,059
because I want it to really think hard.
4112
03:03:09,639 --> 03:03:10,700
And then what I'm gonna do is I'm gonna go to
4113
03:03:10,700 --> 03:03:12,180
one of my personal mailboxes,
4114
03:03:12,200 --> 03:03:14,739
and then I'm going to basically implement this.
4115
03:03:14,979 --> 03:03:16,840
I really like action-based, that sounds great.
4116
03:03:16,959 --> 03:03:17,600
Keep that for now.
4117
03:03:17,700 --> 03:03:20,260
And then I'm gonna open up one of my mailboxes here.
4118
03:03:20,340 --> 03:03:22,459
We have tons of different emails.
4119
03:03:22,559 --> 03:03:24,000
Most of these are spam, to be honest,
4120
03:03:24,100 --> 03:03:27,340
or little demos that I put together for whatever purpose.
4121
03:03:27,579 --> 03:03:29,559
I'm also part of what looks to be like a Slack workspace
4122
03:03:30,000 --> 03:03:31,000
for one of my businesses.
4123
03:03:31,000 --> 03:03:31,700
I think I just did that,
4124
03:03:31,760 --> 03:03:33,120
because I wanted to test what this looked like.
4125
03:03:33,459 --> 03:03:34,260
Now that that's done,
4126
03:03:34,340 --> 03:03:35,340
what I'm gonna do is I'm gonna see
4127
03:03:35,340 --> 03:03:37,579
how I can implement the Gmail MCP really quickly.
4128
03:03:38,520 --> 03:03:39,399
Great, this looks solid.
4129
03:03:39,559 --> 03:03:41,559
How do I use the Gmail MCP?
4130
03:03:41,579 --> 03:03:43,920
It's now going to go and search for Gmail MCP,
4131
03:03:43,920 --> 03:03:45,299
first in my folders.
4132
03:03:47,420 --> 03:03:49,420
And then it'll ask me what it wants me to do.
4133
03:03:49,799 --> 03:03:50,739
I want to set one up,
4134
03:03:50,739 --> 03:03:52,040
so it's gonna start doing some searches
4135
03:03:52,040 --> 03:03:53,239
for Gmail MCP servers.
4136
03:03:53,800 --> 03:03:55,579
I'm also gonna do some searching myself.
4137
03:03:56,459 --> 03:03:57,899
There are probably three or four different ones
4138
03:03:57,899 --> 03:03:58,860
that realistically work.
4139
03:03:59,260 --> 03:04:01,020
This looks to be a pretty interesting repo.
4140
03:04:01,559 --> 03:04:03,059
So what I could do is I could just use this puppy.
4141
03:04:03,280 --> 03:04:03,860
That looks nice.
4142
03:04:03,920 --> 03:04:04,799
I just paste this in.
4143
03:04:04,879 --> 03:04:07,819
It looks like I actually beat Claude to something for once.
4144
03:04:08,280 --> 03:04:09,399
Now it's gonna compare.
4145
03:04:11,020 --> 03:04:12,200
Great, let's do it.
4146
03:04:12,839 --> 03:04:14,459
It's a personal Gmail.
4147
03:04:14,579 --> 03:04:15,120
Is that okay?
4148
03:04:15,379 --> 03:04:16,840
Okay, it's now gonna walk me through.
4149
03:04:17,139 --> 03:04:18,200
So I'm gonna give this button a click.
4150
03:04:18,399 --> 03:04:19,879
Okay, I went through and I got that data.
4151
03:04:20,079 --> 03:04:21,200
I'm now gonna paste this in.
4152
03:04:21,940 --> 03:04:23,479
It's gonna go find the credentials file
4153
03:04:23,479 --> 03:04:24,139
that I just uploaded.
4154
03:04:24,379 --> 03:04:26,520
Now it can do what it needs to do.
4155
03:04:26,520 --> 03:04:28,059
I just need to restart the Claude code session.
4156
03:04:28,059 --> 03:04:31,239
So I'm just going to open up a new one here.
4157
03:04:31,639 --> 03:04:33,540
Then I'll go back and then I'll say,
4158
03:04:34,700 --> 03:04:37,159
hey, I want you to label my emails.
4159
03:04:37,260 --> 03:04:38,459
Ooh, you know, and I don't actually remember.
4160
03:04:38,520 --> 03:04:40,139
What was that scheme that it asked?
4161
03:04:40,500 --> 03:04:41,659
Hey, I want you to label my emails
4162
03:04:41,659 --> 03:04:42,680
according to this scheme.
4163
03:04:43,000 --> 03:04:45,459
So now it's going to call the Gmail MCP.
4164
03:04:45,520 --> 03:04:48,100
Okay, it's going to check the Gmail MCP tools.
4165
03:04:48,260 --> 03:04:49,020
Just figured it out.
4166
03:04:49,040 --> 03:04:50,440
We have a bunch of pre-existing labels,
4167
03:04:50,440 --> 03:04:52,260
so it's just gonna create a bunch on its own.
4168
03:04:52,639 --> 03:04:53,940
The reason why this is occurring so quickly
4169
03:04:53,940 --> 03:04:55,899
is because I'm using their fast mode.
4170
03:04:55,899 --> 03:04:57,780
So it's about two and a half times faster than usual.
4171
03:04:58,079 --> 03:04:59,540
It's now reading through a bunch of emails.
4172
03:04:59,700 --> 03:05:02,319
And now it's going to, in addition to thinking through them,
4173
03:05:02,479 --> 03:05:04,579
go through and then do said labeling.
4174
03:05:04,899 --> 03:05:06,600
And then, you know, it's just gonna continue doing this
4175
03:05:06,600 --> 03:05:07,780
for as many emails as I say.
4176
03:05:08,159 --> 03:05:09,940
So I think I said that I was gonna do,
4177
03:05:09,940 --> 03:05:11,879
I don't know, 15 emails or something like that.
4178
03:05:12,219 --> 03:05:12,979
It's just a 10.
4179
03:05:13,739 --> 03:05:15,059
So it's 15 inbox emails.
4180
03:05:15,620 --> 03:05:16,059
Looks great.
4181
03:05:16,120 --> 03:05:18,000
Why don't we do this for 100 emails in total?
4182
03:05:20,379 --> 03:05:22,600
Now, if I go back into my email,
4183
03:05:23,079 --> 03:05:24,340
which I think was over here,
4184
03:05:24,899 --> 03:05:26,340
you can see that I now have different labels.
4185
03:05:27,180 --> 03:05:28,139
Just gotta refresh that.
4186
03:05:28,219 --> 03:05:30,239
There's action required or reference and waiting on.
4187
03:05:30,600 --> 03:05:32,520
So, you know, if something requires my action,
4188
03:05:32,860 --> 03:05:34,399
some security alerts and stuff like that,
4189
03:05:34,420 --> 03:05:35,120
then that's one thing.
4190
03:05:35,500 --> 03:05:36,280
If it's a reference,
4191
03:05:36,319 --> 03:05:37,540
so this is just stuff that it's storing
4192
03:05:37,540 --> 03:05:39,180
that may be useful for me.
4193
03:05:39,180 --> 03:05:40,459
And then there's waiting on down here.
4194
03:05:40,540 --> 03:05:42,100
So now that I've demonstrated
4195
03:05:42,100 --> 03:05:43,680
that I could do this sort of thing pretty quickly
4196
03:05:43,680 --> 03:05:46,200
with a setup that realistically only took me a few minutes,
4197
03:05:46,280 --> 03:05:47,479
I wanna turn this into a skill.
4198
03:05:47,799 --> 03:05:49,319
So I'm actually gonna pause this and I'll say,
4199
03:05:49,600 --> 03:05:51,159
great, this worked really well.
4200
03:05:51,159 --> 03:05:53,020
I'd like to turn this into a skill called
4201
03:05:53,020 --> 03:05:54,180
Gmail underscore label.
4202
03:05:54,600 --> 03:05:55,659
Basically what I want you to do
4203
03:05:55,659 --> 03:05:58,100
is just to call the Gmail API directly
4204
03:05:58,100 --> 03:05:59,899
and then do all of this labeling for me
4205
03:05:59,899 --> 03:06:02,180
instead of me having to use MCP
4206
03:06:02,180 --> 03:06:04,180
because skills are just a lot more token efficient
4207
03:06:04,180 --> 03:06:04,860
than MCPs.
4208
03:06:05,260 --> 03:06:06,440
Check out my other skills
4209
03:06:06,440 --> 03:06:08,600
so you could see an example of how to format them
4210
03:06:08,600 --> 03:06:09,340
and so on and so forth.
4211
03:06:09,500 --> 03:06:11,379
And then write me a skill that effectively does this
4212
03:06:11,379 --> 03:06:13,379
as well as uses Gmail scripts.
4213
03:06:13,440 --> 03:06:15,399
Feed that puppy in and then press enter.
4214
03:06:15,579 --> 03:06:17,299
Now I have some other skills that, you know,
4215
03:06:17,340 --> 03:06:18,559
might have something to do with Gmail.
4216
03:06:18,700 --> 03:06:19,799
So if it finds them,
4217
03:06:19,799 --> 03:06:21,200
then it'll probably just wanna use those.
4218
03:06:21,399 --> 03:06:22,840
Okay, cool, it looks like it's rebuilding at all,
4219
03:06:22,840 --> 03:06:23,700
which is fantastic.
4220
03:06:24,440 --> 03:06:26,899
We're gonna do the Gmail label skill directory.
4221
03:06:27,599 --> 03:06:29,860
So it's gonna pump in somewhere right around here.
4222
03:06:30,040 --> 03:06:31,559
Looks like I'm running into some error here.
4223
03:06:31,639 --> 03:06:32,760
So we're gonna have to do some debugging.
4224
03:06:32,879 --> 03:06:34,139
Just gonna paste this in directly.
4225
03:06:34,600 --> 03:06:37,000
Okay, and it looks like we're just about to wrap this up.
4226
03:06:37,100 --> 03:06:39,879
So now I'm gonna select, say that it can see,
4227
03:06:39,979 --> 03:06:41,780
edit my email labels and so on and so forth.
4228
03:06:42,340 --> 03:06:44,959
Now that it's done, the authentication flow has completed.
4229
03:06:45,040 --> 03:06:46,079
I may close this window.
4230
03:06:46,719 --> 03:06:47,719
Going back over here now,
4231
03:06:47,719 --> 03:06:50,559
it is created with full Gmail sheets and drive access,
4232
03:06:50,659 --> 03:06:52,159
which allow me to do this much faster.
4233
03:06:52,719 --> 03:06:54,340
So you guys seeing just how much quicker this is?
4234
03:06:54,440 --> 03:06:56,020
100 emails immediately fetched.
4235
03:06:56,079 --> 03:06:57,739
It's now reading and classifying all of them
4236
03:06:57,739 --> 03:07:00,399
using direct API calls instead of MCP server tools.
4237
03:07:00,819 --> 03:07:02,000
And then in addition, you know,
4238
03:07:02,040 --> 03:07:05,239
as I showed you guys earlier, we go to Gmail label.
4239
03:07:05,520 --> 03:07:08,000
The only thing that's currently being loaded is this.
4240
03:07:08,100 --> 03:07:09,239
And this is so much shorter
4241
03:07:09,239 --> 03:07:10,739
than like the whole MCP skill stuff.
4242
03:07:11,200 --> 03:07:12,340
So it fetched all 100.
4243
03:07:12,799 --> 03:07:15,600
It's now categorizing them into five and 95.
4244
03:07:15,600 --> 03:07:18,000
So it looks like zero is waiting on 95 for reference
4245
03:07:18,000 --> 03:07:19,280
and then five for action required.
4246
03:07:19,280 --> 03:07:21,360
That was way faster than what we were doing previously, right?
4247
03:07:21,360 --> 03:07:23,520
That would have taken probably like five to 10X the time.
4248
03:07:23,600 --> 03:07:24,959
Looks great, why don't we do another 100
4249
03:07:24,959 --> 03:07:26,079
and then time yourself.
4250
03:07:26,120 --> 03:07:26,959
So tell me how long it took.
4251
03:07:27,079 --> 03:07:28,959
Okay, it's now gonna grab all of these.
4252
03:07:29,819 --> 03:07:32,379
So it's just gonna continue the filtering process
4253
03:07:32,379 --> 03:07:34,020
by using some Gmail stuff.
4254
03:07:34,319 --> 03:07:36,260
Then it's also gonna add some timing instrumentation.
4255
03:07:36,280 --> 03:07:37,719
That's kind of cool, just cause I'm curious.
4256
03:07:38,260 --> 03:07:39,219
Fetch was one second.
4257
03:07:39,280 --> 03:07:40,920
So we fetched 100 emails in one second
4258
03:07:40,920 --> 03:07:43,100
compared to previously where it took significantly longer
4259
03:07:43,100 --> 03:07:45,440
cause I think the MCP tooling had like some built-in thing.
4260
03:07:45,559 --> 03:07:48,780
Cool, the end result was it was 36 seconds to fetch,
4261
03:07:48,920 --> 03:07:50,180
classify and then label 100 emails,
4262
03:07:50,299 --> 03:07:52,239
about 3.6 seconds per email.
4263
03:07:52,579 --> 03:07:54,120
Sorry, 0.36 seconds per email
4264
03:07:54,120 --> 03:07:55,059
if you think about it that way.
4265
03:07:55,520 --> 03:07:57,520
Then it also gave me some breakdowns
4266
03:07:57,520 --> 03:07:58,420
and stuff like that of what it is.
4267
03:07:58,680 --> 03:08:00,700
I could run this across like my several thousand
4268
03:08:00,700 --> 03:08:02,340
outstanding emails if I wanted to.
4269
03:08:02,540 --> 03:08:04,799
I could also do things like have it automatically
4270
03:08:04,799 --> 03:08:06,260
generate replies to each email.
4271
03:08:07,020 --> 03:08:08,100
We could build a sub agent,
4272
03:08:08,120 --> 03:08:09,799
which I'll show you guys how to do stuff like that
4273
03:08:09,799 --> 03:08:13,120
in a moment where we split each into a parallel tasks
4274
03:08:13,120 --> 03:08:14,059
and so on and so forth.
4275
03:08:14,239 --> 03:08:15,139
So guys really the limit here.
4276
03:08:15,420 --> 03:08:17,239
Okay, next up I wanna chat a tiny bit
4277
03:08:17,239 --> 03:08:18,260
about Claude Code plugins.
4278
03:08:18,600 --> 03:08:20,319
I personally don't use plugins a ton,
4279
03:08:20,479 --> 03:08:21,659
but they are out there.
4280
03:08:21,680 --> 03:08:24,299
And so it's fair if I'm building a masterclass course
4281
03:08:24,299 --> 03:08:25,280
all about Claude Code,
4282
03:08:25,520 --> 03:08:26,899
might as well know what the heck these are.
4283
03:08:27,239 --> 03:08:28,920
Simplest and easiest way to access plugins
4284
03:08:28,920 --> 03:08:30,680
is just go customize and manage plugins.
4285
03:08:31,040 --> 03:08:33,219
It'll show you the plugins that you currently have installed
4286
03:08:33,219 --> 03:08:35,139
to see the only one that I have installed so far
4287
03:08:35,139 --> 03:08:37,559
is called a cloud-mem at the .mac.
4288
03:08:37,920 --> 03:08:41,700
This is basically a simple, straightforward plugin
4289
03:08:41,700 --> 03:08:43,299
that basically just adds all of the messages
4290
03:08:43,299 --> 03:08:45,540
that send any cloud instance to some memory file.
4291
03:08:45,899 --> 03:08:47,719
And then cloud can run searches over it if I say,
4292
03:08:47,739 --> 03:08:49,399
hey, what did I ask you about two weeks ago?
4293
03:08:49,799 --> 03:08:51,059
So, you know, it's marginally useful.
4294
03:08:51,420 --> 03:08:52,979
You then have access directly from cloud
4295
03:08:52,979 --> 03:08:55,040
to a bunch of other ones that are somewhat useful.
4296
03:08:55,700 --> 03:08:57,540
They have like front-end design, for instance,
4297
03:08:57,540 --> 03:08:58,200
which is kind of cool.
4298
03:08:58,379 --> 03:08:59,780
So this is Anthropics own library,
4299
03:08:59,920 --> 03:09:01,819
which improves the quality,
4300
03:09:01,920 --> 03:09:03,600
at least they say it improves the quality
4301
03:09:03,600 --> 03:09:05,020
of a front-end work.
4302
03:09:05,020 --> 03:09:06,959
You can build sexier and cleaner designs
4303
03:09:06,959 --> 03:09:07,840
and stuff like that.
4304
03:09:08,180 --> 03:09:10,040
You know, I don't know, it's kind of 50-50.
4305
03:09:10,379 --> 03:09:11,600
They say like, if you're doing stuff
4306
03:09:11,600 --> 03:09:13,600
without the aesthetics prompt, it looks like this.
4307
03:09:13,639 --> 03:09:15,040
And then if you're doing it with the aesthetics prompt,
4308
03:09:15,079 --> 03:09:15,920
it looks like that.
4309
03:09:16,180 --> 03:09:17,479
Personally, I think both of these are pretty bad.
4310
03:09:17,840 --> 03:09:19,280
This one definitely looks better, of course,
4311
03:09:19,319 --> 03:09:20,459
but it's not like that much better.
4312
03:09:20,840 --> 03:09:21,739
Same thing over here.
4313
03:09:21,799 --> 03:09:22,959
So I don't know if the guys that made this
4314
03:09:22,959 --> 03:09:25,680
just weren't like actually crazy front-end devs
4315
03:09:25,680 --> 03:09:26,219
or anything like that.
4316
03:09:26,219 --> 03:09:28,159
But I personally think my workflow
4317
03:09:28,159 --> 03:09:29,639
just going to one of these websites
4318
03:09:29,639 --> 03:09:32,120
and then copying the screenshot over
4319
03:09:32,120 --> 03:09:33,559
and then moving everything into Claude Code
4320
03:09:33,559 --> 03:09:34,399
is like way higher quality.
4321
03:09:34,399 --> 03:09:35,600
But there are other cool ones here.
4322
03:09:35,819 --> 03:09:36,799
Context 7 is pretty nice.
4323
03:09:36,920 --> 03:09:38,500
Context 7 basically just allows you to search
4324
03:09:38,500 --> 03:09:42,540
through any API doc without really having to like know
4325
03:09:42,540 --> 03:09:44,280
anything about the API docs themselves.
4326
03:09:44,799 --> 03:09:45,840
You know, if you're working with like three
4327
03:09:45,840 --> 03:09:46,559
or four different tools,
4328
03:09:46,819 --> 03:09:48,159
you just install this as a plugin
4329
03:09:48,159 --> 03:09:51,200
and then it'll automatically shrink
4330
03:09:51,200 --> 03:09:53,000
and then compress API documentation
4331
03:09:53,000 --> 03:09:54,799
from the sources over to cloud.
4332
03:09:54,879 --> 03:09:56,700
And then it can read it in a very token-efficient manner
4333
03:09:56,700 --> 03:09:57,659
and do cool things with.
4334
03:09:58,159 --> 03:09:59,520
None of these things I want to say are required.
4335
03:09:59,799 --> 03:10:01,120
Vanilla Claude Code does really, really well
4336
03:10:01,120 --> 03:10:03,159
without any sort of extensions or plugins at the moment.
4337
03:10:03,739 --> 03:10:06,340
But you know, just worth us chatting briefly about that.
4338
03:10:06,680 --> 03:10:08,860
And then there are two major marketplaces right now
4339
03:10:08,860 --> 03:10:10,559
that are sort of, well, sorry,
4340
03:10:10,680 --> 03:10:12,520
one major marketplace right now that's supported by cloud.
4341
03:10:12,659 --> 03:10:14,420
It's this Claude Code plugins directory,
4342
03:10:14,459 --> 03:10:17,680
which isn't the cloud-plugins-official repository.
4343
03:10:18,159 --> 03:10:20,440
You can find all of the plugins just by going to plugins
4344
03:10:20,440 --> 03:10:21,760
and you'll see there's a big list of ones
4345
03:10:21,760 --> 03:10:23,139
that they support right out of the box.
4346
03:10:23,559 --> 03:10:26,540
So they have Agent SDK Dev, they have Code Review,
4347
03:10:26,700 --> 03:10:28,819
they have C Sharp LSP example plugin.
4348
03:10:29,280 --> 03:10:31,299
But then there are also open marketplaces.
4349
03:10:31,299 --> 03:10:33,739
So if you go to Cloud Plugin Marketplace,
4350
03:10:34,079 --> 03:10:35,399
you'll see that there are a few other ones
4351
03:10:35,399 --> 03:10:36,659
that people have put together here.
4352
03:10:37,280 --> 03:10:39,379
So this, for instance, is the Claude Code Marketplace
4353
03:10:39,379 --> 03:10:41,360
put together by a third-party resource.
4354
03:10:42,139 --> 03:10:44,100
I could say Anthropic wants me to take down this website.
4355
03:10:44,139 --> 03:10:44,860
That's pretty funny.
4356
03:10:46,120 --> 03:10:49,280
With, you know, like chat GPT prompts, let's see.
4357
03:10:50,140 --> 03:10:51,979
Superpowers, I don't know exactly what that does.
4358
03:10:52,020 --> 03:10:53,239
We have the Context 7 again.
4359
03:10:53,739 --> 03:10:55,139
A bunch of Claude Code skills
4360
03:10:55,139 --> 03:10:56,959
that looks like some other people have put together,
4361
03:10:57,100 --> 03:10:58,719
although not all of these links are gonna work.
4362
03:10:59,120 --> 03:11:01,360
And yeah, you know, the plugin installation process
4363
03:11:01,360 --> 03:11:02,959
is pretty straightforward, as you guys saw earlier.
4364
03:11:03,559 --> 03:11:04,700
So I'll leave it at that.
4365
03:11:04,840 --> 03:11:06,819
I think plugins are sort of going to be deprecated
4366
03:11:06,819 --> 03:11:08,979
and probably just absorbed into skills at some point.
4367
03:11:09,000 --> 03:11:10,260
So I don't wanna spend forever on them.
4368
03:11:10,360 --> 03:11:11,780
Okay, and finally, we have subagents,
4369
03:11:11,879 --> 03:11:13,559
which I think a lot of people here were waiting for.
4370
03:11:13,940 --> 03:11:16,719
I want you guys to know that subagents aren't like a cure-all.
4371
03:11:16,819 --> 03:11:18,479
These things aren't actually that incredible.
4372
03:11:18,860 --> 03:11:20,340
You can do more or less everything that you could do
4373
03:11:20,340 --> 03:11:22,000
with subagents as of the time of this recording,
4374
03:11:22,239 --> 03:11:24,420
just with like a normal master agent.
4375
03:11:24,860 --> 03:11:27,360
But subagents do speed things up a little bit
4376
03:11:27,360 --> 03:11:29,299
and then they also allow you to parallelize your workflow,
4377
03:11:29,399 --> 03:11:31,440
which can be quite useful in specific circumstances.
4378
03:11:32,180 --> 03:11:34,399
One major issue that people currently have with subagents
4379
03:11:34,399 --> 03:11:35,739
is they consume a ton of tokens
4380
03:11:35,739 --> 03:11:37,940
and then in doing so can also cost a fair amount,
4381
03:11:38,180 --> 03:11:39,379
especially when you go to agent teams,
4382
03:11:39,420 --> 03:11:40,680
which as of the time of this recording,
4383
03:11:40,799 --> 03:11:42,879
is seven times the token usage
4384
03:11:42,879 --> 03:11:44,639
of just using like one single Cloud thread
4385
03:11:44,639 --> 03:11:46,020
like I've been doing throughout this course.
4386
03:11:46,520 --> 03:11:47,940
But subagents are so pretty useful to know.
4387
03:11:48,200 --> 03:11:49,180
And so the very first thing I'm gonna do
4388
03:11:49,180 --> 03:11:50,479
is I'm just gonna show you through example
4389
03:11:50,479 --> 03:11:51,780
and then we can actually look more into like
4390
03:11:51,780 --> 03:11:53,579
the subagent spec and stuff like that.
4391
03:11:53,819 --> 03:11:56,059
So you know how earlier we built this system, the skill,
4392
03:11:56,059 --> 03:11:58,600
which fetches, classifies and labels 100 emails
4393
03:11:58,600 --> 03:11:59,280
with zero failures.
4394
03:11:59,639 --> 03:12:01,760
What I'd like to do now is I'd basically like to turn
4395
03:12:01,760 --> 03:12:03,020
this skill into a subagent.
4396
03:12:03,280 --> 03:12:05,520
So what I'm gonna do is I will remove this
4397
03:12:05,520 --> 03:12:07,579
so we're not loading any more stuff into context.
4398
03:12:08,840 --> 03:12:11,799
Hey, I'd like you to turn this Gmail-label flow
4399
03:12:11,799 --> 03:12:13,079
into a subagent.
4400
03:12:13,520 --> 03:12:14,799
The reason why is because I want you
4401
03:12:14,799 --> 03:12:15,920
to parallelize your work.
4402
03:12:16,139 --> 03:12:18,659
Instead of it taking 36 seconds to fetch, classify
4403
03:12:18,659 --> 03:12:22,000
and label 100 emails, I want you to be able to spawn
4404
03:12:22,000 --> 03:12:24,379
10 subagents that do all of those simultaneously
4405
03:12:24,379 --> 03:12:25,540
and then return the results.
4406
03:12:26,360 --> 03:12:28,680
I'd like you to do this using the subagent spec.
4407
03:12:28,780 --> 03:12:30,100
If you don't know what that is, do a little bit
4408
03:12:30,100 --> 03:12:31,340
of research on subagents.
4409
03:12:31,739 --> 03:12:33,440
It's an anthropic and Claude Code feature
4410
03:12:33,440 --> 03:12:34,700
that's quite well supported
4411
03:12:34,700 --> 03:12:36,000
by our current workspace structure.
4412
03:12:36,459 --> 03:12:39,799
And once you've built the subagent using a sonnet-4.5,
4413
03:12:39,940 --> 03:12:41,719
I want you to roll it out as a test
4414
03:12:41,719 --> 03:12:43,739
and then show me how much faster it is
4415
03:12:43,739 --> 03:12:45,299
with some sort of timing instrumentation.
4416
03:12:45,459 --> 03:12:46,760
Okay, so I have all that here.
4417
03:12:46,819 --> 03:12:48,399
I'm now just gonna feed it into my prompt.
4418
03:12:48,540 --> 03:12:49,860
If we open up this little thinking tab,
4419
03:12:49,979 --> 03:12:51,739
it's gonna start by researching the subagents
4420
03:12:51,739 --> 03:12:53,959
and then building a parallelized Gmail-label flow
4421
03:12:53,959 --> 03:12:55,219
that spawns multiple subagents
4422
03:12:55,219 --> 03:12:56,819
to classify emails simultaneously.
4423
03:12:57,200 --> 03:12:59,540
I'm gonna use sonnet-4.5 because it can load much more
4424
03:12:59,540 --> 03:13:01,139
into context, probably read all my emails,
4425
03:13:01,159 --> 03:13:03,579
and then it can actually go through this whole process
4426
03:13:03,579 --> 03:13:05,899
and then essentially parallelize it
4427
03:13:05,899 --> 03:13:08,340
and significantly improve the probability and speed
4428
03:13:08,340 --> 03:13:10,440
that these things are working well and fast.
4429
03:13:10,620 --> 03:13:11,459
The very first thing it's gonna do
4430
03:13:11,459 --> 03:13:13,280
is actually spin up a bunch of subagents to do research.
4431
03:13:13,319 --> 03:13:15,600
So that's what this task little bubble is, right?
4432
03:13:15,840 --> 03:13:17,479
When it says research Claude Code subagents,
4433
03:13:17,520 --> 03:13:19,239
what it's actually doing is it's giving this task
4434
03:13:19,239 --> 03:13:21,260
to a subagent called the research subagent.
4435
03:13:21,819 --> 03:13:23,340
There's another subagent as well,
4436
03:13:23,340 --> 03:13:24,299
like the search subagent.
4437
03:13:24,299 --> 03:13:25,559
So it'll actually search through my workspace
4438
03:13:25,559 --> 03:13:27,520
to see if there are any pre-existing subagent patterns.
4439
03:13:27,979 --> 03:13:28,959
And then because it's capable
4440
03:13:28,959 --> 03:13:30,260
of spawning these simultaneously,
4441
03:13:31,000 --> 03:13:33,219
typically retrieves the results much faster than normal.
4442
03:13:34,100 --> 03:13:34,639
So that's kind of fun.
4443
03:13:34,639 --> 03:13:36,379
It's a little bit meta of Claude Code to do that
4444
03:13:36,379 --> 03:13:37,239
without really understanding
4445
03:13:37,239 --> 03:13:38,500
what subagents are out of the box.
4446
03:13:38,979 --> 03:13:42,059
Okay, it's now going to create a subagent directory
4447
03:13:42,059 --> 03:13:43,600
inside of my .cloud folder,
4448
03:13:43,600 --> 03:13:44,719
and then it's gonna populate it
4449
03:13:44,719 --> 03:13:47,420
with all the subagent spec parts and everything else.
4450
03:13:47,739 --> 03:13:49,799
And what's really cool is we're using subagents
4451
03:13:49,799 --> 03:13:51,680
alongside skills in this instance.
4452
03:13:51,680 --> 03:13:53,559
And that's what I'd usually recommend.
4453
03:13:53,659 --> 03:13:55,079
I don't recommend just creating subagents
4454
03:13:55,079 --> 03:13:56,120
for the sake of subagents,
4455
03:13:56,120 --> 03:13:57,360
unless they're very specific ones.
4456
03:13:57,600 --> 03:13:58,840
I'll show you guys a couple of them in a moment.
4457
03:13:59,040 --> 03:14:02,299
But for the most part, use them where it makes sense.
4458
03:14:02,360 --> 03:14:04,420
Use them in situations where you want to parallelize
4459
03:14:04,420 --> 03:14:05,819
the workflow and be a lot faster.
4460
03:14:06,379 --> 03:14:08,959
Okay, and then because we just generated the subagents
4461
03:14:08,959 --> 03:14:09,920
in a previous instance,
4462
03:14:09,959 --> 03:14:12,180
we actually have to call the subagents
4463
03:14:12,180 --> 03:14:13,120
in another Claude Code instance.
4464
03:14:13,159 --> 03:14:14,600
So I just had to make a new one, basically.
4465
03:14:15,100 --> 03:14:17,280
What it's gonna do now is spawn a bunch of subagents for me.
4466
03:14:17,340 --> 03:14:18,659
Okay, so that's what these tasks are.
4467
03:14:18,719 --> 03:14:20,120
So as you can see, classify email chunk,
4468
03:14:20,120 --> 03:14:22,079
one, two, three, four, five, six, seven, eight, nine.
4469
03:14:22,399 --> 03:14:24,500
So all 10 classifiers are now running in parallel.
4470
03:14:25,719 --> 03:14:28,239
We now have all 10 task outputs here, which is pretty cool.
4471
03:14:28,579 --> 03:14:30,360
It's now absorbing all these task outputs.
4472
03:14:30,659 --> 03:14:32,700
And we're operating at a much higher level of speed
4473
03:14:32,700 --> 03:14:33,700
than we were before, right?
4474
03:14:35,520 --> 03:14:36,579
So now it's recording the time,
4475
03:14:36,600 --> 03:14:37,959
and then it's going to merge and apply.
4476
03:14:38,559 --> 03:14:39,760
Classification took 19 seconds,
4477
03:14:39,879 --> 03:14:43,139
while clock time for a thousand, sorry, a hundred to complete.
4478
03:14:44,079 --> 03:14:46,559
And then let's see the total time speed up.
4479
03:14:46,700 --> 03:14:47,760
Okay, so in this instance,
4480
03:14:47,819 --> 03:14:49,479
because we ran the same number of emails,
4481
03:14:49,479 --> 03:14:51,120
we did 100 versus 100.
4482
03:14:51,520 --> 03:14:52,719
We only saved six seconds.
4483
03:14:52,979 --> 03:14:54,200
So what I wanna show you guys now
4484
03:14:54,200 --> 03:14:56,860
is I wanna show you guys how to do this at scale.
4485
03:14:57,260 --> 03:14:58,500
So instead of, you know, a hundred emails,
4486
03:14:58,520 --> 03:14:59,340
I wanna do a thousand.
4487
03:15:00,399 --> 03:15:00,879
Excellent work.
4488
03:15:00,940 --> 03:15:02,860
I'd like you to classify a thousand.
4489
03:15:03,120 --> 03:15:05,000
The benefits of the speed up are most likely
4490
03:15:05,000 --> 03:15:07,379
not going to be at the same level of scale,
4491
03:15:07,399 --> 03:15:09,680
but they will become evident when we go
4492
03:15:09,680 --> 03:15:11,819
at a much higher level of speed at a scale.
4493
03:15:12,059 --> 03:15:14,979
So now we're gonna run 1000 of these,
4494
03:15:15,200 --> 03:15:18,360
aka 1000 emails split into 10 chunks of a hundred
4495
03:15:18,360 --> 03:15:20,899
that are being classified in parallel with 10 subagents,
4496
03:15:20,959 --> 03:15:22,420
considering that every time took, I think,
4497
03:15:22,579 --> 03:15:24,180
like 19 seconds or something like that per,
4498
03:15:24,720 --> 03:15:26,120
I think it's gonna be a lot faster.
4499
03:15:26,239 --> 03:15:26,760
So we'll see.
4500
03:15:27,180 --> 03:15:28,559
Okay, some of these task outputs
4501
03:15:28,559 --> 03:15:29,739
are now starting to complete.
4502
03:15:29,760 --> 03:15:31,739
It's been maybe 15, 20 seconds.
4503
03:15:31,760 --> 03:15:32,940
I'm not sure exactly how long,
4504
03:15:33,280 --> 03:15:34,780
but as they're all coming back,
4505
03:15:34,860 --> 03:15:36,139
you see these little gray bubbles
4506
03:15:36,139 --> 03:15:37,020
turn into green bubbles.
4507
03:15:37,120 --> 03:15:38,180
Okay, we ended up having an issue
4508
03:15:38,180 --> 03:15:39,719
where the prompt was too long,
4509
03:15:39,879 --> 03:15:41,819
essentially because all of these subagents
4510
03:15:41,819 --> 03:15:45,639
returned massive strings of text with every single email
4511
03:15:46,180 --> 03:15:47,879
for whatever reason, when you combine all this
4512
03:15:47,879 --> 03:15:50,680
into the parent thread, just way too long.
4513
03:15:50,760 --> 03:15:51,979
And it ran out of context.
4514
03:15:52,379 --> 03:15:54,299
So what it is, I just copied over everything.
4515
03:15:54,680 --> 03:15:56,959
And then I gave it to another instance up here.
4516
03:15:57,000 --> 03:15:57,959
And I basically said,
4517
03:15:58,979 --> 03:16:01,879
hey, this is a little too long right now.
4518
03:16:02,100 --> 03:16:06,219
I keep running into prompt too long output.
4519
03:16:06,239 --> 03:16:07,319
So I think we ran out of context.
4520
03:16:07,459 --> 03:16:09,299
I'd like you to modify this so we don't run out of context.
4521
03:16:09,420 --> 03:16:11,899
If the subagents don't have to return the actual text
4522
03:16:11,899 --> 03:16:13,239
to the parent nature, that would be ideal.
4523
03:16:13,760 --> 03:16:15,620
Then I ran it in parallel for all 10.
4524
03:16:15,920 --> 03:16:17,139
And now we're just redoing it.
4525
03:16:17,139 --> 03:16:21,139
At the end of it, it labeled 987 out of 989 emails.
4526
03:16:21,640 --> 03:16:23,559
I didn't time that end to end.
4527
03:16:23,659 --> 03:16:24,459
If I had to guess,
4528
03:16:24,520 --> 03:16:26,299
it'd probably be somewhere around like a minute or so,
4529
03:16:26,500 --> 03:16:28,780
which means we are now classifying a thousand emails
4530
03:16:28,780 --> 03:16:30,799
in a minute, whereas 100 was at 36.
4531
03:16:31,159 --> 03:16:32,659
And this is really the power of subagents.
4532
03:16:32,879 --> 03:16:35,020
Subagents basically allows us to take some query
4533
03:16:35,020 --> 03:16:39,340
and then split it up into five, 10, 15, 20, whatever.
4534
03:16:39,879 --> 03:16:42,520
Run them all synchronously at the same time.
4535
03:16:42,959 --> 03:16:44,079
And then once they're done,
4536
03:16:44,299 --> 03:16:46,360
they just take the outputs of each of these threads
4537
03:16:46,360 --> 03:16:48,040
and then combine them into the main one.
4538
03:16:49,079 --> 03:16:51,020
And so, there are a couple of other use cases
4539
03:16:51,020 --> 03:16:52,219
for subagents, but for the most part,
4540
03:16:52,219 --> 03:16:53,479
it's going to be something like this.
4541
03:16:53,540 --> 03:16:54,799
Like if you really wanted to use subagents
4542
03:16:54,799 --> 03:16:56,260
in an economically valuable fashion,
4543
03:16:56,500 --> 03:16:58,139
this is usually how you would do so
4544
03:16:58,139 --> 03:16:59,399
as of the time of this recording.
4545
03:16:59,780 --> 03:17:01,379
Subagents are fantastic, but keep in mind,
4546
03:17:01,420 --> 03:17:03,799
most of the time they're gonna be less intelligent
4547
03:17:03,799 --> 03:17:04,559
than the parent agent.
4548
03:17:04,879 --> 03:17:06,979
And so you wanna reserve the parent agent
4549
03:17:06,979 --> 03:17:09,780
for taking the outputs of each of these subagents
4550
03:17:09,780 --> 03:17:11,420
and combining them and doing something with them,
4551
03:17:11,680 --> 03:17:14,139
not just spawning 500 things in parallel
4552
03:17:14,139 --> 03:17:16,340
to run for no reason.
4553
03:17:17,040 --> 03:17:18,920
Strategically speaking, some other things about subagents
4554
03:17:19,280 --> 03:17:21,540
are try and make the task definitions as simple
4555
03:17:21,540 --> 03:17:22,659
and as straightforward as possible.
4556
03:17:23,020 --> 03:17:24,639
Like I could have given every one of those subagents
4557
03:17:24,639 --> 03:17:25,819
more context, I could have said,
4558
03:17:25,840 --> 03:17:27,280
hey, I don't just want you to do the classification,
4559
03:17:27,340 --> 03:17:28,159
I want you to do everything.
4560
03:17:28,219 --> 03:17:29,780
I want you to do the classifications, the merges,
4561
03:17:29,959 --> 03:17:31,200
the applying the labels, et cetera.
4562
03:17:31,639 --> 03:17:32,979
But because the subagents are dumber
4563
03:17:32,979 --> 03:17:34,360
and because we're spawning a bunch,
4564
03:17:34,440 --> 03:17:36,100
we're multiplying probabilities here.
4565
03:17:36,399 --> 03:17:38,620
If there's like even a, I don't know,
4566
03:17:38,620 --> 03:17:39,959
let's say there's a 95% chance
4567
03:17:39,959 --> 03:17:41,379
that the subagents gonna work, right?
4568
03:17:41,379 --> 03:17:43,120
That's a 5% chance that it's not gonna work.
4569
03:17:43,120 --> 03:17:45,139
And the way in statistics that you calculate
4570
03:17:45,139 --> 03:17:47,180
the probability of a bunch of things occurring in sequence
4571
03:17:47,180 --> 03:17:48,340
is you just multiply them out.
4572
03:17:48,540 --> 03:17:52,719
So what this is, is this is 0.95 times 0.95 times 0.95.
4573
03:17:53,180 --> 03:17:55,559
Basically what this is equivalent to is 0.95
4574
03:17:55,559 --> 03:17:56,479
or raised to the three.
4575
03:17:56,739 --> 03:17:58,979
And so if we spawn three subagents, okay,
4576
03:17:59,020 --> 03:18:01,059
the total probability that all three of them will work
4577
03:18:01,059 --> 03:18:02,280
the way that we wanted them to,
4578
03:18:02,399 --> 03:18:03,520
but just go back over here,
4579
03:18:04,159 --> 03:18:06,540
is 0.95 raised to the three here.
4580
03:18:06,959 --> 03:18:10,219
So 85, AKA 85.7%.
4581
03:18:10,219 --> 03:18:11,639
You know, I mean, if I'm running 10,
4582
03:18:11,639 --> 03:18:15,059
the probability is now down to 59%.
4583
03:18:15,059 --> 03:18:16,579
If I'm running, I don't know, 50,
4584
03:18:16,639 --> 03:18:18,440
then the probability is down to 7%.
4585
03:18:18,440 --> 03:18:20,500
Obviously I wanna maximize the probability
4586
03:18:20,500 --> 03:18:21,840
that all of these subagents complete
4587
03:18:21,840 --> 03:18:23,819
in the time that I've allotted to them and stuff like that.
4588
03:18:24,079 --> 03:18:26,819
Not only for my own token count issues and my consumption.
4589
03:18:27,100 --> 03:18:27,840
So you guys see back here,
4590
03:18:27,920 --> 03:18:30,420
like I'm now at 173 bucks in additional usage
4591
03:18:30,420 --> 03:18:31,940
on top of my Claude code usage,
4592
03:18:32,520 --> 03:18:33,819
not just from this course of my idea,
4593
03:18:33,840 --> 03:18:34,780
but I'm doing a fair amount.
4594
03:18:35,399 --> 03:18:37,159
But also for like completeness sake,
4595
03:18:37,520 --> 03:18:39,280
if I malformed the output
4596
03:18:39,280 --> 03:18:41,620
and then my parent agent can't collect it all right
4597
03:18:41,620 --> 03:18:42,700
and do something right with it,
4598
03:18:43,020 --> 03:18:44,780
well then what I've done is I've just basically wasted
4599
03:18:44,780 --> 03:18:47,940
that whole query because subagent prompts are ephemeral.
4600
03:18:47,940 --> 03:18:49,500
They only exist for like a short period of time.
4601
03:18:49,540 --> 03:18:51,340
Their context windows are all self-contained.
4602
03:18:51,459 --> 03:18:53,040
Do I really wanna rerun that thing a hundred times,
4603
03:18:53,040 --> 03:18:53,680
even if it's cheaper?
4604
03:18:53,799 --> 03:18:54,459
Probably not, right?
4605
03:18:54,700 --> 03:18:56,440
Next up, I wanna show you guys how to create
4606
03:18:56,440 --> 03:18:59,120
what I'd consider to be the three most useful subagents
4607
03:18:59,120 --> 03:18:59,899
as of right now.
4608
03:19:00,239 --> 03:19:01,879
So what I'm doing is I'm actually having Claude code
4609
03:19:01,879 --> 03:19:03,000
create these as we speak.
4610
03:19:03,159 --> 03:19:04,520
One's called code reviewer,
4611
03:19:04,620 --> 03:19:05,659
the other is called researcher,
4612
03:19:06,059 --> 03:19:07,840
and the last one's going to be called QA.
4613
03:19:08,059 --> 03:19:10,079
And we're going to insert all three of these agents
4614
03:19:10,079 --> 03:19:12,420
into this folder here alongside email classifier.
4615
03:19:12,659 --> 03:19:14,319
And then I'm gonna update my Claude.md
4616
03:19:14,319 --> 03:19:15,979
to reference the proposed workflow.
4617
03:19:16,319 --> 03:19:17,959
Then I'm gonna show you what all that stuff looks like.
4618
03:19:18,319 --> 03:19:19,159
Now, in order to use agents,
4619
03:19:19,180 --> 03:19:21,020
what we actually have to do is we have to exit
4620
03:19:21,020 --> 03:19:24,200
a specific instance that we generated the agents in.
4621
03:19:24,340 --> 03:19:26,319
Otherwise we're not gonna see them as available
4622
03:19:26,319 --> 03:19:27,280
in our task definition.
4623
03:19:27,420 --> 03:19:30,120
So I'm just going to create a new instance of Claude code.
4624
03:19:30,379 --> 03:19:32,680
What subagents do we have access to?
4625
03:19:33,559 --> 03:19:35,540
I also refresh this so we could see them all.
4626
03:19:37,280 --> 03:19:38,440
And as we can see, we have four.
4627
03:19:38,440 --> 03:19:40,000
We have code reviewer, QA, research,
4628
03:19:40,139 --> 03:19:41,079
and then email classifier.
4629
03:19:41,319 --> 03:19:45,319
Okay, what is the proposed workflow
4630
03:19:45,319 --> 03:19:48,680
every time we develop some software?
4631
03:19:50,000 --> 03:19:51,780
What I want it to do now is I want it to go through
4632
03:19:51,780 --> 03:19:53,299
and then tell me, first we write the edit,
4633
03:19:53,459 --> 03:19:54,219
the code, and the parent agent.
4634
03:19:54,319 --> 03:19:57,200
Then we code review, which spawns a code reviewer subagent
4635
03:19:57,200 --> 03:19:59,159
and the change falls, fixes any blocking issues.
4636
03:19:59,500 --> 03:20:02,020
Then we do a QA, spawning a QA subagent on the code,
4637
03:20:02,319 --> 03:20:03,959
generates tests, runs them, reports results,
4638
03:20:03,979 --> 03:20:04,760
and fixes failures.
4639
03:20:05,079 --> 03:20:06,299
Then finally we do a ship.
4640
03:20:06,420 --> 03:20:07,219
So now that we have all that ready,
4641
03:20:07,219 --> 03:20:09,639
let's actually go and then let's use our new workflow
4642
03:20:09,639 --> 03:20:11,420
on the flow that we just created before.
4643
03:20:11,819 --> 03:20:13,319
So I think it was the Gmail-label.
4644
03:20:14,000 --> 03:20:16,139
Use our new workflow on Gmail-label.
4645
03:20:16,420 --> 03:20:18,700
It's the skill that looks through my inbox
4646
03:20:18,700 --> 03:20:19,500
and then labels emails.
4647
03:20:21,719 --> 03:20:23,799
So what I want to do is I want to read through
4648
03:20:23,799 --> 03:20:25,920
the Gmail-label skill to understand what we're working with.
4649
03:20:25,940 --> 03:20:27,079
So it's going to read the skill.
4650
03:20:27,420 --> 03:20:29,239
That's also going to go through all of the scripts.
4651
03:20:29,760 --> 03:20:31,139
But I basically want us to take these scripts
4652
03:20:31,139 --> 03:20:32,700
and then apply our little flow.
4653
03:20:33,079 --> 03:20:34,559
So the first thing it's going to do is run
4654
03:20:34,559 --> 03:20:36,420
the code review agent on all four scripts.
4655
03:20:36,420 --> 03:20:37,680
And as you can see here,
4656
03:20:37,739 --> 03:20:39,579
we can run these in tandem in parallel.
4657
03:20:39,940 --> 03:20:41,399
So first we're going to code review,
4658
03:20:41,680 --> 03:20:43,420
and then we're also going to generate tests
4659
03:20:43,420 --> 03:20:45,340
and run them for the Gmail-label scripts.
4660
03:20:45,620 --> 03:20:46,680
So we're going to use both of these,
4661
03:20:46,799 --> 03:20:48,280
and then we're going to use them to feed back
4662
03:20:48,280 --> 03:20:48,979
to our parent agent.
4663
03:20:49,079 --> 03:20:50,719
Our parent agent is going to make changes to this code
4664
03:20:50,719 --> 03:20:52,959
and significantly improve the quality of said code.
4665
03:20:53,020 --> 03:20:55,260
Now is this like required to do every single time?
4666
03:20:55,399 --> 03:20:56,379
No, as you guys could see,
4667
03:20:56,500 --> 03:20:58,520
we're capable of writing some pretty damn good code,
4668
03:20:58,700 --> 03:20:59,600
but knowing a lick of code,
4669
03:21:00,039 --> 03:21:02,340
with just like the vanilla Claude Code installation.
4670
03:21:02,780 --> 03:21:04,399
This sort of stuff becomes more and more valuable
4671
03:21:04,399 --> 03:21:05,659
when you're working at enterprise
4672
03:21:05,659 --> 03:21:08,780
and you're creating code that requires the ability to,
4673
03:21:08,819 --> 03:21:12,340
one, be like really secure and verifiable by both agents
4674
03:21:12,340 --> 03:21:13,700
and then human beings if they read them.
4675
03:21:13,879 --> 03:21:16,680
And then two, to like account for all possible edge cases.
4676
03:21:17,059 --> 03:21:17,559
You know, in my case,
4677
03:21:17,559 --> 03:21:18,719
I don't really care too much accounting
4678
03:21:18,719 --> 03:21:20,180
for all possible edge cases,
4679
03:21:20,180 --> 03:21:21,379
because most of the software I'm making
4680
03:21:21,379 --> 03:21:22,540
is for my own internal tooling.
4681
03:21:23,059 --> 03:21:24,479
You know, it's like a one-off landing page
4682
03:21:24,479 --> 03:21:26,180
for a client to use, that sort of stuff.
4683
03:21:26,459 --> 03:21:27,659
You know, if I'm working in a big business,
4684
03:21:27,819 --> 03:21:29,879
working in a Versel or I'm working in an open AI
4685
03:21:29,879 --> 03:21:31,459
or I'm working in a, you know, I don't know,
4686
03:21:31,500 --> 03:21:33,239
Oracle big database or whatnot,
4687
03:21:33,559 --> 03:21:34,940
this stuff becomes significantly more important.
4688
03:21:34,940 --> 03:21:37,379
And that's where these sorts of code design patterns
4689
03:21:37,379 --> 03:21:38,100
become valuable.
4690
03:21:38,200 --> 03:21:39,739
Okay, so we're still waiting on the output
4691
03:21:39,739 --> 03:21:41,559
of the other task, but if I scroll down here,
4692
03:21:41,559 --> 03:21:43,459
you can see there's actually some recommendations already.
4693
03:21:43,819 --> 03:21:46,239
This is being provided inside of this task output,
4694
03:21:46,260 --> 03:21:47,979
so it's not written very well or nice.
4695
03:21:48,040 --> 03:21:49,040
So we're gonna have to squint a bit,
4696
03:21:49,500 --> 03:21:50,879
but code is correct, readable,
4697
03:21:51,020 --> 03:21:52,479
it handles errors appropriately.
4698
03:21:53,120 --> 03:21:54,440
Batch fetching uses 100 per batch,
4699
03:21:54,479 --> 03:21:55,940
but could use the Gmail API max
4700
03:21:55,940 --> 03:21:57,260
of a thousand requests per batch.
4701
03:21:57,659 --> 03:21:59,280
That means that we could significantly improve
4702
03:21:59,280 --> 03:22:00,799
the total efficiency of this flow.
4703
03:22:01,100 --> 03:22:02,920
And that's one piece of value
4704
03:22:02,920 --> 03:22:04,620
that the code reviewer has already given for us.
4705
03:22:04,620 --> 03:22:05,979
Then we have some callback stuff.
4706
03:22:06,260 --> 03:22:08,620
So basically it's identified an error or an issue,
4707
03:22:08,739 --> 03:22:09,639
which is quite useful.
4708
03:22:10,559 --> 03:22:13,040
It's giving us some insights on the readability
4709
03:22:13,040 --> 03:22:14,920
and, you know, a little commenting that we could be doing
4710
03:22:14,920 --> 03:22:17,559
to make the code better and so on and so forth.
4711
03:22:17,799 --> 03:22:19,440
Okay, now the tests are completed.
4712
03:22:19,540 --> 03:22:22,120
So it looks like we've passed most of the tests.
4713
03:22:22,139 --> 03:22:23,780
There's only one that had a wrong exception.
4714
03:22:23,799 --> 03:22:25,979
And now it's feeding in all of this information
4715
03:22:25,979 --> 03:22:26,680
to the parent agent.
4716
03:22:26,739 --> 03:22:28,520
The parent agent is gonna go through and do the fix.
4717
03:22:29,180 --> 03:22:30,819
So 16 to 18 characters,
4718
03:22:32,319 --> 03:22:33,520
it's gonna jump through,
4719
03:22:33,520 --> 03:22:35,799
accepting uppercase and variable length hex IDs.
4720
03:22:35,979 --> 03:22:36,840
No idea what that means,
4721
03:22:37,020 --> 03:22:38,760
but of course this agent is now thinking
4722
03:22:38,760 --> 03:22:40,500
dozens of times faster than I'd be able to.
4723
03:22:40,579 --> 03:22:42,059
So I'm just gonna trust that it's doing well.
4724
03:22:42,360 --> 03:22:44,819
And then front load all of this double checking,
4725
03:22:44,979 --> 03:22:46,940
triple checking, QA, and so on and so forth
4726
03:22:46,940 --> 03:22:49,479
to minimize the possibility of longer term errors.
4727
03:22:50,479 --> 03:22:51,000
So that looks great.
4728
03:22:51,040 --> 03:22:52,139
We've now run our new flow,
4729
03:22:52,440 --> 03:22:54,659
which has yielded significantly better benefits.
4730
03:22:55,280 --> 03:22:55,840
Okay, great.
4731
03:22:56,139 --> 03:22:58,159
Now use the research sub agent
4732
03:22:58,159 --> 03:23:02,799
to go and find me the best MCP server
4733
03:23:02,799 --> 03:23:05,159
currently available for PandaDoc.
4734
03:23:06,479 --> 03:23:07,600
So now I wanna show you guys
4735
03:23:07,600 --> 03:23:09,020
the value of the research sub agent.
4736
03:23:09,459 --> 03:23:11,479
This has now spawned one of my research.
4737
03:23:12,440 --> 03:23:13,520
So it's going through,
4738
03:23:13,899 --> 03:23:15,979
it's doing tons of research simultaneously,
4739
03:23:17,399 --> 03:23:18,940
trying a bunch of different search queries
4740
03:23:18,940 --> 03:23:19,840
and so on and so forth.
4741
03:23:20,420 --> 03:23:24,260
It's now returned one of the web search results.
4742
03:23:24,479 --> 03:23:25,299
And as you can see,
4743
03:23:25,299 --> 03:23:27,879
it's also doing tons of different like HTTP requests
4744
03:23:27,879 --> 03:23:28,959
and stuff like that simultaneously.
4745
03:23:29,860 --> 03:23:30,940
Now I should note that like we already
4746
03:23:30,940 --> 03:23:32,799
technically have a research sub agent built in,
4747
03:23:33,000 --> 03:23:35,379
but you can modify that research sub agent flow
4748
03:23:35,379 --> 03:23:36,260
by telling it,
4749
03:23:36,260 --> 03:23:37,739
hey, you know, I want you to use specific sources.
4750
03:23:37,760 --> 03:23:39,100
I want you to trust these websites.
4751
03:23:39,120 --> 03:23:42,059
I want you to preferentially go directly to the API docs
4752
03:23:42,059 --> 03:23:43,040
and stuff like that.
4753
03:23:43,120 --> 03:23:44,959
And so that's what that research sub agent allows us to do.
4754
03:23:45,000 --> 03:23:45,959
It allows us to research things
4755
03:23:45,959 --> 03:23:47,479
the way that we typically research things,
4756
03:23:47,500 --> 03:23:48,260
which is gonna be different
4757
03:23:48,260 --> 03:23:50,760
from just like doing a general Google request for,
4758
03:23:50,760 --> 03:23:52,879
I don't know, good APIs for PandaDoc.
4759
03:23:52,959 --> 03:23:54,600
So again, just to really impress upon you
4760
03:23:54,600 --> 03:23:55,860
the value of these,
4761
03:23:56,520 --> 03:23:58,940
really a big chunk of value is
4762
03:23:59,719 --> 03:24:06,219
it's cheaper to use Sonnet as of right now versus Opus.
4763
03:24:06,659 --> 03:24:09,979
And so rather than do your research or do your low,
4764
03:24:10,420 --> 03:24:12,639
you know, leverage or low ROI stuff,
4765
03:24:12,700 --> 03:24:14,239
like reading through a large amount of data
4766
03:24:14,239 --> 03:24:15,120
to extract something,
4767
03:24:15,319 --> 03:24:16,739
it's better to use the cheaper models.
4768
03:24:17,959 --> 03:24:20,059
The next is that it's parallelizable,
4769
03:24:20,539 --> 03:24:23,319
which just means that you can spin up multiple simultaneously
4770
03:24:23,319 --> 03:24:24,579
and then wait for all their inputs
4771
03:24:24,579 --> 03:24:26,200
as opposed to going one at a time.
4772
03:24:26,440 --> 03:24:27,940
Like for instance, if this is us,
4773
03:24:27,940 --> 03:24:29,200
and this is sort of our task flow,
4774
03:24:29,840 --> 03:24:32,100
let's say, you know, this is sort of the serial method,
4775
03:24:32,120 --> 03:24:33,159
which is what we were doing before.
4776
03:24:33,559 --> 03:24:35,459
Let's say every search takes one minute.
4777
03:24:35,959 --> 03:24:38,399
So, you know, this is task one, takes one minute.
4778
03:24:38,739 --> 03:24:41,260
This is task two, which takes one minute.
4779
03:24:41,559 --> 03:24:44,319
And then this is task three, which takes one minute.
4780
03:24:45,459 --> 03:24:47,420
I guess this is two and then this is three.
4781
03:24:47,760 --> 03:24:50,459
That means in order to get to, you know,
4782
03:24:51,559 --> 03:24:54,139
the start of our query to the end of our query,
4783
03:24:54,600 --> 03:24:56,780
Claude Code takes three minutes in total, right?
4784
03:24:57,360 --> 03:25:00,719
Well, obviously the parallel approach here is a lot better.
4785
03:25:01,020 --> 03:25:04,459
We start, and then what we do is we just spin up
4786
03:25:04,459 --> 03:25:08,280
three different boxes here simultaneously.
4787
03:25:09,459 --> 03:25:11,799
And now these all take one minute.
4788
03:25:12,799 --> 03:25:14,540
And, you know, by the time that we end,
4789
03:25:14,659 --> 03:25:17,200
what we've done is we've basically taken one minute
4790
03:25:17,200 --> 03:25:18,959
because each of these are executing side long
4791
03:25:18,959 --> 03:25:20,239
sort of with each other.
4792
03:25:20,319 --> 03:25:23,040
The last major benefit is the way that the context works.
4793
03:25:23,360 --> 03:25:25,819
And so there's some situations like a, you know,
4794
03:25:25,819 --> 03:25:28,579
reviewer sub agent where it's actually beneficial
4795
03:25:28,579 --> 03:25:30,479
not to have any of the context of the code.
4796
03:25:30,979 --> 03:25:33,420
It's not to have any of the biases of the decision-making
4797
03:25:33,420 --> 03:25:34,579
of the previous parent agent.
4798
03:25:34,780 --> 03:25:37,059
And sometimes, you know, choosing a different model
4799
03:25:37,059 --> 03:25:39,799
to do some of the reasoning can, you know,
4800
03:25:39,920 --> 03:25:41,559
reveal things that maybe the parent agent
4801
03:25:41,559 --> 03:25:42,819
didn't necessarily think of.
4802
03:25:43,139 --> 03:25:44,959
Sometimes it makes more sense to look at the ground
4803
03:25:44,959 --> 03:25:46,959
at your feet, for instance, the dumbness,
4804
03:25:47,079 --> 03:25:49,360
rather than look up in the sky at like all the complex
4805
03:25:49,360 --> 03:25:50,040
advanced stuff.
4806
03:25:50,600 --> 03:25:52,299
Same thing with sort of like a QA agent.
4807
03:25:52,579 --> 03:25:54,520
The value of both of these is they don't necessarily
4808
03:25:54,520 --> 03:25:57,479
know what's going on in terms of the broader world.
4809
03:25:57,760 --> 03:26:00,280
All they're really focused on is the code itself,
4810
03:26:00,280 --> 03:26:01,040
the way that it was written.
4811
03:26:01,319 --> 03:26:03,659
And so they get to optimize objectively at like the way
4812
03:26:03,659 --> 03:26:05,299
to make that thing as efficient as possible.
4813
03:26:05,340 --> 03:26:06,520
And that's sub agents in a nutshell.
4814
03:26:06,639 --> 03:26:08,340
It doesn't have to be any more complicated than that.
4815
03:26:08,500 --> 03:26:09,860
It's basically just a folder structure
4816
03:26:09,860 --> 03:26:11,159
and it's very similar to skills.
4817
03:26:11,500 --> 03:26:13,200
My recommendation is use this in conjunction
4818
03:26:13,200 --> 03:26:16,319
with things like skills to accomplish preexisting workflows
4819
03:26:16,860 --> 03:26:18,940
many times faster because of parallelization.
4820
03:26:19,299 --> 03:26:21,680
But don't rely on sub agents because a lot of the time,
4821
03:26:21,719 --> 03:26:23,360
the time it takes to spin up a sub agent
4822
03:26:23,360 --> 03:26:25,559
for a simple query can be just as long as it would take
4823
03:26:25,559 --> 03:26:27,659
to use just a parent agent to do the thing instead.
4824
03:26:28,000 --> 03:26:29,319
While sub agents sound really sexy,
4825
03:26:29,459 --> 03:26:31,579
and obviously everybody wants to have giant fleets
4826
03:26:31,579 --> 03:26:33,739
and swarms of them working for you on your behalf,
4827
03:26:34,540 --> 03:26:35,920
be pragmatic and be efficient here.
4828
03:26:36,000 --> 03:26:38,559
And now it's time to discuss one of Claude Code's
4829
03:26:38,559 --> 03:26:40,819
most commonly hyped and misunderstood,
4830
03:26:41,100 --> 03:26:43,739
but also pretty powerful features, agent teams.
4831
03:26:44,280 --> 03:26:46,979
If you're unaware, Claude Code recently unveiled
4832
03:26:46,979 --> 03:26:49,979
new functionality where you can orchestrate a team of agents
4833
03:26:49,979 --> 03:26:52,459
and you actually don't do the orchestration yourself.
4834
03:26:52,459 --> 03:26:54,639
You can actually spin up a team of agents
4835
03:26:54,639 --> 03:26:57,020
that are managed by another agent for you.
4836
03:26:57,159 --> 03:26:58,760
And then all you really need to do is just report back
4837
03:26:58,760 --> 03:27:00,780
to that manager agent, let them know what you want to do
4838
03:27:00,780 --> 03:27:01,760
and so on and so forth.
4839
03:27:02,520 --> 03:27:04,840
Obviously, given the fact that this is pretty interesting
4840
03:27:04,840 --> 03:27:07,200
at first glance, a lot of people are pretty stoked about it
4841
03:27:07,200 --> 03:27:08,840
and they've made tons of videos talking all about
4842
03:27:08,840 --> 03:27:10,579
how agent teams run their whole life
4843
03:27:10,579 --> 03:27:12,959
and have revolutionized programming and so on and so forth.
4844
03:27:13,319 --> 03:27:15,420
Hopefully in this module, I'm going to show you that
4845
03:27:15,420 --> 03:27:18,040
this is more of the same and agent teams are just another way
4846
03:27:18,040 --> 03:27:19,420
that you can parallelize your workflow.
4847
03:27:19,600 --> 03:27:21,819
So the way I want you to think about agent teams
4848
03:27:21,819 --> 03:27:25,159
are basically just a more advanced version of sub-agents.
4849
03:27:25,600 --> 03:27:28,219
Basically, both agent teams and sub-agents
4850
03:27:28,219 --> 03:27:30,319
are a mechanism of parallelization.
4851
03:27:30,899 --> 03:27:33,319
Like we had earlier when I showed you that example
4852
03:27:33,319 --> 03:27:35,500
of doing a bunch of classification,
4853
03:27:35,979 --> 03:27:39,639
we have a task and we could do the task one by one.
4854
03:27:40,299 --> 03:27:42,139
And if we do the task one by one,
4855
03:27:42,180 --> 03:27:44,200
what we're doing is we're incurring a fair amount
4856
03:27:44,200 --> 03:27:45,360
of fixed time cost.
4857
03:27:45,819 --> 03:27:47,219
Not to mention there are some instances
4858
03:27:47,219 --> 03:27:49,340
where task steps aren't even necessary.
4859
03:27:49,340 --> 03:27:51,739
And so if each of these are one minute,
4860
03:27:52,200 --> 03:27:53,959
obviously that's one minute plus one minute
4861
03:27:53,959 --> 03:27:56,680
plus one minute equals a total time of three minutes
4862
03:27:56,680 --> 03:27:57,559
to complete the task.
4863
03:27:57,959 --> 03:28:00,520
Multiply this by 60, you get an hour, an hour, an hour,
4864
03:28:00,719 --> 03:28:01,319
three hours.
4865
03:28:01,920 --> 03:28:05,239
I'm sure you can start understanding why we parallelize work.
4866
03:28:05,360 --> 03:28:06,840
Much better to be able to spin up
4867
03:28:06,840 --> 03:28:08,799
three separate solutions,
4868
03:28:09,260 --> 03:28:11,000
have those operate simultaneously
4869
03:28:11,620 --> 03:28:15,239
and then merely integrate their results into one thread.
4870
03:28:15,899 --> 03:28:17,360
Okay, in a situation like this,
4871
03:28:17,440 --> 03:28:18,780
assuming one, two, three, take one minute,
4872
03:28:18,780 --> 03:28:21,139
obviously the total time spent is about one minute.
4873
03:28:21,260 --> 03:28:23,600
So just like subagents allows one agent to spin up
4874
03:28:23,600 --> 03:28:26,520
a bunch of these different tasks and then parallelize them,
4875
03:28:26,899 --> 03:28:28,360
so too do agent teams.
4876
03:28:28,680 --> 03:28:30,860
It's just they operate one level even higher.
4877
03:28:31,239 --> 03:28:34,120
Instead of splitting one thread into three,
4878
03:28:34,440 --> 03:28:36,840
what you end up doing is you basically end up splitting
4879
03:28:36,840 --> 03:28:38,840
as many threads as you want
4880
03:28:38,840 --> 03:28:42,040
into as many sub threads as you want as well.
4881
03:28:42,500 --> 03:28:44,659
And so in this specific case, basically,
4882
03:28:44,659 --> 03:28:48,680
I have one what's called team lead agent.
4883
03:28:49,620 --> 03:28:52,319
And this team lead agent, as opposed to doing one, two,
4884
03:28:52,340 --> 03:28:56,399
three, four, five, and six himself,
4885
03:28:56,899 --> 03:28:58,440
what he's doing is he's splitting things up
4886
03:28:58,440 --> 03:29:00,639
into two separate agents here,
4887
03:29:01,000 --> 03:29:04,100
having them both run three subagents on their own
4888
03:29:04,100 --> 03:29:07,059
and then combine that into one call.
4889
03:29:07,479 --> 03:29:10,540
At the end of it, this agent then combines them back
4890
03:29:10,540 --> 03:29:12,819
into the main thread and then can reason about things
4891
03:29:12,819 --> 03:29:13,719
and so on and so forth.
4892
03:29:13,719 --> 03:29:17,299
Much in the same way that if you think about it,
4893
03:29:17,659 --> 03:29:18,780
organizational hierarchies work.
4894
03:29:19,200 --> 03:29:21,620
You'll have like a manager up here in a business,
4895
03:29:21,819 --> 03:29:25,239
and then you'll have, for lack of better words,
4896
03:29:25,600 --> 03:29:27,399
like grunts down at the bottom.
4897
03:29:27,700 --> 03:29:29,420
The manager tells the grunt what to do.
4898
03:29:29,719 --> 03:29:33,479
The grunt goes, does what they want, and then reports back.
4899
03:29:33,979 --> 03:29:36,799
So too, do we have sort of the same system
4900
03:29:36,799 --> 03:29:39,780
with subagents and now manager agents as well.
4901
03:29:39,840 --> 03:29:42,299
And then you basically sit outside of this whole thing,
4902
03:29:42,299 --> 03:29:45,379
just watching it all occur and then nudging different people
4903
03:29:45,379 --> 03:29:47,559
within the organization or letting the team lead know
4904
03:29:47,559 --> 03:29:49,100
you wanna change something where necessary.
4905
03:29:49,159 --> 03:29:50,399
So if you break things down,
4906
03:29:51,079 --> 03:29:53,459
subagents own all of the context window
4907
03:29:53,459 --> 03:29:56,819
and the results return to the agent that called them.
4908
03:29:57,159 --> 03:29:58,440
So in our case, we have a parent agent,
4909
03:29:58,440 --> 03:29:59,299
we have a child agent.
4910
03:29:59,700 --> 03:30:02,059
Our child agent owns its own context window
4911
03:30:02,059 --> 03:30:04,639
and the results, every time, always go directly
4912
03:30:04,639 --> 03:30:06,860
to the person or the agent, I should say.
4913
03:30:07,020 --> 03:30:09,020
Look at me, anthropomorphize and these damn things
4914
03:30:09,020 --> 03:30:09,879
that called it.
4915
03:30:09,879 --> 03:30:13,520
On agent teams, they own their own context window completely.
4916
03:30:13,760 --> 03:30:15,180
They're also fully independent.
4917
03:30:15,219 --> 03:30:18,200
And so they don't necessarily have to return their results
4918
03:30:18,200 --> 03:30:19,000
back to the caller.
4919
03:30:19,360 --> 03:30:21,840
In fact, agent teams can communicate between them.
4920
03:30:22,219 --> 03:30:24,440
So earlier, where we saw the grunts communicating
4921
03:30:24,440 --> 03:30:27,239
with the manager, grunts also have the ability
4922
03:30:27,239 --> 03:30:29,200
to basically communicate between each other.
4923
03:30:29,459 --> 03:30:32,159
And while I think that this is ultimately less powerful
4924
03:30:32,159 --> 03:30:34,180
or less effective than communicating with the manager
4925
03:30:34,180 --> 03:30:36,260
because the manager is responsible for synthesis,
4926
03:30:36,979 --> 03:30:38,399
there are some instances where, you know,
4927
03:30:38,399 --> 03:30:40,979
Grunt 1 does have a interesting revelation
4928
03:30:40,979 --> 03:30:43,139
or time saver for Grunt 2 that could save them
4929
03:30:43,139 --> 03:30:43,899
a fair amount of time.
4930
03:30:44,200 --> 03:30:47,100
And in that way, this sort of cross contamination
4931
03:30:47,100 --> 03:30:48,620
and cross pollination of ideas,
4932
03:30:48,899 --> 03:30:50,200
while consuming significantly more tokens
4933
03:30:50,200 --> 03:30:52,040
can lead to a better quality final product.
4934
03:30:52,120 --> 03:30:53,819
And that takes us to communication, right?
4935
03:30:54,299 --> 03:30:55,840
With sub-agents, you always report back
4936
03:30:55,840 --> 03:30:56,840
to the main agent only,
4937
03:30:56,899 --> 03:30:58,940
but here teammates can message each other directly.
4938
03:30:59,319 --> 03:31:01,399
Basically, what occurs in an agent team is
4939
03:31:01,399 --> 03:31:03,500
they build this mutual scratch pad,
4940
03:31:03,520 --> 03:31:06,180
which is almost like a message board or a BBS board,
4941
03:31:06,200 --> 03:31:07,739
if you guys remember from way back in the day.
4942
03:31:07,739 --> 03:31:09,479
It's like a forum, it's like they're on mini Reddit
4943
03:31:09,479 --> 03:31:12,340
and they'll post tasks that they're currently working on.
4944
03:31:12,559 --> 03:31:13,340
If they have any questions,
4945
03:31:13,340 --> 03:31:14,739
they'll ask specific people
4946
03:31:14,739 --> 03:31:16,440
that are responsible for those things.
4947
03:31:16,639 --> 03:31:18,719
And they'll always just have that stored in their context.
4948
03:31:18,760 --> 03:31:20,920
So if they, you know, have a question from one person,
4949
03:31:21,020 --> 03:31:23,120
they can prioritize that question
4950
03:31:23,120 --> 03:31:25,299
and then go and find it in another context
4951
03:31:25,299 --> 03:31:26,200
and immediately reply.
4952
03:31:26,760 --> 03:31:29,020
In that way, you could save individual agents
4953
03:31:29,020 --> 03:31:30,260
significant amounts of time.
4954
03:31:30,260 --> 03:31:31,260
In terms of coordination here,
4955
03:31:31,280 --> 03:31:32,760
the main agent manages all the work,
4956
03:31:32,760 --> 03:31:34,219
but with agent teams,
4957
03:31:34,219 --> 03:31:36,399
it's a shared task list with self-coordination.
4958
03:31:36,399 --> 03:31:38,120
So just like we had a little Trello board
4959
03:31:38,120 --> 03:31:40,680
or maybe, you know, a click up task list
4960
03:31:40,680 --> 03:31:41,540
or something like that.
4961
03:31:41,579 --> 03:31:44,000
So too do these agents work off the JSON equivalence.
4962
03:31:45,219 --> 03:31:47,719
They say that sub-agents are best for focused tasks
4963
03:31:47,719 --> 03:31:49,040
where only one result matters,
4964
03:31:49,219 --> 03:31:51,079
whereas agent teams are best for complex work
4965
03:31:51,079 --> 03:31:52,559
requiring discussion and collaboration.
4966
03:31:53,180 --> 03:31:54,200
You know, this is just one of those
4967
03:31:54,200 --> 03:31:55,600
like little marketing isms.
4968
03:31:55,739 --> 03:31:59,079
The definition between focused task and complex task
4969
03:31:59,079 --> 03:32:00,299
is very, very fuzzy,
4970
03:32:00,299 --> 03:32:02,319
and there is no real delineation between them.
4971
03:32:02,379 --> 03:32:03,959
It's sort of like how there's a certain point
4972
03:32:03,959 --> 03:32:05,159
at which a hill becomes a mountain,
4973
03:32:05,159 --> 03:32:07,940
but nobody could tell you exactly how many feet high
4974
03:32:07,940 --> 03:32:09,719
the hill needs to be or whatever, right?
4975
03:32:10,200 --> 03:32:12,299
It's just one of those things where when you know, you know.
4976
03:32:12,899 --> 03:32:15,239
And finally, the token costs of sub-agents are quite low,
4977
03:32:15,360 --> 03:32:16,319
relatively speaking,
4978
03:32:16,500 --> 03:32:18,059
whereas agent teams are very, very high
4979
03:32:18,059 --> 03:32:19,260
because every teammate
4980
03:32:19,260 --> 03:32:21,139
is actually a whole separate clot instance.
4981
03:32:21,440 --> 03:32:23,819
So when you scale up and spin up a bunch of these,
4982
03:32:24,079 --> 03:32:25,680
you can use a fair amount of tokens quite quickly.
4983
03:32:25,780 --> 03:32:26,940
Now I should note that agent teams
4984
03:32:26,940 --> 03:32:28,440
are not enabled by default
4985
03:32:28,440 --> 03:32:31,159
because they're what we call an experimental feature.
4986
03:32:31,319 --> 03:32:32,579
This may not necessarily be true
4987
03:32:32,579 --> 03:32:33,899
by the time you're watching, by the way,
4988
03:32:33,899 --> 03:32:35,059
but for now they are.
4989
03:32:35,840 --> 03:32:38,879
They have set them to off essentially by default.
4990
03:32:39,360 --> 03:32:41,479
And so only advanced users really get to peer
4991
03:32:41,479 --> 03:32:43,319
behind the curtain and use them.
4992
03:32:43,719 --> 03:32:44,780
The way that you enable them
4993
03:32:44,780 --> 03:32:47,899
is you edit your settings.json in your current workspace,
4994
03:32:47,899 --> 03:32:50,319
and you just create this sort of little string.
4995
03:32:50,360 --> 03:32:52,940
You have this curly brace, you have env, env,
4996
03:32:53,200 --> 03:32:54,959
you have clod code, experimental agent teams,
4997
03:32:55,020 --> 03:32:55,799
you set that to one,
4998
03:32:55,799 --> 03:32:57,239
and then you have some closing curly brackets.
4999
03:32:57,579 --> 03:32:58,579
You don't need to worry too much about that.
5000
03:32:58,639 --> 03:32:59,739
We'll do that in like five seconds.
5001
03:32:59,979 --> 03:33:01,899
Finally, the cool thing about agent teams as mentioned
5002
03:33:01,899 --> 03:33:02,760
is you can't just,
5003
03:33:02,760 --> 03:33:05,559
it's not only that you can communicate with the parent agent,
5004
03:33:05,780 --> 03:33:07,239
you can communicate with all of the agents.
5005
03:33:07,700 --> 03:33:09,840
So if, I don't know, you want to context switch
5006
03:33:09,840 --> 03:33:12,479
and tell agent three in the sequence
5007
03:33:12,479 --> 03:33:14,180
to do something different than it was currently doing,
5008
03:33:14,420 --> 03:33:16,120
you can absolutely do that really easily.
5009
03:33:16,520 --> 03:33:17,739
There are two different ways to do so.
5010
03:33:17,860 --> 03:33:19,139
There's what's called in process mode
5011
03:33:19,139 --> 03:33:20,100
and then split pane mode,
5012
03:33:20,180 --> 03:33:21,340
at least this is the time of this recording.
5013
03:33:21,700 --> 03:33:23,600
One is where you basically just like alt tab
5014
03:33:23,600 --> 03:33:24,200
through all of them.
5015
03:33:24,239 --> 03:33:26,000
The other is where there's just multiple panes.
5016
03:33:26,040 --> 03:33:27,940
And so you'll see agent one over here,
5017
03:33:28,000 --> 03:33:30,120
you'll see agent two over here, agent three over here,
5018
03:33:30,120 --> 03:33:31,440
and then you'll kind of get their feed.
5019
03:33:32,079 --> 03:33:33,659
I will note, I've done this before,
5020
03:33:33,819 --> 03:33:36,139
unfortunately, because Claude Code renders your,
5021
03:33:36,540 --> 03:33:38,280
it's not just like a simple text terminal.
5022
03:33:38,540 --> 03:33:41,819
Basically they're like rendering this 2D image
5023
03:33:41,819 --> 03:33:42,940
constantly on your screen.
5024
03:33:43,420 --> 03:33:44,739
It can consume a fair amount of compute.
5025
03:33:44,780 --> 03:33:46,520
So I don't actually like using it that way anymore.
5026
03:33:46,620 --> 03:33:48,340
I basically always use it in process,
5027
03:33:48,520 --> 03:33:49,840
but I'll run you through what that looks like
5028
03:33:49,840 --> 03:33:51,139
if you did want to use split pane mode.
5029
03:33:51,299 --> 03:33:54,559
And then obligatory agent team tokens cost way more
5030
03:33:54,559 --> 03:33:57,040
because you're spawning tons of different cloud instances.
5031
03:33:57,460 --> 03:33:59,340
And every single one has its own context window
5032
03:33:59,340 --> 03:34:00,319
and can do its own stuff.
5033
03:34:00,319 --> 03:34:02,860
So if you have like 10 active agents running,
5034
03:34:03,000 --> 03:34:04,579
you're gonna consume about 10 times the context,
5035
03:34:04,620 --> 03:34:06,120
if not more, because there's also gonna be
5036
03:34:06,120 --> 03:34:08,899
some coordination and communication lag and overhead.
5037
03:34:09,440 --> 03:34:10,760
So they have some recommendations here.
5038
03:34:10,959 --> 03:34:12,340
They say use Sonnet for teammates,
5039
03:34:12,940 --> 03:34:14,639
keep teams really small because every teammate
5040
03:34:14,639 --> 03:34:15,780
runs its own context window.
5041
03:34:15,819 --> 03:34:17,879
So token usage is roughly proportional to team size.
5042
03:34:18,260 --> 03:34:19,899
Keep the spawn prompts focused.
5043
03:34:20,159 --> 03:34:21,020
We don't know what those are.
5044
03:34:21,059 --> 03:34:22,319
So I'll tell you that in a second.
5045
03:34:22,639 --> 03:34:24,139
Teammates will load their own cloud MD,
5046
03:34:24,319 --> 03:34:25,920
MCP servers and skills automatically,
5047
03:34:25,979 --> 03:34:27,180
but everything in the spawn prompt
5048
03:34:27,180 --> 03:34:28,860
will also add to their context from the start.
5049
03:34:29,380 --> 03:34:30,639
Clean up teams when the work is done.
5050
03:34:31,040 --> 03:34:33,299
So you can actually roll them down or shut them down.
5051
03:34:33,879 --> 03:34:35,780
And then, yeah, agent teams are disabled by default
5052
03:34:35,780 --> 03:34:37,940
because they don't want anybody blowing $10,000
5053
03:34:37,940 --> 03:34:39,100
on agent teams in the day,
5054
03:34:39,280 --> 03:34:41,479
which you can absolutely do if you're not careful.
5055
03:34:41,559 --> 03:34:42,819
That's why limits are so important.
5056
03:34:43,000 --> 03:34:43,940
Okay, so first things first,
5057
03:34:43,940 --> 03:34:46,000
we have to actually enable agent teams.
5058
03:34:46,020 --> 03:34:47,979
So I'm just gonna jump over here to this URL.
5059
03:34:48,420 --> 03:34:50,959
And then I'm just gonna copy all of the text on this page.
5060
03:34:51,120 --> 03:34:53,479
And then I'm gonna go over to anti-gravity,
5061
03:34:53,799 --> 03:34:54,639
open that puppy up.
5062
03:34:54,819 --> 03:34:56,459
And just for the purposes of this example,
5063
03:34:56,500 --> 03:34:58,360
I'm actually just gonna open a new folder.
5064
03:34:58,360 --> 03:35:02,440
So go to my Mac and then I'll say agent teams example.
5065
03:35:02,739 --> 03:35:04,200
Okay, and I open that.
5066
03:35:04,680 --> 03:35:06,639
And then what I'm gonna do is go over to cloud,
5067
03:35:07,239 --> 03:35:11,180
paste this in, and I'm gonna say enable agent teams.
5068
03:35:12,120 --> 03:35:13,399
I'm gonna go bypass permissions,
5069
03:35:13,760 --> 03:35:15,600
close this puppy out so we can all see it.
5070
03:35:15,940 --> 03:35:17,159
Maybe bump this out a bit
5071
03:35:17,159 --> 03:35:18,799
so you guys can always see the text.
5072
03:35:19,440 --> 03:35:22,459
So it's now added my settings.json here
5073
03:35:22,459 --> 03:35:23,559
and it's kind of fixed it.
5074
03:35:23,659 --> 03:35:25,360
Okay, so this is now good to go.
5075
03:35:25,459 --> 03:35:28,079
And it's enabled this across my global workspace.
5076
03:35:28,079 --> 03:35:29,680
So it's not actually even in my file.
5077
03:35:29,719 --> 03:35:31,659
Let's start with a really simple example of agent teams.
5078
03:35:31,700 --> 03:35:33,739
So I could show you the parallelization aspect.
5079
03:35:33,799 --> 03:35:35,120
And then what we'll do is we'll actually go
5080
03:35:35,120 --> 03:35:36,860
into an open source code base.
5081
03:35:37,040 --> 03:35:40,420
And I'll use agent teams to act as both code reviewers
5082
03:35:40,420 --> 03:35:43,579
and then also debaters to debate between each other
5083
03:35:43,579 --> 03:35:45,059
until they determine that consensus
5084
03:35:45,059 --> 03:35:46,340
on how to make the code even better.
5085
03:35:46,899 --> 03:35:48,479
So our first super simple example is gonna be,
5086
03:35:48,680 --> 03:35:50,940
I'm designing a simple personal website for Nix or Iave.
5087
03:35:51,120 --> 03:35:52,440
Generate three agents using a team
5088
03:35:52,440 --> 03:35:54,040
and create three fundamentally different designs.
5089
03:35:54,500 --> 03:35:56,780
Open all three once done and I'll compare, contrast
5090
03:35:56,780 --> 03:35:58,219
and give feedback.
5091
03:36:01,699 --> 03:36:05,940
Also make sure they know everything there is to know
5092
03:36:05,940 --> 03:36:10,200
about me so nobody is waiting on anything.
5093
03:36:11,260 --> 03:36:14,040
So I'm using a terminal for this just because the terminal UX
5094
03:36:14,040 --> 03:36:16,559
is much nicer for agent teams than the GUI UX.
5095
03:36:16,600 --> 03:36:18,739
I'm sure that'll change at some point, but yeah,
5096
03:36:18,739 --> 03:36:20,139
I also have fast mode on up here,
5097
03:36:20,139 --> 03:36:22,260
which is just allowing me to do this a little bit faster.
5098
03:36:22,440 --> 03:36:24,879
And so as you see, what's occurred is the agent,
5099
03:36:24,879 --> 03:36:26,979
this parent agent here, Opus 4.6,
5100
03:36:27,219 --> 03:36:28,719
sort of made the executive decision
5101
03:36:28,719 --> 03:36:31,579
for its very first task, basically.
5102
03:36:32,100 --> 03:36:33,879
Oh, that's so cool, I didn't even know I could do this,
5103
03:36:34,020 --> 03:36:36,420
to do research on Nix.
5104
03:36:36,780 --> 03:36:38,579
And so after it's done the research, basically,
5105
03:36:38,639 --> 03:36:42,600
it's now gonna spin up three agents, one for site one,
5106
03:36:42,920 --> 03:36:45,559
another for site two and another for site three.
5107
03:36:45,620 --> 03:36:47,180
I really gotta figure out how to do this with hotkeys,
5108
03:36:47,200 --> 03:36:47,819
it's super annoying.
5109
03:36:49,299 --> 03:36:51,200
And then these three agents are gonna go working
5110
03:36:51,200 --> 03:36:53,340
on this thing simultaneously and independently
5111
03:36:53,340 --> 03:36:55,440
and then they're going to combine those three websites
5112
03:36:55,440 --> 03:36:57,719
back into just like we did with subagents,
5113
03:36:57,819 --> 03:36:58,579
sort of that main thread.
5114
03:36:59,120 --> 03:37:01,979
But what's cool is these three different agent teams,
5115
03:37:02,020 --> 03:37:03,700
since they're all individual Claude Code instances,
5116
03:37:03,979 --> 03:37:06,319
they get to do a variety of different things.
5117
03:37:06,379 --> 03:37:08,260
They also get to access their own agents,
5118
03:37:08,379 --> 03:37:10,120
use their own code base and stuff like that.
5119
03:37:10,600 --> 03:37:13,520
So what's really cool is we have three agents
5120
03:37:13,520 --> 03:37:14,500
now working in parallel.
5121
03:37:14,879 --> 03:37:16,340
The first is called Design Minimalist,
5122
03:37:16,579 --> 03:37:17,739
the second is called Design Dark,
5123
03:37:17,760 --> 03:37:19,120
and the third is called Design Warm.
5124
03:37:19,520 --> 03:37:21,360
I asked for fundamentally different types of designs,
5125
03:37:21,420 --> 03:37:22,360
which is why they're doing this.
5126
03:37:22,360 --> 03:37:23,700
Now, if you wanted to see all these agents
5127
03:37:23,700 --> 03:37:24,500
run simultaneously,
5128
03:37:24,600 --> 03:37:27,020
all you'd have to do is just go shift up or down.
5129
03:37:27,520 --> 03:37:30,260
And so right now I'm in the Team Lead context,
5130
03:37:30,360 --> 03:37:32,559
but I could actually go down here and then press enter.
5131
03:37:32,659 --> 03:37:33,840
And now I'm in the Design Dark.
5132
03:37:34,319 --> 03:37:36,520
As you see here, we got a ton of information here
5133
03:37:36,520 --> 03:37:38,620
with some context about who NixRyf is,
5134
03:37:38,639 --> 03:37:40,239
and then it says you're designing a personal website,
5135
03:37:40,360 --> 03:37:41,700
create a single self-contained file.
5136
03:37:41,979 --> 03:37:43,899
It's now creating a bold dark tech website.
5137
03:37:44,600 --> 03:37:46,579
We could also go up to the main Team Lead
5138
03:37:46,579 --> 03:37:48,079
and then you could see that it's let me know
5139
03:37:48,079 --> 03:37:49,639
that the Design Minimalist is done
5140
03:37:49,639 --> 03:37:51,780
and it's still waiting on Design Dark and Design Warm
5141
03:37:51,780 --> 03:37:52,579
to finish their builds.
5142
03:37:53,340 --> 03:37:55,819
So I mean, like how exactly is this different from,
5143
03:37:56,460 --> 03:37:58,000
I don't know, like sub-agents right now?
5144
03:37:58,379 --> 03:38:00,079
Well, it's different from sub-agents
5145
03:38:00,079 --> 03:38:02,399
in that you can treat every one of these
5146
03:38:02,399 --> 03:38:05,299
as basically having its own whole Clawed code instance
5147
03:38:05,299 --> 03:38:06,440
available to it, okay?
5148
03:38:06,579 --> 03:38:09,079
Whereas before every individual sub-agent
5149
03:38:09,079 --> 03:38:11,399
only had access to the contacts that the parent agent gave,
5150
03:38:12,020 --> 03:38:14,639
realistically, what I could do is I could add a Clawed.md,
5151
03:38:14,840 --> 03:38:17,659
and all three of these would have access to Clawed.md,
5152
03:38:17,659 --> 03:38:19,420
you know, style guides and stuff like that.
5153
03:38:19,659 --> 03:38:21,340
So I'm gonna take a look at this, okay?
5154
03:38:21,340 --> 03:38:22,819
Saying that it's all done now,
5155
03:38:22,979 --> 03:38:25,020
and it actually shut down all three of those agents as well,
5156
03:38:25,040 --> 03:38:26,159
which is really, really important.
5157
03:38:26,459 --> 03:38:27,940
If they're constantly running in the background,
5158
03:38:28,120 --> 03:38:31,540
you're also gonna be consuming compute resources
5159
03:38:31,540 --> 03:38:32,799
just as well as UR tokens.
5160
03:38:33,479 --> 03:38:35,059
Now I'm gonna compare which ones I like more.
5161
03:38:35,500 --> 03:38:36,979
This one up here is building at the intersection
5162
03:38:36,979 --> 03:38:38,440
of AI and human ambition.
5163
03:38:38,719 --> 03:38:40,319
Wow, look at that, that's nice.
5164
03:38:40,680 --> 03:38:41,860
Geez, insane.
5165
03:38:42,120 --> 03:38:43,360
It's got a couple things wrong here.
5166
03:38:43,479 --> 03:38:45,200
Definitely have more than 150K YouTube sales,
5167
03:38:45,200 --> 03:38:46,379
but what are you gonna do?
5168
03:38:46,920 --> 03:38:48,799
Looks like it does have my links, which is kinda cool.
5169
03:38:48,799 --> 03:38:51,840
This is like, you know, dark coding one.
5170
03:38:51,860 --> 03:38:52,840
Look at that, isn't that neat?
5171
03:38:53,620 --> 03:38:55,920
And this one over here is very interesting.
5172
03:38:56,120 --> 03:38:57,319
There's no picture of me on it,
5173
03:38:57,319 --> 03:38:58,659
but hey, what are you gonna do?
5174
03:38:59,559 --> 03:39:01,600
That was my little nightclub promotions party.
5175
03:39:02,279 --> 03:39:03,840
Business, that's a hell of a throwback.
5176
03:39:04,559 --> 03:39:05,799
And yeah, what happens if I click this?
5177
03:39:05,819 --> 03:39:07,420
Okay, cool, we go back to our YouTube.
5178
03:39:07,479 --> 03:39:08,319
That's really exciting.
5179
03:39:08,840 --> 03:39:11,420
So I mean, like, I don't know, maybe, hmm.
5180
03:39:12,879 --> 03:39:16,219
Maybe I really like the first one.
5181
03:39:16,459 --> 03:39:17,899
So now what I'm gonna do is I'm gonna go back
5182
03:39:17,899 --> 03:39:19,639
and I'm gonna say, hey, I really liked
5183
03:39:19,639 --> 03:39:22,659
the warm narrative option, looks great.
5184
03:39:22,979 --> 03:39:25,399
I'd like you now to spin up three more agents.
5185
03:39:25,840 --> 03:39:27,659
I then want you guys to do research
5186
03:39:29,760 --> 03:39:31,700
on effective design principles
5187
03:39:33,540 --> 03:39:35,739
and copywriting principles that convert.
5188
03:39:36,520 --> 03:39:39,040
Once done, I want you to spin up a bunch of agents
5189
03:39:39,040 --> 03:39:40,780
to iterate on this design
5190
03:39:40,780 --> 03:39:43,540
and come up with their own flavors or versions,
5191
03:39:43,979 --> 03:39:44,899
then report back to me.
5192
03:39:44,940 --> 03:39:47,100
So now what I'm doing is I'm taking, you know,
5193
03:39:47,100 --> 03:39:48,840
this winning design here, the warm one,
5194
03:39:49,200 --> 03:39:51,000
it's gonna take this warm, beautiful thing,
5195
03:39:51,040 --> 03:39:53,200
and then I basically want it to like iterate on it even more.
5196
03:39:53,579 --> 03:39:55,319
And as you saw, this occurred pretty quickly, right?
5197
03:39:55,340 --> 03:39:57,219
I mean, this took me maybe like two minutes or so.
5198
03:39:57,559 --> 03:39:58,200
Is it perfect?
5199
03:39:58,260 --> 03:40:00,260
No, but because it's not perfect,
5200
03:40:00,280 --> 03:40:02,059
I basically just wanna have Claude do a bunch
5201
03:40:02,059 --> 03:40:03,719
of iterations on it and then give me what I consider
5202
03:40:03,719 --> 03:40:04,780
to be an even better version,
5203
03:40:04,840 --> 03:40:06,219
which I think it can do pretty quick.
5204
03:40:06,579 --> 03:40:08,159
So it's gonna spin up a bunch more.
5205
03:40:08,239 --> 03:40:10,100
We have research, copy, research, design,
5206
03:40:10,139 --> 03:40:11,020
and research examples.
5207
03:40:11,379 --> 03:40:13,879
This is a good, you know, actual use case here.
5208
03:40:13,879 --> 03:40:17,319
It's doing three research agents in parallel.
5209
03:40:17,959 --> 03:40:20,340
We have one that's figuring out like strong design principles
5210
03:40:20,340 --> 03:40:22,680
based off of, you know, winning combinations.
5211
03:40:23,159 --> 03:40:25,379
There's another that's doing some copywriting fundamentals.
5212
03:40:25,479 --> 03:40:26,479
And then the third that is looking
5213
03:40:26,479 --> 03:40:28,540
for high quality creator sites.
5214
03:40:28,760 --> 03:40:31,440
So Ali Abdel, guy that I like, Hormozi, obviously.
5215
03:40:32,000 --> 03:40:33,260
Dan Coe, these guys are perfect.
5216
03:40:33,280 --> 03:40:34,700
It's more or less exactly what I'm looking for.
5217
03:40:35,040 --> 03:40:36,620
So it's gonna go do a bunch of research on them.
5218
03:40:36,620 --> 03:40:38,040
And then it's going to incorporate that
5219
03:40:38,040 --> 03:40:40,299
in presumably some other type of designer.
5220
03:40:40,659 --> 03:40:42,879
I could see the status by going shift up and down.
5221
03:40:42,879 --> 03:40:44,819
So this person here, research copy,
5222
03:40:45,299 --> 03:40:47,239
it's looking up, I don't know,
5223
03:40:47,600 --> 03:40:49,879
best hero copy formulas, personal brand,
5224
03:40:50,600 --> 03:40:52,219
scannable web copy best practices,
5225
03:40:52,780 --> 03:40:54,680
David Ogilvie copywriting principles,
5226
03:40:54,799 --> 03:40:56,079
headlines that work, right?
5227
03:40:56,340 --> 03:40:58,319
If I go down here to research examples,
5228
03:40:58,639 --> 03:41:00,559
this agent is now writing up
5229
03:41:00,559 --> 03:41:03,100
a bunch of high quality website styles.
5230
03:41:03,379 --> 03:41:04,840
It's then analyzing the websites
5231
03:41:04,840 --> 03:41:06,379
and, you know, giving me all of the copy
5232
03:41:06,379 --> 03:41:07,139
and stuff like that.
5233
03:41:07,219 --> 03:41:08,620
Presumably it's going to integrate this
5234
03:41:08,620 --> 03:41:09,500
into something nice.
5235
03:41:10,139 --> 03:41:11,459
But if I go back up to the team lead,
5236
03:41:11,459 --> 03:41:12,920
then I can see that it's, you know,
5237
03:41:13,079 --> 03:41:14,840
basically just waiting on all three of these to finish.
5238
03:41:15,459 --> 03:41:18,079
What's cool is these three all have their own token usages,
5239
03:41:18,120 --> 03:41:18,799
as you see here.
5240
03:41:19,219 --> 03:41:21,420
So 53,000, this one here is 56,000,
5241
03:41:21,440 --> 03:41:22,579
this one here is 50,000.
5242
03:41:22,940 --> 03:41:24,719
When they finish, it then says idle
5243
03:41:24,719 --> 03:41:27,239
and it tells you how many seconds that the agent is idle.
5244
03:41:27,860 --> 03:41:29,200
This is, you know, mildly useful,
5245
03:41:29,299 --> 03:41:31,379
obviously not utilizing your cloud agents
5246
03:41:31,379 --> 03:41:33,059
is one of like the biggest issues with them.
5247
03:41:33,340 --> 03:41:34,760
So what this thing is going to do
5248
03:41:34,760 --> 03:41:36,420
is basically wait for these other two to finish.
5249
03:41:36,459 --> 03:41:38,479
And then if these other two don't finish
5250
03:41:38,479 --> 03:41:39,260
after a certain amount of time,
5251
03:41:39,319 --> 03:41:41,139
they'll actually just wind down the research design agent
5252
03:41:41,139 --> 03:41:42,979
to stop consuming my compute and stuff.
5253
03:41:43,440 --> 03:41:44,680
Probably the research examples
5254
03:41:44,680 --> 03:41:45,719
is going to take the longest time,
5255
03:41:45,760 --> 03:41:47,479
just because I think that that's like
5256
03:41:47,479 --> 03:41:50,760
less of a clear cut definition of done, but we'll see.
5257
03:41:50,920 --> 03:41:52,659
And then what's really nice is these are cheaper models,
5258
03:41:53,260 --> 03:41:53,319
right?
5259
03:41:53,940 --> 03:41:55,600
58,000 tokens on the cheaper model,
5260
03:41:55,799 --> 03:41:57,840
56,000 tokens on the cheaper model,
5261
03:41:58,219 --> 03:42:00,139
then only 2000 tokens on the most expensive model.
5262
03:42:00,520 --> 03:42:02,639
And so we haven't actually integrated all of that stuff
5263
03:42:02,639 --> 03:42:05,100
back into the main yet, but as these finish,
5264
03:42:05,120 --> 03:42:06,420
they will eventually, you know,
5265
03:42:06,420 --> 03:42:08,500
take all of their tokens and then bring them back in.
5266
03:42:08,500 --> 03:42:11,000
And so this token count will increase significantly.
5267
03:42:11,440 --> 03:42:12,920
Okay, now that all three of these are done,
5268
03:42:12,940 --> 03:42:16,600
we've collapsed these three agents into the team lead.
5269
03:42:17,219 --> 03:42:20,000
Now we have these big design principles doc,
5270
03:42:20,280 --> 03:42:21,899
research copywriting doc, you know,
5271
03:42:21,940 --> 03:42:23,299
research site example doc.
5272
03:42:23,760 --> 03:42:26,079
And because I've empowered the team lead
5273
03:42:26,079 --> 03:42:28,840
to be able to spin up new agents based off of, you know,
5274
03:42:29,000 --> 03:42:31,360
various things like the conversion rate,
5275
03:42:31,639 --> 03:42:33,500
the copy, the creative and the style,
5276
03:42:33,680 --> 03:42:35,819
it's now generating new ones.
5277
03:42:35,819 --> 03:42:38,139
So there's an iterate dark, iterate conversion.
5278
03:42:39,180 --> 03:42:41,479
I don't know how many of these it's going to spin up,
5279
03:42:41,479 --> 03:42:42,700
but it's definitely gonna spin up some.
5280
03:42:43,739 --> 03:42:44,139
In the meantime,
5281
03:42:44,139 --> 03:42:46,120
we also have these really dense research summaries.
5282
03:42:46,120 --> 03:42:48,540
So I can actually open this research design principles doc.
5283
03:42:49,360 --> 03:42:51,579
If I just scroll down a bit so you could see,
5284
03:42:51,979 --> 03:42:55,219
we now have things like there's a Z pattern layout.
5285
03:42:55,299 --> 03:42:56,719
Since the eye starts in the top left
5286
03:42:56,719 --> 03:42:57,819
and moves to the top right,
5287
03:42:58,100 --> 03:43:00,239
your nav and CTA should be at particular places.
5288
03:43:00,319 --> 03:43:01,680
There's also an F pattern layout
5289
03:43:01,680 --> 03:43:04,479
and different actionable recommendations on color psychology
5290
03:43:04,479 --> 03:43:05,440
and so on and so forth.
5291
03:43:05,440 --> 03:43:07,059
I mean, this is a tremendous amount of text.
5292
03:43:07,159 --> 03:43:09,260
Is this the most efficient way to like get all this across?
5293
03:43:09,260 --> 03:43:09,840
Probably not.
5294
03:43:10,100 --> 03:43:11,799
But because these models just think so much quicker
5295
03:43:11,799 --> 03:43:12,659
than we do at this point,
5296
03:43:13,020 --> 03:43:14,399
we don't really need it to be as efficient.
5297
03:43:14,500 --> 03:43:16,280
We can actually just throw a tremendous amount of text
5298
03:43:16,280 --> 03:43:17,940
out of prompt and it can actually do a pretty good job.
5299
03:43:18,159 --> 03:43:20,879
What I really like about this is it took key inspirations
5300
03:43:20,879 --> 03:43:21,979
from different people.
5301
03:43:22,239 --> 03:43:24,639
So in this case, Justin Welsh's upside down homepage.
5302
03:43:24,799 --> 03:43:26,340
I really liked Justin Welsh, so that's great.
5303
03:43:26,780 --> 03:43:28,819
Dan Coe and Seahill Bloom's dark premium,
5304
03:43:28,920 --> 03:43:30,459
bold typography, origin story
5305
03:43:30,459 --> 03:43:32,040
is some sort of cinematic centerpiece.
5306
03:43:32,280 --> 03:43:34,399
Like it's taken inspiration from all these different people.
5307
03:43:34,399 --> 03:43:37,239
Then it's combining them with slightly different
5308
03:43:37,239 --> 03:43:39,159
copywriting directions to create things
5309
03:43:39,159 --> 03:43:40,159
that are ultimately new
5310
03:43:40,159 --> 03:43:42,000
and presumably going to be quite different.
5311
03:43:42,500 --> 03:43:44,979
And you know, I think a lot of people rag on agents
5312
03:43:44,979 --> 03:43:46,440
and AI is not really being creative.
5313
03:43:46,700 --> 03:43:49,739
But like what is creativity if not just like combining things
5314
03:43:49,739 --> 03:43:50,879
over and over and over again
5315
03:43:50,879 --> 03:43:52,180
in like a million different combinations.
5316
03:43:52,719 --> 03:43:54,540
I'd wager most things that you probably consider
5317
03:43:54,540 --> 03:43:56,780
to be creative are things that like
5318
03:43:56,780 --> 03:43:59,979
whose preexisting pieces and principles existed before
5319
03:43:59,979 --> 03:44:01,620
and AI just combined them into something
5320
03:44:01,620 --> 03:44:03,860
that maybe hadn't really been put together in that way.
5321
03:44:03,860 --> 03:44:04,719
There are certain sentences
5322
03:44:04,719 --> 03:44:06,739
that have never been said before or written before.
5323
03:44:06,879 --> 03:44:08,200
You could be the first to write one.
5324
03:44:08,319 --> 03:44:09,139
Some of them are quite creative.
5325
03:44:09,360 --> 03:44:10,440
Okay, and we are done.
5326
03:44:10,600 --> 03:44:12,799
So the first site here is I hope aspiring entrepreneurs
5327
03:44:12,799 --> 03:44:14,799
build their first 25k month automation agency.
5328
03:44:14,899 --> 03:44:16,180
I like this, this is really clean.
5329
03:44:16,299 --> 03:44:17,360
That's actually quite the value prop.
5330
03:44:17,700 --> 03:44:19,260
We do have an issue with the button, obviously.
5331
03:44:20,000 --> 03:44:20,940
So the thing is this model
5332
03:44:21,619 --> 03:44:23,739
was not given the ability to screenshot.
5333
03:44:24,100 --> 03:44:25,200
I bet you if I did,
5334
03:44:25,379 --> 03:44:26,680
that would have been pretty straightforward.
5335
03:44:27,000 --> 03:44:28,159
So this is a good opportunity for me
5336
03:44:28,159 --> 03:44:29,680
to update the cloud.md and say,
5337
03:44:29,879 --> 03:44:30,979
hey, you know, you can do some screenshots.
5338
03:44:31,520 --> 03:44:32,799
Still, this looks really great.
5339
03:44:32,799 --> 03:44:34,479
Step one, watch the free training.
5340
03:44:34,579 --> 03:44:35,579
Step two, join maker school.
5341
03:44:35,659 --> 03:44:36,639
Step three, build your agency.
5342
03:44:36,780 --> 03:44:37,479
I mean, honestly,
5343
03:44:37,540 --> 03:44:39,120
the fact that this is just a couple of minutes,
5344
03:44:39,440 --> 03:44:42,399
this is so much better than what I could have done
5345
03:44:42,399 --> 03:44:43,360
in an equivalent amount of time.
5346
03:44:43,459 --> 03:44:44,120
It's not even funny.
5347
03:44:44,500 --> 03:44:47,299
And not only did I generate one, I generated three.
5348
03:44:47,739 --> 03:44:49,059
It's not the dark one, right?
5349
03:44:49,819 --> 03:44:50,479
That's pretty clean.
5350
03:44:50,620 --> 03:44:51,440
I like that.
5351
03:44:51,579 --> 03:44:53,040
This must be the Danco one.
5352
03:44:53,959 --> 03:44:55,479
There has to be a faster way to matter.
5353
03:44:55,579 --> 03:44:57,500
Ooh, that's clean, right?
5354
03:44:58,079 --> 03:44:59,920
Again, it's taken that main website
5355
03:44:59,920 --> 03:45:01,260
and then it's iterated on it
5356
03:45:01,260 --> 03:45:03,719
based off of different styles and different approaches,
5357
03:45:03,799 --> 03:45:05,399
which is more or less exactly what you do
5358
03:45:05,399 --> 03:45:07,620
in any sort of copywriting and so on and so forth.
5359
03:45:08,219 --> 03:45:08,979
So I really like this one.
5360
03:45:09,040 --> 03:45:11,100
I mean, this one to me is probably my favorite.
5361
03:45:11,780 --> 03:45:13,139
You wanna build an automation business,
5362
03:45:13,159 --> 03:45:14,000
but you don't know where to start.
5363
03:45:14,040 --> 03:45:15,139
I really, really like that.
5364
03:45:15,180 --> 03:45:16,819
So I think I'm actually gonna take that.
5365
03:45:17,360 --> 03:45:17,959
Great work.
5366
03:45:18,860 --> 03:45:20,520
Build in screenshot functionality.
5367
03:45:20,760 --> 03:45:22,399
Because you don't have the ability to screenshot,
5368
03:45:22,420 --> 03:45:23,540
a couple of things stand out.
5369
03:45:23,799 --> 03:45:26,879
Also get pictures of me to put on the site.
5370
03:45:29,219 --> 03:45:31,440
Let's choose the first one,
5371
03:45:31,579 --> 03:45:33,680
which is the conversion machine.
5372
03:45:34,559 --> 03:45:36,040
I think it's the conversion machine, right?
5373
03:45:36,100 --> 03:45:36,319
Yep.
5374
03:45:37,459 --> 03:45:38,940
Also, we need to update some stats.
5375
03:45:39,260 --> 03:45:43,299
We have 2,100 or 2,200 people in Maker School right now.
5376
03:45:43,440 --> 03:45:45,500
You can check that out just by Googling Maker School.
5377
03:45:46,100 --> 03:45:48,700
And then, let me see, what else do we have?
5378
03:45:48,899 --> 03:45:52,219
Grab the image of me, Alex Hormozi, and Sam Ubbins
5379
03:45:52,219 --> 03:45:53,440
and put that somewhere on the site
5380
03:45:53,440 --> 03:45:54,920
and add more to the site.
5381
03:45:54,940 --> 03:45:56,860
Right now it's good,
5382
03:45:56,860 --> 03:46:00,840
but I want it longer and with pictures of me.
5383
03:46:01,799 --> 03:46:03,840
Also see if you could build some sort of animation
5384
03:46:03,840 --> 03:46:04,920
on the main homepage.
5385
03:46:05,299 --> 03:46:07,260
I think that would add a significant amount
5386
03:46:07,260 --> 03:46:09,440
of visual appeal.
5387
03:46:09,760 --> 03:46:11,000
Right now it's pretty vague.
5388
03:46:11,239 --> 03:46:12,719
I do quite like the gradient though.
5389
03:46:13,719 --> 03:46:15,319
While you're at it, spin up another three
5390
03:46:15,319 --> 03:46:18,959
and continue doing more iterations, more sections, etc.
5391
03:46:19,319 --> 03:46:22,040
Okay, as you can see, we're now searching significantly more
5392
03:46:22,040 --> 03:46:25,479
of the total space of possible websites here.
5393
03:46:25,479 --> 03:46:28,760
Because not only did I spin up three initially
5394
03:46:28,760 --> 03:46:31,000
to build me these and then three iterations
5395
03:46:31,000 --> 03:46:33,940
on the one that I liked, I'm now spinning up another four
5396
03:46:33,940 --> 03:46:36,459
based off of the one that I really liked
5397
03:46:36,459 --> 03:46:37,780
from that previous iteration.
5398
03:46:38,319 --> 03:46:39,299
And so in that way, if you think about it,
5399
03:46:39,319 --> 03:46:43,659
what we're doing is we're taking this idea of what I want.
5400
03:46:44,479 --> 03:46:46,100
We're testing a few variants.
5401
03:46:46,760 --> 03:46:48,799
We're seeing which ones actually look good.
5402
03:46:48,899 --> 03:46:50,139
These are two no's.
5403
03:46:50,319 --> 03:46:52,299
We're spinning up even more.
5404
03:46:52,299 --> 03:46:54,959
We're seeing which ones of these I really like.
5405
03:46:55,520 --> 03:46:56,819
Okay, these ones are all now.
5406
03:46:56,979 --> 03:46:58,399
And now we're spinning up another four.
5407
03:46:59,299 --> 03:47:02,899
And eventually if you continuously do this process,
5408
03:47:03,460 --> 03:47:08,420
you'll get to a website or a web app or a property
5409
03:47:09,319 --> 03:47:11,719
that's like five times better.
5410
03:47:12,659 --> 03:47:15,799
Because we have essentially, instead of just picking
5411
03:47:15,799 --> 03:47:19,059
one option and stopping there, we've really thoroughly
5412
03:47:19,059 --> 03:47:21,000
explored the space of all possible opportunities
5413
03:47:21,000 --> 03:47:21,719
and options.
5414
03:47:21,719 --> 03:47:24,260
And so that's something that agent teams really help with.
5415
03:47:24,399 --> 03:47:26,420
I know my tech's kind of slanting up, but bear with me.
5416
03:47:27,120 --> 03:47:28,780
And while I'm doing that, we see that some of these
5417
03:47:28,780 --> 03:47:29,639
are already starting to finish.
5418
03:47:29,819 --> 03:47:31,520
So iterate scroll, just finished.
5419
03:47:31,579 --> 03:47:32,340
That was pretty fast.
5420
03:47:32,459 --> 03:47:35,260
Looks like the editorial magazine style site completed
5421
03:47:35,260 --> 03:47:36,860
with all 13 sections as well.
5422
03:47:36,979 --> 03:47:38,899
We got the conversion site fully rebuilt
5423
03:47:38,899 --> 03:47:40,059
with all the changes now.
5424
03:47:40,360 --> 03:47:41,719
And now we're just waiting on the split.
5425
03:47:41,760 --> 03:47:42,340
There it is.
5426
03:47:42,700 --> 03:47:43,979
It's now gonna open all four of these.
5427
03:47:44,239 --> 03:47:47,040
And so for 150,000 tokens or whatever the hell
5428
03:47:47,579 --> 03:47:51,139
I just spent essentially, I've now been able to draft up
5429
03:47:51,139 --> 03:47:53,739
what I consider to be a pretty clean and sexy website.
5430
03:47:54,200 --> 03:47:55,700
I have that picture that I was looking for.
5431
03:47:55,860 --> 03:47:56,559
I have this.
5432
03:47:57,100 --> 03:47:58,200
I mean, this is great, right?
5433
03:47:58,700 --> 03:48:01,459
One thing I'm missing is that little video page,
5434
03:48:01,459 --> 03:48:02,139
but hopefully it's clear.
5435
03:48:02,319 --> 03:48:05,680
I mean, I could build, God, websites are just the tip
5436
03:48:05,680 --> 03:48:07,139
of the iceberg in terms of what you could build.
5437
03:48:07,239 --> 03:48:08,600
Have my picture here.
5438
03:48:08,700 --> 03:48:10,120
I got my whole business partner, Shoma.
5439
03:48:10,440 --> 03:48:12,799
That's me during COVID doing a little videography shoot.
5440
03:48:13,559 --> 03:48:15,559
That's when we played bowling down in the Philippines.
5441
03:48:15,979 --> 03:48:17,659
I mean, like the stuff's super straightforward.
5442
03:48:17,959 --> 03:48:20,000
Also, I really like this other editorial site.
5443
03:48:20,000 --> 03:48:21,420
I might end up just choosing that.
5444
03:48:21,440 --> 03:48:22,879
That's super clean, right?
5445
03:48:22,979 --> 03:48:25,579
Those harsh corners and the photos and stuff, very nice.
5446
03:48:25,879 --> 03:48:27,659
Okay, but if you just use Agent Teams
5447
03:48:27,659 --> 03:48:28,760
to design a bunch of websites,
5448
03:48:29,000 --> 03:48:31,040
you're honestly leaving tons of potential on the table.
5449
03:48:31,280 --> 03:48:32,959
Most people are kind of uncreative.
5450
03:48:33,020 --> 03:48:34,659
And so obviously most of the demos you're gonna see
5451
03:48:34,659 --> 03:48:35,799
on the internet are gonna be like,
5452
03:48:35,860 --> 03:48:37,700
watch me rebuild this website 400 ways
5453
03:48:37,700 --> 03:48:38,540
like I just showed you.
5454
03:48:39,159 --> 03:48:40,180
You can go a lot deeper than that.
5455
03:48:40,399 --> 03:48:41,799
And actually the number one recommended use
5456
03:48:41,799 --> 03:48:43,799
for Agent Teams right now, at least my recommended use
5457
03:48:43,799 --> 03:48:46,180
is using it on pre-existing repos
5458
03:48:46,180 --> 03:48:47,540
to do a tremendous amount of research
5459
03:48:47,540 --> 03:48:48,639
in a short period of time.
5460
03:48:49,020 --> 03:48:49,760
So what I'm gonna do next
5461
03:48:49,760 --> 03:48:50,700
is I'm actually gonna go over here.
5462
03:48:50,780 --> 03:48:52,780
I'm gonna delete all of these websites that I built
5463
03:48:52,780 --> 03:48:56,180
because the websites are basically only worth the tokens
5464
03:48:56,180 --> 03:48:57,500
that they're printed on, okay?
5465
03:48:57,500 --> 03:48:59,579
I'm gonna full screen this and then I'm gonna say,
5466
03:48:59,680 --> 03:49:03,340
clone this and then open an anti-gravity instance
5467
03:49:03,340 --> 03:49:04,139
inside of it.
5468
03:49:04,899 --> 03:49:07,799
Then I'm gonna paste in one of the repos for OpenClaw,
5469
03:49:07,940 --> 03:49:11,260
which I've made some rather scathing videos of.
5470
03:49:11,780 --> 03:49:13,059
OpenClaw is totally open source,
5471
03:49:13,059 --> 03:49:15,100
which means you can muck around the code,
5472
03:49:15,200 --> 03:49:16,639
take a peek at the way that things were written,
5473
03:49:17,139 --> 03:49:18,680
make improvements if you really wanted to
5474
03:49:18,680 --> 03:49:19,659
and so on and so forth.
5475
03:49:20,399 --> 03:49:22,579
Looks like it doesn't know what anti-gravity is.
5476
03:49:22,899 --> 03:49:26,840
Anti-gravity, the app, it's like VS code.
5477
03:49:27,299 --> 03:49:30,379
Okay, cool and it ended up opening up OpenClawed
5478
03:49:30,379 --> 03:49:31,260
inside of this.
5479
03:49:31,280 --> 03:49:35,239
As you see, we are now like in the folder of OpenClawed.
5480
03:49:35,319 --> 03:49:37,659
It's just instead of it being on GitHub,
5481
03:49:37,659 --> 03:49:38,760
it's now on our computer.
5482
03:49:39,139 --> 03:49:40,139
It's just a quick and easy hack.
5483
03:49:40,200 --> 03:49:41,799
You can basically do whatever the heck you want
5484
03:49:41,799 --> 03:49:42,479
with these repos.
5485
03:49:42,940 --> 03:49:44,700
Once you're inside, I'm just gonna open in the terminal
5486
03:49:44,700 --> 03:49:47,040
because I think I can probably go significantly faster
5487
03:49:47,040 --> 03:49:47,719
in the terminal.
5488
03:49:48,680 --> 03:49:49,860
Let me just open this up.
5489
03:49:49,860 --> 03:49:51,360
Okay, I have it right down over here.
5490
03:49:51,799 --> 03:49:53,280
Then I'm gonna pop this puppy open,
5491
03:49:54,479 --> 03:49:56,079
make it go full screen by clicking that button
5492
03:49:56,079 --> 03:49:56,680
on the top right.
5493
03:49:57,079 --> 03:49:59,280
And now I'm going to use agent teams
5494
03:49:59,280 --> 03:50:02,079
to go through this massive, massive file
5495
03:50:02,079 --> 03:50:03,319
and then make improvements.
5496
03:50:03,420 --> 03:50:04,379
Taking a look at this prompt,
5497
03:50:04,459 --> 03:50:05,659
I've wrote OpenClaw is great,
5498
03:50:05,700 --> 03:50:07,079
but there are a bunch of security issues.
5499
03:50:07,159 --> 03:50:08,579
I don't know exactly where they all are yet,
5500
03:50:08,579 --> 03:50:09,559
but I want you to find them.
5501
03:50:09,879 --> 03:50:11,479
First, create a team with 10 teammates
5502
03:50:11,479 --> 03:50:13,200
to look through the code base very quickly.
5503
03:50:13,680 --> 03:50:16,620
Split things up logically based on file size, et cetera.
5504
03:50:16,620 --> 03:50:18,780
Then spin up four agents to document
5505
03:50:18,780 --> 03:50:20,059
all of the security issues
5506
03:50:20,059 --> 03:50:22,040
and a fifth and sixth debate agent
5507
03:50:22,040 --> 03:50:23,879
that plays devil's advocate back and forth.
5508
03:50:24,200 --> 03:50:25,239
Use Sonnet for each teammate
5509
03:50:25,239 --> 03:50:27,120
so as to make use of the longer context window.
5510
03:50:27,379 --> 03:50:28,940
When you've identified all the security issues
5511
03:50:28,940 --> 03:50:31,079
and then spin up one agent per security issue
5512
03:50:31,079 --> 03:50:31,940
and make changes.
5513
03:50:32,340 --> 03:50:34,479
Ensure each agent works only on the security issue
5514
03:50:34,479 --> 03:50:35,799
it is given to minimize overlap.
5515
03:50:35,979 --> 03:50:37,879
And if one agent steps on another agent's toes,
5516
03:50:38,159 --> 03:50:39,840
have them rectify by talking back and forth.
5517
03:50:40,420 --> 03:50:42,420
Now, I'm not going to fix this code base
5518
03:50:42,420 --> 03:50:43,799
throughout the course of this video
5519
03:50:43,799 --> 03:50:45,620
because that'll probably take several hours
5520
03:50:45,620 --> 03:50:47,399
for it to go through, make changes.
5521
03:50:47,520 --> 03:50:49,280
And then obviously there's Q&A and testing
5522
03:50:49,280 --> 03:50:50,239
and so on and so forth.
5523
03:50:50,579 --> 03:50:51,739
This is pretty similar to the workflow
5524
03:50:51,739 --> 03:50:53,979
that the creator of this godforsaken repo.
5525
03:50:54,579 --> 03:50:56,899
And if you're curious about why I have strong opinions
5526
03:50:56,899 --> 03:50:59,000
on this, just check my channel for one of my videos
5527
03:50:59,000 --> 03:51:00,399
from like two weeks ago or so.
5528
03:51:01,079 --> 03:51:02,540
But this is pretty similar to the workflow
5529
03:51:02,540 --> 03:51:04,299
that they're currently using in order to manage things.
5530
03:51:05,040 --> 03:51:07,120
But suffice to say, you can use an approach like this
5531
03:51:07,120 --> 03:51:08,819
on basically any open source library,
5532
03:51:08,860 --> 03:51:10,360
not just to identify security issues,
5533
03:51:10,399 --> 03:51:12,200
but also to improve the product.
5534
03:51:12,579 --> 03:51:15,059
You could come up with different product angles.
5535
03:51:15,059 --> 03:51:18,420
So you could have it go through, spawn five agents,
5536
03:51:18,620 --> 03:51:20,139
each that proposed different product ideas.
5537
03:51:20,180 --> 03:51:21,700
And then you could have like debate agents
5538
03:51:21,700 --> 03:51:23,379
that debate back and forth about why this
5539
03:51:23,379 --> 03:51:24,280
would not be a good idea.
5540
03:51:24,500 --> 03:51:26,159
And in doing so, they come to a consensus
5541
03:51:26,159 --> 03:51:27,700
and improve the quality of the product
5542
03:51:27,700 --> 03:51:28,840
at the end of the day.
5543
03:51:29,260 --> 03:51:30,639
So what this just did is it spun up
5544
03:51:30,639 --> 03:51:32,459
and listed all of the products here
5545
03:51:32,459 --> 03:51:35,559
so that it could build a simple and straightforward way
5546
03:51:36,659 --> 03:51:38,659
of basically splitting this work up.
5547
03:51:38,680 --> 03:51:40,280
So now we have 10 scanner agents that are running
5548
03:51:40,280 --> 03:51:41,739
in parallel across the code base.
5549
03:51:42,299 --> 03:51:44,260
This first one here has 83K lines.
5550
03:51:44,260 --> 03:51:47,639
The second one has 43, 42, 42, 35, 49.
5551
03:51:47,879 --> 03:51:49,379
So they're not all the same obviously,
5552
03:51:49,500 --> 03:51:50,719
but lines aren't all equal.
5553
03:51:50,840 --> 03:51:52,540
So maybe this did some additional work
5554
03:51:52,540 --> 03:51:53,840
behind the scenes or under the hood.
5555
03:51:54,299 --> 03:51:55,559
Now this is gonna consume a lot of tokens.
5556
03:51:55,819 --> 03:51:58,520
So see here, we're already at 1.3 million and counting.
5557
03:51:59,079 --> 03:52:00,459
And I'm consuming a fair amount
5558
03:52:00,459 --> 03:52:01,860
of my own token budget to do this,
5559
03:52:01,879 --> 03:52:03,659
but I figured it would just be interesting for us to do.
5560
03:52:04,420 --> 03:52:06,659
If you're operating at like a massive scale like this
5561
03:52:06,659 --> 03:52:08,299
with dozens, if not hundreds of these things,
5562
03:52:08,379 --> 03:52:11,120
you will eventually spend several thousand dollars
5563
03:52:11,120 --> 03:52:12,059
on said tokens.
5564
03:52:12,159 --> 03:52:13,459
And so you need to be prepared for that.
5565
03:52:13,979 --> 03:52:16,040
Don't spin up an unlimited number of agents
5566
03:52:16,040 --> 03:52:17,799
if you're not capable of paying the money
5567
03:52:17,799 --> 03:52:19,879
for upset unlimited number of agents, obviously.
5568
03:52:20,180 --> 03:52:22,600
And be wary that the tokens that you are using here
5569
03:52:22,600 --> 03:52:25,200
are tokens that unfortunately you will never get back.
5570
03:52:25,500 --> 03:52:26,540
You can't spin this thing up
5571
03:52:26,540 --> 03:52:28,219
and then ask for a refund on any of these.
5572
03:52:28,520 --> 03:52:31,000
So be careful, I guess, to make a long story short.
5573
03:52:31,420 --> 03:52:32,680
However, if you do have the money,
5574
03:52:32,739 --> 03:52:33,819
you can basically convert it
5575
03:52:33,819 --> 03:52:37,239
and translate it directly into time, as in time savings.
5576
03:52:37,559 --> 03:52:40,099
What I've done here is I've taken $1.3 million,
5577
03:52:40,100 --> 03:52:43,639
$1.3 million, 1.3 million Sonnet 4.5 tokens.
5578
03:52:43,760 --> 03:52:45,500
And I basically immediately translated them
5579
03:52:45,500 --> 03:52:47,739
for probably several hours of my time
5580
03:52:47,739 --> 03:52:49,260
because I don't actually have to go through this
5581
03:52:49,260 --> 03:52:51,639
or do this a lot slower with like a more intelligent agent.
5582
03:52:51,760 --> 03:52:52,899
So now that we've done this,
5583
03:52:53,280 --> 03:52:54,899
the next step is we've compiled
5584
03:52:54,899 --> 03:52:58,299
all of these security possibilities, I should say.
5585
03:52:58,780 --> 03:53:00,879
We're now spawning specific agents
5586
03:53:01,460 --> 03:53:04,739
all about particular security issues.
5587
03:53:05,100 --> 03:53:08,379
So we have a command injection and code execution agent,
5588
03:53:08,379 --> 03:53:10,639
an authentication and authorization agent,
5589
03:53:11,059 --> 03:53:14,139
a path traversal plus SSRF plus info disclosure agent,
5590
03:53:14,520 --> 03:53:16,739
crypto plus race conditions plus config agent,
5591
03:53:17,299 --> 03:53:19,139
challenges findings as not real issues
5592
03:53:19,139 --> 03:53:20,979
is devil number one, that's devil's advocate.
5593
03:53:21,340 --> 03:53:22,600
Then devil number two says,
5594
03:53:22,739 --> 03:53:24,340
argues findings are real and need fixing.
5595
03:53:24,479 --> 03:53:25,659
And so basically these agents
5596
03:53:25,659 --> 03:53:27,319
are all gonna report over to these puppies.
5597
03:53:27,799 --> 03:53:29,600
And these two are gonna debate back and forth
5598
03:53:29,600 --> 03:53:31,659
between each other to determine
5599
03:53:31,659 --> 03:53:33,139
whether or not this is something that's real,
5600
03:53:33,219 --> 03:53:33,840
whether or not this is something
5601
03:53:33,840 --> 03:53:34,979
that's actually super important.
5602
03:53:35,280 --> 03:53:37,860
They're gonna take different principled positions
5603
03:53:37,860 --> 03:53:39,459
and attempt to see whether these findings
5604
03:53:39,459 --> 03:53:41,280
are not real issues or whether these findings
5605
03:53:41,280 --> 03:53:42,319
are real and need fixing.
5606
03:53:42,739 --> 03:53:44,940
Usually when you have two agents work adversarially
5607
03:53:44,940 --> 03:53:45,879
against each other like this,
5608
03:53:46,219 --> 03:53:47,319
the end result is higher quality.
5609
03:53:47,420 --> 03:53:49,520
This is actually the core of a big chunk of machine learning,
5610
03:53:49,659 --> 03:53:51,739
which is what AI used to be called a few years back,
5611
03:53:52,059 --> 03:53:53,360
not just large language models,
5612
03:53:53,979 --> 03:53:55,040
generative adversarial networks
5613
03:53:55,040 --> 03:53:56,979
were one of the first image models, for instance,
5614
03:53:56,979 --> 03:53:58,420
and they worked in a very similar fashion.
5615
03:53:58,459 --> 03:53:59,860
You had something that generated
5616
03:53:59,860 --> 03:54:01,379
and then you had sort of like an adversary.
5617
03:54:01,620 --> 03:54:03,479
And these two just went back and forth and back and forth
5618
03:54:03,479 --> 03:54:04,959
until you got a really high quality result.
5619
03:54:05,000 --> 03:54:06,559
So I can actually scroll down here
5620
03:54:06,559 --> 03:54:07,879
and see what these two are saying.
5621
03:54:08,059 --> 03:54:09,959
So these are literally having a conversation right now.
5622
03:54:10,680 --> 03:54:12,340
These are actually discussing things.
5623
03:54:12,559 --> 03:54:13,600
Looking at devil number two,
5624
03:54:13,739 --> 03:54:15,879
it's sending round one, it's counter arguments now,
5625
03:54:15,879 --> 03:54:16,840
we're going back here.
5626
03:54:16,920 --> 03:54:19,639
And they're basically like fighting verbally mind you,
5627
03:54:19,780 --> 03:54:21,139
sticks and stones may break my bones,
5628
03:54:21,200 --> 03:54:22,879
but AI words will hurt you,
5629
03:54:23,439 --> 03:54:26,360
to determine which is the best path forward.
5630
03:54:26,579 --> 03:54:28,299
This message over here, this wasn't mine.
5631
03:54:28,500 --> 03:54:29,899
This was a message from the team lead.
5632
03:54:30,579 --> 03:54:34,159
Basically a devil number one responded to team lead saying,
5633
03:54:34,159 --> 03:54:35,379
Hey, here's a key finding.
5634
03:54:35,579 --> 03:54:36,739
Team leader responded back saying,
5635
03:54:36,840 --> 03:54:38,840
Hey, keep going and let me know when the debate finishes.
5636
03:54:39,059 --> 03:54:40,420
When it's done, we're good to go.
5637
03:54:40,739 --> 03:54:42,920
So to be clear here over the last, I don't know,
5638
03:54:43,020 --> 03:54:44,239
maybe 15 minutes or so
5639
03:54:44,239 --> 03:54:47,079
of the specific agent team instantiation,
5640
03:54:47,479 --> 03:54:50,979
I've spent close to probably 80 or so dollars
5641
03:54:51,420 --> 03:54:52,639
directly on this one query.
5642
03:54:52,940 --> 03:54:55,260
And that's what I mean by trading money for time.
5643
03:54:55,559 --> 03:54:56,319
I mean, like, obviously,
5644
03:54:56,319 --> 03:54:58,360
if I had a team of developers doing this,
5645
03:54:58,659 --> 03:55:00,459
they probably would have been more accurate,
5646
03:55:00,459 --> 03:55:02,680
but it also would have taken them presumably several weeks
5647
03:55:02,680 --> 03:55:04,700
to do the level of research that this agent
5648
03:55:04,700 --> 03:55:06,700
was capable of doing in just a few minutes.
5649
03:55:07,059 --> 03:55:08,819
I traded $80 for that time.
5650
03:55:09,139 --> 03:55:11,459
And so in some instances, that's worth it,
5651
03:55:11,479 --> 03:55:13,500
but in a lot of other instances, it isn't,
5652
03:55:13,500 --> 03:55:16,219
which is why agent teams need to be handled pretty carefully.
5653
03:55:16,520 --> 03:55:17,659
They're almost like a nuclear weapon,
5654
03:55:17,680 --> 03:55:19,219
just one aimed directly at your wallet.
5655
03:55:19,399 --> 03:55:21,559
Now we've done the debate back and forth.
5656
03:55:21,659 --> 03:55:22,940
The two have had a great conversation.
5657
03:55:23,260 --> 03:55:25,299
And so basically they found 15 total flaws.
5658
03:55:25,659 --> 03:55:28,479
What it's doing is it's now spawning 15 fixer agents,
5659
03:55:28,879 --> 03:55:30,440
one per isolated security issue
5660
03:55:30,440 --> 03:55:32,000
or group when they touch the same file.
5661
03:55:32,559 --> 03:55:34,639
Now I don't obviously want this to consume all of my tokens.
5662
03:55:34,719 --> 03:55:38,059
So I'm just going to cancel this and I'll say shut in caps,
5663
03:55:38,559 --> 03:55:40,379
shut everything down ASAP.
5664
03:55:40,500 --> 03:55:42,620
It's not gonna shut down all active agents immediately.
5665
03:55:43,100 --> 03:55:44,780
Unfortunately, just due to the nature of this,
5666
03:55:44,780 --> 03:55:46,540
the shutdown request doesn't occur immediately.
5667
03:55:46,680 --> 03:55:48,040
It's not just like we're, you know,
5668
03:55:48,180 --> 03:55:49,399
alt F foring this whole puppy.
5669
03:55:49,979 --> 03:55:52,379
There's a little bit of time because every individual agent
5670
03:55:52,379 --> 03:55:53,500
is still in the middle of a query
5671
03:55:53,500 --> 03:55:54,479
while it's doing the thing.
5672
03:55:55,319 --> 03:55:56,639
So, you know, you're probably still gonna consume
5673
03:55:56,639 --> 03:55:57,799
a little bit of token usage.
5674
03:55:57,979 --> 03:55:59,719
Not gonna be that crazy, but it is gonna be a little bit.
5675
03:56:00,399 --> 03:56:02,659
But yeah, you know, I've consumed enough at this point
5676
03:56:02,659 --> 03:56:03,799
to know that this is something
5677
03:56:03,799 --> 03:56:05,139
that I'm probably not gonna wanna do
5678
03:56:05,139 --> 03:56:07,299
unless I'm hell bent on improving the OpenClaw repo,
5679
03:56:07,340 --> 03:56:07,920
which I am not.
5680
03:56:08,020 --> 03:56:10,719
And that takes us to the final module in this course,
5681
03:56:10,799 --> 03:56:12,440
which is one on Git work trees.
5682
03:56:12,879 --> 03:56:15,000
Now, Git work trees used to basically be
5683
03:56:15,000 --> 03:56:16,500
what agent teams are today.
5684
03:56:17,100 --> 03:56:19,340
Essentially, you could have multiple agents all running
5685
03:56:19,340 --> 03:56:20,620
on their own individual,
5686
03:56:20,760 --> 03:56:22,979
what's called GitHub repo or GitHub branch.
5687
03:56:23,239 --> 03:56:25,239
And in doing so, these agents could all work
5688
03:56:25,239 --> 03:56:26,440
on individual features,
5689
03:56:26,559 --> 03:56:28,579
which allowed them to do what they needed to do
5690
03:56:28,579 --> 03:56:30,959
before ultimately merging back to the main branch.
5691
03:56:31,379 --> 03:56:32,500
To visualize this for you,
5692
03:56:32,639 --> 03:56:35,100
imagine we start with a job over here at main.
5693
03:56:35,299 --> 03:56:36,899
This is our main branch.
5694
03:56:37,180 --> 03:56:38,360
And then there's some bugs.
5695
03:56:38,440 --> 03:56:41,079
What we do is we spin up a branch called hotfix.
5696
03:56:41,399 --> 03:56:43,000
Now this is given to a different agent.
5697
03:56:43,379 --> 03:56:45,200
We then have another branch called develop,
5698
03:56:45,239 --> 03:56:46,399
which is given to a different agent.
5699
03:56:46,459 --> 03:56:48,299
Then finally, a branch called feature,
5700
03:56:48,319 --> 03:56:49,440
which is given to a different agent.
5701
03:56:49,819 --> 03:56:52,100
So basically what occurs is we have one agent over here,
5702
03:56:52,299 --> 03:56:53,059
extending on this branch,
5703
03:56:53,299 --> 03:56:55,000
one agent over here, extending on this branch,
5704
03:56:55,180 --> 03:56:56,680
one agent over here, extending on this branch,
5705
03:56:56,680 --> 03:56:58,899
and then one agent over here extending on this branch.
5706
03:56:59,579 --> 03:57:01,360
And essentially each of these go through
5707
03:57:01,360 --> 03:57:02,600
their own development process,
5708
03:57:02,620 --> 03:57:04,420
similar to the agent teams like we just saw here,
5709
03:57:04,420 --> 03:57:05,399
just managed through GitHub
5710
03:57:05,399 --> 03:57:07,600
instead of just the antigravity IDE.
5711
03:57:07,940 --> 03:57:08,799
And then when they're done,
5712
03:57:08,799 --> 03:57:10,379
what they do is they merge the results
5713
03:57:10,379 --> 03:57:11,520
back into the mage branch.
5714
03:57:11,760 --> 03:57:13,120
Now, if you're not a big into programming
5715
03:57:13,120 --> 03:57:14,299
and you haven't used GitHub before,
5716
03:57:14,459 --> 03:57:17,260
this idea of a merge can be pretty difficult to understand,
5717
03:57:17,360 --> 03:57:20,319
but basically every branch just stores a copy of the folder.
5718
03:57:20,520 --> 03:57:23,379
And so this master folder is basically the same thing
5719
03:57:23,379 --> 03:57:24,680
as this new feature folder
5720
03:57:24,680 --> 03:57:26,340
with just a couple of minor differences.
5721
03:57:26,340 --> 03:57:28,059
And it's usually the new feature itself.
5722
03:57:28,459 --> 03:57:29,200
So when you merge,
5723
03:57:29,280 --> 03:57:31,360
what you do is you're just tabulating a list
5724
03:57:31,360 --> 03:57:32,840
of all the changes between these two,
5725
03:57:32,959 --> 03:57:34,520
and then you're taking the new changes
5726
03:57:34,520 --> 03:57:35,500
from the new feature branch
5727
03:57:35,500 --> 03:57:37,120
and then applying them to the master branch.
5728
03:57:37,799 --> 03:57:40,280
This merge process can typically be pretty messy.
5729
03:57:40,680 --> 03:57:43,260
And so having agents around to mediate the merges
5730
03:57:43,260 --> 03:57:44,680
and so on and so forth can be quite useful.
5731
03:57:44,819 --> 03:57:47,159
So first of all, I have a really simple website set up here
5732
03:57:47,159 --> 03:57:48,680
called leftclick-agency.
5733
03:57:48,920 --> 03:57:50,760
I made this for my own website a while ago
5734
03:57:51,719 --> 03:57:54,219
and had AI do the vast majority of the work
5735
03:57:54,219 --> 03:57:55,840
in a very similar sort of workflow
5736
03:57:55,840 --> 03:57:58,219
to what I just showed you guys a moment ago with agent teams.
5737
03:57:58,479 --> 03:57:59,940
And what I wanna do is,
5738
03:57:59,940 --> 03:58:02,020
I wanna design additional pages here.
5739
03:58:02,360 --> 03:58:04,540
One page that's really long is not enough.
5740
03:58:04,899 --> 03:58:06,540
So in addition to this homepage,
5741
03:58:06,659 --> 03:58:08,620
I also wanna design an about page,
5742
03:58:08,940 --> 03:58:11,920
a contact page and a services page.
5743
03:58:12,340 --> 03:58:15,959
And I wanna use the Git WorkTree workflow
5744
03:58:15,959 --> 03:58:17,399
in order to do this.
5745
03:58:17,639 --> 03:58:19,819
Now, because I've stored information
5746
03:58:19,819 --> 03:58:23,899
on what I mean by Git WorkTree in my Claw.md,
5747
03:58:23,899 --> 03:58:26,100
which is basically that we use Git WorkTrees
5748
03:58:26,100 --> 03:58:27,819
for parallel development with Claude Code
5749
03:58:27,819 --> 03:58:30,040
where every WorkTree is an isolated working directory,
5750
03:58:30,280 --> 03:58:31,319
sharing the same Git history,
5751
03:58:31,379 --> 03:58:32,819
allowing multiple Claude Code instances
5752
03:58:32,819 --> 03:58:34,280
to work on different tasks simultaneously
5753
03:58:34,280 --> 03:58:35,799
that interference, okay?
5754
03:58:35,979 --> 03:58:37,360
This already knows what to do.
5755
03:58:37,799 --> 03:58:39,180
The very first thing that it did
5756
03:58:39,180 --> 03:58:42,379
was it basically took my main repository,
5757
03:58:43,000 --> 03:58:45,420
which was just called leftclick-agency,
5758
03:58:45,819 --> 03:58:47,479
and it made three different ones.
5759
03:58:47,719 --> 03:58:50,360
It made one called leftclick-agency-services,
5760
03:58:50,440 --> 03:58:51,219
that's a new folder.
5761
03:58:51,219 --> 03:58:54,379
Another called leftclick-agency-about,
5762
03:58:54,559 --> 03:58:55,260
which is another folder.
5763
03:58:55,739 --> 03:58:58,399
And then another called leftclick-agency-contact,
5764
03:58:58,479 --> 03:58:59,260
which is a third folder.
5765
03:58:59,719 --> 03:59:00,719
So basically what it's doing now
5766
03:59:00,719 --> 03:59:03,639
is it's creating new GitHub repositories,
5767
03:59:03,700 --> 03:59:05,200
new individual feature branches
5768
03:59:05,200 --> 03:59:07,360
to work on different pages for me.
5769
03:59:07,500 --> 03:59:10,040
Now it did this using the agent team functionality.
5770
03:59:10,360 --> 03:59:11,159
And the reason why I did this
5771
03:59:11,159 --> 03:59:12,479
is just because it's much faster
5772
03:59:12,479 --> 03:59:14,540
and they get to work on different GitHub repos
5773
03:59:14,540 --> 03:59:15,239
simultaneously.
5774
03:59:15,840 --> 03:59:17,879
The only real advantage to using Git WorkTrees,
5775
03:59:17,940 --> 03:59:18,860
I think at this point,
5776
03:59:19,040 --> 03:59:20,579
is just that when you use Git WorkTrees,
5777
03:59:20,579 --> 03:59:21,620
what you're doing is you're not actually
5778
03:59:21,620 --> 03:59:22,860
modifying the main folder.
5779
03:59:23,200 --> 03:59:23,799
Like if you look up here,
5780
03:59:23,799 --> 03:59:25,520
we're not actually modifying any of this right now.
5781
03:59:25,700 --> 03:59:26,899
What we're doing is we're basically creating
5782
03:59:26,899 --> 03:59:30,280
a new folder in our GitHub repository.
5783
03:59:30,620 --> 03:59:32,719
And you can see them right over here.
5784
03:59:33,659 --> 03:59:36,420
And then working in those different folders individually.
5785
03:59:36,920 --> 03:59:39,200
So for instance, we have leftclick-agency.
5786
03:59:39,520 --> 03:59:41,399
This one here is my main folder, right?
5787
03:59:41,440 --> 03:59:43,059
But then we have leftclick-agency-about.
5788
03:59:43,200 --> 03:59:44,760
This is a new branch that's working
5789
03:59:44,760 --> 03:59:46,319
specifically on the about.
5790
03:59:46,700 --> 03:59:47,600
Then we have contact.
5791
03:59:47,659 --> 03:59:49,459
This is a new branch working specifically
5792
03:59:49,459 --> 03:59:50,579
on the contact page.
5793
03:59:50,920 --> 03:59:52,059
And then finally we have services,
5794
03:59:52,100 --> 03:59:53,659
which is a new branch working specifically
5795
03:59:53,659 --> 03:59:54,579
on the services page.
5796
03:59:54,760 --> 03:59:56,239
And so the reason why this is valuable
5797
03:59:56,239 --> 03:59:57,680
to people that are non-programmers
5798
03:59:57,680 --> 04:00:00,120
is because you reduce the possibility
5799
04:00:00,579 --> 04:00:03,500
of two different agents working on the same file,
5800
04:00:03,739 --> 04:00:04,659
which will occur.
5801
04:00:04,719 --> 04:00:06,459
You will get what are called agent conflicts
5802
04:00:06,459 --> 04:00:08,899
over time naturally as you have multiple agents
5803
04:00:08,899 --> 04:00:10,659
working on multiple things in the same base.
5804
04:00:11,000 --> 04:00:12,120
And the reason why is because files
5805
04:00:12,120 --> 04:00:13,799
aren't perfect separations of functionality.
5806
04:00:14,200 --> 04:00:15,120
You know, you'll have one file
5807
04:00:15,120 --> 04:00:17,219
and then that file will have like the snippet
5808
04:00:17,219 --> 04:00:19,440
of a little bit of code that's used by another file
5809
04:00:19,440 --> 04:00:22,079
and so in that way, there's never like perfect separation.
5810
04:00:22,360 --> 04:00:25,299
So if an agent really wants to like totally encapsulate
5811
04:00:25,299 --> 04:00:27,180
a function or something, sometimes it'll have to dump
5812
04:00:27,180 --> 04:00:27,840
around from both.
5813
04:00:28,040 --> 04:00:29,479
And when that happens, it'll step on the toes
5814
04:00:29,479 --> 04:00:29,979
of another one.
5815
04:00:30,299 --> 04:00:31,979
So anyway, when you use work trees in this way,
5816
04:00:32,219 --> 04:00:34,639
you just eliminate that for being an option completely.
5817
04:00:35,200 --> 04:00:36,500
Basically, there's just no way that these two
5818
04:00:36,500 --> 04:00:37,500
can step on each other's toes
5819
04:00:37,500 --> 04:00:38,959
because they're actually all working
5820
04:00:38,959 --> 04:00:40,739
in separate folders simultaneously.
5821
04:00:41,040 --> 04:00:42,479
And because they work in separate folders,
5822
04:00:42,739 --> 04:00:44,579
that also means if they do make changes,
5823
04:00:44,780 --> 04:00:46,920
those changes don't always perfectly harmonize right away.
5824
04:00:46,920 --> 04:00:49,200
And that's where that merge step comes into play.
5825
04:00:49,799 --> 04:00:51,879
Basically, you know, now after we work
5826
04:00:51,879 --> 04:00:53,299
on these three different branches,
5827
04:00:53,700 --> 04:00:56,819
we also have to do is we need to unify them
5828
04:00:56,819 --> 04:00:59,559
through some sort of merge function.
5829
04:00:59,760 --> 04:01:01,600
You can see the prompt for the general purpose
5830
04:01:01,600 --> 04:01:04,040
services.html one here is you're building
5831
04:01:04,040 --> 04:01:06,219
the services.html page for left click agency,
5832
04:01:06,379 --> 04:01:08,219
work in the work tree at this folder,
5833
04:01:08,819 --> 04:01:12,000
create the file in here, don't modify the index.html.
5834
04:01:12,200 --> 04:01:13,500
You know, there's tons of information.
5835
04:01:13,520 --> 04:01:15,600
If I go back here, we'll see the same thing
5836
04:01:15,600 --> 04:01:17,100
for contact.html.
5837
04:01:17,620 --> 04:01:19,579
And so all you really need in order to have a workflow
5838
04:01:19,579 --> 04:01:22,780
like this that minimizes dependency risks,
5839
04:01:23,120 --> 04:01:25,940
is just have a cloud.md that outlines what to do
5840
04:01:25,940 --> 04:01:27,399
with get work trees.
5841
04:01:28,059 --> 04:01:29,319
I'll include this file down below
5842
04:01:29,319 --> 04:01:30,659
so you guys have everything that you need,
5843
04:01:30,819 --> 04:01:33,100
but taking a look at the about.html here,
5844
04:01:33,100 --> 04:01:34,860
which is one of the files that this thing
5845
04:01:34,860 --> 04:01:36,139
just whipped up for me.
5846
04:01:36,420 --> 04:01:38,420
You know, we've now basically finished the page.
5847
04:01:38,799 --> 04:01:41,200
It's used some placeholder little flasks here
5848
04:01:41,200 --> 04:01:43,079
because it wasn't sure what I wanted to do for images.
5849
04:01:43,079 --> 04:01:45,420
And you know, I can add however much information
5850
04:01:45,420 --> 04:01:46,860
I want here to really flesh it out.
5851
04:01:47,260 --> 04:01:48,579
Yeah, this looks pretty clean to me.
5852
04:01:48,659 --> 04:01:50,620
Our principal's ready to work with us.
5853
04:01:50,879 --> 04:01:52,000
Ooh, that's really clean.
5854
04:01:52,020 --> 04:01:53,200
I didn't realize I could do that.
5855
04:01:53,940 --> 04:01:56,440
Likewise with the contact.html page.
5856
04:01:56,559 --> 04:01:58,739
So now we have a beautiful contact.html page
5857
04:01:58,739 --> 04:02:01,040
with like a little, send us a message form
5858
04:02:01,040 --> 04:02:01,940
and so on and so forth.
5859
04:02:02,360 --> 04:02:03,059
I wonder if that works.
5860
04:02:03,139 --> 04:02:04,280
Wow, it even has some validation.
5861
04:02:04,340 --> 04:02:04,860
That's pretty neat.
5862
04:02:05,000 --> 04:02:05,940
Okay, and then after it's done,
5863
04:02:06,000 --> 04:02:08,020
what it'll do is it'll merge everything together.
5864
04:02:08,180 --> 04:02:12,500
So we also have services.html up here too,
5865
04:02:12,500 --> 04:02:13,620
which is really clean.
5866
04:02:14,479 --> 04:02:15,959
This looks like a real chunky page,
5867
04:02:16,120 --> 04:02:17,819
which probably explains why it took much longer.
5868
04:02:17,920 --> 04:02:20,139
And it looks like it even estimated some prices for them,
5869
04:02:20,159 --> 04:02:20,819
which is pretty nice.
5870
04:02:21,700 --> 04:02:23,280
So yeah, suffice to say, get work trees.
5871
04:02:23,540 --> 04:02:25,459
While not necessarily the end all be all,
5872
04:02:25,819 --> 04:02:27,440
can be an extra layer of insulation
5873
04:02:27,440 --> 04:02:29,959
if you guys are using something like, you know,
5874
04:02:30,040 --> 04:02:32,299
agent teams, or even if you guys are using sub agents,
5875
04:02:32,840 --> 04:02:34,659
just using some sort of merge functionality
5876
04:02:34,659 --> 04:02:35,399
like I talked about.
5877
04:02:35,639 --> 04:02:36,700
If you guys want more on that,
5878
04:02:37,040 --> 04:02:38,440
I'll include the cloud.md below
5879
04:02:38,440 --> 04:02:39,479
so you guys have everything that you need.
5880
04:02:39,620 --> 04:02:41,520
Okay, so we've talked a lot about using Claude Code
5881
04:02:41,520 --> 04:02:43,500
to build cool software apps and stuff like that.
5882
04:02:43,719 --> 04:02:46,260
The last thing I wanna talk about is basically just automating
5883
04:02:46,260 --> 04:02:47,819
or significantly streamlining the process
5884
04:02:47,819 --> 04:02:49,219
of deploying things to the internet.
5885
04:02:49,600 --> 04:02:51,040
You guys remember that first site that I made
5886
04:02:51,040 --> 04:02:53,000
and then the proposal generator and stuff like that?
5887
04:02:53,319 --> 04:02:54,700
I use a simple service called Netlify
5888
04:02:54,700 --> 04:02:56,340
to basically push my work live.
5889
04:02:56,639 --> 04:02:58,520
And that service works really well for static sites.
5890
04:02:58,620 --> 04:03:00,139
I'm not affiliated with them whatsoever, by the way,
5891
04:03:00,180 --> 04:03:01,139
use whatever the heck you want.
5892
04:03:01,440 --> 04:03:03,319
But what I wanna talk about next is using
5893
04:03:03,319 --> 04:03:05,719
something analogous to that just for backend functions
5894
04:03:05,719 --> 04:03:08,659
and skills and scripts and so on.
5895
04:03:09,000 --> 04:03:11,059
So what I'm gonna do here is I'm gonna whip up
5896
04:03:11,059 --> 04:03:14,719
open conversation, I'm gonna jump into bypass permissions
5897
04:03:14,719 --> 04:03:16,739
and I'm gonna say deploy a simple API endpoint
5898
04:03:16,739 --> 04:03:18,879
that returns happy birthday Nick if it's my birthday
5899
04:03:18,879 --> 04:03:21,540
or no birth to today MF if it's not.
5900
04:03:21,959 --> 04:03:23,159
And what I wanna do is I wanna show you guys
5901
04:03:23,159 --> 04:03:26,040
how easy it is to basically whip up your own URL
5902
04:03:26,040 --> 04:03:27,819
that does something for you.
5903
04:03:28,100 --> 04:03:30,079
This is more of an advanced feature for people
5904
04:03:30,079 --> 04:03:32,420
that are into automation and workflow building
5905
04:03:32,420 --> 04:03:33,180
and stuff like that.
5906
04:03:33,440 --> 04:03:35,059
But basically these services,
5907
04:03:35,219 --> 04:03:37,020
in my case I'm using one called modal,
5908
04:03:37,299 --> 04:03:40,600
allow you to whip up like publicly available endpoints
5909
04:03:40,600 --> 04:03:43,059
or publicly available URLs that you can use
5910
04:03:43,059 --> 04:03:44,719
and integrate within other applications.
5911
04:03:45,239 --> 04:03:47,120
A lot of the time applications will use things called
5912
04:03:47,120 --> 04:03:49,979
web hooks to send and receive information to and from them
5913
04:03:50,719 --> 04:03:53,979
to send events and trigger various pieces of functionality.
5914
04:03:54,280 --> 04:03:55,860
And this is a quick and easy way that you can basically
5915
04:03:55,860 --> 04:03:57,780
create a URL that does that for you,
5916
04:03:58,100 --> 04:04:00,399
as well as integrate it into things like no code platforms
5917
04:04:00,399 --> 04:04:03,219
like NADAN, make.com, Zapier, Lindy, et cetera.
5918
04:04:03,700 --> 04:04:05,360
So I have my endpoint right over here.
5919
04:04:05,459 --> 04:04:07,719
What I'm gonna do is I'm gonna take this curl,
5920
04:04:08,399 --> 04:04:09,260
which you may be wondering like
5921
04:04:09,260 --> 04:04:10,239
what the heck's going on over here?
5922
04:04:10,920 --> 04:04:12,559
I'm actually gonna open up my own terminal instance
5923
04:04:12,559 --> 04:04:13,520
and I'm gonna paste that in.
5924
04:04:14,819 --> 04:04:17,079
So basically what I've done, to make a long story short,
5925
04:04:17,520 --> 04:04:19,440
is I have generated my own API.
5926
04:04:20,079 --> 04:04:23,159
Zooming in here, what I've done is I've sent a request
5927
04:04:23,159 --> 04:04:25,079
to my own website, which was
5928
04:04:26,199 --> 04:04:30,200
nicholasriov-birthday-check-check-birthday.modelrun.
5929
04:04:30,860 --> 04:04:32,860
And then I sent some authorization credentials
5930
04:04:32,860 --> 04:04:33,719
and stuff like that.
5931
04:04:33,719 --> 04:04:36,719
And now it's sending me back a little message,
5932
04:04:36,719 --> 04:04:40,219
which is basically saying, no birthday today, MF,
5933
04:04:40,239 --> 04:04:41,059
because it's not my birthday.
5934
04:04:41,559 --> 04:04:42,639
So what I'm gonna do is I'm gonna go back here
5935
04:04:42,639 --> 04:04:44,120
and just to make it even clearer for you guys,
5936
04:04:44,379 --> 04:04:45,180
okay, this is awesome.
5937
04:04:45,299 --> 04:04:46,479
Remove the authentication.
5938
04:04:46,639 --> 04:04:48,479
I wanna be able to access this with my browser
5939
04:04:48,479 --> 04:04:50,760
using a simple get, and then I wanna have
5940
04:04:50,760 --> 04:04:53,200
like a cute little happy birthday or no birthday message.
5941
04:04:53,299 --> 04:04:54,739
What I'm gonna do now is I'm gonna show you that
5942
04:04:54,739 --> 04:04:56,799
this is analogous or equivalent to just a website.
5943
04:04:57,059 --> 04:04:59,579
And so what you can do as well is you can basically take
5944
04:04:59,579 --> 04:05:01,180
whatever you want, whatever piece of functionality,
5945
04:05:01,239 --> 04:05:03,920
and then immediately deploy like single URLs
5946
04:05:03,920 --> 04:05:05,459
that people can access to do things,
5947
04:05:05,459 --> 04:05:07,260
which you may not think is super important.
5948
04:05:07,520 --> 04:05:09,260
I just opened this up and we have our own little website
5949
04:05:09,260 --> 04:05:11,899
here, but as you saw there, I mean, all I did was
5950
04:05:11,899 --> 04:05:13,899
I literally sent like one little message and then boom,
5951
04:05:14,280 --> 04:05:16,180
it bumped this on, like made this a publicly
5952
04:05:16,180 --> 04:05:17,020
accessible website.
5953
04:05:17,360 --> 04:05:18,280
You can do this with anything.
5954
04:05:18,319 --> 04:05:19,579
You can do this with the websites that we've designed
5955
04:05:19,579 --> 04:05:20,819
so far, you can do this with the web apps
5956
04:05:20,819 --> 04:05:21,780
that we've designed so far.
5957
04:05:22,139 --> 04:05:23,760
And it's just like the simplest and easiest way
5958
04:05:23,760 --> 04:05:24,860
to get something web accessible,
5959
04:05:24,899 --> 04:05:26,659
whether you are giving a URL to somebody
5960
04:05:26,659 --> 04:05:27,860
to have them do something with,
5961
04:05:28,559 --> 04:05:30,520
creating some additional functionality in your app,
5962
04:05:31,100 --> 04:05:33,739
logging user visits for things like ad campaigns
5963
04:05:33,739 --> 04:05:37,860
and marketing campaigns, or doing direct connections
5964
04:05:37,860 --> 04:05:40,280
via web hooks and no code platforms like make.com,
5965
04:05:40,360 --> 04:05:41,059
and add in, et cetera.
5966
04:05:41,159 --> 04:05:41,739
So how do you do it?
5967
04:05:41,799 --> 04:05:43,479
My favorite service right now is one called modal.
5968
04:05:43,819 --> 04:05:46,479
This is basically marketed as AI infrastructure
5969
04:05:46,479 --> 04:05:47,379
that developers love.
5970
04:05:47,840 --> 04:05:49,440
It's super easy and straightforward to set up.
5971
04:05:49,520 --> 04:05:50,760
And every time you click on the page,
5972
04:05:50,899 --> 04:05:53,340
it expands this damn square thing,
5973
04:05:53,340 --> 04:05:55,020
which is super, super cool to look at.
5974
04:05:55,299 --> 04:05:56,100
I love cubes.
5975
04:05:56,399 --> 04:05:58,000
Clearly their team has spent a lot of time
5976
04:05:58,000 --> 04:05:59,180
in ownership designing this website.
5977
04:05:59,459 --> 04:06:00,840
I wonder if they use Claude Code.
5978
04:06:01,219 --> 04:06:02,959
Anyway, what you have to do first, you have to sign up.
5979
04:06:02,959 --> 04:06:04,940
So I'm just gonna go over here into an incognito tab.
5980
04:06:05,219 --> 04:06:07,020
I'm gonna pretend that I don't have an account yet.
5981
04:06:07,340 --> 04:06:08,540
Then I'm going to click sign up.
5982
04:06:08,840 --> 04:06:10,540
Then I'm going to continue with,
5983
04:06:10,639 --> 04:06:11,620
why don't we continue with Google?
5984
04:06:11,959 --> 04:06:12,879
Then I'm just gonna sign in.
5985
04:06:12,879 --> 04:06:14,360
Cool, we are now signing in.
5986
04:06:14,420 --> 04:06:15,500
And the very first thing that happens
5987
04:06:15,500 --> 04:06:17,020
is you'll have some little onboarding screen
5988
04:06:17,020 --> 04:06:18,079
that says welcome to modal.
5989
04:06:18,319 --> 04:06:19,479
So I'm just gonna say personal.
5990
04:06:19,600 --> 04:06:20,840
And how did we hear about us?
5991
04:06:20,979 --> 04:06:22,200
Social media, I don't know.
5992
04:06:22,200 --> 04:06:23,299
I just wanna use this for other.
5993
04:06:24,159 --> 04:06:25,000
Then I'll click get started.
5994
04:06:26,360 --> 04:06:28,319
What it's going to do now is it's gonna give me access
5995
04:06:28,319 --> 04:06:29,559
to all sorts of stuff.
5996
04:06:29,680 --> 04:06:31,299
And in the top right hand corner, as you see,
5997
04:06:31,299 --> 04:06:32,780
it's given us $5 in credits.
5998
04:06:33,040 --> 04:06:35,159
You can actually claim up to $30 in credits
5999
04:06:35,159 --> 04:06:37,680
just by doing a few additional little onboarding tasks,
6000
04:06:37,719 --> 04:06:38,920
adding a card and stuff like that.
6001
04:06:39,340 --> 04:06:40,680
I should note that I've been using modal
6002
04:06:40,680 --> 04:06:41,399
for quite a while now.
6003
04:06:41,399 --> 04:06:42,500
It's probably been a few months.
6004
04:06:42,639 --> 04:06:46,920
And I think I'm still at $4.50 of credit on my main account
6005
04:06:46,920 --> 04:06:48,579
where we probably have an API request
6006
04:06:48,579 --> 04:06:49,700
coming in every day or two.
6007
04:06:50,799 --> 04:06:51,739
So yeah, pretty cool stuff.
6008
04:06:51,920 --> 04:06:53,979
Definitely a lot of usage there with the $5.
6009
04:06:54,159 --> 04:06:56,739
It's way cheaper of a service, I wanna say,
6010
04:06:56,920 --> 04:06:59,739
than a lot of the no-code tools and automation platforms
6011
04:06:59,739 --> 04:07:02,319
that I was using before like make.com and N8n.
6012
04:07:02,520 --> 04:07:04,399
Over here, what you need to do is create an API token.
6013
04:07:04,620 --> 04:07:05,620
So I'm gonna click new token.
6014
04:07:05,920 --> 04:07:08,860
I'll say for, what did I actually have over here?
6015
04:07:08,860 --> 04:07:09,739
That was pretty interesting.
6016
04:07:10,319 --> 04:07:11,000
Not genuine.
6017
04:07:11,979 --> 04:07:13,020
Okay, let's do that.
6018
04:07:13,639 --> 04:07:15,319
And then we actually have the token.
6019
04:07:15,440 --> 04:07:16,659
So I'm just gonna copy the server.
6020
04:07:17,200 --> 04:07:19,139
And then what I wanna do is I just wanna paste this on.
6021
04:07:19,459 --> 04:07:21,579
And in the CLAW.md, there's instructions
6022
04:07:21,579 --> 04:07:23,500
where basically you can just give it a new token
6023
04:07:23,500 --> 04:07:26,479
and then it'll go and create all of the stuff for you.
6024
04:07:26,680 --> 04:07:29,559
So I'm gonna include this in the description down below.
6025
04:07:29,559 --> 04:07:30,579
You guys can take a peek at this.
6026
04:07:30,780 --> 04:07:32,219
If you're new to this, all you have to do
6027
04:07:32,219 --> 04:07:33,180
is just do what I just showed you.
6028
04:07:33,180 --> 04:07:34,479
And then now you have the ability
6029
04:07:34,479 --> 04:07:36,360
to basically run this on any account.
6030
04:07:37,040 --> 04:07:39,319
And you know this because this new URL
6031
04:07:39,319 --> 04:07:40,280
that I just popped up here,
6032
04:07:40,280 --> 04:07:42,239
this is on a different service now.
6033
04:07:42,239 --> 04:07:44,079
It's on my Nick J. Wells account,
6034
04:07:44,180 --> 04:07:45,420
not my Nicholas Sariath account,
6035
04:07:45,420 --> 04:07:46,559
which I was on just a moment ago.
6036
04:07:46,739 --> 04:07:47,940
But let's say you wanna extend this.
6037
04:07:47,979 --> 04:07:50,360
You don't just wanna do a simple URL that, I don't know,
6038
04:07:50,399 --> 04:07:51,840
like tells you whether or not it's your birthday.
6039
04:07:52,079 --> 04:07:53,659
You actually wanna do something for business purposes.
6040
04:07:54,100 --> 04:07:55,819
Well, here's where things get really interesting.
6041
04:07:56,180 --> 04:07:58,280
What you can do is you can take a skill
6042
04:07:58,280 --> 04:07:59,459
that you've developed before.
6043
04:08:00,079 --> 04:08:01,579
Then you can just put it up on a URL.
6044
04:08:01,940 --> 04:08:04,059
So that every time you or somebody else accesses URL,
6045
04:08:04,200 --> 04:08:05,659
it immediately triggers the workflow.
6046
04:08:06,219 --> 04:08:07,059
Let me show you what I mean.
6047
04:08:07,200 --> 04:08:08,819
Remember how when we chatted about skills,
6048
04:08:08,879 --> 04:08:10,280
I have this one called scrape leads?
6049
04:08:10,840 --> 04:08:12,200
What if I just copy this
6050
04:08:12,200 --> 04:08:14,799
and then paste this directly into this folder?
6051
04:08:15,139 --> 04:08:17,459
I'm also going to wrap it in a .clod
6052
04:08:17,459 --> 04:08:19,959
and then a skills folder just for organization sake,
6053
04:08:19,979 --> 04:08:21,319
because I could tell this is probably gonna get
6054
04:08:21,319 --> 04:08:22,899
pretty complex if I don't.
6055
04:08:23,020 --> 04:08:23,840
Okay, and now I have it
6056
04:08:23,840 --> 04:08:26,319
inside of .clod slash skills slash scrape dash leads.
6057
04:08:26,799 --> 04:08:27,899
Now what I'm gonna do is I'm gonna say,
6058
04:08:27,899 --> 04:08:28,780
this is great.
6059
04:08:28,979 --> 04:08:30,520
What I'd like you to do now is I'd like you
6060
04:08:30,520 --> 04:08:33,059
to put the scrape dash leads workflow online.
6061
04:08:33,100 --> 04:08:35,819
I want to be able to access it via a simple URL.
6062
04:08:36,420 --> 04:08:38,799
Basically, when I access scrape dash leads,
6063
04:08:38,840 --> 04:08:40,760
I want a little form to pop up
6064
04:08:40,760 --> 04:08:42,239
and ask me what I wanna scrape.
6065
04:08:42,440 --> 04:08:44,159
I then fill out that form
6066
04:08:44,159 --> 04:08:47,159
and then you execute the scrape dash leads workflow
6067
04:08:47,159 --> 04:08:50,420
and then return me the leads in a CSV file when it's done.
6068
04:08:50,680 --> 04:08:53,120
And this has taken us probably less than two minutes
6069
04:08:53,120 --> 04:08:53,459
in total.
6070
04:08:53,579 --> 04:08:54,879
I just filled out the request.
6071
04:08:54,940 --> 04:08:55,819
We now have a URL.
6072
04:08:56,100 --> 04:08:57,420
Just gonna open up this URL,
6073
04:08:57,420 --> 04:08:59,639
which is as mentioned the same as any other URL.
6074
04:09:00,139 --> 04:09:02,299
The search query I'm gonna do is I'll just do dentist.
6075
04:09:02,840 --> 04:09:04,280
I'll say United States.
6076
04:09:04,739 --> 04:09:06,719
We want, I don't know, 100 results.
6077
04:09:06,780 --> 04:09:07,799
Let's make it really small.
6078
04:09:07,979 --> 04:09:08,540
Now that we've clicked,
6079
04:09:08,659 --> 04:09:10,979
we're just gonna take a few minutes to do the actual scrape.
6080
04:09:11,200 --> 04:09:13,479
The instructions I gave it were to immediately download
6081
04:09:13,479 --> 04:09:15,079
the CSV right as this is done.
6082
04:09:15,219 --> 04:09:16,159
Okay, and then top right hand corner,
6083
04:09:16,219 --> 04:09:18,200
I have my leads underscore dentist 100.
6084
04:09:18,360 --> 04:09:19,459
So I'm just gonna take a peek at this
6085
04:09:19,459 --> 04:09:22,059
and we have the data right over here.
6086
04:09:22,479 --> 04:09:23,879
Okay, looking pretty good.
6087
04:09:23,940 --> 04:09:24,780
We have 100 leads.
6088
04:09:24,940 --> 04:09:26,500
Most of these look like dentists, if not all.
6089
04:09:26,500 --> 04:09:28,260
We also have a bunch of additional data about them,
6090
04:09:28,299 --> 04:09:29,379
which is pretty bad ass.
6091
04:09:29,579 --> 04:09:31,159
So I could use this to build a really cool campaign.
6092
04:09:31,860 --> 04:09:33,920
And yeah, hopefully you guys now see the power
6093
04:09:33,920 --> 04:09:36,079
in having something as simple as modal available
6094
04:09:36,079 --> 04:09:39,399
to both whip up really quick webpages and internal tooling
6095
04:09:39,399 --> 04:09:40,959
and even some external tooling,
6096
04:09:40,959 --> 04:09:44,159
as well as use this to do things like run workflows, right?
6097
04:09:44,180 --> 04:09:45,579
You can build your own API call
6098
04:09:45,579 --> 04:09:47,879
or build your own API endpoint, I should say,
6099
04:09:47,959 --> 04:09:49,440
really just a couple of keystrokes.
6100
04:09:49,479 --> 04:09:50,260
And that's that.
6101
04:09:50,420 --> 04:09:52,260
I hope you guys enjoyed learning everything
6102
04:09:52,260 --> 04:09:54,159
and anything to do with Claude Code today.
6103
04:09:54,260 --> 04:09:55,940
You now have everything that you need
6104
04:09:55,940 --> 04:09:58,600
to build the foundational base of knowledge,
6105
04:09:58,600 --> 04:10:00,200
whether or not you guys are programmers
6106
04:10:00,200 --> 04:10:02,620
or completely non-technical people coming into this
6107
04:10:02,620 --> 04:10:04,420
to learn how to do things like build simple apps,
6108
04:10:04,559 --> 04:10:06,020
websites, or workflows.
6109
04:10:06,379 --> 04:10:08,559
I had a blast teaching you guys this sort of stuff.
6110
04:10:08,920 --> 04:10:11,479
If you've ever wondered how to monetize work like this,
6111
04:10:11,620 --> 04:10:14,319
whether it is custom app development or workflow building,
6112
04:10:14,860 --> 04:10:15,920
I'd definitely check out Maker School.
6113
04:10:15,979 --> 04:10:17,700
It's my 90-day accountability program
6114
04:10:17,700 --> 04:10:19,379
where I guide you through step-by-step
6115
04:10:19,379 --> 04:10:21,079
and quite literally every single day
6116
04:10:21,079 --> 04:10:23,260
through a sequence of actions necessary
6117
04:10:23,260 --> 04:10:24,700
to get you your very first customer.
6118
04:10:24,700 --> 04:10:26,799
And I also guarantee that you get your first customer
6119
04:10:26,799 --> 04:10:28,319
by the end of a 90-day period.
6120
04:10:28,579 --> 04:10:29,860
If you don't, I give you all your money back.
6121
04:10:29,920 --> 04:10:31,940
That's my last and only pitch of this video.
6122
04:10:32,239 --> 04:10:34,260
Aside from that, I hope you guys like what you saw.
6123
04:10:34,340 --> 04:10:35,280
If you guys have any questions
6124
04:10:35,280 --> 04:10:37,079
or need help with anything that I mentioned in the video,
6125
04:10:37,340 --> 04:10:38,719
just drop it as a comment down below.
6126
04:10:39,219 --> 04:10:40,620
Aside from that, have a lovely rest of the day,
6127
04:10:40,700 --> 04:10:42,139
and I'll catch all y'all in my next course.
6128
04:10:42,379 --> 04:10:42,579
Bye.521941
Can't find what you're looking for?
Get subtitles in any language from opensubtitles.com, and translate them here.