TRANSKRIP 🔗
WEBVTT
00:00:11.961 --> 00:00:13.942
Today we got John Nunemaker back with us.
00:00:14.061 --> 00:00:14.721
Welcome, John.
00:00:14.721 --> 00:00:15.321
Good to have you.
00:00:16.161 --> 00:00:16.911
Good to be here.
00:00:18.051 --> 00:00:19.731
So we, we were just talking pre-show.
00:00:19.821 --> 00:00:27.681
Um, you know, obviously a lot has changed in the AI world since the last time we had you on you know, I, we touched on AI too.
00:00:27.681 --> 00:00:35.932
You know, I remember we were kind of talking about like Vim and like some of the things that, you know, I was doing and you were doing stuff and, and Ryan, I don't even know how much you've been doing at that point, but.
00:00:37.131 --> 00:00:37.432
Wow.
00:00:37.432 --> 00:00:39.411
It's like things are so different at this point.
00:00:39.411 --> 00:00:40.072
I'm doing a lot.
00:00:40.072 --> 00:00:40.281
I know.
00:00:40.281 --> 00:00:41.241
John, you're doing a ton.
00:00:41.811 --> 00:00:43.131
Um, so.
00:00:43.192 --> 00:00:45.381
know, for, maybe I'll kind of start with like what I'm doing.
00:00:45.381 --> 00:00:52.101
'cause I also mentioned pre-show that like I'm doing stuff, but it seems like you're way past where, where I'm at.
00:00:52.101 --> 00:00:52.462
Even
00:00:53.277 --> 00:00:54.667
Or in the wrong direction.
00:00:54.697 --> 00:00:55.267
Who knows?
00:00:56.002 --> 00:00:56.781
maybe, I don't know.
00:00:57.832 --> 00:00:58.462
That's a good point.
00:00:59.182 --> 00:01:00.712
you know, like for me, I'm trying to like, I.
00:01:01.957 --> 00:01:05.106
I'm trying to review code with it a lot, obviously write code with it.
00:01:05.106 --> 00:01:17.826
That's kinda like where it all seemed to start, but then I'm, I'm also trying to find like the gaps where, like how can I use AI to automate this or that other little thing That's not coding necessarily, but it's like tangentially related.
00:01:17.826 --> 00:01:19.087
Maybe it's the stories
00:01:19.087 --> 00:01:19.716
Mm-hmm.
00:01:20.106 --> 00:01:21.876
So that's like a lot of different things, but.
00:01:22.941 --> 00:01:28.162
Maybe the, the place to jump off would be you had a tweet, I forget exactly how long ago, maybe like a month ago.
00:01:29.001 --> 00:01:43.191
Um, and it was something along the lines of, you know, if you're a, a dev manager or like a, a leader in tech, like you should be teaching your, you should be learning this stuff, setting it up on your own environment and then like teaching your team.
00:01:43.227 --> 00:01:43.516
Here.
00:01:43.641 --> 00:01:45.111
So maybe that's a good place to start.
00:01:45.186 --> 00:01:46.507
I had that one written down too.
00:01:46.507 --> 00:01:53.197
So your job as a tech leader now is to get Claude Code max, default to Opus, get your local dev environment set up agent friendly.
00:01:53.197 --> 00:01:54.906
Then do the same for everyone on your team.
00:01:55.466 --> 00:01:55.887
Mm-hmm.
00:01:56.076 --> 00:01:58.596
So like that, I mean, that's
Load full transcript
a bold statement.
00:01:58.626 --> 00:02:03.757
Why do you maybe share some of your, uh, your, your viewpoint on that?
00:02:04.762 --> 00:02:07.341
Yeah, that's just what Claude told me to say, so, no, I'm just kidding.
00:02:11.092 --> 00:02:26.481
Uh, yeah, so I mean, I think where that came from, it was just one of those things that like popped in my head and I've been trying to just do a better job of like, something like I, I read things online and I'm like, oh, what a well-formed, like, smart opinion that that person had and Oh, but like most of the time it's like.
00:02:26.722 --> 00:02:27.562
Yeah, I agree with that.
00:02:27.562 --> 00:02:29.092
Like, why didn't I say that out loud?
00:02:29.241 --> 00:02:31.012
Like, why did they have to be the first one?
00:02:31.012 --> 00:02:35.931
And so like, it just popped in my head that day because I was like, I've been using Claude for like a long time.
00:02:35.931 --> 00:02:41.451
I'd been using sonnet and then like, I remember December 14th, it'll be an infamy for me.
00:02:41.451 --> 00:02:42.622
And I was like, I screw it.
00:02:42.622 --> 00:02:45.711
I'm just upgrading to Opus all the time.
00:02:45.711 --> 00:02:48.741
I'm not gonna use, you know, the lower models anymore.
00:02:49.102 --> 00:02:51.502
And as soon as I did it, I was like, this is the future.
00:02:51.562 --> 00:02:54.171
Like it was just like, I mean, within a day or two I was like.
00:02:54.951 --> 00:03:03.201
I have not, you know, generated this amount of good stuff in that amount of time period, you know, since like Rails.
00:03:03.292 --> 00:03:11.122
Um, and so I was like, okay, this is, this is definitely the way, and just, I started showing people on the, on the team.
00:03:12.217 --> 00:03:16.176
And you know, very quickly they started seeing the same thing.
00:03:16.567 --> 00:03:24.667
And that's when it was just like, you know, I don't know if I was in the shower or driving or what, but it just popped in my head and I was like, I just gotta get this out, you know?
00:03:25.417 --> 00:03:25.926
I did.
00:03:25.926 --> 00:03:30.426
And then, you know, you always get like the trolls, they're like, they're like, well, codex is better.
00:03:30.426 --> 00:03:30.697
And I'm like.
00:03:31.097 --> 00:03:40.877
I that yes, I, but like, if I just say it doesn't matter, which is better or which is worse, what I'm saying is like, your job right now is to figure out there's a new thing in town.
00:03:41.296 --> 00:03:53.026
It's to figure it out and then, and be on the forefront and understand when and where and all that kind of stuff to use it and then get everybody on your team to use it and go from there.
00:03:53.026 --> 00:03:55.576
And, and so we've been doing that at Box Out and it's.
00:03:56.856 --> 00:03:57.997
Like absolutely unreal.
00:03:58.086 --> 00:04:00.727
Uh, I mean, and obviously I'm very good with all the other stuff too.
00:04:01.056 --> 00:04:05.736
Um, but box outs were like the largest team that I'm, uh, you know, taking that approach with.
00:04:06.097 --> 00:04:07.836
And so yeah, it's been, it's been incredible.
00:04:07.866 --> 00:04:08.076
So.
00:04:09.532 --> 00:04:09.681
All right.
00:04:09.681 --> 00:04:14.211
So tell us a little bit about your, uh, company, AI in a Box.
00:04:14.211 --> 00:04:19.822
'cause it sort of feels like the, you know, that concept, uh, overlaps with this.
00:04:19.826 --> 00:04:22.612
I, I don't know if you call it a project or approach or however.
00:04:22.701 --> 00:04:23.601
You view it, right?
00:04:23.601 --> 00:04:26.151
But you know, what is it to you?
00:04:26.182 --> 00:04:27.502
What's the stack look like?
00:04:27.502 --> 00:04:28.341
How does it work?
00:04:28.341 --> 00:04:31.041
Like, you know, share what you're willing to share.
00:04:31.072 --> 00:04:33.291
'cause I think a lot of people are asking the same question.
00:04:34.266 --> 00:04:34.987
I'll share anything.
00:04:34.987 --> 00:04:46.896
So, I mean, the biggest thing for me was like the, the, I mean, I think the, the biggest leap for us as a team, number one was, you know, Claude Max, like everybody got the, the a hundred dollars basically immediately after Christmas break.
00:04:46.896 --> 00:04:50.586
'cause all Christmas break I went crazy and I was like, this is amazing.
00:04:50.586 --> 00:04:51.096
This is the future.
00:04:51.096 --> 00:04:52.896
And so right when we came back I was like, everybody use it.
00:04:52.896 --> 00:04:54.276
I'm gonna get into the brain stuff too.
00:04:54.456 --> 00:04:55.326
And then,
00:04:55.521 --> 00:04:56.091
So hold on.
00:04:56.182 --> 00:04:58.132
So Claude Max is the hundred version one, right?
00:04:58.132 --> 00:05:04.762
And before that I, I, I upgraded to that about the same time it sounds like, you know, somewhere in that area.
00:05:05.451 --> 00:05:10.567
And before that I was like hitting the limit, like every, what, you know, 20 minutes it felt like, and I was so
00:05:10.632 --> 00:05:10.882
yeah.
00:05:12.007 --> 00:05:14.916
That, you know, the a hundred dollars subscription wasn't gonna be enough.
00:05:15.877 --> 00:05:16.357
Right.
00:05:16.357 --> 00:05:18.786
And I have not hit the limit again since then.
00:05:18.786 --> 00:05:20.916
So, like anyone else listening, like, just do it.
00:05:20.922 --> 00:05:22.747
You, you can still get pretty far.
00:05:22.747 --> 00:05:26.947
And if you're a super user and you have to go to the, you know, the 200 plan, so be it.
00:05:26.947 --> 00:05:31.956
But like, don't fret for anyone else that's thinking the same thing that I was, I just wanted to throw that out there.
00:05:32.586 --> 00:05:33.607
No, I totally agree.
00:05:33.607 --> 00:05:36.726
And I've actually like Wagered with a ton of people.
00:05:36.726 --> 00:05:40.687
I was like, look, get the a hundred dollars plan, get the $200 plan, use it.
00:05:40.747 --> 00:05:47.257
And if at the end of the month, uh, you don't feel like it was worth it, then I will pay
for it and you can just not use it ever again.
00:05:47.286 --> 00:05:49.057
And no one's taken me up on that to date.
00:05:49.057 --> 00:05:49.447
So
00:05:49.567 --> 00:05:49.956
You are right.
00:05:49.987 --> 00:05:50.497
it's a hundred.
00:05:50.497 --> 00:05:52.266
It's a absolutely amazing, like even.
00:05:52.326 --> 00:05:54.666
People who didn't wanna spend the money, they're like, this is crazy.
00:05:54.692 --> 00:05:56.076
I, I should have did this a long time ago.
00:05:56.286 --> 00:06:00.997
So I got the $200, I went straight to the, the biggest one because that was all about the deal, you know?
00:06:01.326 --> 00:06:01.627
Yeah.
00:06:01.716 --> 00:06:03.666
well, it's four times for two times the price.
00:06:03.666 --> 00:06:04.567
Why would I not do that?
00:06:04.807 --> 00:06:07.956
But I, everybody that, you know, that's like working, uh, with me.
00:06:07.956 --> 00:06:15.966
I, I've just had 'em start with a hundred and I've just said like, your goal is now to try and max this out enough that it's annoying that you need the 200 and then switch to the 200 immediately.
00:06:15.966 --> 00:06:16.387
I don't care.
00:06:16.387 --> 00:06:21.906
Like, and then I've told everybody the same thing, uh, as well, like when you're at home.
00:06:22.656 --> 00:06:27.877
Like outside of work hours, if you would like to use your work Claude account to do personal things, knock yourself out.
00:06:27.877 --> 00:06:33.067
I don't care because, and I'm not trying to encourage people to like work like crazy or anything like that, but like, it's fun.
00:06:33.127 --> 00:06:34.387
I think we should all understand it.
00:06:34.387 --> 00:06:35.646
I think we should like, play with it.
00:06:35.646 --> 00:06:44.076
And I know if they do with it, I'm not, I'm not gonna force somebody, I'm not gonna say like, if you're not doing this on Saturday and Sunday, you're, you know that, that's definitely not what's happening.
00:06:44.076 --> 00:06:45.877
But if you mess around with it.
00:06:46.367 --> 00:06:51.107
And you figure something out on the weekend, that's always gonna come back and benefit work as well.
00:06:51.406 --> 00:06:54.706
So I've told everybody, I'm like, use it up, like the, the limits.
00:06:54.706 --> 00:06:56.117
They're, they're there either way.
00:06:56.177 --> 00:06:58.427
So, you know, uh, go to town.
00:06:58.427 --> 00:06:59.836
So that's, that's the first thing.
00:07:00.156 --> 00:07:05.317
The, the amount of code I get done now when I'm putting my kids to bed is, is sort of ridiculous, right?
00:07:05.317 --> 00:07:07.747
Like I can build like an entire feature in the hour.
00:07:07.747 --> 00:07:10.581
I'm sitting in my, my son's room, you know?
00:07:10.726 --> 00:07:12.076
to entry is so low.
00:07:12.997 --> 00:07:13.747
It's unreal.
00:07:13.776 --> 00:07:23.076
It like you can just, uh, say things and like, before it would be like, like I have to wait 'cause I, I've only got, you know, 45 minutes until I gotta do something.
00:07:23.317 --> 00:07:24.697
So I don't have time to get anything going.
00:07:24.697 --> 00:07:27.607
So I'll just do something else, you know, like check my email or whatever.
00:07:27.997 --> 00:07:35.947
And now it's like, I mean, my inbox is just growing 'cause I'm like, no, if I, if I have to stop and do something by hand, that feels so.
00:07:36.406 --> 00:07:37.726
Brutal and painful.
00:07:38.026 --> 00:07:41.536
You know, like anything that I can't just like automate like that.
00:07:41.536 --> 00:07:48.047
So, um, but that's kind of what has led to the, the brain idea, which was basically I was like, you know, there's just so many things that like.
00:07:48.547 --> 00:07:52.867
I keep seeing open claw, bot, claw bot, you know, all that stuff.
00:07:53.286 --> 00:07:54.516
And I'm like, this is cool.
00:07:54.516 --> 00:08:02.016
But I'm like, I don't wanna just give away all my credit cards and stuff like that to ai.
00:08:02.137 --> 00:08:02.887
I'm not there.
00:08:03.007 --> 00:08:09.067
So other people, they can go to town, they can it, you know, burn their billion tokens and do all this crazy stuff.
00:08:09.067 --> 00:08:12.697
Like I'm okay with them doing that, but I'm like, I just, that's.
00:08:13.192 --> 00:08:17.451
Giving over your entire life and letting your AI like do all this stuff just seemed like a little too far.
00:08:17.451 --> 00:08:19.851
So I was like, well, what are some isolated ways I can do this?
00:08:20.661 --> 00:08:22.521
at the company level where it's valuable.
00:08:22.791 --> 00:08:29.271
So that's where it started and I was like, well, you know, the first thing I could think was like, what if I could just make it easier for people?
00:08:30.201 --> 00:08:32.841
You know, we run Mease, which is like a reporting thing.
00:08:32.841 --> 00:08:36.022
And so like, but what that means is, hey, I need some data.
00:08:36.022 --> 00:08:40.402
So they come to John, and John creates the report and then they have the data going forward.
00:08:40.402 --> 00:08:49.341
So they don't have to ask John every time, but I still am involved every single time and I'm like, how, how I want to get to more situations where I'm not involved.
00:08:49.461 --> 00:08:52.822
Like that's, that's where this is kind of all, you know, coming from.
00:08:52.822 --> 00:08:54.981
So I was like, how can I make it so that like.
00:08:55.626 --> 00:09:03.187
know, somebody on sales, somebody in marketing or growth, whatever, can just be like, you know, how many of this happened in the last week?
00:09:03.486 --> 00:09:03.876
You know?
00:09:03.966 --> 00:09:07.506
And I was like, well, Postgres, MCP, maybe that would get us close.
00:09:07.567 --> 00:09:16.177
So it was just like, how do I somewhere run a pre-configured Postgres MCP with a read-only replica so nobody can do any damage.
00:09:17.032 --> 00:09:25.011
has any passwords and anything that, again, damage related, that there's, there's no way really that
any problems can kind of come from this.
00:09:25.432 --> 00:09:26.542
It's like, what's the easiest way to do that?
00:09:26.542 --> 00:09:39.322
So I did a lot of spelunking, you know, with, um, my best friend Claude, and we were like, at the end, you know, Lieber chat was one of the, the options that was, it's basically like ChatGPT or Claude's web interface.
00:09:40.596 --> 00:09:43.567
But it's open source and you can just, you know, it's a docker image.
00:09:43.567 --> 00:09:45.636
You can just pull it, run it, and do whatever you want.
00:09:46.057 --> 00:09:48.517
And so I was like, okay, well that looks pretty interesting.
00:09:48.846 --> 00:09:51.157
So now I'm at the point where like I just need to be able to like.
00:09:51.937 --> 00:09:52.447
Test it.
00:09:52.447 --> 00:09:56.496
And so that's why I was like, well, I'll just spin up a server and then I'll like run some stuff on it.
00:09:56.496 --> 00:10:03.606
So my first thought was like, I'm just gonna like rent, you know, whatever, a hener box that's 16 gigs of ram, something that's big enough to like do some things.
00:10:04.866 --> 00:10:06.246
which is only like 30 bucks a month.
00:10:06.246 --> 00:10:06.846
It's super cheap.
00:10:06.937 --> 00:10:11.557
And so, and then I was like, well, I'll just, I'll just install Claude and I'll let it rip.
00:10:11.677 --> 00:10:15.427
You know, I'll sign in, you know, do my stuff and I'll just have c Claude set up the whole server.
00:10:15.427 --> 00:10:16.417
But then I was like, well.
00:10:16.851 --> 00:10:18.412
But it's not repeatable at all.
00:10:18.412 --> 00:10:24.261
So then I kinda thought, well, maybe I should do it locally on my machine and do it in a, you know, like a repeatable way.
00:10:24.261 --> 00:10:26.751
So that's when I kind of to toyed with Ansible.
00:10:26.756 --> 00:10:36.111
'cause I had toyed with it before and it's, it's kind of for like a Ruby guy, it's like Capistrano for servers, you know, like you tell it to run some things and it'll just do it.
00:10:36.201 --> 00:10:40.072
And you can do the pull model, like puppet and stuff I think too.
00:10:40.072 --> 00:10:43.611
But for the most part it's just like, you run, I run a command and I can do things.
00:10:44.422 --> 00:10:45.292
I was like, okay, cool.
00:10:45.292 --> 00:10:45.861
So I was like.
00:10:46.267 --> 00:10:54.397
Uh, make a Ansible playbook to install Claude, like, it did it, and I was like, like run it against this server and it, and it did it.
00:10:54.397 --> 00:11:01.417
And I was like, okay, like lock down SSH and like, so it locked down SSH and it like threw in a couple things that I wasn't even thinking about, you know?
00:11:01.777 --> 00:11:05.856
And then I was like, uh, and I, I don't even remember all the things, but I was like, well, now I want like.
00:11:06.831 --> 00:11:15.532
code just 'cause I thought, well, if I have open code, I can run some random junk on there and maybe that can be my, like, you know, runs things when I'm away from my computer situation.
00:11:16.192 --> 00:11:16.522
So what?
00:11:16.611 --> 00:11:17.361
What's open code?
00:11:18.322 --> 00:11:21.231
Uh, it's just Claude, it's like the open version of Claude
00:11:21.246 --> 00:11:21.537
Okay.
00:11:21.861 --> 00:11:24.892
So, and you can run with different models and all that kinda stuff.
00:11:25.371 --> 00:11:28.131
Um, like a lot of people seem to really like it.
00:11:28.282 --> 00:11:32.062
Um, I've had some issues when I, when I used it where I've just not been a huge fan.
00:11:33.532 --> 00:11:34.042
but it's cool.
00:11:34.042 --> 00:11:36.471
And they have OpenCode Zen, which allow, you know, allows you to run.
00:11:36.471 --> 00:11:38.511
Like right now they're doing free trials of like.
00:11:38.782 --> 00:11:44.392
Kimi and MiniMax and like all these, you know, open source models, um, which is kind of neat as well.
00:11:44.841 --> 00:11:49.402
Um, but I was just like, oh, let's just make this kind of like a repeatable thing so I can script deploy.
00:11:49.402 --> 00:11:50.361
And then pretty soon I was like.
00:11:50.721 --> 00:11:58.642
I was script deploying and I had to put in a password every time and it was getting annoying 'cause I'm like typing this password or pasting it over and over.
00:11:58.642 --> 00:12:04.042
And I was like, can I just let, okay, just put the password in a file, like M type stuff, you know?
00:12:04.221 --> 00:12:10.341
And then when I do this, like just cat the file into input so that I don't have to do this by myself every time.
00:12:10.341 --> 00:12:10.912
And it was like, cool.
00:12:10.912 --> 00:12:12.621
Did it, so now it can deploy.
00:12:12.621 --> 00:12:14.062
And I was like, cool, now you're deploying.
00:12:14.062 --> 00:12:14.841
And it was like, okay.
00:12:15.081 --> 00:12:19.371
And I was like, also, now you're SSHing and so that you can verify the things you did.
00:12:19.822 --> 00:12:21.111
'cause like I don't wanna be involved.
00:12:21.111 --> 00:12:24.981
And so then it just started, it just started turning and I'd be like, do this, install another thing.
00:12:25.042 --> 00:12:25.522
Do this.
00:12:25.642 --> 00:12:26.392
This didn't work.
00:12:26.782 --> 00:12:32.841
And eventually I got to where, you know, I have, um, I, however, I don't know how you pronounce it, but Lever Chat set up and.
00:12:33.152 --> 00:12:41.942
It's got the Postgres, MCP, and I had the stripe, MCP, um, and I could say like, how many, you know, users do we have or how many graphics were created?
00:12:42.241 --> 00:12:45.542
And it was giving me right answers and I was like, okay, this is kind of cool.
00:12:45.932 --> 00:12:53.131
And so then, you know, from there I was like, well, what would be the most that, like, that's, that works, but what would be something that's actually like really usable?
00:12:53.131 --> 00:12:55.562
And I feel like we just, I have no data on support.
00:12:56.267 --> 00:12:56.687
Mm-hmm.
00:12:57.022
--> 00:12:59.932
for box out, I'm just, I'm like three levels away from it.
00:12:59.961 --> 00:13:05.032
I'm only brought in when there's like a severe technical issue of some sort that has to be debugged.
00:13:05.692 --> 00:13:09.142
And so I was like, I don't know, generally like what happens, what's the most common?
00:13:09.142 --> 00:13:10.131
Any of that kind of stuff.
00:13:10.131 --> 00:13:10.427
And I.
00:13:11.361 --> 00:13:15.562
I've kind of asked for it a few times and it's always just like a gut, well, maybe it's this kind of stuff.
00:13:15.562 --> 00:13:19.851
And so I was like, you know what, we have all these in, you know, crisp.
00:13:19.942 --> 00:13:32.361
And so I was like, I'm just going to, I already have API stuff set up to like allow, allow our admin to like, uh, area in our app to like view the crisp support things and do some extra stuff that Chris, Chris didn't do.
00:13:32.361 --> 00:13:34.701
So I was like, what if I just slrp 'em all into a database?
00:13:35.471 --> 00:13:37.152
got the Postgres MCP already.
00:13:37.751 --> 00:13:40.331
And so I was like, what if I just slipped 'em all in the database and then I could do things?
00:13:40.331 --> 00:13:43.302
And then I was like, what if I vectorized them and then I could do semantic searches on 'em?
00:13:43.302 --> 00:13:46.542
And then I, I was talking with Claude, and Claude was like, you don't need the vector stuff.
00:13:46.542 --> 00:13:49.932
Like just chill out and just, just get the them in the database.
00:13:50.412 --> 00:13:50.951
It's fine.
00:13:51.251 --> 00:13:54.042
So I got 'em in the database and then I was like.
00:13:54.346 --> 00:14:05.506
Build an API endpoint that allows me to like, do these few things, like search by email, search by text, um, you know, list the most recent or for a time range or stuff like that.
00:14:05.567 --> 00:14:09.317
And just to get all of the, the conversations and messages and stuff like that.
00:14:09.647 --> 00:14:13.456
So I built that API, and then I was like, I created a new directory.
00:14:13.456 --> 00:14:16.756
This is all in, like, I mean, half an hour or an hour.
00:14:17.027 --> 00:14:20.626
I was like, okay, now create a new, you know, I created a new director.
00:14:20.626 --> 00:14:22.576
I was like, create an MCP to talk to this api.
00:14:23.287 --> 00:14:25.836
so I'm just linking directories back and forth.
00:14:25.927 --> 00:14:35.376
Uh, should have just did, honestly, at this point, I just want a big mono repo for everything that I work on, but, that doesn't really work, uh, across companies and stuff, but it did it.
00:14:35.376 --> 00:14:37.147
And so it got the MCP and I was like, cool.
00:14:37.147 --> 00:14:41.706
Now I went to the Ansible, you know, brain repo, and I was like, put the MCP in Libra Chat.
00:14:42.591 --> 00:14:44.961
And it did It and it deployed it.
00:14:45.292 --> 00:14:47.032
I was like, sweet, this is really cool.
00:14:47.152 --> 00:14:48.261
So then I was like, all right.
00:14:48.322 --> 00:14:52.971
I went to Lever Chat and I was like, gimme a summary of the last week of support requests.
00:14:52.971 --> 00:14:54.562
And it was like, oh, here's the breakdown.
00:14:54.562 --> 00:14:58.611
Like, you know, 25% are account related, 25% are technical.
00:14:58.611 --> 00:15:04.101
You know, 15% are like having problems with like social media accounts and connecting and stuff, because that is.
00:15:04.942 --> 00:15:06.111
Horrible generally.
00:15:06.142 --> 00:15:12.772
Um, and you know, then it was like a, yeah, and then a few other like, uh, things and I was like, that's cool.
00:15:12.772 --> 00:15:14.636
And I was like, what's the tone of our support?
00:15:15.292 --> 00:15:18.981
Person, like, how would you classify their responses?
00:15:18.981 --> 00:15:21.802
And it was like, warm and helpful.
00:15:21.831 --> 00:15:23.932
And I was like, that's what you want to hear, right?
00:15:23.932 --> 00:15:25.251
Like, that's, you want to hear that.
00:15:25.251 --> 00:15:25.761
You don't wanna hear.
00:15:25.761 --> 00:15:29.631
Like, they're like, if, if we were gonna make suggestions for improvements, maybe a little brief.
00:15:29.871 --> 00:15:31.192
And I'm like, okay.
00:15:31.221 --> 00:15:32.812
Like that's, that's fine.
00:15:32.812 --> 00:15:33.892
I can live with that.
00:15:33.892 --> 00:15:39.741
You know, like, So I, I was like, this is really cool to be able to like, so now.
00:15:40.701 --> 00:15:42.831
I mean, I can, it's just like, what, what do I want?
00:15:42.831 --> 00:15:48.351
So now I know the next thing I want, which I haven't got into because I've been stuck on a couple of other dumb things.
00:15:48.802 --> 00:15:56.751
But, um, I wanna do like automatic stuff, like just run this every day or week and, you know, slack it.
00:15:56.841 --> 00:16:04.876
Um, so I saw like the chat, SDK from whoever made that Vercel or somebody, um, where you can like very easily run this thing and then.
00:16:05.601 --> 00:16:14.091
Posted to a bajillion different slack or, you know, discord or like anything, it's like a adapter to all of the chat things.
00:16:14.376 --> 00:16:14.496
Yep.
00:16:14.542 --> 00:16:15.682
And I was like, okay.
00:16:15.682 --> 00:16:31.072
So like, that seems like the a, a sensible, like next thing is basically like on every week, on like Sunday, run a report that's like, here's the most common support requests over the last with like, you know, a couple of examples of it.
00:16:31.496 --> 00:16:35.611
Then plop it in Slack, so every, just automatically it's there, you know?
00:16:36.096 --> 00:16:36.846
Let, let me,
00:16:36.851 --> 00:16:37.211
like that.
00:16:37.506 --> 00:16:41.767
let me interrupt you before I lose too much of a, a train of thought here.
00:16:41.767 --> 00:16:42.037
Right.
00:16:42.037 --> 00:16:53.346
But is like, so for the scheduling thing, are you literally like typing that into a LibreChat and saying, you know, AI go schedule
this, or are you like, is this like a cron job?
00:16:53.917 --> 00:16:54.336
Like, do you,
00:16:54.471 --> 00:16:56.692
I think, yeah, what I'm gonna do is cron it.
00:16:56.692 --> 00:16:56.782
I
00:16:56.922 --> 00:16:57.211
okay.
00:16:57.261 --> 00:17:05.422
I think what I'm gonna do is I'll, I have Claude and open code both on there and they, you know, they have dash P and stuff like that where you can just like pass things in and then get output.
00:17:05.481 --> 00:17:10.642
Um, so I think that's what I'm gonna do is set up like a cron, just a script that runs a couple of Claude things.
00:17:10.971 --> 00:17:20.571
On top of and I'll, so I'll just install that same MCP that's in Libra, chat into Claude, and then have, tell Claude the same questions and to summarize it and do all those things.
00:17:20.721 --> 00:17:24.622
And then, um, you know, the script at the end will take the output and just shove it
00:17:24.741 --> 00:17:24.951
Got it.
00:17:25.011 --> 00:17:25.221
Yeah.
00:17:25.251 --> 00:17:26.122
uh, slack channel.
00:17:26.511 --> 00:17:27.112
That makes sense.
00:17:27.112 --> 00:17:41.781
So sometimes it's easy, it's hard to see where the line is between like, you know, uh, you know, a chat, I'll, I'll just say chat generically to mean with an AI and like automation, right?
00:17:41.781 --> 00:17:48.592
Like, I think what I've come to think lately and I, I feel like things are changing so fast.
00:17:48.592 --> 00:17:52.086
I, you know, maybe change my mind tomorrow, but it's like, all right.
00:17:53.001 --> 00:17:55.162
Those are actually two different things, right?
00:17:55.162 --> 00:17:57.412
Automation and ai, right?
00:17:57.412 --> 00:18:10.281
AI can do the work in, you know, using sort of natural language, but automation needs a trigger or some sort of schedule or something to actually kick off the AI to do the thing, right?
00:18:10.281 --> 00:18:11.872
Do you, do you think of it the same way,
00:18:12.862 --> 00:18:18.471
Yeah, I mean, I think it has to have something, or you have to have some system that can take natural language and then turn it into that.
00:18:18.471 --> 00:18:18.622
right?
00:18:18.862 --> 00:18:21.981
Um, like what I, what I did is I installed like, oh, so open code.
00:18:21.981 --> 00:18:29.092
The only reason I installed it is because they have open code web, is like, you can just run a command and then it runs a chat interface that's just like, you know.
00:18:29.172 --> 00:18:31.362
Cloud code or, or stuff like that.
00:18:31.602 --> 00:18:42.521
So you can like have, you know, you can go into what directories and then you can like tell open code to run things against different models and it'll literally just make files, you know, do get things like whatever.
00:18:42.521 --> 00:18:43.241
All that kinda stuff.
00:18:43.241 --> 00:18:50.321
And I was like, again, I wanted that to exist 'cause I wanted to be able to control the server from chat I needed to.
00:18:50.622 --> 00:18:58.811
So I feel like that's the kind of thing that like you could pretty easily be like, you know, I could just clone brain on that server and then.
00:18:59.271 --> 00:19:07.311
Tell it to like, do something and then tell it to like also, you know, to like put it in the get repo also and commit it so that it, it does both.
00:19:07.311 --> 00:19:12.922
Like if I'm on my phone, I could just be like, Hey, set up a new trigger, you know, a new crown every day that does this.
00:19:13.192 --> 00:19:14.571
And open code would do that.
00:19:14.571 --> 00:19:19.281
It would just be like, cool, uh, you want this crown and this file and this is what it's gonna run.
00:19:19.281 --> 00:19:21.471
Do you want me to make a script and set dash, eat it?
00:19:21.471 --> 00:19:22.372
And all that kind of stuff.
00:19:22.507 --> 00:19:22.926
Yeah,
00:19:23.481 --> 00:19:23.811
but yeah,
00:19:23.826 --> 00:19:24.247
you still use.
00:19:24.501 --> 00:19:25.011
how I do it.
00:19:25.896 --> 00:19:32.916
Claude or OpenCode to create the thing, but it is literally just creating the script and cron job for you.
00:19:33.396 --> 00:19:33.606
Yeah.
00:19:33.696 --> 00:19:34.086
Yeah.
00:19:34.386 --> 00:19:40.596
And then you get the, the benefit of like, you know, at the end of it, and again, there's a ton of people that are starting to build these automation things.
00:19:40.596 --> 00:19:45.817
Like, I feel like, uh, I've seen like a bunch of 'em in the, in the past three days.
00:19:45.846 --> 00:19:53.737
Um, but none of 'em have been, I haven't seen anybody that's hyperfocused on like company, like solving in internal company things.
00:19:53.767 --> 00:19:54.156
I guess
00:19:54.217 --> 00:19:58.912
there's a bunch of the big ones that are like, you know, AI orchestration, right?
00:19:59.271 --> 00:20:01.821
Uh, N eight N and
00:20:01.836 --> 00:20:02.227
Yeah.
00:20:02.332 --> 00:20:04.281
you know that that's type, but Right.
00:20:04.281 --> 00:20:04.672
I think.
00:20:05.152 --> 00:20:08.392
I think what you just said is a good reminder that it doesn't have to be that complicated.
00:20:08.571 --> 00:20:08.872
Right.
00:20:08.872 --> 00:20:14.332
It's a, there's a cron process and there's a script and that could be all you need, right?
00:20:14.332 --> 00:20:15.561
Like to start.
00:20:16.372 --> 00:20:16.791
Right.
00:20:17.451 --> 00:20:23.902
Um, all right, so you've been bouncing back between open code and quad code in this conversation.
00:20:23.991 --> 00:20:24.382
Right.
00:20:24.382 --> 00:20:28.192
And when you say Claude Code, I just wanna make sure I understand.
00:20:28.192 --> 00:20:33.382
It's like you're, you know, you're using your subscription like you're paying for something there, right?
00:20:33.961 --> 00:20:34.182
Yep.
00:20:34.551 --> 00:20:34.672
Yeah.
00:20:34.731 --> 00:20:35.001
Okay.
00:20:35.692 --> 00:20:39.471
Um, and then open code is sort of the open source version of that.
00:20:39.471 --> 00:20:44.001
So you, it
doesn't necessarily have a subscription, but it can still hook into models.
00:20:44.001 --> 00:20:44.301
Right.
00:20:44.301 --> 00:20:45.321
So you'd have to pay for that.
00:20:45.801 --> 00:20:46.221
Yes.
00:20:46.221 --> 00:20:46.342
You
00:20:46.346 --> 00:20:46.636
Yeah.
00:20:46.642 --> 00:20:46.731
the
00:20:46.926 --> 00:20:47.277
Right.
00:20:47.451 --> 00:20:48.321
for, or the models?
00:20:48.321 --> 00:20:50.571
Not for the um, not for the harness.
00:20:50.602 --> 00:20:50.811
Yeah.
00:20:50.811 --> 00:20:55.672
The harness is free, which is just like the, the CLI or the web interface that it runs.
00:20:55.672 --> 00:21:08.211
The only reason I'm not using open code in my daily life at all, the only reason I use open code in on this one project is because it has a web version, my dream was I want everything to work from my phone anywhere.
00:21:08.432 --> 00:21:09.211
Whenever I Dang.
00:21:09.211 --> 00:21:09.872
Well, please.
00:21:10.231 --> 00:21:12.602
And the only way I could figure it out was I, I
00:21:12.721 --> 00:21:13.011
Yeah.
00:21:13.172 --> 00:21:15.842
now, was that without vibing a whole bunch of stuff, so
00:21:16.057 --> 00:21:27.156
So Claude, that's, that's a frustrating thing for me right now with the Claude Mobile app, which is like, I can do it, but then I can't pull it open on my desktop and continue like, so I, I have to like start and finish.
00:21:27.561 --> 00:21:28.866
I, I just saw something
00:21:28.866 --> 00:21:28.896
Okay.
00:21:29.076 --> 00:21:32.856
like yesterday that they, if you're on the max plan, actually I think you get,
00:21:33.301 --> 00:21:34.021
The remote.
00:21:34.086 --> 00:21:34.237
it.
00:21:34.416 --> 00:21:34.567
Yeah.
00:21:34.567 --> 00:21:35.287
It's like the remote one.
00:21:35.291 --> 00:21:36.696
Alright, well there we go.
00:21:36.696 --> 00:21:36.817
I'm
00:21:37.082 --> 00:21:37.501
ha.
00:21:37.957 --> 00:21:38.557
later today.
00:21:39.487 --> 00:21:43.836
It's, well, I think they're, they count any max, so 102 hundred, I think both Count.
00:21:43.866 --> 00:21:44.586
I, it's
00:21:44.737 --> 00:21:44.916
Well,
00:21:45.067 --> 00:21:46.567
that, those are both the max plans.
00:21:46.567 --> 00:21:49.027
Just one, one super and one's regular,
00:21:49.116 --> 00:21:57.636
well, maybe I'm missing something 'cause I, I have the max hundred plan and I can do stuff on my phone, but I cannot figure out like how to get that.
00:21:58.491 --> 00:22:00.172
On my desktop may, I guess,
00:22:00.261 --> 00:22:00.481
So,
00:22:00.892 --> 00:22:03.771
well, let me rephrase Now that I'm, I'm saying it out loud, right?
00:22:03.771 --> 00:22:17.602
I can probably pull it open in the, the web view and see it, but I can't then access it from, you know, I, I use the VS code extension in my, you know, vs code editor to use Claude, right?
00:22:17.602 --> 00:22:18.711
So maybe I, that's a disconnect.
00:22:18.711 --> 00:22:19.071
I don't know.
00:22:19.596 --> 00:22:22.626
Well, you can tell it, uh, from your phone or from the desktop.
00:22:22.626 --> 00:22:28.267
You can tell it to commit to GitHub and it'll make, do that and make PRS and stuff, and then you can clone it and so you're all good.
00:22:28.326 --> 00:22:28.777
So that, that's
00:22:28.896 --> 00:22:29.166
Well,
00:22:29.166 --> 00:22:29.886
before, but
00:22:30.156 --> 00:22:33.787
I do that, but you lose the chat history, right?
00:22:33.936 --> 00:22:36.606
Like I wanted to be able to just like pick up where I left off.
00:22:37.507 --> 00:22:37.626
You
00:22:37.642 --> 00:22:39.741
And sometimes that's useful and sometimes it's not, right?
00:22:39.741 --> 00:22:44.152
Like sometimes it's better to just nuke the context window and start from where you're at.
00:22:44.152 --> 00:22:45.471
But, um,
00:22:45.636 --> 00:22:45.997
Yeah.
00:22:46.402 --> 00:22:54.291
I'm working on a very specific problem that is like, it took a while to build the context and it's like, I don't really wanna start over.
00:22:54.291 --> 00:22:56.092
So I guess I'm gonna sit here and type up my phone now.
00:22:57.487 --> 00:23:03.156
Well, I think what you can do for those scenarios, I've started like realizing this, that like, uh, these things are not.
00:23:04.281 --> 00:23:13.521
The way that, like, I, I didn't realize this before, but like the way uh, Claude works when it's going back and forth it literally sends the whole chat every time.
00:23:13.521 --> 00:23:15.021
That's why we have compaction and stuff.
00:23:15.021 --> 00:23:16.551
Like they are not intelligent.
00:23:16.551 --> 00:23:17.902
There's no memory on the other side.
00:23:17.902 --> 00:23:19.761
They're sending the whole thing every time.
00:23:20.241 --> 00:23:23.211
So like, that's why I've started the last like.
00:23:23.211 --> 00:23:25.817
Four or five days, I start over way more often.
00:23:26.237 --> 00:23:38.537
Um, I think it just, you actually end up with better results because, you've went through the other side of it, like your head has, has distilled the problem down and so then it, it can be a lot more succinct to redescribe the issue.
00:23:39.376 --> 00:23:42.916
and then sometimes it doesn't have the baggage that the previous conversation had.
00:23:43.416 --> 00:23:46.386
Yeah, so I've noticed that as well.
00:23:46.386 --> 00:23:52.957
And now I am, as a result, I open more tabs and have separate conversations.
00:23:53.721 --> 00:23:54.771
Typically in parallel.
00:23:54.771 --> 00:24:07.912
And I wanna, I wanted to ask you about sort of parallel work in a second, but to wrap up sort of your, your Brain AI company in a box I thing the Postgres MCP server.
00:24:08.781 --> 00:24:13.642
Is sort of the MCP to talk to your read replica database, right?
00:24:13.642 --> 00:24:15.531
Like it's the connection to that.
00:24:15.531 --> 00:24:15.711
And
00:24:15.846 --> 00:24:16.237
Yeah.
00:24:16.642 --> 00:24:21.922
Stripe, MCP is the connection to Stripe data on Stripe, I assume, right?
00:24:21.922 --> 00:24:24.832
That's how is that the right framework of thinking about this thing?
00:24:25.521 --> 00:24:28.672
Yeah, and you can turn all all of them on and talk to all of them.
00:24:28.672 --> 00:24:30.892
So I could be like, here's an email address.
00:24:30.892 --> 00:24:33.711
Tell me everything you can about it from the database, stripe and support.
00:24:34.477 --> 00:24:44.196
It would gimme a summary on them, like it, and it would pull all the data and then, you know, it would use the LLM to like analyze it and then give you a report back, which is really cool again.
00:24:44.227 --> 00:24:55.807
'cause like what kicked it off was like, one of our salespeople had a list of attendees to a conference, um, that they, that they had went to and they were going through and trying to figure out who was a box out customer and who wasn't.
00:24:55.807 --> 00:24:57.487
And so who should they follow up with?
00:24:57.922 --> 00:24:58.211
Yeah.
00:24:58.237 --> 00:25:01.747
were like, 'cause we don't just throw a thing in and send a mass email that's not.
00:25:01.997 --> 00:25:02.987
The way we operate.
00:25:02.987 --> 00:25:05.027
I everyone hates that, so why would we do it?
00:25:05.297 --> 00:25:06.767
So instead we do personal stuff.
00:25:06.767 --> 00:25:11.777
And so he spent three hours of one day going through like a hundred emails and he was like, this is really slow.
00:25:11.777 --> 00:25:20.027
And he told, you know, um, Robbie, who's like, um, co-owner and whatever, and, and so I was like, oh no, we can totally solve this.
00:25:20.057 --> 00:25:23.866
So in like 10 minutes I made a script that would just hydrate.
00:25:24.517 --> 00:25:27.067
An email with, have they ever been a subscriber?
00:25:27.067 --> 00:25:28.567
Are they currently a subscriber?
00:25:28.836 --> 00:25:30.336
You know, never been a subscriber.
00:25:30.336 --> 00:25:31.086
That kind of stuff.
00:25:31.086 --> 00:25:33.007
And then like if they were, here's some other stuff.
00:25:33.037 --> 00:25:36.186
And so it was just like, take a spreadsheet, hydrate it with a thing.
00:25:36.186 --> 00:25:37.626
And I was like, this should be ai.
00:25:37.626 --> 00:25:42.696
This should not be, I mean, I was using ai, but he should be able to do this on his own without my assistance.
00:25:42.936 --> 00:25:46.356
That's kind of where the whole brain idea kicked off is like, let's solve that one.
00:25:46.356 --> 00:25:46.446
And
00:25:46.491 --> 00:25:47.227
It feels like
00:25:47.227 --> 00:25:47.586
thing that
00:25:47.707 --> 00:25:50.017
you're almost there if you're not already.
00:25:50.017 --> 00:25:50.376
Right.
00:25:51.037 --> 00:25:51.336
Yeah.
00:25:51.396 --> 00:25:51.666
Yeah.
00:25:51.727 --> 00:25:52.507
Like, and that was.
00:25:52.717 --> 00:25:53.346
Described.
00:25:53.977 --> 00:25:58.057
Few hours of work, maybe over the course of like, you know, a couple days.
00:25:58.116 --> 00:25:58.686
Um,
00:25:58.912 --> 00:25:59.957
Think
about how much time.
00:26:03.277 --> 00:26:04.267
that is the hope.
00:26:04.267 --> 00:26:11.616
We're really big on automation and like trying to not add humans to do things when we can make, you know, we've always been this way from the beginning.
00:26:11.797 --> 00:26:15.876
Um, so we're very small compared to like, competitors in the same size and stuff like that.
00:26:16.356 --> 00:26:19.116
Um, but even more so now, so.
00:26:20.402 --> 00:26:22.862
Uh, just another question on like the interface.
00:26:22.862 --> 00:26:31.027
You mentioned Slack before, like the, kinda like a digest it sounded like, but how are the people that aren't you interfacing with this, this brain?
00:26:31.027 --> 00:26:37.416
Yeah, so right now I have tail scale on it so that, you know, it's only accessible via tail scale.
00:26:37.416 --> 00:26:46.027
So what I've started doing is I just, have been inviting each of the people that can use it and that to the tail scale, uh, tail net or whatever they call it.
00:26:46.416 --> 00:26:52.207
And then they just download the Mac app, and then they go to like a, I do tail scale serve, you know, for Libra Chat.
00:26:52.416 --> 00:26:54.757
And so they get like a URL that they can go to.
00:26:54.757 --> 00:26:56.497
So basically it's like bookmark A URL.
00:26:56.781 --> 00:26:59.902
And just have tail scale running and you're, and you can access it and you're fine.
00:26:59.991 --> 00:27:03.261
Um, and so that, I think that's, that's the way right now.
00:27:03.261 --> 00:27:04.791
Does that, does that answer the question?
00:27:04.791 --> 00:27:05.571
Was I getting the right?
00:27:05.711 --> 00:27:06.311
I'm not familiar
00:27:06.412 --> 00:27:06.471
Um.
00:27:06.521 --> 00:27:08.487
tail scale, but I kind of get the gist of what you're
00:27:08.521 --> 00:27:09.606
It is, it tail scale's.
00:27:09.606 --> 00:27:11.227
Like a company VP is sick.
00:27:11.257 --> 00:27:11.946
It's so cool.
00:27:11.946 --> 00:27:16.747
Like I, I have not used it until this project, but I was like, everyone keeps talking about tail scale for this purpose.
00:27:16.747 --> 00:27:18.757
So I was like, I'm just gonna figure it out.
00:27:18.787 --> 00:27:19.926
Uh, AKA Claude.
00:27:20.406 --> 00:27:22.507
And so Claude was like, yeah, just download it, do this.
00:27:22.507 --> 00:27:26.616
And then I, I just take screenshots of the UI and I'd paste him into Claude and I'd be like, what do I do next?
00:27:27.011 --> 00:27:27.231
Yep.
00:27:27.682 --> 00:27:35.811
and like, you know, if you've been doing this for 20 years, like I have, like you have a sniff test and you know what's legit and what's not, and tail scale is, is really sick.
00:27:35.811 --> 00:27:47.781
You end up with a little menu bar item, a Mac app, iOS app, and then it just creates this like network that anyone who's running that and correctly off can, can load infor, you know, information
00:27:47.977 --> 00:27:48.247
Yep.
00:27:48.261 --> 00:27:50.001
that is running on that.
00:27:50.241 --> 00:27:51.771
And anyone who isn't, can't.
00:27:52.461 --> 00:27:58.311
So it's like a VPN, you know, like if you're at any big company, it's like a VPN.
00:27:58.311 --> 00:28:05.991
You just add a person, tell 'em, you know, set the permissions of what they can access and what they can't, and just install Mac app and log in with an email and that's it.
00:28:06.471 --> 00:28:06.951
Right.
00:28:06.981 --> 00:28:09.892
Is the interface kinda like a web interface though, and then it's
00:28:10.106 --> 00:28:10.326
Yep.
00:28:10.582 --> 00:28:12.412
basically tunneled through this VPN basically.
00:28:12.981 --> 00:28:13.281
Yes.
00:28:13.342 --> 00:28:13.551
Yeah.
00:28:13.551 --> 00:28:15.112
So Libra Chat is a web interface.
00:28:15.112 --> 00:28:15.382
Yep.
00:28:15.801 --> 00:28:16.132
Okay.
00:28:16.132 --> 00:28:16.551
tail scale.
00:28:16.551 --> 00:28:18.442
Also, both of 'em have web interfaces.
00:28:18.442 --> 00:28:18.682
Yeah.
00:28:19.146 --> 00:28:19.446
That
00:28:19.491 --> 00:28:24.051
So tail scale.com is you access outside of the tail scale network.
00:28:24.051 --> 00:28:27.531
Like that's just like go to a thing, like any SaaS and sign in and do your thing.
00:28:27.862 --> 00:28:34.672
Um, Libra Chat is running via tail scale serve, which basically specifically creates like a subdomain for your tail net.
00:28:35.092 --> 00:28:38.616
So it's like Libra chat tail, whatever kind of a thing.
00:28:38.676 --> 00:28:44.076
Um, and it's kinda like eng gr or, uh, you know, any of those kind of t tunneling things.
00:28:44.076 --> 00:28:44.467
Yeah, yeah.
00:28:44.467 --> 00:28:45.096
That's the best way.
00:28:45.096 --> 00:28:49.086
The mental model is eng gr uh, it's like eng gr for your company, of.
00:28:49.146 --> 00:28:50.166
Uh, you can do Eng Rock.
00:28:50.227 --> 00:28:54.217
I could do all the same things probably, but tail scale seems like the cool kid on the block.
00:28:54.217 --> 00:28:55.416
So I was like, I'll try 'em out.
00:28:55.416 --> 00:28:57.217
And they're as advertised.
00:28:57.217 --> 00:28:57.696
It's pretty good.
00:28:57.696 --> 00:29:00.126
You get a, I don't know, a hundred some devices for free.
00:29:00.247 --> 00:29:00.817
I mean, you
00:29:00.906 --> 00:29:03.426
So why do you need that?
00:29:03.426 --> 00:29:11.707
Like, couldn't you just have like a, is it to avoid having to run your own server to off and then show the chat interface?
00:29:12.336 --> 00:29:13.146
Like what's the benefit?
00:29:14.092 --> 00:29:17.571
so Libra Chat actually even also has auth as well.
00:29:17.571 --> 00:29:22.971
Mostly I was just like, this has literally, this box is going to have literally everything related to the company on it.
00:29:22.971 --> 00:29:24.771
I would like it to be as locked down as possible,
00:29:25.162 --> 00:29:27.321
so it was more of a security concern than a
00:29:27.412 --> 00:29:28.071
yes.
00:29:28.521 --> 00:29:29.991
challenge that you had to
overcome.
00:29:31.041 --> 00:29:41.692
I mean, I don't want somebody trying to hack, you know, email addresses on Libra Chat or, you know, I don't know, like any number of attempts to, to get into it.
00:29:41.692 --> 00:29:47.061
And so I was like, just completely lock it one extra layer.
00:29:47.152 --> 00:29:49.132
'cause all the stuff is gonna be centralized there.
00:29:49.491 --> 00:29:53.872
So that creates, you know, a little more of an, uh, attack vector if anybody were going to.
00:29:53.872 --> 00:29:55.041
So that, that was my thought.
00:29:55.041 --> 00:29:55.342
But,
00:29:55.747 --> 00:29:56.136
You know.
00:29:56.136 --> 00:29:56.616
That's fair.
00:29:56.616 --> 00:29:58.602
I was just, I was like, all right, well, why do you actually.
00:29:59.781 --> 00:30:02.092
You know, outside of security, why do you actually need it?
00:30:02.092 --> 00:30:10.011
You could just have a, a webpage somewhere that has a password, you know, authentication system and be like, all right, but yeah, that, that makes sense.
00:30:10.011 --> 00:30:12.862
You're putting pretty much your, your whole business in that.
00:30:13.551 --> 00:30:15.261
Let, let's make sure it's secure.
00:30:16.027 --> 00:30:16.957
All the repos.
00:30:16.957 --> 00:30:19.116
It has read access to the database.
00:30:19.176 --> 00:30:26.346
It has, you know, a bunch of API tokens for Claude, for, uh, codex, for, open Code Zen.
00:30:26.346 --> 00:30:28.926
Like, there's just, there's a ton of stuff in one spot.
00:30:28.957 --> 00:30:30.037
So I was like, you know what?
00:30:30.037 --> 00:30:31.807
Let's just lock it down.
00:30:31.807 --> 00:30:35.136
Even SSH can be locked down to only if you're on the tail scale.
00:30:35.136 --> 00:30:35.616
So like.
00:30:36.382 --> 00:30:37.162
That's kind of cool too.
00:30:37.162 --> 00:30:40.342
It doesn't even matter if you have the right keys if you're not on the tail scale network.
00:30:40.342 --> 00:30:45.172
Also, you can't get in, like you can really kind of lock it down, which is kind of neat.
00:30:45.231 --> 00:30:45.592
So,
00:30:45.606 --> 00:30:46.136
Yeah, that's cool.
00:30:48.166 --> 00:30:55.636
Well, I, I'd like to shift gears a little bit to, you know, back to the, the actual day to day like coding with Claude and like
00:30:55.821 --> 00:30:56.031
sure.
00:30:56.237 --> 00:30:56.656
doing.
00:30:57.047 --> 00:30:58.007
Like how, how big is
00:30:58.007 --> 00:30:58.227
So.
00:30:58.336 --> 00:30:59.567
I forget if we talked about that
00:30:59.571 --> 00:31:13.612
So, uh, coders, let's say five or so, so there's probably like five of us that are actually like code and then, you know, the entire company is like, you know, including contractors that are borderline full-time.
00:31:13.612 --> 00:31:15.922
Basically we're probably 15, 20 people, something like that.
00:31:15.922 --> 00:31:16.221
So.
00:31:16.701 --> 00:31:18.261
Yeah, so, so quite a few people.
00:31:19.192 --> 00:31:21.981
just like the, paint the picture here for me.
00:31:22.011 --> 00:31:32.001
So if you guys are all pushing Claude to the max no, no pun intended, but you're pushing your max plan to the max,
00:31:32.047 --> 00:31:32.527
Mm-hmm.
00:31:33.021 --> 00:31:33.471
and.
00:31:34.192 --> 00:31:35.332
What does that mean exactly?
00:31:35.332 --> 00:31:44.031
Is that just like tons of prs and you guys have all gotta be managing these with either Claude reviews or your own personal reviews or like what does that look like?
00:31:44.692 --> 00:31:46.342
there's new problems for sure.
00:31:46.432 --> 00:31:57.231
Um, so like before the problem was like getting the code built and all, you know, testing it and all the things and the whole process and then getting it merged and like I would say our, we have very minimal process.
00:31:57.231 --> 00:32:00.892
Like our goal is like give people a lot of autonomy to do things like.
00:32:01.916 --> 00:32:11.126
kind of knows, like if you're gonna migrate the database, like check with John, you know, like, um, because I'm the one that probably cares the most about that and has the most experience with it.
00:32:11.457 --> 00:32:13.497
So from that standpoint, you know, there's bits of it.
00:32:13.497 --> 00:32:16.557
And then, you know, if you're going into like the producer screen, okay, talk to Steve.
00:32:16.886 --> 00:32:19.257
If you're going, you know, to like various sections of the app.
00:32:19.257 --> 00:32:23.186
There's just like, um, don't know, heard, heard.
00:32:24.787 --> 00:32:27.007
You know, everybody just kind of knows this is the spot.
00:32:27.007 --> 00:32:29.346
Like if it's, if it's a template related thing, we talk to Philip.
00:32:29.737 --> 00:32:32.106
So it's just like everybody kind of knows that already.
00:32:32.106 --> 00:32:34.477
Now everybody's just slinging stuff like crazy.
00:32:34.477 --> 00:32:37.237
Like before, like using Philip as an example.
00:32:37.237 --> 00:32:42.126
He was more, we brought him on specifically for like React and for HT ML and things like that.
00:32:42.727 --> 00:32:47.436
And now, I mean, he's consistently making PRS to the Rails app that are.
00:32:47.856 --> 00:32:50.017
Good enough that I'm like, yep, let's merge it.
00:32:50.227 --> 00:32:51.096
It's, it's good to go.
00:32:51.096 --> 00:33:00.757
And maybe, maybe like a, like the first couple that he did, without Claude, I was like, Hmm, I see what you're doing here, but you've got like, you know, camel case, we're underscore here.
00:33:00.757 --> 00:33:01.896
Like this isn't gonna work.
00:33:01.896 --> 00:33:03.936
You know, like, outta my code.
00:33:04.267 --> 00:33:04.626
No.
00:33:04.896 --> 00:33:05.326
And um.
00:33:05.942 --> 00:33:10.622
But like now, I mean, with Claude, it was like the first one he did, it was really close.
00:33:10.622 --> 00:33:12.811
And I was like, well, I can see some resiliency issues.
00:33:12.811 --> 00:33:15.751
You know, there's a loop and inside the loop it's doing an
HTTP request.
00:33:15.751 --> 00:33:16.951
And I'm like, what if one of 'em fails?
00:33:16.951 --> 00:33:20.551
You know, like, um, what, how we, we'll end up in a partial state.
00:33:20.551 --> 00:33:23.491
So I was like, at Claude, like, what would you do for this scenario?
00:33:23.491 --> 00:33:30.451
Like, mostly as like, 'cause I thought, well, if he sees it, so we have the GitHub integrations for Claude as well, so.
00:33:30.787 --> 00:33:40.326
That we can say at Claude on any, any PR and anything like that, and Claude will it and issue comments or actually commit the code and make the change or any of that kind of stuff.
00:33:40.326 --> 00:33:41.227
We set that up as well.
00:33:41.227 --> 00:33:41.856
It's, it's great.
00:33:42.007 --> 00:33:46.086
And so, um, we, I did at Claude, like, you know.
00:33:46.777 --> 00:33:50.886
Uh, I see some resiliency problems there, like in review the rest.
00:33:51.067 --> 00:33:54.457
And so then, you know, and so Philip saw that because it comes in as a comment,
00:33:54.951 --> 00:33:55.281
Yep.
00:33:55.507 --> 00:33:57.487
he like makes some changes based on that.
00:33:57.757 --> 00:34:00.156
And he is like, you know, uh, what do you think now?
00:34:00.156 --> 00:34:01.866
And I was like, at Claude review the changes.
00:34:02.257 --> 00:34:03.727
And he was like, oh, I see what you've done there.
00:34:04.987 --> 00:34:10.777
Like, and so, so now he puts it in a spin cycle before it even gets to me.
00:34:10.777 --> 00:34:11.317
You know what I mean?
00:34:11.317 --> 00:34:12.907
Like, so he'll do the PR.
00:34:13.161 --> 00:34:15.141
He'll do the review locally in conductor.
00:34:15.411 --> 00:34:19.972
He'll find a couple things, review again in conductor, find a couple things, review again until there's nothing.
00:34:20.152 --> 00:34:22.072
And then when there's nothing, he creates the PR up there.
00:34:22.072 --> 00:34:26.481
And then he says, ATLA review this as a staff engineer with specific skillset of blah, blah, blah, blah, blah.
00:34:26.902 --> 00:34:28.472
And then, and that's just another thing that I've.
00:34:28.686 --> 00:34:30.246
I useful.
00:34:30.246 --> 00:34:32.556
And so I've started, you know, broadcasting to everybody.
00:34:33.217 --> 00:34:36.487
so he'll put that on and he'll go through all the fixes for those.
00:34:36.666 --> 00:34:39.367
And then once he gets through all that, he's like, what do you guys think?
00:34:39.427 --> 00:34:42.126
And then it's like, yeah, stamp of approval most of the time.
00:34:42.126 --> 00:34:45.336
Like it, generally it, there's not there.
00:34:45.697 --> 00:34:54.547
You know, once it's went through the spin cycle locally and also remotely and each of those spin cycles have no previous context, they're all like new context reviews.
00:34:54.907 --> 00:34:59.556
So they're not like, you're in this thread and you've got it done a whole bunch of things and now you're like, Hey, review yourself.
00:34:59.797 --> 00:35:04.447
It's like, no, this is a new thing coming in that has no emotional attachment to this code that was written.
00:35:04.447 --> 00:35:05.166
And it's just like,
00:35:05.226 --> 00:35:05.556
Right.
00:35:05.586 --> 00:35:06.217
figure this out.
00:35:06.217 --> 00:35:06.547
You know?
00:35:06.847 --> 00:35:12.697
So that's, um, that's like a good example of like a typical work workflow that's helped a lot because.
00:35:13.431 --> 00:35:15.442
At first I was like, oh my gosh, what are we gonna do?
00:35:15.442 --> 00:35:21.112
Like everybody's pumping out, you know, several PRS a day and I'm now a blocker and I don't wanna be a blocker.
00:35:21.112 --> 00:35:24.592
So now clog can kind of help iterate on that a little bit.
00:35:25.282 --> 00:35:29.001
And then for me, you know, like my day to day is like, I mean.
00:35:29.902 --> 00:35:40.641
I, again, today I'm having some issues with conductors, so I'll, I will, I'll stick to the positives before the last, like four days, five days, it's kind of scrambled my brain the last four or five days with some issues.
00:35:40.641 --> 00:35:43.791
But conductor is awesome 'cause you get this whole left side.
00:35:44.181 --> 00:35:47.722
I don't, I don't open editors anymore unless I just wanna see the whole file with like.
00:35:48.097 --> 00:35:49.927
A particular syntax highlighting scheme.
00:35:49.927 --> 00:35:51.487
That's literally the only reason why.
00:35:52.717 --> 00:35:54.427
and so it's on the left side.
00:35:54.427 --> 00:35:57.186
It's like all the workspaces that I have across all my repos.
00:35:57.456 --> 00:36:00.427
And then on the right upper corner is like your GitHub flow.
00:36:00.427 --> 00:36:02.617
So it's like, here's all the GI diffs and things like that.
00:36:02.617 --> 00:36:05.106
If you wanna click on 'em, side by side views, et cetera.
00:36:05.197 --> 00:36:07.927
And then here's all the like CI checks and stuff like that.
00:36:08.257 --> 00:36:18.456
And then here's, you know, like some individual to-dos if you want to add extra things for like, once you finish the code part of it, like I need to go create a Facebook, you know, social app for threads or things like that.
00:36:18.666 --> 00:36:20.407
So you can have extra things like that too.
00:36:20.677 --> 00:36:25.777
And then it's got the PR linked at the top and I can click that and then it's got the whole flow of like, create the pr.
00:36:25.987 --> 00:36:29.677
And then once it's made, run the ci, fix the errors, you know, that whole get up flow.
00:36:29.677 --> 00:36:31.146
And then the bottom is like a terminal.
00:36:31.626 --> 00:36:33.277
Um, and then the middle is just as many.
00:36:33.331 --> 00:36:37.681
Claude tabs as you want for that individual workspace, and of which you can have lots of them.
00:36:37.981 --> 00:36:41.731
And so that's, that's been my flow for probably two months now.
00:36:41.731 --> 00:36:52.021
It's going really fast, but, or beginning of January, um, in December, I was
still using Claude in ghostie with and tabs and all kinds of stuff.
00:36:53.251 --> 00:36:55.052
because Claude, uh.
00:36:55.791 --> 00:36:59.632
Cloud code in the terminal or with the, like the actual Claude Code.
00:36:59.632 --> 00:37:03.442
SDK is a different beast than in an, in an any editor.
00:37:03.442 --> 00:37:13.041
I used it in Cursor and which is basically vs code, et cetera, and it's just, it's totally different in the end, end result that you get in my experience.
00:37:13.222 --> 00:37:13.936
Maybe they've caught up.
00:37:14.706 --> 00:37:17.646
In the, in that, in the last little bit.
00:37:17.646 --> 00:37:18.157
I don't know.
00:37:19.266 --> 00:37:21.367
but yeah, so that's day to day me and I got right away.
00:37:21.367 --> 00:37:31.927
What I did is I was like, I'm a salesperson, so my job is I figured out, you know, Claude Code and Opus and I went to everybody and I was like, get the a hundred dollars plan, get the a hundred dollars plan when you max it out.
00:37:31.927 --> 00:37:32.976
Get the $200 plan.
00:37:33.217 --> 00:37:34.777
If you need my credit card, let me know.
00:37:34.777 --> 00:37:35.797
Like all that kind of stuff.
00:37:35.797 --> 00:37:36.967
And I was like, here's how I do it.
00:37:37.306 --> 00:37:39.047
Show 'em like three or four things, get 'em going.
00:37:39.376 --> 00:37:42.586
Then it was like two weeks later, I was like, conductor's better.
00:37:42.586 --> 00:37:43.306
Here's the thing.
00:37:43.336 --> 00:37:48.192
And, and what's cool is because the first time there was some uptake, you know, that like it was a little slow 'cause it was like.
00:37:48.996 --> 00:37:51.336
Because everyone's like, whoa, I'm not the editor.
00:37:51.336 --> 00:37:52.416
This feels weird.
00:37:52.416 --> 00:37:53.317
Everything's different now.
00:37:53.317 --> 00:37:54.306
I'm in terminal.
00:37:54.306 --> 00:38:03.067
Where, you know, but like now with Conductor, it's like everybody like went through that first boost and so they're like, uh, yeah, I would like the next hit of dopamine.
00:38:03.067 --> 00:38:03.487
Please.
00:38:03.487 --> 00:38:07.327
Like, and so they, when they switched to Conductor, they're like, everyone's all in.
00:38:07.777 --> 00:38:08.317
Um.
00:38:08.992 --> 00:38:21.021
And again, I went through first, so I figured out like, how do we make sure that like the entire app runs on a different port, you know, like, uh, and that it can run on eight ports at the same time, like eight d different instances can all be spun up.
00:38:21.231 --> 00:38:27.021
And then that, you know, you can run the test at the same time because all the databases are partitioned apart from each other.
00:38:27.081 --> 00:38:36.561
And you can run the main app and you can, you know, seed and like everything is just like completely isolated so that every time you spin up a work instance, it's a brand new, fresh thing, you
00:38:36.697 --> 00:38:36.876
All right.
00:38:36.942 --> 00:38:38.496
Talk, talk
about that a little bit more.
00:38:38.681 --> 00:38:41.016
How, how does that manifest?
00:38:41.016 --> 00:38:55.387
Because one of the things I wanted to ask you about, I've seen you talk about it a few times on Twitter, is just like the parallel agent, or even per, it's not even parallel agent, maybe it is, but it's like parallel processes of the same thing.
00:38:56.061 --> 00:38:56.302
Yeah, be.
00:38:56.302 --> 00:39:09.862
Before you answer John, I just want to add a little bit of what I've learned and see if it's similar to what you're gonna answer, but I've been using the Claude desktop app a lot, one thing I've learned there is that it kind of defaults to a work tree,
00:39:10.581 --> 00:39:10.702
Mm-hmm.
00:39:11.601 --> 00:39:13.121
guess I'm curious if that's what you're using or not.
00:39:13.972 --> 00:39:14.302
Yes.
00:39:14.302 --> 00:39:16.012
Under the hood it's just work trees.
00:39:16.072 --> 00:39:16.342
Yep.
00:39:16.402 --> 00:39:17.481
It's turtles all the way down.
00:39:17.481 --> 00:39:18.711
So, so, yeah.
00:39:18.742 --> 00:39:21.382
So under the hood, uh, conductor makes a work tree.
00:39:21.862 --> 00:39:23.567
It gives each work tree a name.
00:39:24.802 --> 00:39:26.842
Like a city name, like Shanghai or whatever.
00:39:27.081 --> 00:39:28.581
And so that's the unique name for it.
00:39:28.581 --> 00:39:36.291
And then, um, it will rename the branch once you type the first prompt in, you know, so if I say like, build this new feature, it says, okay, this new feature is now the branch name.
00:39:36.652 --> 00:39:38.811
So it'll automatically, it doesn't ask you when you create it.
00:39:38.811 --> 00:39:41.692
It's like, do your prompt, we'll name it for you later, which is really nice.
00:39:41.692 --> 00:39:42.021
It's like.
00:39:42.411 --> 00:39:43.942
Tiny little non friction thing.
00:39:44.422 --> 00:39:46.251
And then, uh, you get the work tree.
00:39:46.431 --> 00:39:52.521
And the first thing you do once that work tree gets created is it if you have a setup script, it will run the setup script.
00:39:52.521 --> 00:40:10.731
And so the setup script is like anything that's get ignored in the main repo, like link it or copy it, whatever your preference is to the workspace, because you're gonna need your dot m file, you're gonna need your key files for rails, credentials, you're gonna need act, you know, you might need active storage, local files.
00:40:10.731 --> 00:40:11.391
You might need like.
00:40:12.442 --> 00:40:13.972
things that are not in the repo.
00:40:14.001 --> 00:40:16.251
'cause the work tree is only gonna get the repo.
00:40:16.612 --> 00:40:20.422
And then, you know, after that it's like, okay, now you're set up and you're good.
00:40:20.422 --> 00:40:25.492
You can do like, bundle, exact rake you can do run, spin up a server, all that kind of stuff.
00:40:25.822 --> 00:40:33.322
Um, and one of the things that it does in there is like, it will, um, I create a database for each, um, you
know, you just add like a suffix.
00:40:34.027 --> 00:40:36.007
Or whatever you wanna call it in your YAML file.
00:40:36.757 --> 00:40:40.447
if that suffix is there, then you know, it'll create new databases for you.
00:40:40.447 --> 00:40:44.286
So the core database might be box out sports product, you know, development.
00:40:44.617 --> 00:40:48.876
Um, but if you, you know, use it with conductor, it will work fine without conductor.
00:40:49.146 --> 00:40:53.226
But if there's a conductor workspace name, then it's like box out development under Shanghai.
00:40:53.706 --> 00:40:55.896
Um, and then, you know, when you archive.
00:40:55.911 --> 00:41:03.112
Like when you merge, it'll archive the workspace, or if you archive it because you decide not to do it, and then that will drop all those things and reverse them.
00:41:03.112 --> 00:41:06.592
So, um, in the words of Missy Elliott, you know, put your, no, I'm just kidding.
00:41:06.862 --> 00:41:11.391
Um, but there's, uh, like I, it just popped in my head.
00:41:11.391 --> 00:41:13.041
It's been a thing with my wife and I lately.
00:41:13.041 --> 00:41:16.672
We're like song words, key, key off songs, and then we start rapping.
00:41:17.092 --> 00:41:17.632
Um.
00:41:18.606 --> 00:41:21.186
So the setup and tear down are the two things you need.
00:41:21.186 --> 00:41:25.597
And then once you have those things working, you have no contention, you have isolation, all that, that's cool.
00:41:25.836 --> 00:41:29.077
Then you can run, you wanna run the server so you can run the server.
00:41:29.077 --> 00:41:33.067
And then what they do is they automatically inject a conductor underscore port environment variable.
00:41:33.126 --> 00:41:35.887
And so then what I do is I just say, cool, I'm gonna use proc file.
00:41:36.842 --> 00:41:40.862
foreman 'cause that's what everything I deploy with uses Heroku Railway, et cetera.
00:41:41.402 --> 00:41:43.711
And so I just spin up a and a proc file.
00:41:44.041 --> 00:41:47.581
Um, I just, uh, the, whatever the script is that starts it.
00:41:47.581 --> 00:41:51.061
So bin dev bin start script server or whatever you want to make your thing.
00:41:51.331 --> 00:41:54.152
It says, Hey, if conductor port is present, set port to that.
00:41:54.152 --> 00:41:54.481
Otherwise.
00:41:55.206 --> 00:41:59.016
Uh, just use port, you know, 3000 or 8,000 or 5,000, whatever you wanna do.
00:41:59.226 --> 00:42:06.996
And so then from there, now boom, you've got multiple instances running and everything will break because everything is based on the original one.
00:42:07.047 --> 00:42:12.266
After that you have to, you know, get that port into the cookies, uh, so that your sessions are separate.
00:42:12.447 --> 00:42:14.831
And then, you know, you gotta get the port into like.
00:42:15.202 --> 00:42:20.722
Action U, you know, URL, generation and Action Mailer, URL, generation and like all these other things.
00:42:20.722 --> 00:42:25.311
But like, if you look on
my site, there's, you know, uh, john imaker.com.
00:42:25.311 --> 00:42:30.902
There's a post about it and it, if you just feed that into Conductor or Claude, it'll figure most of that stuff out.
00:42:31.586 --> 00:42:39.777
Um, and then you run into really weird browser issues because everything runs on local host, and so the, all the cookies get stored in the same place and you hit the max cookie size and then everything barfs.
00:42:39.777 --> 00:42:42.146
So then you have to start deleting your cookies every so often.
00:42:42.146 --> 00:42:54.266
There's everything is like new problems, but that's the general flow for me, and that's what I've like, helped everybody else on the team get going, and then I do things halfway and just get it working and then they make it better.
00:42:54.297 --> 00:42:55.347
You know, Garrett comes in and.
00:42:55.842 --> 00:43:01.811
Adds like four new scripts that are way more resilient and better than what I, you know, hacked together the first time.
00:43:02.262 --> 00:43:03.882
Um, but that's, that's our flow.
00:43:05.172 --> 00:43:05.742
Yeah, that's cool.
00:43:05.742 --> 00:43:07.331
The conductor, I'm not real familiar with.
00:43:07.331 --> 00:43:11.952
I, I've seen you mention it a few times on Twitter, but I hadn't, hadn't looked into it.
00:43:11.952 --> 00:43:13.362
It wasn't familiar with it, so that's.
00:43:14.067 --> 00:43:16.737
Like, is that a paid tool or is that open source?
00:43:17.516 --> 00:43:18.507
First hits free on it.
00:43:18.536 --> 00:43:22.317
Um, it's basically like, um, I don't know what's the best way to describe it.
00:43:22.317 --> 00:43:27.356
Like, I, they're a funded company, so I, I know, I think I have a pretty good idea of like where they're going.
00:43:27.746 --> 00:43:30.086
Um, but right now that Mac app is just free.
00:43:30.237 --> 00:43:34.047
Um, and so, and they, you know, ship, ship nightly on it and stuff.
00:43:34.467 --> 00:43:39.536
It's, when it works, it's, it's as big of an unlock as AI is.
00:43:40.902 --> 00:43:41.501
in general.
00:43:41.501 --> 00:43:47.681
So it's like taking, you know, the, the leap from writing your own code having AI write your code with Opus.
00:43:47.681 --> 00:43:50.112
And that actually is like, good, that leap.
00:43:50.172 --> 00:43:56.652
It's that, that leap on top of it when it works and when it doesn't work, you just feel like an angry old man.
00:43:57.311 --> 00:43:57.672
So.
00:43:57.956 --> 00:44:05.996
And is that, is that leap in the ability to have multiple, you know, isolated environments running Right.
00:44:05.996 --> 00:44:10.737
Because like, I mean that, that otherwise it's just sort of one dimensional, right?
00:44:10.766 --> 00:44:19.976
You're just sort of being able to stack and stack confidently that you're not gonna leak context or leak database or leak, whatever, and.
00:44:20.081 --> 00:44:22.657
Well, I mean, one, one thing that I do right now without conductor.
00:44:23.501 --> 00:44:25.422
Is because of the work trees alone.
00:44:25.422 --> 00:44:31.211
Like I can have Claude Code, at least go write the code, but it's not gonna do all of the things that John said with environments.
00:44:31.211 --> 00:44:32.742
So that, that's a bigger step.
00:44:32.742 --> 00:44:33.942
That's pretty awesome sounding.
00:44:34.751 --> 00:44:34.992
Yeah.
00:44:34.992 --> 00:44:37.842
And it, it is, and it ports to any work tree solution.
00:44:37.842 --> 00:44:39.942
So you can use it with work trunk.dev.
00:44:39.942 --> 00:44:43.572
You can use it with like anybody's homegrown bespoke work tree thing.
00:44:43.572 --> 00:44:52.931
Like you can automatically just like, what I could do is just say like, don't even rely on conductor Jason as a config file to tell conductor what hooks and scripts to run.
00:44:53.262 --> 00:44:56.711
Like, just put it in, like get hooks of when a new work tree is created.
00:44:56.862 --> 00:44:58.572
Run this script, you know?
00:44:58.572 --> 00:45:00.072
And if conductor Port exists, great.
00:45:00.072 --> 00:45:00.641
If it doesn't.
00:45:00.961 --> 00:45:10.172
Then automatically, you know, ha do a consistent hash of the workspace name to, you know, like a port or a port range is what we do.
00:45:10.172 --> 00:45:18.331
So we do like a, a 10 port range that way we have room for like v dev and random other little things you might need to run and stuff like that.
00:45:19.442 --> 00:45:24.302
but like, I, I, I'm saying all this and I, I feel like sometimes people are like, this is magic.
00:45:24.331 --> 00:45:25.786
You, you must be way ahead of me.
00:45:26.547 --> 00:45:28.016
figured this out like a couple weeks ago.
00:45:28.016 --> 00:45:31.317
You know what I, I mean, like, I, I'm not, like, I'm not a, we're all.
00:45:32.472 --> 00:45:34.362
Way behind on everything right now.
00:45:34.362 --> 00:45:37.181
So, um, there's not, like, it's not magic.
00:45:37.181 --> 00:45:45.942
You literally just like download conductor and like try the, like, it'll immediately make, add a repo, it'll make a new workspace for you, and you'll be like, that didn't feel good.
00:45:45.942 --> 00:45:46.871
Why'd you do that for me?
00:45:46.992 --> 00:45:49.871
And then you're, you realize like, oh, that's actually what I wanted.
00:45:49.931 --> 00:45:51.612
I, I did kind of like that.
00:45:51.911 --> 00:45:56.771
And then you start, you know, getting it working and once you can spin up multiple of them, the great thing about it.
00:45:56.771 --> 00:46:09.126
To answer that question, um, looking down, because you're at the bottom of my screen, is, um, the, the great thing is like you end up with, oh, I just got a new honey badger error while I'm, I'm working on these like two things.
00:46:09.336 --> 00:46:15.427
Get a new honey badger error, export is marked down, new workspace, paste it in, go back to the other things, you know, oh, got another one.
00:46:15.427 --> 00:46:16.027
Paste it in.
00:46:16.027 --> 00:46:16.927
Go back to the next thing.
00:46:16.927 --> 00:46:18.697
I got a bug report from support request.
00:46:18.907 --> 00:46:23.586
Copy and paste the chat history, you know, put it in there again, I'm reading it.
00:46:23.586 --> 00:46:26.407
I'm not just like prompt injecting myself, but, um.
00:46:27.657 --> 00:46:34.137
Like, you can just quick scan it and look at it and be like, okay, make a new workspace, work on this while I'm doing other things.
00:46:34.197 --> 00:46:38.186
Um, and so I can stay focused on the things I'm doing, but things are getting done in the background.
00:46:38.186 --> 00:46:42.507
And then at some point you go back and you click on it and you say, oh, okay, I see what's going on.
00:46:42.867 --> 00:46:47.606
Um, and they give you like nice notifications like Mac os it's, it is Mac macOS only right now.
00:46:48.086 --> 00:46:50.907
And you, you know, you get a notification, you click it, you go right to the thing.
00:46:51.206 --> 00:46:52.947
It's, it's a really great experience.
00:46:52.976 --> 00:47:10.166
Um, there's just like a couple of bugs for like, once you go crazy with it and you start having like, I mean, I, I would have, I right now will have, have 30, you know, one workspaces, but like if I had across like 10 or 13 repos, if I, if performance would allow me.
00:47:10.572 --> 00:47:14.472
And I wasn't hitting all these other issues, I would have 50 or a hundred in there.
00:47:14.891 --> 00:47:16.512
Like I would, I would completely go nuts.
00:47:16.512 --> 00:47:19.271
And if it worked on my phone, I would have 200.
00:47:19.271 --> 00:47:23.891
You know, like it's just, I'm limited right now by how good it can perform.
00:47:24.311 --> 00:47:26.291
So that's the thing that's kind of holding me back on it.
00:47:26.291 --> 00:47:26.652
But I
00:47:27.356 --> 00:47:33.717
So today's the first time I've heard this notion of work tree, either one of it sounds like both of you have worked with it.
00:47:33.927 --> 00:47:36.806
Can you explain to me what it is?
00:47:37.092 --> 00:47:37.481
I mean.
00:47:39.717 --> 00:47:43.797
Imagine just like, uh, gi you just say GI work tree, whatever.
00:47:43.856 --> 00:47:50.396
And what it does is it literally says, cool, I've got your whole repo cloned, so I'm just gonna make a new branch over here in this other directory.
00:47:50.637 --> 00:47:52.106
All right, see you later.
00:47:52.527 --> 00:47:53.007
Uh, that's it.
00:47:53.007 --> 00:47:59.157
Like, it, it just, it literally just like, so like conductor uses like home j new maker, you know, conductor.
00:47:59.217 --> 00:48:02.186
And then inside of there would be like the repo like box out sports.
00:48:02.516 --> 00:48:05.007
And then inside of that would be like Shanghai.
00:48:05.547 --> 00:48:05.836
Okay.
00:48:05.922 --> 00:48:09.282
you know, Baghdad or Granger or whatever the city is.
00:48:09.492 --> 00:48:13.032
They, they pick cities and then sometimes you get, they, some of the
cities are rare.
00:48:13.481 --> 00:48:19.722
I know you, you want to know this, but, um, I've collected one of the rare cities and so I feel pretty special about that.
00:48:19.782 --> 00:48:22.242
Um, and then they have a whole map of where you go in the world.
00:48:22.391 --> 00:48:24.012
Lots of cr, like really good
00:48:24.536 --> 00:48:25.106
That's funny.
00:48:25.601 --> 00:48:28.001
a work tree is, you could, you don't have to use a work tree.
00:48:28.001 --> 00:48:30.942
A lot of people will literally just get clone again in another directory.
00:48:31.617 --> 00:48:33.567
I mean, that's the easiest way to think about it.
00:48:33.956 --> 00:48:36.987
It's just another place where you can commit totally separately.
00:48:37.317 --> 00:48:42.447
A branch, you can only have one branch in one repo, so this just gives you N branches.
00:48:42.762 --> 00:48:43.061
Yep.
00:48:44.021 --> 00:48:47.112
Now it makes sense why that can be like portable, right?
00:48:47.112 --> 00:48:51.012
Because that, that's not, and so you have the work tree that handles that part.
00:48:51.012 --> 00:48:57.012
And then conductor, if I'm understanding this correctly, is just the isolating the environment.
00:48:58.367 --> 00:48:58.586
Yep.
00:48:58.661 --> 00:49:09.101
it helps with that and creating the new workspace and then I, and then the isolation setup and tear down and then, you know, command R to run the server and, you know, give you a little button to open it in the browser and that kinda stuff.
00:49:09.101 --> 00:49:18.282
They don't have a browser in it yet, but, there's a ton of other things, maybe, I don't know what you're using Brendan, but like, there's like, um.
00:49:18.327 --> 00:49:23.996
Um, trunk.dev is like a, a command line, only one that's just the work tree and the hooks.
00:49:24.476 --> 00:49:29.126
Um, there's seam which is built on Go lib, ghosty.
00:49:29.126 --> 00:49:32.487
There's dm, which is built on UX and li maybe Lib ghosts.
00:49:32.487 --> 00:49:36.806
No, I think it's just built on T muck, so you can use it in BYOT, bring your own Terminal.
00:49:36.836 --> 00:49:37.317
Terminal.
00:49:37.766 --> 00:49:42.746
Um, but yeah, there's a bunch of different ones that are kind of on top of it that do the same thing.
00:49:43.902 --> 00:49:46.931
Yeah, I'm, I'm just using the Claude desktop app right now myself.
00:49:47.007 --> 00:49:47.186
Nice.
00:49:48.101 --> 00:49:52.782
you use the Claude Code, you know, version of it, 'cause there's also cowork and chat and all that
00:49:53.282 --> 00:49:53.572
Yeah.
00:49:53.967 --> 00:49:56.697
It has a little checkbox that says, do you want to use a work tree?
00:49:56.726 --> 00:49:59.396
So, but that was my first exposure to it.
00:49:59.396 --> 00:50:08.487
'cause I mean, I remember, you know, we LA last year, Ryan, we had, uh, um, I forget, there was a couple people who were kind of asking this question like, how do you have multiple things going?
00:50:08.936 --> 00:50:09.896
And that was my unlock.
00:50:09.896 --> 00:50:11.396
I was like, oh, it's just gonna use a work tree.
00:50:11.396 --> 00:50:11.996
What's a work tree?
00:50:11.996 --> 00:50:13.556
And yeah, just kind of figured it from there.
00:50:14.726 --> 00:50:22.407
And you just ask Claude and Claude tells you, like, and Claude from the CLI has like a dash w and it'll just make a new workspace automatically with a random name.
00:50:22.407 --> 00:50:26.876
Or you can actually like, you know, Claude dash w, my new feature and it'll do that.
00:50:27.237 --> 00:50:31.887
Um, but again, then you need to get hooks to, or you need to manually run the setup and tear down and things like that.
00:50:31.887 --> 00:50:35.036
So it's not perfect gravy like that.
00:50:35.036 --> 00:50:37.166
But conductor is, it's flow.
00:50:37.226 --> 00:50:38.336
I mean it's pure flow.
00:50:38.697 --> 00:50:42.597
You can work on three to five things at once, move 'em all forward.
00:50:43.556 --> 00:50:47.666
And it's pure flow, like you don't feel kicked out of it in the good space.
00:50:47.726 --> 00:50:50.902
Um, when you start getting to 10 workspaces and up.
00:50:51.942 --> 00:50:53.291
when it starts to get really painful.
00:50:53.291 --> 00:51:08.532
'cause they haven't solved, uh, some problems with, uh, performance and with, uh, rate limiting on GitHub everything goes, I mean, it goes, dude, I, it like scrambles your brain 'cause things are just bouncing around in the sidebar instead of saying consistent because.
00:51:08.911 --> 00:51:09.842
It hit the rate limit.
00:51:09.842 --> 00:51:15.811
And so it can't tell if there's a, a PR for this branch and they don't store that in SQL Light locally, like they store everything else.
00:51:16.021 --> 00:51:21.692
And so then gonna, uh, again, I'm not gonna go into it right now, but there, there you can run into pain.
00:51:21.692 --> 00:51:23.192
And if you wanna know the pain, I'll tell you later.
00:51:23.192 --> 00:51:23.581
So
00:51:23.592 --> 00:51:23.952
Yep.
00:51:24.251 --> 00:51:32.411
Well, let, let us, uh, or at least let me play with some of the stuff you've already said, and then when I hit the pain, we'll have you back on a third time to talk about the pain.
00:51:32.922 --> 00:51:33.072
Um.
00:51:33.242 --> 00:51:35.101
yeah, hopefully it'll be gone by then.
00:51:35.231 --> 00:51:35.592
Yeah.
00:51:36.041 --> 00:51:41.891
How, how much did you have to change the actual apps in order to get this to work?
00:51:41.891 --> 00:51:42.101
Right.
00:51:42.101 --> 00:51:44.621
Was there, was there anything that you had to change?
00:51:45.612 --> 00:51:50.442
You know, like I, I know in our app we, we have, we use a, a custom port already,
00:51:50.922 --> 00:51:51.342
Mm-hmm.
00:51:51.461 --> 00:51:58.541
and I'm already thinking like, all right, is that gonna be a problem with, you know, mapping the ports for the different workspaces?
00:51:58.541 --> 00:51:58.782
Right.
00:51:58.782 -->
00:52:02.202
But was there anything that you ran into that way, or did it, was it mostly plug and play?
00:52:03.436 --> 00:52:16.632
It is, honestly, it's very easy, like I would say on, you know, we've got, I'm on like four or five, you know, big rails apps, and I would say it's fewer than a hundred lines of code.
00:52:16.661 --> 00:52:19.617
It's typically like five or 10 lines of app code and then a bunch of scripts.
00:52:20.427 --> 00:52:20.757
Yeah.
00:52:20.942 --> 00:52:23.097
end up being the longest part of it, honestly.
00:52:23.306 --> 00:52:24.416
And they're the easiest part.
00:52:24.416 --> 00:52:25.376
'cause Claude just writes 'em,
00:52:25.737 --> 00:52:26.007
Right.
00:52:26.097 --> 00:52:28.347
you know, there's no for that part.
00:52:28.347 --> 00:52:28.947
That's, I don't know.
00:52:28.947 --> 00:52:36.297
Is that, do you feel like that too or, um, for the, or I guess you're using the Claude work tree stuff, so I guess it's a little different.
00:52:36.641 --> 00:52:37.331
yet, but
00:52:37.797 --> 00:52:38.067
Okay.
00:52:38.262 --> 00:52:39.161
that sounds,
00:52:39.956 --> 00:52:45.806
But I feel like you can kind of TDD this, right With, with Claude is like, all right, you know, you do the thing, it doesn't work.
00:52:45.806 --> 00:52:46.947
You'd be like, here's the problem.
00:52:46.947 --> 00:52:49.976
Go write the script to fix the missing environment variables.
00:52:49.976 --> 00:52:50.606
Go write the
00:52:50.697 --> 00:52:51.086
Yep.
00:52:51.266 --> 00:52:53.126
script to do X, Y, Z.
00:52:53.126 --> 00:52:53.367
Right?
00:52:53.367 --> 00:53:06.567
So, I mean, to that extent, I imagine it wouldn't be that difficult, but I have a feeling, at least for one of our apps, I'm gonna have to change application code in order to make it compatible with that, you know, maybe.
00:53:07.016 --> 00:53:11.126
I mis fundamentally misunderstanding how the port mapping stuff works.
00:53:11.126 --> 00:53:14.577
But that would be my only hesitation.
00:53:14.577 --> 00:53:15.177
I'm sure Claude.
00:53:15.237 --> 00:53:16.677
I'm sure Claude can fix it too.
00:53:16.677 --> 00:53:17.606
So it's like whatever.
00:53:17.606 --> 00:53:17.907
But.
00:53:18.021 --> 00:53:18.342
Yeah.
00:53:18.641 --> 00:53:18.972
Yep.
00:53:19.181 --> 00:53:20.021
Definitely can.
00:53:20.021 --> 00:53:29.172
And that's, I literally all the original, like what I started doing is just making like a bin conductor dash setup script and conductor dash tear down or archive.
00:53:29.652 --> 00:53:34.842
Um, and so like, and then we eventually did like a conductor run, I think as well.
00:53:34.871 --> 00:53:37.422
Like before it was like, you know, bin dev or whatever.
00:53:37.782 --> 00:53:39.161
Um, but once in a while it's like.
00:53:40.172 --> 00:53:41.672
I dunno, they can be the same scripts.
00:53:41.672 --> 00:53:47.641
I mean, you could literally just make it so that like bend dev when you run it, like it just, you know, knows how to do it or script set up.
00:53:47.641 --> 00:53:49.922
Just knows if conductor's there, do some different things.
00:53:49.922 --> 00:53:56.222
Like, that's basically what we're doing is just like, if conductor's there do some different things um, you're good to go.
00:53:56.342 --> 00:53:58.652
Uh, it's, and it's really not a lot of things.
00:53:58.711 --> 00:54:02.702
Uh, I mean, the first time can be a little painful.
00:54:02.702 --> 00:54:03.961
It can take a couple hours.
00:54:04.391 --> 00:54:08.592
Um, if you use the article I wrote, that'll make it less.
00:54:09.431 --> 00:54:16.271
but you, you know, there's, every app has weird little dumb things that it does that, you know, I probably haven't done the that dumb thing yet.
00:54:16.271 --> 00:54:21.431
And so those will be the things that you'll, you'll start using it and you'll be like, why doesn't this work?
00:54:21.436 --> 00:54:23.291
Oh, yes.
00:54:23.291 --> 00:54:23.862
And you know,
00:54:23.952 --> 00:54:24.282
Yeah,
00:54:24.402 --> 00:54:24.581
that.
00:54:25.061 --> 00:54:30.371
well, we, we have a, a web builder that allows you to host a website on a custom domain.
00:54:30.371 --> 00:54:37.692
And that always, you know, it doesn't matter whether it's like, you know, doing docker container or whatever, like, that's always something you have to deal with no matter what.
00:54:37.692 --> 00:54:37.842
Right.
00:54:37.842 --> 00:54:40.871
Because like this, you just have to spin it up on its own port.
00:54:40.871 --> 00:54:41.202
Right.
00:54:41.202 --> 00:54:44.981
And, and I'm sure that's easy to do, but you have to write the script to do it.
00:54:45.507 --> 00:54:45.836
I got it.
00:54:45.836 --> 00:54:46.887
Fix for that now too though.
00:54:46.887 --> 00:54:47.277
'cause a
00:54:47.291 --> 00:54:47.592
Okay.
00:54:47.757 --> 00:54:48.657
does the same thing.
00:54:48.806 --> 00:54:50.456
And I was like, okay, what?
00:54:50.456 --> 00:54:51.237
How do I solve this?
00:54:51.237 --> 00:54:53.367
And I ended up using Caddy and it's awesome.
00:54:53.532 --> 00:54:53.891
Okay.
00:54:54.431 --> 00:54:58.856
I, I've seen Chris talk about that on Go Rails, uh, or, uh, remote Ruby rather.
00:54:59.117 --> 00:54:59.336
Um,
00:54:59.652 --> 00:55:00.552
It's so good.
00:55:00.581 --> 00:55:01.992
You just put it in your proc file.
00:55:01.992 --> 00:55:04.842
Again, like another thing that spins up when you start the app
00:55:04.976 --> 00:55:05.266
okay.
00:55:05.322 --> 00:55:12.791
then you have a caddy file and then you can just tell at Star Fireside, local host goes here, you know, and then you get HT PS.
00:55:12.791 --> 00:55:13.722
So you can test that.
00:55:14.141 --> 00:55:16.152
Um, you can do custom domains.
00:55:16.181 --> 00:55:17.802
Um, you can do anything you want.
00:55:17.802 --> 00:55:20.172
So you could have like my custom domain, local host.
00:55:20.902 --> 00:55:25.072
different than like, you know, food bar fireside, local host and all that.
00:55:25.342 --> 00:55:33.411
So we ended up, I think I put caddy in all of our apps now just so we'd have http s 'cause it's so lightweight and, and we just run each one.
00:55:33.681 --> 00:55:38.181
You can run it globally and just do API requests to like mod the fi, the config.
00:55:38.961 --> 00:55:40.851
we just run it in the pro profile of each one.
00:55:40.851 --> 00:55:46.942
I just prefer like everything is either running or it's not running for this app that it needs in one isolated place.
00:55:47.302 --> 00:55:49.192
I don't like global stuff'cause then you get weird.
00:55:49.842 --> 00:55:52.331
Global state where something didn't clean up.
00:55:52.331 --> 00:55:52.601
Right.
00:55:52.601 --> 00:55:53.831
And now everything's broken.
00:55:53.831 --> 00:55:59.681
So, but yeah, caddy Caddy definitely solved that for it's brew installed caddy and tell Claude to do it and it's
00:55:59.847 --> 00:56:00.086
Yep.
00:56:00.132 --> 00:56:01.032
I mean, it's really cool.
00:56:01.887 --> 00:56:02.726
Yeah, that makes sense.
00:56:02.726 --> 00:56:13.677
I've been wanting to do something like for, for whatever one of our apps uses, uh, lvh.me as the local development domain, which I've been wanting to get rid of for a long time.
00:56:13.706 --> 00:56:15.896
'cause it's like now local hosts can do SSL.
00:56:16.137 --> 00:56:16.467
Right.
00:56:16.467 --> 00:56:17.246
So it's.
00:56:18.266 --> 00:56:25.286
But yeah, CA Caddy will help with the custom domain thing, and then I can stop having to manually add everything to a host file in order to
00:56:25.722 --> 00:56:26.141
Yep.
00:56:26.336 --> 00:56:29.577
view, uh, the page, right, which,
00:56:29.831 --> 00:56:35.291
I was just doing that until like a month ago and then I finally decided to try Caddy and I was like, oh, life is so
00:56:35.402 --> 00:56:35.692
yeah.
00:56:36.101 --> 00:56:42.402
And even just like then cores is an issue, so then you gotta star any port and cores and there's, yeah, but
00:56:43.257 --> 00:56:44.456
Oh, that's a good, that's a good tip.
00:56:44.456 --> 00:56:45.536
I'll have to look into that one.
00:56:45.657 --> 00:56:58.407
'cause, uh, it is not so bad when it's just my, you know, local development, but then you had to deal with like, uh, CI and GitHub actions and it's like, all right, well now I have to like, spin up a specific thing just for testing and that feels wrong anyway.
00:56:59.246 --> 00:56:59.447
Yeah.
00:57:01.271 --> 00:57:02.771
Well, maybe this is a good place to wrap up.
00:57:02.771 --> 00:57:04.541
I wanna respect your time, John.
00:57:04.541 --> 00:57:05.862
It's been great chatting with you.
00:57:05.952 --> 00:57:09.612
But, uh, anything else you wanna add before we, uh, sign off here?
00:57:10.842 --> 00:57:16.422
No, I mean the, I guess the only thing I would add is everyone who thinks that the, that all of our jobs are gonna be gone.
00:57:16.481 --> 00:57:17.952
Uh, like look at the jobs report.
00:57:17.952 --> 00:57:27.521
I said I just saw some, I dunno if they're true or not, but I saw some jobs reports that showed that like software engineering is like the only thing that's like going up kind of, it's like up four point half percent month over month or something.
00:57:27.521 --> 00:57:28.692
And I was like, that's wild.
00:57:28.692 --> 00:57:30.702
I think everybody's nuts for it right now.
00:57:30.702 --> 00:57:34.452
Now maybe that's just because everyone's like, well now we can do even more.
00:57:34.452 --> 00:57:35.291
And so they're getting.
00:57:35.461 --> 00:57:41.791
Bullish or they see that there is an arbitrage over the next six to 12 months before everybody picks up on this good stuff.
00:57:42.271 --> 00:57:45.092
Um, I mean, that's the way I'm looking at it, but yeah, I'm not sure.
00:57:45.092 --> 00:57:47.641
So I guess try to stay positive about it.
00:57:47.641 --> 00:57:48.931
Definitely learn.
00:57:49.081 --> 00:57:52.561
Don't get behind 'cause that's probably the worst, worst place.
00:57:52.592 --> 00:57:53.012
Um, so.
00:57:54.222 --> 00:57:55.512
Yeah, definitely agree with that.
00:57:56.561 --> 00:57:57.072
All right, cool.
00:57:57.072 --> 00:58:04.782
Well, we will link to, you know, conductor and some of these other things we talked about in the show notes, um, and your Twitter or anything anywhere else you want to share.
00:58:05.606 --> 00:58:06.597
No, doesn't, that's fine.
00:58:07.322 --> 00:58:07.887
All right, cool.
00:58:12.230 --> 00:58:12.409
Yeah.
00:58:12.409 --> 00:58:12.800
Thank you.