All language subtitles for [English] CLAUDE CODE FULL COURSE 4 HOURS Build & Sell (2026) [DownSub.com]

af Afrikaans
ak Akan
sq Albanian
am Amharic
ar Arabic Download
hy Armenian
az Azerbaijani
eu Basque
be Belarusian
bem Bemba
bn Bengali
bh Bihari
bs Bosnian
br Breton
bg Bulgarian
km Cambodian
ca Catalan
ceb Cebuano
chr Cherokee
ny Chichewa
zh-CN Chinese (Simplified)
zh-TW Chinese (Traditional)
co Corsican
hr Croatian
cs Czech
da Danish
nl Dutch
en English
eo Esperanto
et Estonian
ee Ewe
fo Faroese
tl Filipino
fi Finnish
fr French
fy Frisian
gaa Ga
gl Galician
ka Georgian
de German
el Greek
gn Guarani
gu Gujarati
ht Haitian Creole
ha Hausa
haw Hawaiian
iw Hebrew
hi Hindi
hmn Hmong
hu Hungarian
is Icelandic
ig Igbo
id Indonesian
ia Interlingua
ga Irish
it Italian
ja Japanese
jw Javanese
kn Kannada
kk Kazakh
rw Kinyarwanda
rn Kirundi
kg Kongo
ko Korean
kri Krio (Sierra Leone)
ku Kurdish
ckb Kurdish (Soranî)
ky Kyrgyz
lo Laothian
la Latin
lv Latvian
ln Lingala
lt Lithuanian
loz Lozi
lg Luganda
ach Luo
lb Luxembourgish
mk Macedonian
mg Malagasy
ms Malay
ml Malayalam
mt Maltese
mi Maori
mr Marathi
mfe Mauritian Creole
mo Moldavian
mn Mongolian
my Myanmar (Burmese)
sr-ME Montenegrin
ne Nepali
pcm Nigerian Pidgin
nso Northern Sotho
no Norwegian
nn Norwegian (Nynorsk)
oc Occitan
or Oriya
om Oromo
ps Pashto
fa Persian
pl Polish
pt-BR Portuguese (Brazil)
pt Portuguese (Portugal)
pa Punjabi
qu Quechua
ro Romanian
rm Romansh
nyn Runyakitara
ru Russian
sm Samoan
gd Scots Gaelic
sr Serbian
sh Serbo-Croatian
st Sesotho
tn Setswana
crs Seychellois Creole
sn Shona
sd Sindhi
si Sinhalese
sk Slovak
sl Slovenian
so Somali
es Spanish
es-419 Spanish (Latin American)
su Sundanese
sw Swahili
sv Swedish
tg Tajik
ta Tamil
tt Tatar
te Telugu
th Thai
ti Tigrinya
to Tonga
lua Tshiluba
tum Tumbuka
tr Turkish
tk Turkmen
tw Twi
ug Uighur
uk Ukrainian
ur Urdu
uz Uzbek
vi Vietnamese
cy Welsh
wo Wolof
xh Xhosa
yi Yiddish
yo Yoruba
zu Zulu
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.