0:00.080–0:05.520
This is a video I never wanted to make,but the more I think about it, the moreI feel like I kind of have to because if
0:05.520–0:12.000
I'm being realistic with you guys, I'vealways been a terminal first person. Iknow, I know I'm the vibe coding soy boy
0:12.000–0:18.960
JavaScript guy that's always pluggingthings in VS Code and invested in a VSCode fork, but I am not that at heart. I
0:18.960–0:24.560
do like being able to scroll around codeand click and select things with atrackpad or a mouse, but generally for
0:24.560–0:31.199
my day-to-day work, I was always in aterminal. I've been a big terminal nerdsince before I even wrote code. I was
0:31.199–0:37.840
using them to host my Minecraft servers,to SSH into computers all over the worldand do all sorts of fun, crazy things. I
0:37.840–0:45.280
had a deeply modified GNU screen configthat I put a lot of time into before Istarted moving over to T-Mox because I'm
0:45.280–0:51.120
old enough that GNU screen was still thestandard when I started. I have beenusing terminals for the majority of my
0:51.120–0:58.640
life. Since I was 13, I've spent most ofmy time running, working, auditing, andoing my day-to-day stuff inside of my
0:58.640–1:04.879
terminal. And that's just not the caseanymore. I had a moment a few days agowhere I was getting a bunch of work done
1:04.879–1:12.560
and I started commanding to try and findmy terminal and I couldn't find itbecause I had done a reboot and notopened up my terminal because I didn't
1:12.560–1:24.000
need it for like eight plus hours. Andthat's when it hit me. I'm not doing mywork in a terminal anymore. And Ireally, really need to talk about why.
1:24.000–1:29.920
Before I can do that, we're gonna haveto take a quick break for today'sponsor. When I'm working on a newproject and it's time to go live, the
1:29.920–1:36.079
first thing I do every single time is Iput it up on GitHub. But right afterthat, I use today's sponsor, Blacksmith,
1:36.079–1:41.840
because as soon as I want real CI, Idon't want to deal with GitHub actionsanymore. If all I got from Blacksmith
1:41.840–1:46.720
was the better speed, it would be worthit. If all I got from Blacksmith was thecheaper price, it would be worth it. If
1:46.720–1:51.840
all I got from Blacksmith was the fourtimes faster cache downloads, it wouldstill be worth it. But that's not all
1:51.840–1:56.799
you're getting. You also get the bestobservability I've ever seen into whatyour CI is actually doing. What jobs are
1:56.799–1:58.399
passing? What jobs are failing? Where
1:58.399–2:00.159
are they coming from? Where's time being
2:00.159–2:05.920
spent on projects like T3 Code, this iso helpful. Trying to figure out why ourCI is slow and fixing it has never been
2:05.920–2:13.120
easier. It's fast by default, but youcan get even faster when you can dothings like SSH into the box and seewhat's up or use an actual native MacR
2:13.120–2:18.400
runner for your Mac builds like we haveto for our iOS and Mac apps. It'shonestly gotten hard doing those time
2:18.400–2:24.480
comparisons because I haven't chosen touse GitHub actions in months. Savestress, time, and money on your actions
2:24.480–2:32.000
at soy.link/blacksmith.I already know how this one's going togo. There's going to be endless biasaccusations of, "Oh, Theo's just here to
2:32.000–2:37.760
plug T3 code. He's [ __ ] on terminalso that he can plug his own thing." Oh,do you mean this open- source thing that
2:37.760–2:43.040
I spent a shitload of money and timebuilding because I so deeply believe theterminal is the wrong place? If you
2:43.040–2:50.080
think T3 code is the reason I'm doingthis, your reasoning is worse thanSonnet 4s is because this is obviously a
2:50.080–2:56.640
thing I built because of my beliefs, notI'm lying about my beliefs because Ibuilt this thing. That obviously doesn't
2:56.640–3:00.879
make sense. I wish you guys would justuse your brains a little more beforeleaving those shitty comments. I'm sure
3:00.879–3:05.599
there's already a hundred of them plus.Scroll through the Obsidian ones and I'msure you'll find plenty about how I'm
3:05.599–3:12.000
just plugging my own [ __ ] But in orderto skirt those accusations for now, Iwill switch to Chat GBT. So, here we
3:12.000–3:17.680
are. An app I haven't used in a while. Ijust had to update it cuz I haven't beenin it as much, but it still is, in my
3:17.680–3:25.440
opinion, one of the best starting pointsfor a developer who is moving intocoding more with AI. While the Codex app
3:25.440–3:31.680
was the big thing that pushed me over onthis belief that terminals were just nothe right place to be coding anymore, it
3:31.680–3:38.640
was not the start of my journey here.The place that I started thinking abouthis most is honestly kind ofembarrassing and I even feel bad putting
3:38.640–3:46.480
it in here. I I feel sick even typingit. Oh god, just can Can I delete itnow? Do I do I have to leave this word
3:46.480–3:48.319
on the screen? I'd really like to just
3:48.319–3:55.840
hide this. I'm just going to get rid ofthat. Okay. Really though, when I firstried out anti-gravity, I was mostly
3:55.840–4:03.920
unimpressed. But there was oneparticular piece that impressed me.There was a hotkey that opened up theagent manager view that let you see what
4:03.920–4:10.319
he agents were doing across differentinstances of anti-gravity. So if youhave like three windows open for three
4:10.319–4:16.160
different projects, you could have thisone window on top that showed you whatwas going on with agents in each of
4:16.160–4:22.800
those other projects. It was a leftsidebar with projects that had threadsin each project that you could see from
4:22.800–4:31.360
one external view. Huh, sounds familiar.Interesting. As much as I don't want toadmit it, the anti-gravity agent manager
4:31.360–4:37.520
was one of the first times I experiencedthat. And if anti-gravity wasn't such a[ __ ] show, I probably would have
4:37.520–4:42.800
actually used it a bit. I even said asmuch in my coverage of anti-gravity whenit dropped. But what's much more
4:42.800–4:49.680
xciting to me is the new agent managerworkflow. I think this is a great ideand there's a lot of little pieces that
4:49.680–4:56.080
I'm hyped about. So, anti-gravity wasthe first step in my descent as Irealized that the terminal was not the
4:56.080–5:02.240
right place to do this anymore. Funnyenough, just a few weeks prior, I was athe cursor office complaining to them
5:02.240–5:08.960
that all their new integrations with thecursor v2 agent view made it too hardfor me to use my terminal because they
5:08.960–5:15.919
made it way too annoying to like get thepath that a work tree was in. So I couldcd into it in my terminal and then run
5:15.919–5:21.520
things. Because a flow I often had is Iwould use cursor. I would open upsomething in the sidebar, tell it to go
5:21.520–5:28.240
do something, get a result, want to gocheck it, and then have to find some wayto CD into that path for the work tree
5:28.240–5:34.479
in order to run it, install things, ando stuff. And the built-in terminal wasno, not happening, especially at that
5:34.479–5:40.400
point in time. So, I ended up bullyingthem enough to give me the one-clickcopy buttons that I needed in order to
5:40.400–5:46.960
keep using my terminal for the actualdoing things beyond sending prompts. AndI got to the point where I would use
5:46.960–5:52.720
cursor to send a prompt and then myterminal to do everything from reviewingthe diffs, reading git history,
5:52.720–5:58.800
investigating changes, actually runningthe code and doing things. And I wasplit like 50/50 between I would be in
5:58.800–6:04.639
the cursor app for prompting and thatwould be my terminal for everythingelse, especially git stuff. I did all of
6:04.639–6:11.600
my git through the stock bog standardgit commands. Occasionally I would addlike oneliner helpers to do things like
6:11.600–6:18.960
commit and push with one line stuff likethat. But for the most part I just usedstock git cli. I need to get this
6:18.960–6:25.120
anti-gravity thing off the screen. It'sgoing to hurt me. But then the modelsgot better and importantly the codeex
6:25.120–6:33.840
app came out. And when I started usingthis, my beliefs that I had fromanti-gravity saying that this ishorrible, but it's also kind of the
6:33.840–6:43.759
future got me really excited. And themore I played with it, the moreimpressed I was. The ability to justbreak your work up into different
6:43.759–6:50.240
projects and clearly see what's going onin them. to have multiple things goingat the same time all in their own work
6:50.240–6:55.840
trees. The ability to quickly open up aterminal and type things in here if youneed for whatever stuff that you're
6:55.840–7:05.120
doing. I got to the point where I wastill looking at my git history throughthe terminal inside of my codeexinstance and it was solid. It was
7:05.120–7:10.639
actually quite good. And in a worldwhere I was using my terminal more andmore because I had at this point moved
7:10.639–7:17.120
to cloud code and was constantly runningcloud code in my terminal, opening lotsof terminals, using awesome tools like
7:17.120–7:23.840
cmx, which I still highly recommend tomanage all of my different things goingon. I was still a big T-Max guy. I was
7:23.840–7:30.400
till a very deep big T-m guy. I onlystarted using tabs in my terminal at thestart of this year as like a personal
7:30.400–7:35.919
challenge when I set up a new computerto see if I could finally move offT-Mux. The answer was no spoiler, but I
7:35.919–7:43.039
tried. So, I went through all of thatand then the Codeex app dropped and Iwas like, wait, I can just screenshot
7:43.039–7:52.080
something and paste it and see it. I canselect text and copy it and paste it andthe formatting is not broken. I can
7:52.080–8:01.599
scroll and it doesn't lag a whole bunch.And most importantly, by far, I can hopbetween different things easily by just
8:01.599–8:09.360
clicking. I know this sounds silly andumb, but when you're working on threeplus things at a time, it's just a
8:09.360–8:15.280
couple too many hot keys in T-Max. Andkeeping track of what is where is evenmore annoying. You have to remember
8:15.280–8:22.240
which hotkey goes to which thing. Andthen you start building systems in yourhead for these three panels are for
8:22.240–8:28.000
these three things. This fourth panel isfor this thing. This fifth panel is theflex panel. I use it for whatever. But
8:28.000–8:34.320
hen you end up with a sixth task andyour whole model breaks down. I tried myhardest to figure this out. And again,
8:34.320–8:40.479
to their credit, Semox got the closestanything has gotten to figuring thisout. By giving you a sidebar similar to
8:40.479–8:46.000
what you get out of something like theCodeex app, but also just giving you aterminal on the other side. It's great
8:46.000–8:52.399
and it's still my default terminal. Infact, all the boxes I SSH into, I havein a little folder called SSH, so I can
8:52.399–8:58.560
have all of these connected and quicklyhop into them at any point. But man,having a real UI with text that was more
8:58.560–9:05.519
pleasant to read with much easier tonavigate and find things with a categorysystem that made sense, having actual
9:05.519–9:11.360
projects that are based on where thingsare in your computer, it just it made mecode way more. But one of the biggest
9:11.360–9:17.760
problems I had with Codeex is that itwas closed source. So when it did haveregressions or problems or things that I
9:17.760–9:26.080
wanted to fix, it just wasn't superealistic. I was able to bug the Codexteam a bunch. And thank you to myfriends over at OpenAI. You guys have
9:26.080–9:31.760
been awesome about taking all of myfeedback and addressing it meaningfullyand swiftly. But there would still just
9:31.760–9:37.680
be random regressions and changes andthings like the merge into chat GPT.Like this is no longer Codex. This is
9:37.680–9:43.920
now chat GPT. They let you use the oldicon thankfully, but like this is nowthe chat GPT app. Because the Codex app
9:43.920–9:52.000
was so good, it made these toolsaccessible to people who weren'tdevelopers and they decided to give thatcapability to non-devs by rebranding it
9:52.000–9:59.360
and calling it chat GPT. This is one ofmy biggest issues. If you wanted goodopen-source solutions, you basically had
9:59.360–10:05.279
to use the terminal. You had the codec,but you also had lots of other awesomethings. Shout out to stuff like Open
10:05.279–10:13.200
Code and Pi, phenomenal harnesses andterminal tools for coding with AI. Butif you wanted a guey like codeex, your
10:13.200–10:19.760
options were to use the one locked tothe provider that you like. So you canuse the cloud code app with your cloud
10:19.760–10:26.160
sub or you can use the codeex app withyour codec sub. You could hack thecodeex app to use other things kind of.
10:26.160–10:32.560
You could kind of do the same for thecloud code app, but you shouldn'tbecause the cloud code app is just notvery good. But your only option if you
10:32.560–10:38.320
wanted one place for everything was opencode, but then you lose all thesubsidization because open code isn't
10:38.320–10:43.279
using the official harness. You alsodon't get the features that get added tothings like cloud code or codec. If you
10:43.279–10:49.600
wanted the best features for the bestprice with the best models, you had touse claude in the CLI or codeex in the
10:49.600–10:55.519
desktop app because both companies kindof stop supporting the other side asmuch where a lot of new codeex features
10:55.519–11:00.720
only happen in the app and a lot of newcloud code features only happen in theCLI. And I got to a pretty nasty point
11:00.720–11:07.600
where if I needed to use my cloudmodels, I was in the CLI. And if Iwanted to use Codex models and GPTmodels, I was in the guey. And I ended
11:07.600–11:15.040
up finding myself defaulting to OpenAImodels even in things they were worse atbecause I just liked having a good app
11:15.040–11:21.040
more. And it's all these little thingsthat add up. Like seriously, if youhaven't tried one of these guies, I I
11:21.040–11:29.120
would love to self-plug, but just go trythe codeex app. It is genuinely reallygood. It has its edges. It has its
11:29.120–11:36.240
annoyances. They added the new activityview, which is inspired by what we'vebeen building in T3 Code. And as cool as
11:36.240–11:43.519
it is, it's not quite all the way there.But god damn, if this isn't a massiveimprovement on what you're already
11:43.519–11:52.320
doing, I don't know what to tell you.It's so much easier to keep track ofwhat's going on, where work ishappening, what you've been doing, and
11:52.320–11:57.920
actually getting stuff done. I can'tell you how many times I lost track ofsome terminal session. I had to open up
11:57.920–12:05.360
cloud code and tell it to go find thecloud code I was doing work in or thework tree that I started from, or allthese other things. I had to put a ton
12:05.360–12:12.000
of time into just keeping track of whatwas going on. And as you can see from mychaotic setup here, I put a lot of time
12:12.000–12:18.800
in. I had to reboot this machine earliertoday, so I lost all the sessions I had,but I had like 30 terminals in T-Mux on
12:18.800–12:26.880
this one Linux box for various cloudcode and CEX things that I was doing. Istill have a whole bunch over on myother Linux box here for all these types
12:26.880–12:33.120
of crazy tasks that I've been tryingjust like running goals indefinitely tosee what happens. like the TypeScript
12:33.120–12:38.160
Rust port that I was briefly working onbefore I ran out of tokens. Just keepingtrack of what is what is so annoying.
12:38.160–12:46.560
And you can do like renames and thingsif you want to take the time to, butit's so annoying. And the amount of work
12:46.560–12:53.040
I had to put in to try and make anenvironment that was reasonable just toswitch between cloud code and codecs on
12:53.040–12:58.720
real work and keep track of what I wasdoing. It's just more mental overhead.I'm going to be real with you. It just
12:58.720–13:05.040
is. And this is not historically howterminals worked. Historically,terminals have been the option that is
13:05.040–13:10.959
less mental overhead and slightly moreupfront cost. You had to spend a littletime to set it up how you want. And then
13:10.959–13:18.000
from that point on, the terminal ismostly just doing the same thing the wayou want to. But in a world where the
13:18.000–13:23.920
work I'm doing is changing so activelythat the projects I'm working on mightbe brand new, they might be months old,
13:23.920–13:28.959
they might be years old, and the amountof work I'm doing in parallel can changea ton as well. I might be working on one
13:28.959–13:35.360
thing. I might be working on 10 things.The rigidity of the systems I built formyself in the terminal was not flexible
13:35.360–13:45.519
nough for the work that I was doingtoday. And I tried my godamn hardest tofix that. I put a ton of effort intomaking it so I can paste images over
13:45.519–13:54.720
cmox over SSH through my T-Max layerhere. So I can command V here and pastean image through cmox over SSH into the
13:54.720–14:01.600
T-modex instance on this machineremotely. That [ __ ] was so buggy for awhile and now it's relatively stable. So
14:01.600–14:08.880
I could finally paste images over SSH,but that's like a thing I had to putime and effort into to do something as
14:08.880–14:15.920
basic as screenshot something and thensend it to my agents. With a guey, Ijust do it. And I would say like halfish
14:15.920–14:23.120
of my prompts have images because when Ihave an error or a thing that isannoying me, it's a lot easier to justscreenshot, send it, and say fix and it
14:23.120–14:28.880
will. Whether that's a screenshot ofyour app or just a weird error youdidn't expect to get when you ran acommand. Sending screenshots to your
14:28.880–14:35.199
model is very effective, but it's notvery effective when you can't even seewhat the image is. But my biggest
14:35.199–14:41.920
complaint is none of this. It's actuallyokay. It's kind of part of one of thesethings. It has very little to do with
14:41.920–14:51.440
e terminal and very little to do withe agents. It's three very specific,very annoying letters. SSH. SSH kind of
14:51.440–15:02.560
[ __ ] sucks. It's really useful,really powerful, and I spend a ton oftime in SSH, but as soon as myconnection isn't perfect, I end up with
15:02.560–15:08.880
all sorts of problems. I had a problem afew days ago where I was running CloudCode over SSH on my local network, which
15:08.880–15:15.839
is a Wi-Fi 7 network with gigabit to 10gig speeds depending on if I'm wired orwireless. And I had my computer plugged
15:15.839–15:22.639
in over 10 gig at my desk downstairs.and I was getting sticky keys while Ityped trying to do work in cloud code.
15:22.639–15:31.440
It turned out it was bound to the Wi-Fi,not to my Ethernet. But the fact that Ieven had to care is absurd. And don't
15:31.440–15:38.959
get me started on trying to do things onmobile. GH I I tried so hard to makeTerus work for me. I paid the full price
15:38.959–15:43.120
for it. I support the developer. I thinkit's awesome and it helped me debugsomething even this morning. Like I
15:43.120–15:51.680
still use these things. They're just nothe thing I default to anymore becausethey're fragile. And it's incredible how
15:51.680–15:57.199
powerful a standard SSH is. That's beenaround for over 30 years and it works sogreat to this day. And there are other
15:57.199–16:05.600
fun things like I know SSH3 isapparently much better. I know mosh isreally cool, but I do not have it in meto deal with all of those things to get
16:05.600–16:13.120
marginal improvements, especially if Iwant these to work on my phone becausetrying to do real work on my phone via a
16:13.120–16:21.440
terminal has me questioning my ownsanity and also questioning thereliability of all the other people whowere saying that using their terminal
16:21.440–16:28.000
over their phone was a totallyacceptable way to do quad code. It justisn't. And thankfully, Codex accepted
16:28.000–16:34.560
this fact and they introduced theability to control the Codex app, nowthe ChatGpt app, over the Chat GBT app
16:34.560–16:41.680
on your phone remotely. And it was somuch better. It had its rough edges, buthe ability to spin up some work on my
16:41.680–16:48.079
computer and then finish the thread onmy phone when I'm away, it just kept meoff my computer a lot more. And I found
16:48.079–16:55.040
myself like walking around doing morechores, leaving my apartment to go runerrands, and being able to check in on
16:55.040–17:03.120
the stuff that I was doing overtime. Itwas really fun and cool and alsobnoxiously buggy and most importantly
17:03.120–17:09.360
was super restricted to the Codeexdesktop app, which meant I could onlyuse it on my Macs. And when you combine
17:09.360–17:15.679
that with all of the annoying parts ofhow codeex is implemented around thesecurity policy stuff on Mac OS where it
17:15.679–17:22.880
spins up five plus processes per threadand per sub agent which can just poseyour performance. I was getting annoyed
17:22.880–17:30.240
and I had a couple things that I wantedand I will list all of the stuff that Iwanted to make sure I could do. Thethings that were annoying me obviously
17:30.240–17:37.840
pasting images was a very important onefor me. I also wanted all models withsubsidization. So, I wanted to make sure
17:37.840–17:46.320
whatever came out here worked with mycloud code subs and my codec subs, so Icould get the 8 to 14 grand for 200bucks instead of having to spend 8 to 14
17:46.320–17:56.160
grand for it. I wanted good remotecontrol. I wanted best-in-classLinux support because, as I've said inmany videos, check out my Linux video I
17:56.160–18:03.840
did recently, Linux is so much betterfor agentic work because the filesystems just suck a lot less. Andspinning up a work tree takes 2 seconds
18:03.840–18:11.120
instead of 30 seconds to 2 minutes. justso much better. And even when I'm goinglike really heavy on my work on my Linux
18:11.120–18:18.640
boxes, it is rare I can spike even likea third of my utilization. Like I have32 cores on this machine. It's an a
18:18.640–18:24.240
Ryzen AI max box. It's the frameworkdesktop. I mentioned that before. I havetried to stress this machine and I
18:24.240–18:30.080
basically cannot do it. And a lot ofthat is just the fact that Linux doesn'thave all of the chaos trying to scan
18:30.080–18:37.200
every single thing Codeex does. So, Ibest-in-class Linux support, good mobilesupport, good performance, low battery
18:37.200–18:46.000
impact, and probably the single biggestpart, a good way to manage lots ofthings at once. This is all the stuff I
18:46.000–18:52.720
wanted. The only one of these thingsterminals offer me are best-in-classLinux support. They don't help in any of
18:52.720–19:00.240
these other categories in any way. Andnow you guys have waited long enough.The commenters can do their thing. I
19:00.240–19:08.400
need to talk about T3 code becauseJulius and I made T3 code because weshared a lot of these frustrations. Wewanted to love Codeex and did for a lot
19:08.400–19:14.240
of things. I know Julius still uses itheavily. I've slowly moved off the Codexdesktop app. It has its benefits for
19:14.240–19:18.799
sure and I'm hoping that we can clone asmany of those as possible in the nearfuture. Julius and I tried all the other
19:18.799–19:26.480
options that existed at the time andwere very unhappy with them. The couplethat were okay, we gave a lot ofeedback to and they fixed some things,
19:26.480–19:31.919
they failed others and we got annoyed. Igot so annoyed about the performancepart in particular that I tried building
19:31.919–19:38.880
my own native guey for codecs to justry and make something faster. I endedup in hell with scrolling text because
19:38.880–19:45.919
Swift UI and AppKit are not great at bigscrollable views with text. And it turnsout Google put a lot of good work into
19:45.919–19:51.760
Chrome for that. So I begrudgingly threwthat project away. Begrudgingly spun itback up on Electron just out of
19:51.760–19:57.760
curiosity. decided to architect it in away that made other things like theremote control a little easier by
19:57.760–20:04.480
putting everything on a websocketinstead of binding it through thelectron RPC. And the result wasomething surprisingly usable. The
20:04.480–20:11.919
result was T3 code. It did not look atall like this at the time. It wasinfully ugly at the time, but itallowed you to use codecs with an
20:11.919–20:20.080
open-source guey that was a lot lessimpactful on your systems performance.I'll be honest though, for the first few
20:20.080–20:26.320
months, I still found myself using theCodeex app more than T3 Code. I wouldrotate between them for sure, but I
20:26.320–20:34.480
spent most of my time in Codeexprobably. There would be moments where Iwent up and down, but I kept findingmyself back in codeex, but Julius
20:34.480–20:44.880
couldn't take that. Julius continuediterating on T3 code because Julius hasomething that I don't.Julius hates terminals. This one was
20:44.880–20:52.960
hard and I've argued with him a bunchabout this. He exclusively used Githrough the VS Code extension. He didn't
20:52.960–20:57.600
even He probably knows most of the Gitcommands in the terminal, but he neveruses them. The only terminal he would
20:57.600–21:03.600
open was the one in VS Code or cursor tospin up his dev servers. Everything elsehe did through the editor. He's one of
21:03.600–21:10.240
the best devs I've ever met in my life.He's without question the best dev I'vever known that hates terminals. For me,
21:10.240–21:16.799
T3 Code was a way to have an open-sourcesolution that could potentially solve ahandful of my problems. For Julius, T3
21:16.799–21:25.760
Code was his ability to escape theterminal. And he took the challenge, andthe [ __ ] did it. He made T3 codeso reliable, so stable, so well
21:25.760–21:31.520
implemented and integrated. He got worktrees working perfectly. He got claworking perfectly. He got open code and
21:31.520–21:36.720
grock working as well. And even cursor,although the cursor integration needsome work. Big update coming there soon.
21:36.720–21:41.520
He did all of that because he wanted totake advantage of all of the models fromall these providers at all of these
21:41.520–21:46.400
subsidized rates, but he didn't want tohave to use a shitty terminal app andmemorize a whole new set of hotkeys for
21:46.400–21:52.240
every different one. And T3 Code becamehis surface for managing all thesedifferent agents and all these different
21:52.240–21:58.960
solutions with a onestop place whereverything behaved the same regardlessof which models you were using. And
21:58.960–22:05.840
reminder, this is using your cloud codeand your codecs on your machine. Andwe're not doing some hacks like -p. We
22:05.840–22:11.280
were using the official agent SDKblessed by Ampropic. They were going tochange the policy. They have temporarily
22:11.280–22:16.799
held it. They might indefinitely holdit. Still waiting for updates there. Buthis all works above board officially
22:16.799–22:21.760
supported by both Cloud Code and Codeexto the point where the Codex team ispublicly shouting us out as inspiration
22:21.760–22:28.559
for features they're adding into Codeex.We put a lot of work into all of this.Not just building it, but negotiating
22:28.559–22:34.400
with the labs to make sure we do thingsthe way they want so that we cancontinue offering your subscriptions to
22:34.400–22:40.880
the platforms you like in our appwithout getting banned. And then themagic piece comes in. There's a little
22:40.880–22:47.520
button here at the bottom. Other appshave this to be clear. Most of them haveit as a use it on your machine or use it
22:47.520–22:53.360
on the cloud button. We have somethingdifferent. When you set up T3 code on amachine, you can now control that
22:53.360–23:00.720
machine through T3 code on the app onanother computer on the website onapp.t3.codes or in the mobile app. Yes,
23:00.720–23:05.440
we have a fully supported mobile app foriOS and Android. And yes, it is alsofully open source. So, if you want to
23:05.440–23:15.440
build it yourself, you can. This here ismagical. The thing that hasfundamentally changed how I work is theability to just pick a computer, send
23:15.440–23:22.320
off a task, and close my laptop. Beforethis, I found myself having to likeprioritize my life around when I could
23:22.320–23:27.919
run an agent. Because if I had to run anagent and then I had a meeting coming upand that was going to overheat my
23:27.919–23:34.640
computer and make it unpleasant to usein a call and spin my fans up so loudthat I couldn't use the mics on mylaptop, then I would wait until I got to
23:34.640–23:40.320
the end of the meeting and then spin itup, hoping I don't have another onecoming up. If I had an appointment or a
23:40.320–23:47.440
trip or an event or something I had togo to, I wouldn't spin up my agentsbecause as soon as I lose Wi-Fi, theydie. One of the more embarrassing things
23:47.440–23:54.799
I must admit here is that I'm notoriousfor coding in Ubers. I would spend a lotof time driving around to different
23:54.799–24:00.240
events and things because I have to goto a lot of different [ __ ] And I wouldoften pick an Uber just because I could
24:00.240–24:08.000
sit in the Uber and get some code out.And when I'm at my office, I am sobehind on so many other things. I haveto do all of that. So my Ubers became my
24:08.000–24:13.600
like peaceful coding time. I have a lotof posts where I talk about the crazyperformance improvements and changes I
24:13.600–24:21.360
made from Ubers. But something badhappened. I started using claude codewhen Opus 45 dropped. I This poses me
24:21.360–24:28.720
going back to Opus 45 and tryingsomething. But notice how I ended it. Iwill have to stop momentarily as I amcurrently coding in an Uber. My bad data
24:28.720–24:33.679
connection was causing me problems. Andas soon as I got there, I had to closemy laptop and whatever agent I was
24:33.679–24:39.279
running died and I had to spin it uplater hoping that it would continue. Andthe more that this happened and the more
24:39.279–24:45.360
I was doing tasks that would take hoursinstead of minutes, the more I justdidn't want to code in Ubers anymore
24:45.360–24:54.080
because as soon as I have to close mylaptop, it's over. And now I have tothink about my work in a way where Iknow I have enough time of laptop open
24:54.080–25:01.279
for the task to be completed. And I waslike structuring my day around this. Itwas bad. Now I pick the box I want this
25:01.279–25:10.480
to run on. I send the prompt and I stopthinking about it. I could sendsomething to soul like do a deep auditof this codebase and then command Q T3
25:10.480–25:16.880
code so it's fully dead. There is no T3code open on this computer anymore. Ican then reopen it and the work is still
25:16.880–25:24.720
going. Or I can command Q it again, getit hard killed on my machine and go toapp.t3.codes and see the exact same work
25:24.720–25:30.080
across all of my machines with theability to continue sending prompts, seewhat's happening, paste images, scroll
25:30.080–25:36.320
through history, and even spin up theterminal if that's what you want to do.You got to admit that's pretty cool. And
25:36.320–25:43.919
all of this is over the websocketconnections that are spawned by T3 codewhen you run it on a machine. We nowhave a bunch of easier ways to connect
25:43.919–25:50.880
as well. If you're already a tail scaleperson, I have a feeling you'll dig thisnew feature I recently added. npx t3.
25:50.880–25:56.720
I'll do it nightly cuz that's what I'vebeen using lately. T3 at nightlypair-tail scale. This command will give
25:56.720–26:05.200
you a pairing code that you can scan onyour phone or a URL you can use toconnect on the web. And now you have afull T3 code instance that you can
26:05.200–26:14.159
control. You do have to serve itsomehow. So T3 nightly serve and thatwill host it. Or you can use the eveneasier way which is npxt3 connect which
26:14.159–26:20.799
will open up a URL to sign in withGitHub, Google or whatever else. Andthen it will create a backgroundinstance on this machine as long as on
26:20.799–26:28.880
Linux Mac support coming soon thatallows you to forever connect to thismachine and run the agents that arealready configured on that same machine.
26:28.880–26:34.080
So, if you have an old laptop somewhereat your house or a PC that hasn't beenturned on in a while or already have a
26:34.080–26:42.400
Linux machine that you use, set up aLinux on it if it's not already set up.Install Cloud Code Codeex, both orneither. Run this one command, npxt3
26:42.400–26:50.640
connect. And now you can control thatmachine and all of the agents on it froma much much better interface without
26:50.640–26:58.960
having to deal with all of theconsequences of things like SSH, ofthings like terminals, of all of thedifferent annoying pieces that you have
26:58.960–27:05.279
to deal with. But I really, really hopeyou guys understand that I'm not doingthis in some secret plan to make money.
27:05.279–27:10.159
I'm doing this one out of frustration.I'm doing this one out of the love ofthe game. If I wanted to make a bunch of
27:10.159–27:16.799
money, I could have just sold this toOpenAI or Ananthropic at this point, buthe goal is specifically almost a
27:16.799–27:26.400
counterbourcesoftware that we use to build softwarewith. When I got into coding, it wasmostly a closed source ecosystem. All
27:26.400–27:32.320
the editors people use were closedsource. Things like Visual Studio,things like Sublime Text. They had some
27:32.320–27:38.799
concept of extensions, but barely. Andthen GitHub released Atom, which wasbuilt on top of Electron. And then
27:38.799–27:45.760
Microsoft decided to fight back with VSCode, which was an open-source electroneditor that became the industry standard
27:45.760–27:52.880
used by over 80% of developers. Andsuddenly we all were using tools that wecould customize. And now AI is huge. And
27:52.880–27:58.159
everyone moved to cursor, which is aclosed source fork, or to claude code,which is a closed source terminal, or to
27:58.159–28:03.760
the Codex desktop app, which is a closedsource desktop app. and our ability tocustomize our tools started to fade
28:03.760–28:09.520
fast, which is particularly ironicbecause we're also now in an era whereit's ever been easier to customize tools
28:09.520–28:15.600
as long as you have source code access.And it just deeply frustrated me thathe tools I used would randomly get
28:15.600–28:21.200
worse and I couldn't fix them and hadthings I wanted and didn't have theability for me to add them. And I wanted
28:21.200–28:26.399
to make sure that the next generationdidn't have to grow up with a bunch ofclosed source tools they couldn't
28:26.399–28:32.240
customize and agents that are more thancapable of customizing. So, I ended upspending a lot of time and money and
28:32.240–28:38.399
resource and betting hard on doing this.Not because I think I can make money onit. Sure, there's some potential to do
28:38.399–28:47.120
that in the future, but the goal here isto make the best possible open-sourcesolution for coding with AI today. And I
28:47.120–28:53.120
do not believe that that solution is aterminal. I genuinely believe thatsolution is a graphical interface that
28:53.120–28:59.679
prioritizes the people who want to getreal work done with systems that helpyou get that work landed. I have so much
28:59.679–29:04.080
more I want to say about T3 code inparticular, but that's going to have towait for another video. For now, I just
29:04.080–29:09.919
hope you guys get this takeaway. I don'tcare which guey you use. Ideally, use adecent one. So, like if you use the
29:09.919–29:15.200
cloud code desktop app, you're notgetting the like proper guey experience,but use something like T3 code or codeex
29:15.200–29:20.880
or you can deal with the performanceissues in the new cursor glass versionor you build your own thing or use gene
29:20.880–29:27.840
or conductor any of these other guiesfor managing your agents. I think you'llfeel the difference because it really
29:27.840–29:36.399
is significantly better thandealing with a terminal, especially onceyou have more than one or two thingsgoing on. The ability to just hop around
29:36.399–29:42.480
or hold down a hotkey and see whichthread maps to which button and I canjust commandclick between the different
29:42.480–29:50.080
hings I'm doing. Being able torightclick and archive or just clicksettle, all these little things,especially once you start using images
29:50.080–29:56.399
and stuff too, it's just it's so muchbetter. And once I was liberated fromthe reality that doing this on another
29:56.399–30:02.480
computer was too hard and no longersshing constantly just to make sure theagent was durable. Once all of that was
30:02.480–30:09.760
implemented, it changed how I code. AndI went from landing like three or fourPRs a week to on my like heavy coding
30:09.760–30:17.200
days as many as 20 PRs a day landing.And moving from the terminal to a realgraphical interface is a significant
30:17.200–30:22.960
part of why I was able to make thatshift. Just to make sure this is clear,I love terminals and there's a lot of me
30:22.960–30:28.480
that misses using them as much as I usedto. But at the same time, they're justnot the right shape for the things that
30:28.480–30:35.520
we do today. And it's time to stopretending they are. The same way thatiPhones used to make all the apps looklike the real world objects in the
30:35.520–30:41.200
skumorphic era because it was importanthat people saw a calendar and it lookedlike a calendar because otherwise they
30:41.200–30:48.960
wouldn't use it. We're in that era stillnow with AI dev tools. We're doingthings the way we used to becauseotherwise it's too much at once. I need
30:48.960–30:54.640
you to look forward a bit though. I wantyou to challenge that belief because thedevs who were the wizards at terminals
30:54.640–30:59.679
are the same devs who should be wizardswith agents. And as hard as it is toadmit, cuz I know it was really, really
30:59.679–31:06.559
hard for me, the terminal is not theideal interface for the way that webuild today. And if I'm being fullyhonest with you, the only way the
31:06.559–31:13.039
terminal isn't holding you back would beif you're not building big enough. Pushyourself more and try out some gooies. I
31:13.039–31:17.000
have a feeling you'll be surprised. Anduntil next time, peace nuts.
0:00.080–0:05.520
這是我從不想做的影片,但我越想越覺得我好像非做不可,因為
0:05.520–0:12.000
如果我對你們誠實一點,我一直都是終端機的第一人稱使用者。我知道,我知道我是那個 vibe coding 的軟弱男孩
0:12.000–0:18.960
JavaScript 傢伙,總是把東西插進 VS Code 並投資於 VS Code 的分叉版本,但我內心並非如此。我
0:18.960–0:24.560
喜歡能夠用觸控板或滑鼠滾動程式碼並點擊選擇東西,但通常對於
0:24.560–0:31.199
我的日常工作,我總是待在終端機裡。我從寫程式之前就一直是個終端機狂熱者。我
0:31.199–0:37.840
用它來託管我的 Minecraft 伺服器、SSH 到世界各地的電腦,並做各種有趣、瘋狂的事情。我
0:37.840–0:45.280
有一個深度修改過的 GNU screen 設定檔,我在開始轉向 T-Mox 之前花了很多時間在上面,因為我
0:45.280–0:51.120
年紀夠大,在我開始的時候 GNU screen 仍然是標準。我大部分時間
0:51.120–0:58.640
都在使用終端機。從 13 歲開始,我大部分的時間都在終端機裡執行、工作、審計和處理日常事務。
0:58.640–1:04.879
現在情況已不再如此。幾天前的某個時刻,我正在處理大量工作
1:04.879–1:12.560
然後我開始尋找我的終端機,卻找不到,因為我重新開機後沒有開啟終端機,因為我
1:12.560–1:24.000
超過八個小時不需要它。就在這時我意識到,我不再使用終端機工作了。我真的、非常需要討論為什麼。
1:24.000–1:29.920
在做到這一點之前,我們得先暫停一下,為今天的贊助商打廣告。當我在進行新專案並準備上線時,
1:29.920–1:36.079
我每次做的第一件事就是把它上傳到 GitHub。但緊接著,我會使用今天的贊助商 Blacksmith,
1:36.079–1:41.840
因為一旦我想要真正的 CI,我就不想再處理 GitHub Actions 了。如果 Blacksmith
1:41.840–1:46.720
只提供更快的速度,那也值得。如果 Blacksmith
1:46.720–1:51.840
只提供更低的价格,那也值得。如果 Blacksmith
1:51.840–1:56.799
只提供四倍快的快取下載速度,那也仍然值得。但這不是全部
1:56.799–1:58.399
你得到的。你還獲得了我見過的最好的可觀察性,能讓你了解 CI 實際上在做什麼。哪些作業
1:58.399–2:00.159
通過了?哪些作業失敗了?它們
2:00.159–2:05.920
花在 T3 Code 等專案上的時間,這很有幫助。試圖找出我們的 CI 為什麼慢並修復它,從來沒有像現在這樣
2:05.920–2:13.120
花在哪裡?這很有幫助。試圖弄清楚為什麼我們的 CI 慢並修復它從未如此
2:13.120–2:18.400
簡單。預設情況下它很快,但如果你能透過 SSH 進入機器查看情況或使用實際的原生 Mac R
2:18.400–2:24.480
runner 來進行 Mac 構建(就像我們為 iOS 和 Mac 應用程式所做的那樣),你可以獲得更快的速度。說真的,進行這些時間
2:24.480–2:32.000
比較變得困難,因為我已經數個月沒有選擇使用 GitHub Actions 了。在 Actions 上節省壓力、時間和金錢
2:32.000–2:37.760
於 soy.link/blacksmith。我已經知道這一段會怎麼發展。會有無盡的偏見指控,「哦,Theo 只是來
2:37.760–2:43.040
推廣 T3 Code 的。他 [ __ ] 終端機是為了推廣他自己的東西。」哦,你是指這個開源專案嗎?
2:43.040–2:50.080
我投入了大量金錢和時間來構建它,因為我深信終端機不是正確的地方?如果你
2:50.080–2:56.640
認為 T3 Code 是我這樣做的原因,你的推理比 Sonnet 4 還糟,因為這顯然是一個
2:56.640–3:00.879
基於我的信念而構建的東西,而不是我因為構建了這個東西而對我的信念撒謊。這顯然不合邏輯。我希望你們在留下那些糟糕的評論前,
3:00.879–3:05.599
能多用一點腦筋。我敢肯定已經有上百條這樣的評論了。瀏覽一下 Obsidian 上的評論,我敢肯定你會找到很多關於我如何
3:05.599–3:12.000
只是在推廣我自己的 [ __ ] 的內容。但為了暫時避開這些指控,我將切換到 Chat GBT。所以,我們
3:12.000–3:17.680
在這裡。一個我好久沒用的應用程式。我只是剛更新它,因為我沒怎麼使用它,但它仍然,在我看來,
3:17.680–3:25.440
對於更多使用 AI 進行編碼的開發者來說,是最好的起點之一。雖然 Codex 應用程式
3:25.440–3:31.680
是我在「終端機不再是編碼正確場所」這一信念上推我一把的大事件,但它
3:31.680–3:38.640
這不是我在此旅程的起點。我開始認真思考這件事的地方,老實說有點令人尷尬,我甚至覺得不好意思說出來
3:38.640–3:46.480
令人尷尬,我甚至覺得把它放在這裡很不好意思。我打字時甚至感到噁心。哦天哪,現在可以刪除它嗎?我必須把這個詞
3:46.480–3:48.319
留在螢幕上嗎?我真的只想
3:48.319–3:55.840
隱藏它。我打算把它去掉。好吧。說真的,當我第一次嘗試 anti-gravity 時,我主要
3:55.840–4:03.920
我並不印象深刻。但有一件事讓我印象深刻。有一個快捷鍵可以開啟 Agent Manager 視圖,讓你看到
4:03.920–4:10.319
不同執行個體的反重力中,代理程式正在做什麼。因此,如果你為三個不同的專案開啟了三個視窗,你可以在頂端有一個視窗,顯示每個其他專案中代理程式的情況。
4:10.319–4:16.160
這是一個左側邊欄,包含專案,每個專案都有執行緒,你可以從一個外部視圖中看到這些內容。
4:16.160–4:22.800
嗯,聽起來很熟悉。有趣。雖然我不願承認,但反重力代理程式管理器是我第一次體驗到這種情況。
4:22.800–4:31.360
一個外部視圖。嗯,聽起來很熟悉。有趣。雖然我不願承認,但反重力 Agent Manager
4:31.360–4:37.520
是我第一次體驗到那種感覺。如果反重力不是那麼一場 [ __ ] 的秀,我可能早就
4:37.520–4:42.800
但對我來說更令人興奮的是新的代理程式管理器工作流程。我認為這是一個很棒的主意,而且有很多小細節讓我感到興奮。
4:42.800–4:49.680
因此,反重力是我墜落的開始,因為我意識到終端機不再適合進行這些操作。
4:49.680–4:56.080
有趣的是,就在幾週前,我在 Cursor 辦公室向他們抱怨,他們與 Cursor v2 代理程式視圖的所有新整合,讓我使用終端機變得過於困難,因為他們讓獲取工作樹路徑變得過於煩人。
4:56.080–5:02.240
這樣我就可以在終端機中 cd 進入該路徑並執行操作。
5:02.240–5:08.960
因為我經常的流程是,我會使用 Cursor。我會在側邊欄中開啟某些內容,指示它執行某些操作,獲得結果,想要去檢查它,然後必須找到某種方式 cd 進入工作樹的路徑,以便執行它、安裝東西和做其他事情。
5:08.960–5:15.919
讓它變得過於煩人,無法獲取工作樹的路徑。這樣我就可以在終端機中 cd 進去,然後執行
5:15.919–5:21.520
因此,我最終足夠強勢地要求他們給我單鍵複製按鈕,以便我能夠繼續使用終端機來執行實際操作,而不僅僅是發送提示。
5:21.520–5:28.240
我達到了這樣的程度:我會使用 Cursor 發送提示,然後使用我的終端機執行所有操作,包括審查差異、閱讀 git 歷史記錄、調查更改、實際執行程式碼和執行操作。
5:28.240–5:34.479
我在 Cursor 應用程式中發送提示,而在終端機中處理其他所有事情,特別是 git 相關事項,比例大約是 50/50。
5:34.479–5:40.400
我全部使用標準的 git 命令進行 git 操作。偶爾我會添加一些單行輔助工具,用於執行像提交和推送這樣的單行操作。
5:40.400–5:46.960
繼續使用我的終端機來進行實際操作,而不僅僅是發送提示。我到了會使用
5:46.960–5:52.720
我需要把這個反重力東西從螢幕上移開。它會讓我受傷。
5:52.720–5:58.800
但然後模型變得更強大,重要的是 Codeex 應用程式推出了。
5:58.800–6:04.639
當我開始使用它時,我從反重力中獲得的信念——說這很糟糕,但也可能是未來——讓我非常興奮。
6:04.639–6:11.600
透過標準的 git 命令來操作我的 git。偶爾我會加入一些單行輔助腳本來執行像
6:11.600–6:18.960
能夠將你的工作分解成不同的專案,並清楚地看到其中的情況。
6:18.960–6:25.120
把螢幕上的反重力裝置拿掉。它會傷到我。但後來模型變得更好了,而且更重要的是,程式碼
6:25.120–6:33.840
能夠快速開啟終端機並在這裡輸入內容,如果你需要為你正在進行的任何操作。
6:33.840–6:43.759
我達到了這樣的程度:我仍然在我的 Codeex 執行個體中的終端機裡查看我的 git 歷史記錄,而且它很穩固。
6:43.759–6:50.240
專案,並清楚看到其中的情況。同時進行多項工作,各自在自己的工作
6:50.240–6:55.840
在我越來越多地使用終端機的世界裡,因為我已經在這個時候轉移到了 Cloud Code,並且不斷在我的終端機中運行 Cloud Code,開啟許多終端機,使用像 cmx 這樣很棒的工具來管理我進行的所有不同操作。
6:55.840–7:05.120
中進行。我到達了一個點,我仍然透過程式碼執行個體內的終端機查看我的 git 歷史記錄,而且它很穩固。它
7:05.120–7:10.639
實際上相當不錯。在我越來越頻繁使用終端機的世界裡,因為我此時已轉移
7:10.639–7:17.120
到雲端程式碼,並不斷在終端機中執行雲端程式碼,開啟許多終端機,使用像
7:17.120–7:23.840
cmx 這樣優秀的工具來管理我所有不同的工作。我仍然是一個重度 T-Max 使用者。我
7:23.840–7:30.400
仍然是一個非常深度的 T-m 使用者。我直到今年年初才開始在終端機中使用標籤頁,作為一項個人
7:30.400–7:35.919
挑戰,當我設定新電腦時,看看我是否能終於擺脫 T-Mux。答案是否定的,劇透一下,但我
7:35.919–7:43.039
試過了。所以,我經歷了所有這些,然後 Codeex 應用程式出現了,我想說,等等,我可以直接截圖
7:43.039–7:52.080
然後貼上並查看。我可以選取文字、複製並貼上,而且格式不會錯亂。我可以
7:52.080–8:01.599
滾動,而且不會卡頓。最重要的是,我可以輕鬆地在不同項目之間切換,只需
8:01.599–8:09.360
點擊即可。我知道這聽起來很愚蠢,但當你同時處理三件以上的事情時,
8:09.360–8:15.280
在 T-Max 裡按的快捷鍵就太多了。追蹤每個項目在哪裡更讓人煩躁。你必須記住
8:15.280–8:22.240
哪個快捷鍵對應哪個項目。然後你開始在大腦中建立系統,這三個面板是用來
8:22.240–8:28.000
處理這三件事的。這個第四個面板是用來處理這件事的。這個第五個面板是彈性面板。我用它來處理任何事。但是
8:28.000–8:34.320
當你出現第六個任務時,你整個模型就崩潰了。我盡最大努力想找出解決方法。而且再次,
8:34.320–8:40.479
他們值得稱讚的是,Semox 是最接近解決這個問題的方案。
8:40.479–8:46.000
它提供了一個類似 Codeex 應用程式的側邊欄,同時也在另一側提供終端機。這非常棒,
8:46.000–8:52.399
而且它仍然是我的預設終端機。事實上,所有我透過 SSH 連線的機器,我都將它們放在一個名為 SSH 的小資料夾裡,這樣我就能
8:52.399–8:58.560
將所有這些連線集中管理,並隨時快速連線。但是,擁有真實的 UI、更易於閱讀的文字、更輕鬆的導航與搜尋功能,以及符合邏輯的分類系統,
8:58.560–9:05.519
以及根據檔案在電腦中的位置來建立的實際專案,這讓我寫程式的意願大增。但 Codeex 最大的問題在於它是閉源軟體。因此,當它出現
9:05.519–9:11.360
退步或問題,或是我想修復某些東西時,這並不切實際。我能夠向 Codeex 團隊提出大量問題。也要感謝我在 OpenAI 的朋友們。你們非常棒,
9:11.360–9:17.760
認真且迅速地處理了我所有的反饋。但依然會發生隨機的退步和變更,例如合併到 ChatGPT 中。就像這不再是 Codex。這是
9:17.760–9:26.080
現在的 ChatGPT。他們很感謝地讓你使用舊的圖示,但這已經是 ChatGPT 應用程式了。因為 Codex 應用程式
9:26.080–9:31.760
非常優秀,它讓非開發者也能使用這些工具,於是他們決定透過重新品牌化,將這種能力賦予非開發者,
9:31.760–9:37.680
並稱之為 ChatGPT。這是我最大的問題之一。如果你想要好的開源解決方案,你基本上只能使用終端機。你有 Codeex,
9:37.680–9:43.920
但也還有其他很棒的東西。特別提及 Open Code 和 Pi,它們是與 AI 編碼的絕佳框架和終端機工具。但如果你想要像 Codeex 這樣的圖形介面,
9:43.920–9:52.000
你的選項是使用鎖定在你喜歡供應商的方案。例如,你可以使用雲端代碼應用程式搭配你的雲端訂閱,
9:52.000–9:59.360
或者使用 Codeex 應用程式搭配你的 Codex 訂閱。你可以稍微修改 Codeex 應用程式來使用其他東西。
9:59.360–10:05.279
你也可以對雲端代碼應用程式做類似的事情,但你不應該這麼做,因為雲端代碼應用程式並不好用。但如果你想要
10:05.279–10:13.200
一個地方處理所有事情,你的唯一選項是 Open Code,但這會失去所有補貼,因為 Open Code 沒有
10:13.200–10:19.760
使用官方框架。你也無法獲得新增到雲端代碼或 Codex 等功能。如果你想要
10:19.760–10:26.160
以最佳價格獲得最佳功能與最佳模型,你必須在 CLI 中使用 Claude,或在
10:26.160–10:32.560
桌面應用程式中使用 Codeex,因為兩家公司都逐漸減少對另一方的支援,許多新的 Codeex 功能
10:32.560–10:38.320
僅在應用程式中出現,而許多新的雲端代碼功能僅在 CLI 中出現。我到達了一個相當糟糕的點,
10:38.320–10:43.279
如果我需要使用我的雲端模型,我就在 CLI 中。而如果我想要使用 Codex 模型和 GPT 模型,我就在圖形介面中。最後,
10:43.279–10:49.600
我發現自己預設使用 OpenAI 模型,即使它們在這些方面表現較差,因為我更喜欢有一個好用的應用程式。
10:49.600–10:55.519
這些小問題累積起來。說真的,如果你還沒試過這些圖形介面,我想自我推銷,但請去試試 Codeex 應用程式。它確實非常優秀。它有它的缺點。它有它的
10:55.519–11:00.720
煩人之處。他們新增了靈感來自我們在建構 T3 Code 的活動檢視。雖然這很酷,但還未完全到位。但老天,如果這不是對你現有工作的巨大改進,
11:00.720–11:07.600
我真不知道該說什麼。追蹤正在發生的事情、工作進行的位置、你做过什麼,以及實際完成工作,變得容易得多。
11:07.600–11:15.040
我可以告訴你,我有多少次遺忘了某個終端機工作階段。我必須打開
11:15.040–11:21.040
雲端代碼,告訴它去尋找我正在進行工作的雲端代碼,或是我開始的工作樹,或是其他所有這些東西。我必須投入大量
11:21.040–11:29.120
時間來追蹤正在發生的事情。從我這裡混亂的設定可以看出,我投入了很多時間。我今天早點重新啟動了這台機器,所以我失去了所有工作階段,
11:29.120–11:36.240
但這台 Linux 機器上我有大約 30 個 T-Mux 終端機,用於各種雲端代碼和 CEX 相關的工作。我在那邊的另一台 Linux 機器上
11:36.240–11:43.519
仍然有一大堆這類瘋狂任務,我就像無限期地運行目標,看看會發生什麼。例如 TypeScript
11:43.519–11:52.320
的 Rust 移植版,我在耗盡令牌之前短暫工作過。只是追蹤什麼是什麼是這麼令人煩惱。
11:52.320–11:57.920
如果你願意花時間,你可以進行重命名等操作,但這太令人煩惱了。而且我必須投入大量
11:57.920–12:05.360
工作來嘗試建立一個合理的环境,以便在雲端代碼和 Codex 之間切換,
12:05.360–12:12.000
處理實際工作並追蹤我所做的一切。這只是增加了更多的心理負擔。我會對你坦白。這只是
12:12.000–12:18.800
在裡面。我今天早點重啟了這台機器,所以我失去了所有工作階段,但我當時在 T-Mux 裡開了大概 30 個終端機
12:18.800–12:26.880
在這台 Linux 主機上處理各種雲端代碼和 CEX 相關的工作。我在那邊另一台 Linux 主機上還有一大堆終端機,用於處理這些類型的
12:26.880–12:33.120
瘋狂任務,我試著像運行目標一樣無限期地執行,看看會發生什麼。像是 TypeScript
12:33.120–12:38.160
轉譯成 Rust 的版本,我在耗盡 token 之前曾短暫處理過。光是追蹤這些東西到底是什麼就很令人煩躁。
12:38.160–12:46.560
如果你願意花時間,你可以進行重命名等操作,但這真的很煩人。而我必須投入大量
12:46.560–12:53.040
的精力去嘗試建立一個合理的環境,以便在雲端代碼和本地代碼之間切換,並追蹤我正在處理的工作。這只是增加了更多的心智負擔。
12:53.040–12:58.720
實際的工作,還要追蹤我在做什麼,這只是增加了更多的心理負擔。我跟你說實話,這只是
12:58.720–13:05.040
是。而且這並非終端機歷史上運作的方式。歷史上,終端機一直是那種心智負擔較小、但前期成本稍高的選項。
13:05.040–13:10.959
心智負擔較少,且前期成本稍高。你得花一點時間按照你的喜好進行設定。然後
13:10.959–13:18.000
從那一點開始,終端機主要只是以你想要的方式做同樣的事情。但在一個
13:18.000–13:23.920
我所做的工作變化如此活躍的世界裡,我正在處理的專案可能是全新的,可能是幾個月前的,
13:23.920–13:28.959
可能是幾年前的,而且我並行處理的工作量也可能大幅變化。我可能正在處理一項
13:28.959–13:35.360
工作。我可能正在處理十項工作。我在終端機中為我自己建立的系統的僵化性不夠靈活,
13:35.360–13:45.519
無法應付我今天所做的工作。我盡了最大的努力來修復這個問題。我投入了大量精力,
13:45.519–13:54.720
以便透過這裡的 T-Max 層,在 cmox 上透過 SSH 貼上圖片。所以我可以在這裡指令 V,然後透過 cmox 和 SSH 將圖片貼到
13:54.720–14:01.600
遠端機器上的 T-modex 實例中。那段 [ __ ] 陣子非常不穩定,現在則相對穩定。所以
14:01.600–14:08.880
我終於可以透過 SSH 貼上圖片,但這就像是我必須投入時間和精力去做一些
14:08.880–14:15.920
如此基本的事情,例如截圖然後發送給我的代理程式。有了 guey,我直接做。我會說大約一半
14:15.920–14:23.120
的提示詞包含圖片,因為當我遇到錯誤或讓我困擾的事情時,直接截圖、發送並說修復,
14:23.120–14:28.880
會容易得多,它就會做到。無論那是你的應用程式的截圖,還是執行命令時出現的奇怪錯誤。發送截圖給你的
14:28.880–14:35.199
模型非常有效,但當你甚至無法看到圖片是什麼時,效果就不那麼好了。但我最大的
14:35.199–14:41.920
抱怨不是這些。這其實沒問題。這有點屬於這些事情之一。這與
14:41.920–14:51.440
終端機關係不大,與代理程式也關係不大。這是三個非常特定、
14:51.440–15:02.560
[空白] 很爛。它真的很有用、很強大,我花了很多時間在 SSH 上,但一旦我的連線不完美,我就會遇到
15:02.560–15:08.880
[ __ ] 很爛。它非常有用、非常強大,我在 SSH 上花了很多時間,但一旦我的
15:08.880–15:15.839
連線不完美,我就會遇到各種問題。幾天前我遇到了一個問題,當時我正在透過 SSH 在我的本地網路上的 Cloud Code 執行,
15:15.839–15:22.639
這是有線或無線情況下速度為千兆到 10G 的 Wi-Fi 7 網路。而我在樓下的書桌前透過 10G 連接電腦。
15:22.639–15:31.440
我在嘗試於 Cloud Code 中工作時打字,卻遇到黏滯鍵問題。
15:31.440–15:38.959
結果發現它綁定的是 Wi-Fi,而不是我的乙太網路。但問題在於我甚至必須在意這點,這太荒謬了。別讓我開始談談
15:38.959–15:43.120
在行動裝置上做事的嘗試。我盡了最大努力讓 Terus 為我服務。我付了全價
15:43.120–15:51.680
購買它。我支持開發者。我認為它很棒,甚至今天早上還幫助我除錯了一些東西。就像我
15:51.680–15:57.199
仍然使用這些東西。它們只是不再是我預設的選擇,因為它們很脆弱。而且令人驚嘆的是
15:57.199–16:05.600
像「我知道 SSH3 顯然更好。我知道 mosh 真的很酷,但我沒有心力去處理所有這些事情以獲得
16:05.600–16:13.120
有趣的事情,例如我知道 SSH3 顯然好得多。我知道 mosh 真的很酷,但我沒有精力去處理所有這些事情以獲得
16:13.120–16:21.440
終端機讓我開始懷疑自己的理智,也開始懷疑所有其他聲稱使用他們的終端機
16:21.440–16:28.000
終端機在我的手機上進行實際工作,讓我質疑自己的理智,也質疑所有那些說使用他們的終端機
16:28.000–16:34.560
在手機上是執行 quad code 的完全可接受方式的人的可靠性。事實並非如此。幸好,Codex 接受了
16:34.560–16:41.680
這個事實,他們引入了透過手機上的 Chat GBT 應用程式遠端控制 Codex 應用程式(現為 ChatGpt 應用程式)的功能。這好多了。雖然它有粗糙的地方,但能夠在我的
16:41.680–16:48.079
電腦上啟動一些工作,然後在我離開時在我的手機上完成該線程,這讓我離開電腦的時間更多了。我發現自己
16:48.079–16:55.040
我自己,比如四處走動做更多家務,離開公寓去跑腿,並且能夠檢查
16:55.040–17:03.120
我隨時間推移所做的事情。這真的很有趣、很酷,但也令人惱火地不穩定,最重要的是
17:03.120–17:09.360
嚴格限制於 Codeex 桌面應用程式,這意味著我只能在我的 Mac 上使用它。而當你將
17:09.360–17:15.679
這與 Codeex 在 Mac OS 上實施的安全策略相關的所有令人煩躁的部分結合起來時,
17:15.679–17:22.880
它會為每個線程和每個子代理程式啟動五個以上的進程,這可能會影響你的效能。我感到很煩躁
17:22.880–17:30.240
我有幾件事想做,我會列出所有我想確保能做到的事情。那些讓我感到煩躁的事情顯然
17:30.240–17:37.840
讓我煩躁的事情,貼上圖片對我來說非常重要。我還希望所有具有補貼的模型。所以,我想確保
17:37.840–17:46.320
這裡推出的任何東西都能與我的 cloud code 補貼和 codec 補貼配合運作,這樣我就可以花 200 美元獲得 8 到 14 萬美元的額度,而不是不得不花 8 到 14
17:46.320–17:56.160
大額費用。我想要良好的遠端控制功能。我想要業界最佳的 Linux 支援,因為就像我在許多影片中說過的,請查看我最近製作的 Linux 影片,Linux 對於代理工作(agentic work)來說好太多了,因為它的檔案系統問題少得多。而且啟動工作樹只需 2 秒
17:56.160–18:03.840
而不是 30 秒到 2 分鐘。真的要好得多。即使當我在 Linux 機器上進行大量工作時
18:03.840–18:11.120
我也很少能達到甚至三分之一的利用率。這台機器有 32 個核心。它是一台
18:11.120–18:18.640
Ryzen AI Max 盒子。它是 Framework 桌面版。我之前提過。我試圖讓這台機器超載,但
18:18.640–18:24.240
基本上做不到。這很大一部分是因為 Linux 沒有 Codeex 試圖掃描每件事物所帶來的混亂。所以,業界最佳的 Linux 支援、良好的行動裝置支援、良好的效能、低電池
18:24.240–18:30.080
消耗,以及可能最大的部分,一種良好的方式來同時管理大量事物。這些都是我
18:30.080–18:37.200
想要的。終端機(terminals)唯一能提供給我的就是業界最佳的 Linux 支援。它們在其他任何類別中都沒有提供任何幫助。現在你們已經等了夠久了。評論者可以發揮他們的影響力。我
18:37.200–18:46.000
需要談談 T3 Code,因為 Julius 和我開發了 T3 Code,因為我們共享了許多這些挫折。我們想要喜歡 Codeex,並且在許多方面確實喜歡它。我知道 Julius 仍然大量使用它。我已經逐漸離開了 Codex 桌面應用程式。它確實有其好處,
18:46.000–18:52.720
我希望在不久的將來能盡可能複製這些功能。Julius 和我嘗試了當時存在的所有其他選項,並且對它們非常不滿。其中幾個還算可以的,我們提供了大量反饋,它們修復了一些問題,
18:52.720–19:00.240
但其他方面卻失敗了,讓我們感到煩躁。我對效能部分特別感到煩躁,以至於我嘗試構建
19:00.240–19:08.400
自己的原生 GUI 給 Codeex,只為了嘗試並讓某些東西跑得更快。我最終陷入了困境,因為滾動文字
19:08.400–19:14.240
Swift UI 和 AppKit 對於大型可滾動文字視圖來說並不擅長。結果證明 Google 為 Chrome 投入了大量優秀的工作。所以我勉強放棄了那個專案。勉強地重新在 Electron 上啟動它,只是出於
19:14.240–19:18.799
好奇心。決定以一種讓其他事情(如遠端控制)更容易的架構方式,透過
19:18.799–19:26.480
將所有內容放在 websocket 上,而不是透過 Electron RPC 進行綁定。結果是一個令人驚訝地可用的東西。
19:26.480–19:31.919
結果就是 T3 Code。當時它看起來完全不像現在這樣。當時它非常醜陋,但它允許你使用 Codeex 搭配
19:31.919–19:38.880
開源 GUI,這對系統效能的影響要小得多。不過老實說,在前幾個
19:38.880–19:45.919
月裡,我仍然發現自己比使用 T3 Code 更多使用 Codeex 應用程式。我確實會在它們之間切換,但我
19:45.919–19:51.760
大部分時間可能都在 Codeex 裡。有時我會上下切換,但我總是不斷回到 Codeex,但 Julius
19:51.760–19:57.760
無法忍受那樣。Julius 繼續迭代 T3 Code,因為 Julius 有我沒有的東西。Julius 討厭終端機。這很困難,我跟他為此爭論過很多次。他 exclusively 透過 VS Code 擴充功能使用 Git。他甚至
19:57.760–20:04.480
可能知道終端機中的大部分 Git 指令,但他從不使用它們。他唯一會開啟的終端機
20:04.480–20:11.919
是 VS Code 或 Cursor 中的那個,用來啟動他的開發伺服器。其他所有事情他都透過編輯器完成。他是我一生中見過的最棒的開發者之一。毫無疑問,他是我所認識的最棒的、卻討厭終端機的開發者。對我來說,
20:11.919–20:20.080
T3 Code 是一種擁有開源解決方案的方式,該方案有可能解決我的一些問題。對 Julius 來說,T3
20:20.080–20:26.320
Code 是他逃離終端機的能力。他接受了這個挑戰,並且 [ __ ] 他真的做到了。他讓 T3 Code
20:26.320–20:34.480
我大部分時間都在 Codeex 裡度過。偶爾會有上下波動的情況,但我總是不斷回到 codeex,但 Julius
20:34.480–20:44.880
實現和整合。他讓工作樹完美運作。他讓 Claworking 完美運作。他也讓 Open Code 和
20:44.880–20:52.960
Grock 運作良好。即使是 Cursor,雖然 Cursor 的整合還需要一些工作。即將有大更新。
20:52.960–20:57.600
他之所以做到這些,是因為他想利用來自所有這些提供者的所有模型,以所有這些
20:57.600–21:03.600
補貼價格,但他不想不得不使用一個糟糕的終端機應用程式,並為每個不同的應用程式記住一套全新的快捷鍵。而 T3 Code 成為他管理所有這些不同代理和所有這些不同
21:03.600–21:10.240
解決方案的介面,提供了一個一站式的地方,無論你使用哪個模型,所有行為都相同。並且
21:10.240–21:16.799
提醒一下,這是使用你機器上的 Cloud Code 和 Codeex。我們沒有做一些像 -p 這樣的捷徑。我們
21:16.799–21:25.760
使用的是由 Anthropic 認可的官方代理 SDK。他們即將改變政策。他們暫時
21:25.760–21:31.520
擱置了它。他們可能會無限期地擱置它。仍在等待那裡的消息更新。但這一切都符合官方規定
21:31.520–21:36.720
Cloud Code 和 Codeex 都正式支援,以至於 Codex 團隊公開稱讚我們是他們加入功能的靈感來源
21:36.720–21:41.520
我們將大量工作投入其中。不僅是構建它,還包括與實驗室協商
21:41.520–21:46.400
以確保我們按照他們希望的方式做事,以便我們可以繼續為你的訂閱提供
21:46.400–21:52.240
每一個不同的。而 T3 Code 成為他管理所有這些不同代理和所有這些不同
21:52.240–21:58.960
解決方案的平台,提供一個一站式的地方,無論你使用哪個模型,一切行為都相同。而
21:58.960–22:05.840
提醒一下,這是使用您機器上的雲端代碼和您的編解碼器。我們並沒有進行像 -p 這樣的黑客操作。我們
22:05.840–22:11.280
使用的是 Anthropic 官方認可的代理 SDK。他們原本要更改政策。他們暫時
22:11.280–22:16.799
擱置了。他們可能會無限期地擱置。仍在等待相關更新。但這一切都符合官方規定
22:16.799–22:21.760
由 Cloud Code 和 Codeexto 共同支援,甚至到了 Codex 團隊公開稱讚我們是他們新增功能的靈感來源的地步
22:21.760–22:28.559
為了這些功能我們投入了大量心血。不僅是建構它,還包括與實驗室協商
22:28.559–22:34.400
確保我們以他們希望的方式做事,這樣我們才能繼續在我們的應用程式中
22:34.400–22:40.880
為您喜愛的平台提供訂閱服務,而不會被封鎖。然後魔法的部分就出現了。這裡底部有一個小
22:40.880–22:47.520
按鈕。其他應用程式也有這個,請注意。大多數應用程式都有「在您的機器上使用」或「在雲端上使用」的按鈕。我們有不同的東西。當您在機器上設定 T3 code 時,您現在可以透過
22:47.520–22:53.360
另一台電腦上的應用程式、網站 app.t3.codes 上的應用程式或行動應用程式來控制那台
22:53.360–23:00.720
機器。是的,我們有完整支援 iOS 和 Android 的行動應用程式。是的,它也是完全開源的。所以,如果您想
23:00.720–23:05.440
自己建構它,您可以。這裡是神奇的。根本改變我工作方式的東西是能夠選擇一台電腦,發送
23:05.440–23:15.440
任務,然後關閉我的筆記型電腦。在此之前,我發現自己必須優先考慮我的生活,以配合我可以
23:15.440–23:22.320
執行代理程式的時間。因為如果我必須執行代理程式,然後我有會議即將舉行,這會導致我的
23:22.320–23:27.919
電腦過熱,在通話中使用起來不愉快,並讓我的風扇轉動得如此大聲,以至於我無法使用我的筆記型電腦上的麥克風,那麼我會等到會議結束後
23:27.919–23:34.640
再啟動它,希望我不會有另一個即將到來的會議。如果我有一個約會、旅行或活動或其他我必須去的地方,我就不會啟動我的代理程式,因為一旦我失去 Wi-Fi,它們就會
23:34.640–23:40.320
死亡。這裡必須承認的一件更令人尷尬的事情是,我在 Uber 中編碼的惡名遠揚。我會花很多時間開車去不同的
23:40.320–23:47.440
活動和事情,因為我必須去很多不同的 [ __ ] 而且我經常選擇 Uber,只是因為我可以
23:47.440–23:54.799
坐在 Uber 裡並完成一些程式碼。而在我的辦公室,我在其他許多事情上落後很多。我必須做所有那些事情。所以我的 Uber 變成了我的
23:54.799–24:00.240
平靜編碼時間。我有很多文章談論我從 Uber 中獲得的驚人效能提升和變更。但發生了一些壞事。我開始使用 claude code,當時 Opus 45 發布。我這讓我
24:00.240–24:08.000
回到 Opus 45 並嘗試一些東西。但請注意我是如何結束它的。我將不得不暫時停止,因為我目前正在 Uber 中編碼。我的糟糕資料
24:08.000–24:13.600
連線讓我遇到了問題。而一旦我到達那裡,我就必須關閉我的筆記型電腦,無論我正在執行
24:13.600–24:21.360
的代理程式都會死亡,我必須稍後再啟動它,希望它會繼續。而這種情況發生的次數越多,我執行的任務從幾分鐘變成幾小時,我就越不想在 Uber 中編碼
24:21.360–24:28.720
,因為一旦我必須關閉我的筆記型電腦,一切就結束了。現在我必須以一種我知道筆記型電腦開啟時間足夠完成任務的方式來思考我的工作
24:28.720–24:33.679
。而我就像這樣安排我的一天。這很糟。現在我選擇我想要這台
24:33.679–24:39.279
機器執行的框。我發送提示並停止思考它。我可以發送東西給 soul,例如對這個程式碼庫進行深度審計,然後命令 Q T3
24:39.279–24:45.360
code,這樣它就會完全停止。這台電腦上不再有 T3 code 開啟。我可以重新開啟它,工作仍然
24:45.360–24:54.080
繼續。或者我可以再次命令 Q 它,在我的機器上強制終止它,然後前往 app.t3.codes,在所有我的機器上看到完全相同的工作
24:54.080–25:01.279
,並能夠繼續發送提示,查看正在發生的事情,貼上圖片,滾動
25:01.279–25:10.480
查看歷史記錄,甚至啟動終端機,如果您想那樣做。你必須承認這相當酷。而且
25:10.480–25:16.880
所有這些都是透過 T3 code 在您於機器上執行時產生的 websocket 連線進行的。我們現在有了更多更容易的連線方式
25:16.880–25:24.720
。如果您已經是 tail scale 的使用者,我感覺您會喜歡我最近新增的新功能。npx t3。
25:24.720–25:30.080
我會每晚執行,因為這是我最近一直在使用的。T3 at nightlypair-tail scale。這個命令會給您
25:30.080–25:36.320
一個配對碼,您可以在手機上掃描,或是一個您可以在網頁上使用的 URL。現在您有一個完整的 T3 code 實例,您可以
25:36.320–25:43.919
控制。您確實必須以某種方式提供它。所以 T3 nightly serve 並託管它。或者您可以使用更簡單的方法,即 npxt3 connect,它會
25:43.919–25:50.880
開啟一個 URL,讓您使用 GitHub、Google 或其他任何方式登入。然後它會在背景建立一個
25:50.880–25:56.720
我會每晚執行,因為這是我最近一直在使用的。T3 在 nightly 版本下的尾部規模。這個命令會提供
25:56.720–26:05.200
Linux Mac 即將支援,讓您永遠連線到這台機器並執行已經在那台相同機器上設定的代理程式。
26:05.200–26:14.159
所以,如果您在家裡的某個地方有一台舊筆記型電腦或一台很久沒有開啟的 PC,或者您已經有一台
26:14.159–26:20.799
您使用的 Linux 機器,如果尚未設定,請在上面設定 Linux。安裝 Cloud Code Codeex,兩者都安裝或都不安裝。執行這一個命令,npxt3
26:20.799–26:28.880
connect。現在您可以從一個好得多的介面控制那台機器及其上的所有代理程式,而不必
26:28.880–26:34.080
所以,如果您家裡有一台舊筆記型電腦,或者一台很久沒開機的 PC,或者已經有一台
26:34.080–26:42.400
您使用的 Linux 機器,如果尚未設定,請在上面安裝 Linux。安裝 Cloud Code Codeex,兩者都裝或都不裝。執行這一個命令,npx t3
26:42.400–26:50.640
連接。現在您可以從一個好得多的介面控制那台機器及其上的所有代理,而不必
26:50.640–26:58.960
不用再處理 SSH、終端機以及所有其他令人煩瑣的細節所帶來的後果。
26:58.960–27:05.279
但我真心希望各位明白,我並非為了某個秘密的賺錢計畫才這麼做。
27:05.279–27:10.159
我是出於挫折感才這麼做,也是出於對這項技術的熱愛。如果我想賺大錢,
27:10.159–27:16.799
我現在就可以把這個賣給 OpenAI 或 Anthropic,但我的目標是打造一個
27:16.799–27:26.400
我們用來建構軟體的閉源軟體。當我開始寫程式時,那主要是一個閉源生態系統。所有
27:26.400–27:32.320
絕大多數都是閉源生態系統。人們使用的編輯器都是閉源的,像是 Visual Studio、
27:32.320–27:38.799
Sublime Text 等。它們雖然有一些擴充功能的概念,但幾乎沒有。然後
27:38.799–27:45.760
GitHub 推出了基於 Electron 構建的 Atom。接著
27:45.760–27:52.880
Microsoft 決定以 VS Code 反擊,這是一個開源的 Electron 編輯器,
27:52.880–27:58.159
成為超過 80% 開發者使用的業界標準。突然間,我們都在使用可以自訂的工具。現在 AI 非常龐大。
27:58.159–28:03.760
大家都轉向使用 Cursor(閉源分支)、Claude Code(閉源終端機)或
28:03.760–28:09.520
Codex 桌面應用程式(閉源桌面應用程式)。我們自訂工具的能力開始迅速消退,
28:09.520–28:15.600
這特別具有諷刺意味,因為我們現在處於只要有原始碼存取權,
28:15.600–28:21.200
就能比以往更容易自訂工具的時代。這讓我深感挫折,因為我使用的工具會隨機變差,
28:21.200–28:26.399
而我無法修復它們,也無法加入我想要的功能。我希望
28:26.399–28:32.240
下一代不需要在無法自訂的閉源工具和完全有能力自訂的代理程式中成長。因此,我投入了大量時間、金錢和
28:32.240–28:38.399
資源,並全力投入這項工作。不是因為我認為能從中賺錢。當然,未來
28:38.399–28:47.120
可能有一些賺錢的潛力,但這裡的目標是打造目前最好的開源 AI 編碼解決方案。我
28:47.120–28:53.120
不相信那個解決方案是終端機。我真心相信那個解決方案是一個圖形介面,
28:53.120–28:59.679
優先考慮那些希望透過協助完成工作的系統來完成實際工作的人。關於 T3 Code,
28:59.679–29:04.080
我還有很多想說的話,但這要留待下一個影片。現在,我只希望
29:04.080–29:09.919
各位能領悟到這一點。我不在乎你使用哪個 GUI。理想上,使用一個還不錯的。所以,如果你使用
29:09.919–29:15.200
Codex 桌面應用程式,你無法獲得像樣的 GUI 體驗,但可以使用 T3 Code 或 Codeex,
29:15.200–29:20.880
或者你可以處理新版 Cursor 玻璃版中的效能問題,或者自己建構,或者使用 Gene、
29:20.880–29:27.840
Conductor 或其他任何用於管理代理程式的 GUI。我認為你會感受到差異,因為它真的
29:27.840–29:36.399
比處理終端機好得多,特別是你同時處理超過一兩件事時。能夠隨意跳轉
29:36.399–29:42.480
或按住快捷鍵查看哪個執行緒對應哪個按鈕,我可以直接點擊不同
29:42.480–29:50.080
我處理的各項工作。能夠右鍵歸檔或直接點擊結案,這些小細節,尤其是當你開始使用圖片時
29:50.080–29:56.399
特別是當你開始使用圖片和其他功能時,真的要好得多。一旦我從在另一台電腦上執行太困難且不再需要不斷 SSH
29:56.399–30:02.480
來確保代理程式持續運行的現實中解放出來,一旦所有這些都
30:02.480–30:09.760
實現了,它改變了我的編碼方式。我從每週提交三到四個 PR,變成在
30:09.760–30:17.200
重度編碼日裡每天提交多達 20 個 PR。從終端機轉向真正的圖形介面是
30:17.200–30:22.960
我能做出這種轉變的重要原因之一。為了確保這很清楚,我喜歡終端機,而且我也像過去一樣
30:22.960–30:28.480
我現在也很想念以前那樣使用它們,但同時,它們的形狀已經不適合我們今天要做的事情了
30:28.480–30:35.520
我們今天所做的,終端機已不再適合。現在該停止假裝它們還適用了。就像 iPhone 時代讓所有應用程式都模擬成現實世界的物件,因為當時很重要,當人們看到行事曆時,它看起來就像行事曆,否則他們就不會使用它。我們現在仍處於這樣的時代,在 AI 開發工具中,我們沿用舊有的做法,因為否則會一下子承受太多。不過,我希望你能夠向前看。我想讓你挑戰這種信念,因為那些在終端機方面是高手的開發者
30:35.520–30:41.200
iPhone 在 skeuomorphic(擬物化)時代讓所有應用程式看起來像現實世界中的物件,因為
30:41.200–30:48.960
人們看到日曆時,它看起來像日曆很重要,否則他們就不會使用它。我們現在仍然處於那個時代,
30:48.960–30:54.640
使用 AI 開發工具。我們沿用過去的方式,因為否則一次接受太多會太困難。不過我希望你能夠
30:54.640–30:59.679
向前看一點。我希望你能挑戰那個信念,因為那些精通終端機的開發者
30:59.679–31:06.559
也應該是精通代理程式的開發者。儘管承認這一點很困難,因為我知道這對我來說真的非常困難,但終端機並非我們今天建構方式的最佳介面。如果我要對你完全誠實,唯一
31:06.559–31:13.039
終端機沒有拖累你的話,是因為你建構的規模不夠大。更嚴格要求自己,嘗試一些 gooies。我
31:13.039–31:17.000
我有種感覺,你會感到驚訝。下次再見,和平 nuts。
0:00.080–0:05.520
This is a video I never wanted to make,but the more I think about it, the moreI feel like I kind of have to because if
這是我從不想做的影片,但我越想越覺得我好像非做不可,因為
0:05.520–0:12.000
I'm being realistic with you guys, I'vealways been a terminal first person. Iknow, I know I'm the vibe coding soy boy
如果我對你們誠實一點,我一直都是終端機的第一人稱使用者。我知道,我知道我是那個 vibe coding 的軟弱男孩
0:12.000–0:18.960
JavaScript guy that's always pluggingthings in VS Code and invested in a VSCode fork, but I am not that at heart. I
JavaScript 傢伙,總是把東西插進 VS Code 並投資於 VS Code 的分叉版本,但我內心並非如此。我
0:18.960–0:24.560
do like being able to scroll around codeand click and select things with atrackpad or a mouse, but generally for
喜歡能夠用觸控板或滑鼠滾動程式碼並點擊選擇東西,但通常對於
0:24.560–0:31.199
my day-to-day work, I was always in aterminal. I've been a big terminal nerdsince before I even wrote code. I was
我的日常工作,我總是待在終端機裡。我從寫程式之前就一直是個終端機狂熱者。我
0:31.199–0:37.840
using them to host my Minecraft servers,to SSH into computers all over the worldand do all sorts of fun, crazy things. I
用它來託管我的 Minecraft 伺服器、SSH 到世界各地的電腦,並做各種有趣、瘋狂的事情。我
0:37.840–0:45.280
had a deeply modified GNU screen configthat I put a lot of time into before Istarted moving over to T-Mox because I'm
有一個深度修改過的 GNU screen 設定檔,我在開始轉向 T-Mox 之前花了很多時間在上面,因為我
0:45.280–0:51.120
old enough that GNU screen was still thestandard when I started. I have beenusing terminals for the majority of my
年紀夠大,在我開始的時候 GNU screen 仍然是標準。我大部分時間
0:51.120–0:58.640
life. Since I was 13, I've spent most ofmy time running, working, auditing, andoing my day-to-day stuff inside of my
都在使用終端機。從 13 歲開始,我大部分的時間都在終端機裡執行、工作、審計和處理日常事務。
0:58.640–1:04.879
terminal. And that's just not the caseanymore. I had a moment a few days agowhere I was getting a bunch of work done
現在情況已不再如此。幾天前的某個時刻,我正在處理大量工作
1:04.879–1:12.560
and I started commanding to try and findmy terminal and I couldn't find itbecause I had done a reboot and notopened up my terminal because I didn't
然後我開始尋找我的終端機,卻找不到,因為我重新開機後沒有開啟終端機,因為我
1:12.560–1:24.000
need it for like eight plus hours. Andthat's when it hit me. I'm not doing mywork in a terminal anymore. And Ireally, really need to talk about why.
超過八個小時不需要它。就在這時我意識到,我不再使用終端機工作了。我真的、非常需要討論為什麼。
1:24.000–1:29.920
Before I can do that, we're gonna haveto take a quick break for today'sponsor. When I'm working on a newproject and it's time to go live, the
在做到這一點之前,我們得先暫停一下,為今天的贊助商打廣告。當我在進行新專案並準備上線時,
1:29.920–1:36.079
first thing I do every single time is Iput it up on GitHub. But right afterthat, I use today's sponsor, Blacksmith,
我每次做的第一件事就是把它上傳到 GitHub。但緊接著,我會使用今天的贊助商 Blacksmith,
1:36.079–1:41.840
because as soon as I want real CI, Idon't want to deal with GitHub actionsanymore. If all I got from Blacksmith
因為一旦我想要真正的 CI,我就不想再處理 GitHub Actions 了。如果 Blacksmith
1:41.840–1:46.720
was the better speed, it would be worthit. If all I got from Blacksmith was thecheaper price, it would be worth it. If
只提供更快的速度,那也值得。如果 Blacksmith
1:46.720–1:51.840
all I got from Blacksmith was the fourtimes faster cache downloads, it wouldstill be worth it. But that's not all
只提供更低的价格,那也值得。如果 Blacksmith
1:51.840–1:56.799
you're getting. You also get the bestobservability I've ever seen into whatyour CI is actually doing. What jobs are
只提供四倍快的快取下載速度,那也仍然值得。但這不是全部
1:56.799–1:58.399
passing? What jobs are failing? Where
你得到的。你還獲得了我見過的最好的可觀察性,能讓你了解 CI 實際上在做什麼。哪些作業
1:58.399–2:00.159
are they coming from? Where's time being
通過了?哪些作業失敗了?它們
2:00.159–2:05.920
spent on projects like T3 Code, this iso helpful. Trying to figure out why ourCI is slow and fixing it has never been
花在 T3 Code 等專案上的時間,這很有幫助。試圖找出我們的 CI 為什麼慢並修復它,從來沒有像現在這樣
2:05.920–2:13.120
easier. It's fast by default, but youcan get even faster when you can dothings like SSH into the box and seewhat's up or use an actual native MacR
花在哪裡?這很有幫助。試圖弄清楚為什麼我們的 CI 慢並修復它從未如此
2:13.120–2:18.400
runner for your Mac builds like we haveto for our iOS and Mac apps. It'shonestly gotten hard doing those time
簡單。預設情況下它很快,但如果你能透過 SSH 進入機器查看情況或使用實際的原生 Mac R
2:18.400–2:24.480
comparisons because I haven't chosen touse GitHub actions in months. Savestress, time, and money on your actions
runner 來進行 Mac 構建(就像我們為 iOS 和 Mac 應用程式所做的那樣),你可以獲得更快的速度。說真的,進行這些時間
2:24.480–2:32.000
at soy.link/blacksmith.I already know how this one's going togo. There's going to be endless biasaccusations of, "Oh, Theo's just here to
比較變得困難,因為我已經數個月沒有選擇使用 GitHub Actions 了。在 Actions 上節省壓力、時間和金錢
2:32.000–2:37.760
plug T3 code. He's [ __ ] on terminalso that he can plug his own thing." Oh,do you mean this open- source thing that
於 soy.link/blacksmith。我已經知道這一段會怎麼發展。會有無盡的偏見指控,「哦,Theo 只是來
2:37.760–2:43.040
I spent a shitload of money and timebuilding because I so deeply believe theterminal is the wrong place? If you
推廣 T3 Code 的。他 [ __ ] 終端機是為了推廣他自己的東西。」哦,你是指這個開源專案嗎?
2:43.040–2:50.080
think T3 code is the reason I'm doingthis, your reasoning is worse thanSonnet 4s is because this is obviously a
我投入了大量金錢和時間來構建它,因為我深信終端機不是正確的地方?如果你
2:50.080–2:56.640
thing I built because of my beliefs, notI'm lying about my beliefs because Ibuilt this thing. That obviously doesn't
認為 T3 Code 是我這樣做的原因,你的推理比 Sonnet 4 還糟,因為這顯然是一個
2:56.640–3:00.879
make sense. I wish you guys would justuse your brains a little more beforeleaving those shitty comments. I'm sure
基於我的信念而構建的東西,而不是我因為構建了這個東西而對我的信念撒謊。這顯然不合邏輯。我希望你們在留下那些糟糕的評論前,
3:00.879–3:05.599
there's already a hundred of them plus.Scroll through the Obsidian ones and I'msure you'll find plenty about how I'm
能多用一點腦筋。我敢肯定已經有上百條這樣的評論了。瀏覽一下 Obsidian 上的評論,我敢肯定你會找到很多關於我如何
3:05.599–3:12.000
just plugging my own [ __ ] But in orderto skirt those accusations for now, Iwill switch to Chat GBT. So, here we
只是在推廣我自己的 [ __ ] 的內容。但為了暫時避開這些指控,我將切換到 Chat GBT。所以,我們
3:12.000–3:17.680
are. An app I haven't used in a while. Ijust had to update it cuz I haven't beenin it as much, but it still is, in my
在這裡。一個我好久沒用的應用程式。我只是剛更新它,因為我沒怎麼使用它,但它仍然,在我看來,
3:17.680–3:25.440
opinion, one of the best starting pointsfor a developer who is moving intocoding more with AI. While the Codex app
對於更多使用 AI 進行編碼的開發者來說,是最好的起點之一。雖然 Codex 應用程式
3:25.440–3:31.680
was the big thing that pushed me over onthis belief that terminals were just nothe right place to be coding anymore, it
是我在「終端機不再是編碼正確場所」這一信念上推我一把的大事件,但它
3:31.680–3:38.640
was not the start of my journey here.The place that I started thinking abouthis most is honestly kind ofembarrassing and I even feel bad putting
這不是我在此旅程的起點。我開始認真思考這件事的地方,老實說有點令人尷尬,我甚至覺得不好意思說出來
3:38.640–3:46.480
it in here. I I feel sick even typingit. Oh god, just can Can I delete itnow? Do I do I have to leave this word
令人尷尬,我甚至覺得把它放在這裡很不好意思。我打字時甚至感到噁心。哦天哪,現在可以刪除它嗎?我必須把這個詞
3:46.480–3:48.319
on the screen? I'd really like to just
留在螢幕上嗎?我真的只想
3:48.319–3:55.840
hide this. I'm just going to get rid ofthat. Okay. Really though, when I firstried out anti-gravity, I was mostly
隱藏它。我打算把它去掉。好吧。說真的,當我第一次嘗試 anti-gravity 時,我主要
3:55.840–4:03.920
unimpressed. But there was oneparticular piece that impressed me.There was a hotkey that opened up theagent manager view that let you see what
我並不印象深刻。但有一件事讓我印象深刻。有一個快捷鍵可以開啟 Agent Manager 視圖,讓你看到
4:03.920–4:10.319
he agents were doing across differentinstances of anti-gravity. So if youhave like three windows open for three
不同執行個體的反重力中,代理程式正在做什麼。因此,如果你為三個不同的專案開啟了三個視窗,你可以在頂端有一個視窗,顯示每個其他專案中代理程式的情況。
4:10.319–4:16.160
different projects, you could have thisone window on top that showed you whatwas going on with agents in each of
這是一個左側邊欄,包含專案,每個專案都有執行緒,你可以從一個外部視圖中看到這些內容。
4:16.160–4:22.800
those other projects. It was a leftsidebar with projects that had threadsin each project that you could see from
嗯,聽起來很熟悉。有趣。雖然我不願承認,但反重力代理程式管理器是我第一次體驗到這種情況。
4:22.800–4:31.360
one external view. Huh, sounds familiar.Interesting. As much as I don't want toadmit it, the anti-gravity agent manager
一個外部視圖。嗯,聽起來很熟悉。有趣。雖然我不願承認,但反重力 Agent Manager
4:31.360–4:37.520
was one of the first times I experiencedthat. And if anti-gravity wasn't such a[ __ ] show, I probably would have
是我第一次體驗到那種感覺。如果反重力不是那麼一場 [ __ ] 的秀,我可能早就
4:37.520–4:42.800
actually used it a bit. I even said asmuch in my coverage of anti-gravity whenit dropped. But what's much more
但對我來說更令人興奮的是新的代理程式管理器工作流程。我認為這是一個很棒的主意,而且有很多小細節讓我感到興奮。
4:42.800–4:49.680
xciting to me is the new agent managerworkflow. I think this is a great ideand there's a lot of little pieces that
因此,反重力是我墜落的開始,因為我意識到終端機不再適合進行這些操作。
4:49.680–4:56.080
I'm hyped about. So, anti-gravity wasthe first step in my descent as Irealized that the terminal was not the
有趣的是,就在幾週前,我在 Cursor 辦公室向他們抱怨,他們與 Cursor v2 代理程式視圖的所有新整合,讓我使用終端機變得過於困難,因為他們讓獲取工作樹路徑變得過於煩人。
4:56.080–5:02.240
right place to do this anymore. Funnyenough, just a few weeks prior, I was athe cursor office complaining to them
這樣我就可以在終端機中 cd 進入該路徑並執行操作。
5:02.240–5:08.960
that all their new integrations with thecursor v2 agent view made it too hardfor me to use my terminal because they
因為我經常的流程是,我會使用 Cursor。我會在側邊欄中開啟某些內容,指示它執行某些操作,獲得結果,想要去檢查它,然後必須找到某種方式 cd 進入工作樹的路徑,以便執行它、安裝東西和做其他事情。
5:08.960–5:15.919
made it way too annoying to like get thepath that a work tree was in. So I couldcd into it in my terminal and then run
讓它變得過於煩人,無法獲取工作樹的路徑。這樣我就可以在終端機中 cd 進去,然後執行
5:15.919–5:21.520
things. Because a flow I often had is Iwould use cursor. I would open upsomething in the sidebar, tell it to go
因此,我最終足夠強勢地要求他們給我單鍵複製按鈕,以便我能夠繼續使用終端機來執行實際操作,而不僅僅是發送提示。
5:21.520–5:28.240
do something, get a result, want to gocheck it, and then have to find some wayto CD into that path for the work tree
我達到了這樣的程度:我會使用 Cursor 發送提示,然後使用我的終端機執行所有操作,包括審查差異、閱讀 git 歷史記錄、調查更改、實際執行程式碼和執行操作。
5:28.240–5:34.479
in order to run it, install things, ando stuff. And the built-in terminal wasno, not happening, especially at that
我在 Cursor 應用程式中發送提示,而在終端機中處理其他所有事情,特別是 git 相關事項,比例大約是 50/50。
5:34.479–5:40.400
point in time. So, I ended up bullyingthem enough to give me the one-clickcopy buttons that I needed in order to
我全部使用標準的 git 命令進行 git 操作。偶爾我會添加一些單行輔助工具,用於執行像提交和推送這樣的單行操作。
5:40.400–5:46.960
keep using my terminal for the actualdoing things beyond sending prompts. AndI got to the point where I would use
繼續使用我的終端機來進行實際操作,而不僅僅是發送提示。我到了會使用
5:46.960–5:52.720
cursor to send a prompt and then myterminal to do everything from reviewingthe diffs, reading git history,
我需要把這個反重力東西從螢幕上移開。它會讓我受傷。
5:52.720–5:58.800
investigating changes, actually runningthe code and doing things. And I wasplit like 50/50 between I would be in
但然後模型變得更強大,重要的是 Codeex 應用程式推出了。
5:58.800–6:04.639
the cursor app for prompting and thatwould be my terminal for everythingelse, especially git stuff. I did all of
當我開始使用它時,我從反重力中獲得的信念——說這很糟糕,但也可能是未來——讓我非常興奮。
6:04.639–6:11.600
my git through the stock bog standardgit commands. Occasionally I would addlike oneliner helpers to do things like
透過標準的 git 命令來操作我的 git。偶爾我會加入一些單行輔助腳本來執行像
6:11.600–6:18.960
commit and push with one line stuff likethat. But for the most part I just usedstock git cli. I need to get this
能夠將你的工作分解成不同的專案,並清楚地看到其中的情況。
6:18.960–6:25.120
anti-gravity thing off the screen. It'sgoing to hurt me. But then the modelsgot better and importantly the codeex
把螢幕上的反重力裝置拿掉。它會傷到我。但後來模型變得更好了,而且更重要的是,程式碼
6:25.120–6:33.840
app came out. And when I started usingthis, my beliefs that I had fromanti-gravity saying that this ishorrible, but it's also kind of the
能夠快速開啟終端機並在這裡輸入內容,如果你需要為你正在進行的任何操作。
6:33.840–6:43.759
future got me really excited. And themore I played with it, the moreimpressed I was. The ability to justbreak your work up into different
我達到了這樣的程度:我仍然在我的 Codeex 執行個體中的終端機裡查看我的 git 歷史記錄,而且它很穩固。
6:43.759–6:50.240
projects and clearly see what's going onin them. to have multiple things goingat the same time all in their own work
專案,並清楚看到其中的情況。同時進行多項工作,各自在自己的工作
6:50.240–6:55.840
trees. The ability to quickly open up aterminal and type things in here if youneed for whatever stuff that you're
在我越來越多地使用終端機的世界裡,因為我已經在這個時候轉移到了 Cloud Code,並且不斷在我的終端機中運行 Cloud Code,開啟許多終端機,使用像 cmx 這樣很棒的工具來管理我進行的所有不同操作。
6:55.840–7:05.120
doing. I got to the point where I wastill looking at my git history throughthe terminal inside of my codeexinstance and it was solid. It was
中進行。我到達了一個點,我仍然透過程式碼執行個體內的終端機查看我的 git 歷史記錄,而且它很穩固。它
7:05.120–7:10.639
actually quite good. And in a worldwhere I was using my terminal more andmore because I had at this point moved
實際上相當不錯。在我越來越頻繁使用終端機的世界裡,因為我此時已轉移
7:10.639–7:17.120
to cloud code and was constantly runningcloud code in my terminal, opening lotsof terminals, using awesome tools like
到雲端程式碼,並不斷在終端機中執行雲端程式碼,開啟許多終端機,使用像
7:17.120–7:23.840
cmx, which I still highly recommend tomanage all of my different things goingon. I was still a big T-Max guy. I was
cmx 這樣優秀的工具來管理我所有不同的工作。我仍然是一個重度 T-Max 使用者。我
7:23.840–7:30.400
till a very deep big T-m guy. I onlystarted using tabs in my terminal at thestart of this year as like a personal
仍然是一個非常深度的 T-m 使用者。我直到今年年初才開始在終端機中使用標籤頁,作為一項個人
7:30.400–7:35.919
challenge when I set up a new computerto see if I could finally move offT-Mux. The answer was no spoiler, but I
挑戰,當我設定新電腦時,看看我是否能終於擺脫 T-Mux。答案是否定的,劇透一下,但我
7:35.919–7:43.039
tried. So, I went through all of thatand then the Codeex app dropped and Iwas like, wait, I can just screenshot
試過了。所以,我經歷了所有這些,然後 Codeex 應用程式出現了,我想說,等等,我可以直接截圖
7:43.039–7:52.080
something and paste it and see it. I canselect text and copy it and paste it andthe formatting is not broken. I can
然後貼上並查看。我可以選取文字、複製並貼上,而且格式不會錯亂。我可以
7:52.080–8:01.599
scroll and it doesn't lag a whole bunch.And most importantly, by far, I can hopbetween different things easily by just
滾動,而且不會卡頓。最重要的是,我可以輕鬆地在不同項目之間切換,只需
8:01.599–8:09.360
clicking. I know this sounds silly andumb, but when you're working on threeplus things at a time, it's just a
點擊即可。我知道這聽起來很愚蠢,但當你同時處理三件以上的事情時,
8:09.360–8:15.280
couple too many hot keys in T-Max. Andkeeping track of what is where is evenmore annoying. You have to remember
在 T-Max 裡按的快捷鍵就太多了。追蹤每個項目在哪裡更讓人煩躁。你必須記住
8:15.280–8:22.240
which hotkey goes to which thing. Andthen you start building systems in yourhead for these three panels are for
哪個快捷鍵對應哪個項目。然後你開始在大腦中建立系統,這三個面板是用來
8:22.240–8:28.000
these three things. This fourth panel isfor this thing. This fifth panel is theflex panel. I use it for whatever. But
處理這三件事的。這個第四個面板是用來處理這件事的。這個第五個面板是彈性面板。我用它來處理任何事。但是
8:28.000–8:34.320
hen you end up with a sixth task andyour whole model breaks down. I tried myhardest to figure this out. And again,
當你出現第六個任務時,你整個模型就崩潰了。我盡最大努力想找出解決方法。而且再次,
8:34.320–8:40.479
to their credit, Semox got the closestanything has gotten to figuring thisout. By giving you a sidebar similar to
他們值得稱讚的是,Semox 是最接近解決這個問題的方案。
8:40.479–8:46.000
what you get out of something like theCodeex app, but also just giving you aterminal on the other side. It's great
它提供了一個類似 Codeex 應用程式的側邊欄,同時也在另一側提供終端機。這非常棒,
8:46.000–8:52.399
and it's still my default terminal. Infact, all the boxes I SSH into, I havein a little folder called SSH, so I can
而且它仍然是我的預設終端機。事實上,所有我透過 SSH 連線的機器,我都將它們放在一個名為 SSH 的小資料夾裡,這樣我就能
8:52.399–8:58.560
have all of these connected and quicklyhop into them at any point. But man,having a real UI with text that was more
將所有這些連線集中管理,並隨時快速連線。但是,擁有真實的 UI、更易於閱讀的文字、更輕鬆的導航與搜尋功能,以及符合邏輯的分類系統,
8:58.560–9:05.519
pleasant to read with much easier tonavigate and find things with a categorysystem that made sense, having actual
以及根據檔案在電腦中的位置來建立的實際專案,這讓我寫程式的意願大增。但 Codeex 最大的問題在於它是閉源軟體。因此,當它出現
9:05.519–9:11.360
projects that are based on where thingsare in your computer, it just it made mecode way more. But one of the biggest
退步或問題,或是我想修復某些東西時,這並不切實際。我能夠向 Codeex 團隊提出大量問題。也要感謝我在 OpenAI 的朋友們。你們非常棒,
9:11.360–9:17.760
problems I had with Codeex is that itwas closed source. So when it did haveregressions or problems or things that I
認真且迅速地處理了我所有的反饋。但依然會發生隨機的退步和變更,例如合併到 ChatGPT 中。就像這不再是 Codex。這是
9:17.760–9:26.080
wanted to fix, it just wasn't superealistic. I was able to bug the Codexteam a bunch. And thank you to myfriends over at OpenAI. You guys have
現在的 ChatGPT。他們很感謝地讓你使用舊的圖示,但這已經是 ChatGPT 應用程式了。因為 Codex 應用程式
9:26.080–9:31.760
been awesome about taking all of myfeedback and addressing it meaningfullyand swiftly. But there would still just
非常優秀,它讓非開發者也能使用這些工具,於是他們決定透過重新品牌化,將這種能力賦予非開發者,
9:31.760–9:37.680
be random regressions and changes andthings like the merge into chat GPT.Like this is no longer Codex. This is
並稱之為 ChatGPT。這是我最大的問題之一。如果你想要好的開源解決方案,你基本上只能使用終端機。你有 Codeex,
9:37.680–9:43.920
now chat GPT. They let you use the oldicon thankfully, but like this is nowthe chat GPT app. Because the Codex app
但也還有其他很棒的東西。特別提及 Open Code 和 Pi,它們是與 AI 編碼的絕佳框架和終端機工具。但如果你想要像 Codeex 這樣的圖形介面,
9:43.920–9:52.000
was so good, it made these toolsaccessible to people who weren'tdevelopers and they decided to give thatcapability to non-devs by rebranding it
你的選項是使用鎖定在你喜歡供應商的方案。例如,你可以使用雲端代碼應用程式搭配你的雲端訂閱,
9:52.000–9:59.360
and calling it chat GPT. This is one ofmy biggest issues. If you wanted goodopen-source solutions, you basically had
或者使用 Codeex 應用程式搭配你的 Codex 訂閱。你可以稍微修改 Codeex 應用程式來使用其他東西。
9:59.360–10:05.279
to use the terminal. You had the codec,but you also had lots of other awesomethings. Shout out to stuff like Open
你也可以對雲端代碼應用程式做類似的事情,但你不應該這麼做,因為雲端代碼應用程式並不好用。但如果你想要
10:05.279–10:13.200
Code and Pi, phenomenal harnesses andterminal tools for coding with AI. Butif you wanted a guey like codeex, your
一個地方處理所有事情,你的唯一選項是 Open Code,但這會失去所有補貼,因為 Open Code 沒有
10:13.200–10:19.760
options were to use the one locked tothe provider that you like. So you canuse the cloud code app with your cloud
使用官方框架。你也無法獲得新增到雲端代碼或 Codex 等功能。如果你想要
10:19.760–10:26.160
sub or you can use the codeex app withyour codec sub. You could hack thecodeex app to use other things kind of.
以最佳價格獲得最佳功能與最佳模型,你必須在 CLI 中使用 Claude,或在
10:26.160–10:32.560
You could kind of do the same for thecloud code app, but you shouldn'tbecause the cloud code app is just notvery good. But your only option if you
桌面應用程式中使用 Codeex,因為兩家公司都逐漸減少對另一方的支援,許多新的 Codeex 功能
10:32.560–10:38.320
wanted one place for everything was opencode, but then you lose all thesubsidization because open code isn't
僅在應用程式中出現,而許多新的雲端代碼功能僅在 CLI 中出現。我到達了一個相當糟糕的點,
10:38.320–10:43.279
using the official harness. You alsodon't get the features that get added tothings like cloud code or codec. If you
如果我需要使用我的雲端模型,我就在 CLI 中。而如果我想要使用 Codex 模型和 GPT 模型,我就在圖形介面中。最後,
10:43.279–10:49.600
wanted the best features for the bestprice with the best models, you had touse claude in the CLI or codeex in the
我發現自己預設使用 OpenAI 模型,即使它們在這些方面表現較差,因為我更喜欢有一個好用的應用程式。
10:49.600–10:55.519
desktop app because both companies kindof stop supporting the other side asmuch where a lot of new codeex features
這些小問題累積起來。說真的,如果你還沒試過這些圖形介面,我想自我推銷,但請去試試 Codeex 應用程式。它確實非常優秀。它有它的缺點。它有它的
10:55.519–11:00.720
only happen in the app and a lot of newcloud code features only happen in theCLI. And I got to a pretty nasty point
煩人之處。他們新增了靈感來自我們在建構 T3 Code 的活動檢視。雖然這很酷,但還未完全到位。但老天,如果這不是對你現有工作的巨大改進,
11:00.720–11:07.600
where if I needed to use my cloudmodels, I was in the CLI. And if Iwanted to use Codex models and GPTmodels, I was in the guey. And I ended
我真不知道該說什麼。追蹤正在發生的事情、工作進行的位置、你做过什麼,以及實際完成工作,變得容易得多。
11:07.600–11:15.040
up finding myself defaulting to OpenAImodels even in things they were worse atbecause I just liked having a good app
我可以告訴你,我有多少次遺忘了某個終端機工作階段。我必須打開
11:15.040–11:21.040
more. And it's all these little thingsthat add up. Like seriously, if youhaven't tried one of these guies, I I
雲端代碼,告訴它去尋找我正在進行工作的雲端代碼,或是我開始的工作樹,或是其他所有這些東西。我必須投入大量
11:21.040–11:29.120
would love to self-plug, but just go trythe codeex app. It is genuinely reallygood. It has its edges. It has its
時間來追蹤正在發生的事情。從我這裡混亂的設定可以看出,我投入了很多時間。我今天早點重新啟動了這台機器,所以我失去了所有工作階段,
11:29.120–11:36.240
annoyances. They added the new activityview, which is inspired by what we'vebeen building in T3 Code. And as cool as
但這台 Linux 機器上我有大約 30 個 T-Mux 終端機,用於各種雲端代碼和 CEX 相關的工作。我在那邊的另一台 Linux 機器上
11:36.240–11:43.519
it is, it's not quite all the way there.But god damn, if this isn't a massiveimprovement on what you're already
仍然有一大堆這類瘋狂任務,我就像無限期地運行目標,看看會發生什麼。例如 TypeScript
11:43.519–11:52.320
doing, I don't know what to tell you.It's so much easier to keep track ofwhat's going on, where work ishappening, what you've been doing, and
的 Rust 移植版,我在耗盡令牌之前短暫工作過。只是追蹤什麼是什麼是這麼令人煩惱。
11:52.320–11:57.920
actually getting stuff done. I can'tell you how many times I lost track ofsome terminal session. I had to open up
如果你願意花時間,你可以進行重命名等操作,但這太令人煩惱了。而且我必須投入大量
11:57.920–12:05.360
cloud code and tell it to go find thecloud code I was doing work in or thework tree that I started from, or allthese other things. I had to put a ton
工作來嘗試建立一個合理的环境,以便在雲端代碼和 Codex 之間切換,
12:05.360–12:12.000
of time into just keeping track of whatwas going on. And as you can see from mychaotic setup here, I put a lot of time
處理實際工作並追蹤我所做的一切。這只是增加了更多的心理負擔。我會對你坦白。這只是
12:12.000–12:18.800
in. I had to reboot this machine earliertoday, so I lost all the sessions I had,but I had like 30 terminals in T-Mux on
在裡面。我今天早點重啟了這台機器,所以我失去了所有工作階段,但我當時在 T-Mux 裡開了大概 30 個終端機
12:18.800–12:26.880
this one Linux box for various cloudcode and CEX things that I was doing. Istill have a whole bunch over on myother Linux box here for all these types
在這台 Linux 主機上處理各種雲端代碼和 CEX 相關的工作。我在那邊另一台 Linux 主機上還有一大堆終端機,用於處理這些類型的
12:26.880–12:33.120
of crazy tasks that I've been tryingjust like running goals indefinitely tosee what happens. like the TypeScript
瘋狂任務,我試著像運行目標一樣無限期地執行,看看會發生什麼。像是 TypeScript
12:33.120–12:38.160
Rust port that I was briefly working onbefore I ran out of tokens. Just keepingtrack of what is what is so annoying.
轉譯成 Rust 的版本,我在耗盡 token 之前曾短暫處理過。光是追蹤這些東西到底是什麼就很令人煩躁。
12:38.160–12:46.560
And you can do like renames and thingsif you want to take the time to, butit's so annoying. And the amount of work
如果你願意花時間,你可以進行重命名等操作,但這真的很煩人。而我必須投入大量
12:46.560–12:53.040
I had to put in to try and make anenvironment that was reasonable just toswitch between cloud code and codecs on
的精力去嘗試建立一個合理的環境,以便在雲端代碼和本地代碼之間切換,並追蹤我正在處理的工作。這只是增加了更多的心智負擔。
12:53.040–12:58.720
real work and keep track of what I wasdoing. It's just more mental overhead.I'm going to be real with you. It just
實際的工作,還要追蹤我在做什麼,這只是增加了更多的心理負擔。我跟你說實話,這只是
12:58.720–13:05.040
is. And this is not historically howterminals worked. Historically,terminals have been the option that is
是。而且這並非終端機歷史上運作的方式。歷史上,終端機一直是那種心智負擔較小、但前期成本稍高的選項。
13:05.040–13:10.959
less mental overhead and slightly moreupfront cost. You had to spend a littletime to set it up how you want. And then
心智負擔較少,且前期成本稍高。你得花一點時間按照你的喜好進行設定。然後
13:10.959–13:18.000
from that point on, the terminal ismostly just doing the same thing the wayou want to. But in a world where the
從那一點開始,終端機主要只是以你想要的方式做同樣的事情。但在一個
13:18.000–13:23.920
work I'm doing is changing so activelythat the projects I'm working on mightbe brand new, they might be months old,
我所做的工作變化如此活躍的世界裡,我正在處理的專案可能是全新的,可能是幾個月前的,
13:23.920–13:28.959
they might be years old, and the amountof work I'm doing in parallel can changea ton as well. I might be working on one
可能是幾年前的,而且我並行處理的工作量也可能大幅變化。我可能正在處理一項
13:28.959–13:35.360
thing. I might be working on 10 things.The rigidity of the systems I built formyself in the terminal was not flexible
工作。我可能正在處理十項工作。我在終端機中為我自己建立的系統的僵化性不夠靈活,
13:35.360–13:45.519
nough for the work that I was doingtoday. And I tried my godamn hardest tofix that. I put a ton of effort intomaking it so I can paste images over
無法應付我今天所做的工作。我盡了最大的努力來修復這個問題。我投入了大量精力,
13:45.519–13:54.720
cmox over SSH through my T-Max layerhere. So I can command V here and pastean image through cmox over SSH into the
以便透過這裡的 T-Max 層,在 cmox 上透過 SSH 貼上圖片。所以我可以在這裡指令 V,然後透過 cmox 和 SSH 將圖片貼到
13:54.720–14:01.600
T-modex instance on this machineremotely. That [ __ ] was so buggy for awhile and now it's relatively stable. So
遠端機器上的 T-modex 實例中。那段 [ __ ] 陣子非常不穩定,現在則相對穩定。所以
14:01.600–14:08.880
I could finally paste images over SSH,but that's like a thing I had to putime and effort into to do something as
我終於可以透過 SSH 貼上圖片,但這就像是我必須投入時間和精力去做一些
14:08.880–14:15.920
basic as screenshot something and thensend it to my agents. With a guey, Ijust do it. And I would say like halfish
如此基本的事情,例如截圖然後發送給我的代理程式。有了 guey,我直接做。我會說大約一半
14:15.920–14:23.120
of my prompts have images because when Ihave an error or a thing that isannoying me, it's a lot easier to justscreenshot, send it, and say fix and it
的提示詞包含圖片,因為當我遇到錯誤或讓我困擾的事情時,直接截圖、發送並說修復,
14:23.120–14:28.880
will. Whether that's a screenshot ofyour app or just a weird error youdidn't expect to get when you ran acommand. Sending screenshots to your
會容易得多,它就會做到。無論那是你的應用程式的截圖,還是執行命令時出現的奇怪錯誤。發送截圖給你的
14:28.880–14:35.199
model is very effective, but it's notvery effective when you can't even seewhat the image is. But my biggest
模型非常有效,但當你甚至無法看到圖片是什麼時,效果就不那麼好了。但我最大的
14:35.199–14:41.920
complaint is none of this. It's actuallyokay. It's kind of part of one of thesethings. It has very little to do with
抱怨不是這些。這其實沒問題。這有點屬於這些事情之一。這與
14:41.920–14:51.440
e terminal and very little to do withe agents. It's three very specific,very annoying letters. SSH. SSH kind of
終端機關係不大,與代理程式也關係不大。這是三個非常特定、
14:51.440–15:02.560
[ __ ] sucks. It's really useful,really powerful, and I spend a ton oftime in SSH, but as soon as myconnection isn't perfect, I end up with
[空白] 很爛。它真的很有用、很強大,我花了很多時間在 SSH 上,但一旦我的連線不完美,我就會遇到
15:02.560–15:08.880
all sorts of problems. I had a problem afew days ago where I was running CloudCode over SSH on my local network, which
[ __ ] 很爛。它非常有用、非常強大,我在 SSH 上花了很多時間,但一旦我的
15:08.880–15:15.839
is a Wi-Fi 7 network with gigabit to 10gig speeds depending on if I'm wired orwireless. And I had my computer plugged
連線不完美,我就會遇到各種問題。幾天前我遇到了一個問題,當時我正在透過 SSH 在我的本地網路上的 Cloud Code 執行,
15:15.839–15:22.639
in over 10 gig at my desk downstairs.and I was getting sticky keys while Ityped trying to do work in cloud code.
這是有線或無線情況下速度為千兆到 10G 的 Wi-Fi 7 網路。而我在樓下的書桌前透過 10G 連接電腦。
15:22.639–15:31.440
It turned out it was bound to the Wi-Fi,not to my Ethernet. But the fact that Ieven had to care is absurd. And don't
我在嘗試於 Cloud Code 中工作時打字,卻遇到黏滯鍵問題。
15:31.440–15:38.959
get me started on trying to do things onmobile. GH I I tried so hard to makeTerus work for me. I paid the full price
結果發現它綁定的是 Wi-Fi,而不是我的乙太網路。但問題在於我甚至必須在意這點,這太荒謬了。別讓我開始談談
15:38.959–15:43.120
for it. I support the developer. I thinkit's awesome and it helped me debugsomething even this morning. Like I
在行動裝置上做事的嘗試。我盡了最大努力讓 Terus 為我服務。我付了全價
15:43.120–15:51.680
still use these things. They're just nothe thing I default to anymore becausethey're fragile. And it's incredible how
購買它。我支持開發者。我認為它很棒,甚至今天早上還幫助我除錯了一些東西。就像我
15:51.680–15:57.199
powerful a standard SSH is. That's beenaround for over 30 years and it works sogreat to this day. And there are other
仍然使用這些東西。它們只是不再是我預設的選擇,因為它們很脆弱。而且令人驚嘆的是
15:57.199–16:05.600
fun things like I know SSH3 isapparently much better. I know mosh isreally cool, but I do not have it in meto deal with all of those things to get
像「我知道 SSH3 顯然更好。我知道 mosh 真的很酷,但我沒有心力去處理所有這些事情以獲得
16:05.600–16:13.120
marginal improvements, especially if Iwant these to work on my phone becausetrying to do real work on my phone via a
有趣的事情,例如我知道 SSH3 顯然好得多。我知道 mosh 真的很酷,但我沒有精力去處理所有這些事情以獲得
16:13.120–16:21.440
terminal has me questioning my ownsanity and also questioning thereliability of all the other people whowere saying that using their terminal
終端機讓我開始懷疑自己的理智,也開始懷疑所有其他聲稱使用他們的終端機
16:21.440–16:28.000
over their phone was a totallyacceptable way to do quad code. It justisn't. And thankfully, Codex accepted
終端機在我的手機上進行實際工作,讓我質疑自己的理智,也質疑所有那些說使用他們的終端機
16:28.000–16:34.560
this fact and they introduced theability to control the Codex app, nowthe ChatGpt app, over the Chat GBT app
在手機上是執行 quad code 的完全可接受方式的人的可靠性。事實並非如此。幸好,Codex 接受了
16:34.560–16:41.680
on your phone remotely. And it was somuch better. It had its rough edges, buthe ability to spin up some work on my
這個事實,他們引入了透過手機上的 Chat GBT 應用程式遠端控制 Codex 應用程式(現為 ChatGpt 應用程式)的功能。這好多了。雖然它有粗糙的地方,但能夠在我的
16:41.680–16:48.079
computer and then finish the thread onmy phone when I'm away, it just kept meoff my computer a lot more. And I found
電腦上啟動一些工作,然後在我離開時在我的手機上完成該線程,這讓我離開電腦的時間更多了。我發現自己
16:48.079–16:55.040
myself like walking around doing morechores, leaving my apartment to go runerrands, and being able to check in on
我自己,比如四處走動做更多家務,離開公寓去跑腿,並且能夠檢查
16:55.040–17:03.120
the stuff that I was doing overtime. Itwas really fun and cool and alsobnoxiously buggy and most importantly
我隨時間推移所做的事情。這真的很有趣、很酷,但也令人惱火地不穩定,最重要的是
17:03.120–17:09.360
was super restricted to the Codeexdesktop app, which meant I could onlyuse it on my Macs. And when you combine
嚴格限制於 Codeex 桌面應用程式,這意味著我只能在我的 Mac 上使用它。而當你將
17:09.360–17:15.679
that with all of the annoying parts ofhow codeex is implemented around thesecurity policy stuff on Mac OS where it
這與 Codeex 在 Mac OS 上實施的安全策略相關的所有令人煩躁的部分結合起來時,
17:15.679–17:22.880
spins up five plus processes per threadand per sub agent which can just poseyour performance. I was getting annoyed
它會為每個線程和每個子代理程式啟動五個以上的進程,這可能會影響你的效能。我感到很煩躁
17:22.880–17:30.240
and I had a couple things that I wantedand I will list all of the stuff that Iwanted to make sure I could do. Thethings that were annoying me obviously
我有幾件事想做,我會列出所有我想確保能做到的事情。那些讓我感到煩躁的事情顯然
17:30.240–17:37.840
pasting images was a very important onefor me. I also wanted all models withsubsidization. So, I wanted to make sure
讓我煩躁的事情,貼上圖片對我來說非常重要。我還希望所有具有補貼的模型。所以,我想確保
17:37.840–17:46.320
whatever came out here worked with mycloud code subs and my codec subs, so Icould get the 8 to 14 grand for 200bucks instead of having to spend 8 to 14
這裡推出的任何東西都能與我的 cloud code 補貼和 codec 補貼配合運作,這樣我就可以花 200 美元獲得 8 到 14 萬美元的額度,而不是不得不花 8 到 14
17:46.320–17:56.160
grand for it. I wanted good remotecontrol. I wanted best-in-classLinux support because, as I've said inmany videos, check out my Linux video I
大額費用。我想要良好的遠端控制功能。我想要業界最佳的 Linux 支援,因為就像我在許多影片中說過的,請查看我最近製作的 Linux 影片,Linux 對於代理工作(agentic work)來說好太多了,因為它的檔案系統問題少得多。而且啟動工作樹只需 2 秒
17:56.160–18:03.840
did recently, Linux is so much betterfor agentic work because the filesystems just suck a lot less. Andspinning up a work tree takes 2 seconds
而不是 30 秒到 2 分鐘。真的要好得多。即使當我在 Linux 機器上進行大量工作時
18:03.840–18:11.120
instead of 30 seconds to 2 minutes. justso much better. And even when I'm goinglike really heavy on my work on my Linux
我也很少能達到甚至三分之一的利用率。這台機器有 32 個核心。它是一台
18:11.120–18:18.640
boxes, it is rare I can spike even likea third of my utilization. Like I have32 cores on this machine. It's an a
Ryzen AI Max 盒子。它是 Framework 桌面版。我之前提過。我試圖讓這台機器超載,但
18:18.640–18:24.240
Ryzen AI max box. It's the frameworkdesktop. I mentioned that before. I havetried to stress this machine and I
基本上做不到。這很大一部分是因為 Linux 沒有 Codeex 試圖掃描每件事物所帶來的混亂。所以,業界最佳的 Linux 支援、良好的行動裝置支援、良好的效能、低電池
18:24.240–18:30.080
basically cannot do it. And a lot ofthat is just the fact that Linux doesn'thave all of the chaos trying to scan
消耗,以及可能最大的部分,一種良好的方式來同時管理大量事物。這些都是我
18:30.080–18:37.200
every single thing Codeex does. So, Ibest-in-class Linux support, good mobilesupport, good performance, low battery
想要的。終端機(terminals)唯一能提供給我的就是業界最佳的 Linux 支援。它們在其他任何類別中都沒有提供任何幫助。現在你們已經等了夠久了。評論者可以發揮他們的影響力。我
18:37.200–18:46.000
impact, and probably the single biggestpart, a good way to manage lots ofthings at once. This is all the stuff I
需要談談 T3 Code,因為 Julius 和我開發了 T3 Code,因為我們共享了許多這些挫折。我們想要喜歡 Codeex,並且在許多方面確實喜歡它。我知道 Julius 仍然大量使用它。我已經逐漸離開了 Codex 桌面應用程式。它確實有其好處,
18:46.000–18:52.720
wanted. The only one of these thingsterminals offer me are best-in-classLinux support. They don't help in any of
我希望在不久的將來能盡可能複製這些功能。Julius 和我嘗試了當時存在的所有其他選項,並且對它們非常不滿。其中幾個還算可以的,我們提供了大量反饋,它們修復了一些問題,
18:52.720–19:00.240
these other categories in any way. Andnow you guys have waited long enough.The commenters can do their thing. I
但其他方面卻失敗了,讓我們感到煩躁。我對效能部分特別感到煩躁,以至於我嘗試構建
19:00.240–19:08.400
need to talk about T3 code becauseJulius and I made T3 code because weshared a lot of these frustrations. Wewanted to love Codeex and did for a lot
自己的原生 GUI 給 Codeex,只為了嘗試並讓某些東西跑得更快。我最終陷入了困境,因為滾動文字
19:08.400–19:14.240
of things. I know Julius still uses itheavily. I've slowly moved off the Codexdesktop app. It has its benefits for
Swift UI 和 AppKit 對於大型可滾動文字視圖來說並不擅長。結果證明 Google 為 Chrome 投入了大量優秀的工作。所以我勉強放棄了那個專案。勉強地重新在 Electron 上啟動它,只是出於
19:14.240–19:18.799
sure and I'm hoping that we can clone asmany of those as possible in the nearfuture. Julius and I tried all the other
好奇心。決定以一種讓其他事情(如遠端控制)更容易的架構方式,透過
19:18.799–19:26.480
options that existed at the time andwere very unhappy with them. The couplethat were okay, we gave a lot ofeedback to and they fixed some things,
將所有內容放在 websocket 上,而不是透過 Electron RPC 進行綁定。結果是一個令人驚訝地可用的東西。
19:26.480–19:31.919
they failed others and we got annoyed. Igot so annoyed about the performancepart in particular that I tried building
結果就是 T3 Code。當時它看起來完全不像現在這樣。當時它非常醜陋,但它允許你使用 Codeex 搭配
19:31.919–19:38.880
my own native guey for codecs to justry and make something faster. I endedup in hell with scrolling text because
開源 GUI,這對系統效能的影響要小得多。不過老實說,在前幾個
19:38.880–19:45.919
Swift UI and AppKit are not great at bigscrollable views with text. And it turnsout Google put a lot of good work into
月裡,我仍然發現自己比使用 T3 Code 更多使用 Codeex 應用程式。我確實會在它們之間切換,但我
19:45.919–19:51.760
Chrome for that. So I begrudgingly threwthat project away. Begrudgingly spun itback up on Electron just out of
大部分時間可能都在 Codeex 裡。有時我會上下切換,但我總是不斷回到 Codeex,但 Julius
19:51.760–19:57.760
curiosity. decided to architect it in away that made other things like theremote control a little easier by
無法忍受那樣。Julius 繼續迭代 T3 Code,因為 Julius 有我沒有的東西。Julius 討厭終端機。這很困難,我跟他為此爭論過很多次。他 exclusively 透過 VS Code 擴充功能使用 Git。他甚至
19:57.760–20:04.480
putting everything on a websocketinstead of binding it through thelectron RPC. And the result wasomething surprisingly usable. The
可能知道終端機中的大部分 Git 指令,但他從不使用它們。他唯一會開啟的終端機
20:04.480–20:11.919
result was T3 code. It did not look atall like this at the time. It wasinfully ugly at the time, but itallowed you to use codecs with an
是 VS Code 或 Cursor 中的那個,用來啟動他的開發伺服器。其他所有事情他都透過編輯器完成。他是我一生中見過的最棒的開發者之一。毫無疑問,他是我所認識的最棒的、卻討厭終端機的開發者。對我來說,
20:11.919–20:20.080
open-source guey that was a lot lessimpactful on your systems performance.I'll be honest though, for the first few
T3 Code 是一種擁有開源解決方案的方式,該方案有可能解決我的一些問題。對 Julius 來說,T3
20:20.080–20:26.320
months, I still found myself using theCodeex app more than T3 Code. I wouldrotate between them for sure, but I
Code 是他逃離終端機的能力。他接受了這個挑戰,並且 [ __ ] 他真的做到了。他讓 T3 Code
20:26.320–20:34.480
spent most of my time in Codeexprobably. There would be moments where Iwent up and down, but I kept findingmyself back in codeex, but Julius
我大部分時間都在 Codeex 裡度過。偶爾會有上下波動的情況,但我總是不斷回到 codeex,但 Julius
20:34.480–20:44.880
couldn't take that. Julius continuediterating on T3 code because Julius hasomething that I don't.Julius hates terminals. This one was
實現和整合。他讓工作樹完美運作。他讓 Claworking 完美運作。他也讓 Open Code 和
20:44.880–20:52.960
hard and I've argued with him a bunchabout this. He exclusively used Githrough the VS Code extension. He didn't
Grock 運作良好。即使是 Cursor,雖然 Cursor 的整合還需要一些工作。即將有大更新。
20:52.960–20:57.600
even He probably knows most of the Gitcommands in the terminal, but he neveruses them. The only terminal he would
他之所以做到這些,是因為他想利用來自所有這些提供者的所有模型,以所有這些
20:57.600–21:03.600
open was the one in VS Code or cursor tospin up his dev servers. Everything elsehe did through the editor. He's one of
補貼價格,但他不想不得不使用一個糟糕的終端機應用程式,並為每個不同的應用程式記住一套全新的快捷鍵。而 T3 Code 成為他管理所有這些不同代理和所有這些不同
21:03.600–21:10.240
the best devs I've ever met in my life.He's without question the best dev I'vever known that hates terminals. For me,
解決方案的介面,提供了一個一站式的地方,無論你使用哪個模型,所有行為都相同。並且
21:10.240–21:16.799
T3 Code was a way to have an open-sourcesolution that could potentially solve ahandful of my problems. For Julius, T3
提醒一下,這是使用你機器上的 Cloud Code 和 Codeex。我們沒有做一些像 -p 這樣的捷徑。我們
21:16.799–21:25.760
Code was his ability to escape theterminal. And he took the challenge, andthe [ __ ] did it. He made T3 codeso reliable, so stable, so well
使用的是由 Anthropic 認可的官方代理 SDK。他們即將改變政策。他們暫時
21:25.760–21:31.520
implemented and integrated. He got worktrees working perfectly. He got claworking perfectly. He got open code and
擱置了它。他們可能會無限期地擱置它。仍在等待那裡的消息更新。但這一切都符合官方規定
21:31.520–21:36.720
grock working as well. And even cursor,although the cursor integration needsome work. Big update coming there soon.
Cloud Code 和 Codeex 都正式支援,以至於 Codex 團隊公開稱讚我們是他們加入功能的靈感來源
21:36.720–21:41.520
He did all of that because he wanted totake advantage of all of the models fromall these providers at all of these
我們將大量工作投入其中。不僅是構建它,還包括與實驗室協商
21:41.520–21:46.400
subsidized rates, but he didn't want tohave to use a shitty terminal app andmemorize a whole new set of hotkeys for
以確保我們按照他們希望的方式做事,以便我們可以繼續為你的訂閱提供
21:46.400–21:52.240
every different one. And T3 Code becamehis surface for managing all thesedifferent agents and all these different
每一個不同的。而 T3 Code 成為他管理所有這些不同代理和所有這些不同
21:52.240–21:58.960
solutions with a onestop place whereverything behaved the same regardlessof which models you were using. And
解決方案的平台,提供一個一站式的地方,無論你使用哪個模型,一切行為都相同。而
21:58.960–22:05.840
reminder, this is using your cloud codeand your codecs on your machine. Andwe're not doing some hacks like -p. We
提醒一下,這是使用您機器上的雲端代碼和您的編解碼器。我們並沒有進行像 -p 這樣的黑客操作。我們
22:05.840–22:11.280
were using the official agent SDKblessed by Ampropic. They were going tochange the policy. They have temporarily
使用的是 Anthropic 官方認可的代理 SDK。他們原本要更改政策。他們暫時
22:11.280–22:16.799
held it. They might indefinitely holdit. Still waiting for updates there. Buthis all works above board officially
擱置了。他們可能會無限期地擱置。仍在等待相關更新。但這一切都符合官方規定
22:16.799–22:21.760
supported by both Cloud Code and Codeexto the point where the Codex team ispublicly shouting us out as inspiration
由 Cloud Code 和 Codeexto 共同支援,甚至到了 Codex 團隊公開稱讚我們是他們新增功能的靈感來源的地步
22:21.760–22:28.559
for features they're adding into Codeex.We put a lot of work into all of this.Not just building it, but negotiating
為了這些功能我們投入了大量心血。不僅是建構它,還包括與實驗室協商
22:28.559–22:34.400
with the labs to make sure we do thingsthe way they want so that we cancontinue offering your subscriptions to
確保我們以他們希望的方式做事,這樣我們才能繼續在我們的應用程式中
22:34.400–22:40.880
the platforms you like in our appwithout getting banned. And then themagic piece comes in. There's a little
為您喜愛的平台提供訂閱服務,而不會被封鎖。然後魔法的部分就出現了。這裡底部有一個小
22:40.880–22:47.520
button here at the bottom. Other appshave this to be clear. Most of them haveit as a use it on your machine or use it
按鈕。其他應用程式也有這個,請注意。大多數應用程式都有「在您的機器上使用」或「在雲端上使用」的按鈕。我們有不同的東西。當您在機器上設定 T3 code 時,您現在可以透過
22:47.520–22:53.360
on the cloud button. We have somethingdifferent. When you set up T3 code on amachine, you can now control that
另一台電腦上的應用程式、網站 app.t3.codes 上的應用程式或行動應用程式來控制那台
22:53.360–23:00.720
machine through T3 code on the app onanother computer on the website onapp.t3.codes or in the mobile app. Yes,
機器。是的,我們有完整支援 iOS 和 Android 的行動應用程式。是的,它也是完全開源的。所以,如果您想
23:00.720–23:05.440
we have a fully supported mobile app foriOS and Android. And yes, it is alsofully open source. So, if you want to
自己建構它,您可以。這裡是神奇的。根本改變我工作方式的東西是能夠選擇一台電腦,發送
23:05.440–23:15.440
build it yourself, you can. This here ismagical. The thing that hasfundamentally changed how I work is theability to just pick a computer, send
任務,然後關閉我的筆記型電腦。在此之前,我發現自己必須優先考慮我的生活,以配合我可以
23:15.440–23:22.320
off a task, and close my laptop. Beforethis, I found myself having to likeprioritize my life around when I could
執行代理程式的時間。因為如果我必須執行代理程式,然後我有會議即將舉行,這會導致我的
23:22.320–23:27.919
run an agent. Because if I had to run anagent and then I had a meeting coming upand that was going to overheat my
電腦過熱,在通話中使用起來不愉快,並讓我的風扇轉動得如此大聲,以至於我無法使用我的筆記型電腦上的麥克風,那麼我會等到會議結束後
23:27.919–23:34.640
computer and make it unpleasant to usein a call and spin my fans up so loudthat I couldn't use the mics on mylaptop, then I would wait until I got to
再啟動它,希望我不會有另一個即將到來的會議。如果我有一個約會、旅行或活動或其他我必須去的地方,我就不會啟動我的代理程式,因為一旦我失去 Wi-Fi,它們就會
23:34.640–23:40.320
the end of the meeting and then spin itup, hoping I don't have another onecoming up. If I had an appointment or a
死亡。這裡必須承認的一件更令人尷尬的事情是,我在 Uber 中編碼的惡名遠揚。我會花很多時間開車去不同的
23:40.320–23:47.440
trip or an event or something I had togo to, I wouldn't spin up my agentsbecause as soon as I lose Wi-Fi, theydie. One of the more embarrassing things
活動和事情,因為我必須去很多不同的 [ __ ] 而且我經常選擇 Uber,只是因為我可以
23:47.440–23:54.799
I must admit here is that I'm notoriousfor coding in Ubers. I would spend a lotof time driving around to different
坐在 Uber 裡並完成一些程式碼。而在我的辦公室,我在其他許多事情上落後很多。我必須做所有那些事情。所以我的 Uber 變成了我的
23:54.799–24:00.240
events and things because I have to goto a lot of different [ __ ] And I wouldoften pick an Uber just because I could
平靜編碼時間。我有很多文章談論我從 Uber 中獲得的驚人效能提升和變更。但發生了一些壞事。我開始使用 claude code,當時 Opus 45 發布。我這讓我
24:00.240–24:08.000
sit in the Uber and get some code out.And when I'm at my office, I am sobehind on so many other things. I haveto do all of that. So my Ubers became my
回到 Opus 45 並嘗試一些東西。但請注意我是如何結束它的。我將不得不暫時停止,因為我目前正在 Uber 中編碼。我的糟糕資料
24:08.000–24:13.600
like peaceful coding time. I have a lotof posts where I talk about the crazyperformance improvements and changes I
連線讓我遇到了問題。而一旦我到達那裡,我就必須關閉我的筆記型電腦,無論我正在執行
24:13.600–24:21.360
made from Ubers. But something badhappened. I started using claude codewhen Opus 45 dropped. I This poses me
的代理程式都會死亡,我必須稍後再啟動它,希望它會繼續。而這種情況發生的次數越多,我執行的任務從幾分鐘變成幾小時,我就越不想在 Uber 中編碼
24:21.360–24:28.720
going back to Opus 45 and tryingsomething. But notice how I ended it. Iwill have to stop momentarily as I amcurrently coding in an Uber. My bad data
,因為一旦我必須關閉我的筆記型電腦,一切就結束了。現在我必須以一種我知道筆記型電腦開啟時間足夠完成任務的方式來思考我的工作
24:28.720–24:33.679
connection was causing me problems. Andas soon as I got there, I had to closemy laptop and whatever agent I was
。而我就像這樣安排我的一天。這很糟。現在我選擇我想要這台
24:33.679–24:39.279
running died and I had to spin it uplater hoping that it would continue. Andthe more that this happened and the more
機器執行的框。我發送提示並停止思考它。我可以發送東西給 soul,例如對這個程式碼庫進行深度審計,然後命令 Q T3
24:39.279–24:45.360
I was doing tasks that would take hoursinstead of minutes, the more I justdidn't want to code in Ubers anymore
code,這樣它就會完全停止。這台電腦上不再有 T3 code 開啟。我可以重新開啟它,工作仍然
24:45.360–24:54.080
because as soon as I have to close mylaptop, it's over. And now I have tothink about my work in a way where Iknow I have enough time of laptop open
繼續。或者我可以再次命令 Q 它,在我的機器上強制終止它,然後前往 app.t3.codes,在所有我的機器上看到完全相同的工作
24:54.080–25:01.279
for the task to be completed. And I waslike structuring my day around this. Itwas bad. Now I pick the box I want this
,並能夠繼續發送提示,查看正在發生的事情,貼上圖片,滾動
25:01.279–25:10.480
to run on. I send the prompt and I stopthinking about it. I could sendsomething to soul like do a deep auditof this codebase and then command Q T3
查看歷史記錄,甚至啟動終端機,如果您想那樣做。你必須承認這相當酷。而且
25:10.480–25:16.880
code so it's fully dead. There is no T3code open on this computer anymore. Ican then reopen it and the work is still
所有這些都是透過 T3 code 在您於機器上執行時產生的 websocket 連線進行的。我們現在有了更多更容易的連線方式
25:16.880–25:24.720
going. Or I can command Q it again, getit hard killed on my machine and go toapp.t3.codes and see the exact same work
。如果您已經是 tail scale 的使用者,我感覺您會喜歡我最近新增的新功能。npx t3。
25:24.720–25:30.080
across all of my machines with theability to continue sending prompts, seewhat's happening, paste images, scroll
我會每晚執行,因為這是我最近一直在使用的。T3 at nightlypair-tail scale。這個命令會給您
25:30.080–25:36.320
through history, and even spin up theterminal if that's what you want to do.You got to admit that's pretty cool. And
一個配對碼,您可以在手機上掃描,或是一個您可以在網頁上使用的 URL。現在您有一個完整的 T3 code 實例,您可以
25:36.320–25:43.919
all of this is over the websocketconnections that are spawned by T3 codewhen you run it on a machine. We nowhave a bunch of easier ways to connect
控制。您確實必須以某種方式提供它。所以 T3 nightly serve 並託管它。或者您可以使用更簡單的方法,即 npxt3 connect,它會
25:43.919–25:50.880
as well. If you're already a tail scaleperson, I have a feeling you'll dig thisnew feature I recently added. npx t3.
開啟一個 URL,讓您使用 GitHub、Google 或其他任何方式登入。然後它會在背景建立一個
25:50.880–25:56.720
I'll do it nightly cuz that's what I'vebeen using lately. T3 at nightlypair-tail scale. This command will give
我會每晚執行,因為這是我最近一直在使用的。T3 在 nightly 版本下的尾部規模。這個命令會提供
25:56.720–26:05.200
you a pairing code that you can scan onyour phone or a URL you can use toconnect on the web. And now you have afull T3 code instance that you can
Linux Mac 即將支援,讓您永遠連線到這台機器並執行已經在那台相同機器上設定的代理程式。
26:05.200–26:14.159
control. You do have to serve itsomehow. So T3 nightly serve and thatwill host it. Or you can use the eveneasier way which is npxt3 connect which
所以,如果您在家裡的某個地方有一台舊筆記型電腦或一台很久沒有開啟的 PC,或者您已經有一台
26:14.159–26:20.799
will open up a URL to sign in withGitHub, Google or whatever else. Andthen it will create a backgroundinstance on this machine as long as on
您使用的 Linux 機器,如果尚未設定,請在上面設定 Linux。安裝 Cloud Code Codeex,兩者都安裝或都不安裝。執行這一個命令,npxt3
26:20.799–26:28.880
Linux Mac support coming soon thatallows you to forever connect to thismachine and run the agents that arealready configured on that same machine.
connect。現在您可以從一個好得多的介面控制那台機器及其上的所有代理程式,而不必
26:28.880–26:34.080
So, if you have an old laptop somewhereat your house or a PC that hasn't beenturned on in a while or already have a
所以,如果您家裡有一台舊筆記型電腦,或者一台很久沒開機的 PC,或者已經有一台
26:34.080–26:42.400
Linux machine that you use, set up aLinux on it if it's not already set up.Install Cloud Code Codeex, both orneither. Run this one command, npxt3
您使用的 Linux 機器,如果尚未設定,請在上面安裝 Linux。安裝 Cloud Code Codeex,兩者都裝或都不裝。執行這一個命令,npx t3
26:42.400–26:50.640
connect. And now you can control thatmachine and all of the agents on it froma much much better interface without
連接。現在您可以從一個好得多的介面控制那台機器及其上的所有代理,而不必
26:50.640–26:58.960
having to deal with all of theconsequences of things like SSH, ofthings like terminals, of all of thedifferent annoying pieces that you have
不用再處理 SSH、終端機以及所有其他令人煩瑣的細節所帶來的後果。
26:58.960–27:05.279
to deal with. But I really, really hopeyou guys understand that I'm not doingthis in some secret plan to make money.
但我真心希望各位明白,我並非為了某個秘密的賺錢計畫才這麼做。
27:05.279–27:10.159
I'm doing this one out of frustration.I'm doing this one out of the love ofthe game. If I wanted to make a bunch of
我是出於挫折感才這麼做,也是出於對這項技術的熱愛。如果我想賺大錢,
27:10.159–27:16.799
money, I could have just sold this toOpenAI or Ananthropic at this point, buthe goal is specifically almost a
我現在就可以把這個賣給 OpenAI 或 Anthropic,但我的目標是打造一個
27:16.799–27:26.400
counterbourcesoftware that we use to build softwarewith. When I got into coding, it wasmostly a closed source ecosystem. All
我們用來建構軟體的閉源軟體。當我開始寫程式時,那主要是一個閉源生態系統。所有
27:26.400–27:32.320
the editors people use were closedsource. Things like Visual Studio,things like Sublime Text. They had some
絕大多數都是閉源生態系統。人們使用的編輯器都是閉源的,像是 Visual Studio、
27:32.320–27:38.799
concept of extensions, but barely. Andthen GitHub released Atom, which wasbuilt on top of Electron. And then
Sublime Text 等。它們雖然有一些擴充功能的概念,但幾乎沒有。然後
27:38.799–27:45.760
Microsoft decided to fight back with VSCode, which was an open-source electroneditor that became the industry standard
GitHub 推出了基於 Electron 構建的 Atom。接著
27:45.760–27:52.880
used by over 80% of developers. Andsuddenly we all were using tools that wecould customize. And now AI is huge. And
Microsoft 決定以 VS Code 反擊,這是一個開源的 Electron 編輯器,
27:52.880–27:58.159
everyone moved to cursor, which is aclosed source fork, or to claude code,which is a closed source terminal, or to
成為超過 80% 開發者使用的業界標準。突然間,我們都在使用可以自訂的工具。現在 AI 非常龐大。
27:58.159–28:03.760
the Codex desktop app, which is a closedsource desktop app. and our ability tocustomize our tools started to fade
大家都轉向使用 Cursor(閉源分支)、Claude Code(閉源終端機)或
28:03.760–28:09.520
fast, which is particularly ironicbecause we're also now in an era whereit's ever been easier to customize tools
Codex 桌面應用程式(閉源桌面應用程式)。我們自訂工具的能力開始迅速消退,
28:09.520–28:15.600
as long as you have source code access.And it just deeply frustrated me thathe tools I used would randomly get
這特別具有諷刺意味,因為我們現在處於只要有原始碼存取權,
28:15.600–28:21.200
worse and I couldn't fix them and hadthings I wanted and didn't have theability for me to add them. And I wanted
就能比以往更容易自訂工具的時代。這讓我深感挫折,因為我使用的工具會隨機變差,
28:21.200–28:26.399
to make sure that the next generationdidn't have to grow up with a bunch ofclosed source tools they couldn't
而我無法修復它們,也無法加入我想要的功能。我希望
28:26.399–28:32.240
customize and agents that are more thancapable of customizing. So, I ended upspending a lot of time and money and
下一代不需要在無法自訂的閉源工具和完全有能力自訂的代理程式中成長。因此,我投入了大量時間、金錢和
28:32.240–28:38.399
resource and betting hard on doing this.Not because I think I can make money onit. Sure, there's some potential to do
資源,並全力投入這項工作。不是因為我認為能從中賺錢。當然,未來
28:38.399–28:47.120
that in the future, but the goal here isto make the best possible open-sourcesolution for coding with AI today. And I
可能有一些賺錢的潛力,但這裡的目標是打造目前最好的開源 AI 編碼解決方案。我
28:47.120–28:53.120
do not believe that that solution is aterminal. I genuinely believe thatsolution is a graphical interface that
不相信那個解決方案是終端機。我真心相信那個解決方案是一個圖形介面,
28:53.120–28:59.679
prioritizes the people who want to getreal work done with systems that helpyou get that work landed. I have so much
優先考慮那些希望透過協助完成工作的系統來完成實際工作的人。關於 T3 Code,
28:59.679–29:04.080
more I want to say about T3 code inparticular, but that's going to have towait for another video. For now, I just
我還有很多想說的話,但這要留待下一個影片。現在,我只希望
29:04.080–29:09.919
hope you guys get this takeaway. I don'tcare which guey you use. Ideally, use adecent one. So, like if you use the
各位能領悟到這一點。我不在乎你使用哪個 GUI。理想上,使用一個還不錯的。所以,如果你使用
29:09.919–29:15.200
cloud code desktop app, you're notgetting the like proper guey experience,but use something like T3 code or codeex
Codex 桌面應用程式,你無法獲得像樣的 GUI 體驗,但可以使用 T3 Code 或 Codeex,
29:15.200–29:20.880
or you can deal with the performanceissues in the new cursor glass versionor you build your own thing or use gene
或者你可以處理新版 Cursor 玻璃版中的效能問題,或者自己建構,或者使用 Gene、
29:20.880–29:27.840
or conductor any of these other guiesfor managing your agents. I think you'llfeel the difference because it really
Conductor 或其他任何用於管理代理程式的 GUI。我認為你會感受到差異,因為它真的
29:27.840–29:36.399
is significantly better thandealing with a terminal, especially onceyou have more than one or two thingsgoing on. The ability to just hop around
比處理終端機好得多,特別是你同時處理超過一兩件事時。能夠隨意跳轉
29:36.399–29:42.480
or hold down a hotkey and see whichthread maps to which button and I canjust commandclick between the different
或按住快捷鍵查看哪個執行緒對應哪個按鈕,我可以直接點擊不同
29:42.480–29:50.080
hings I'm doing. Being able torightclick and archive or just clicksettle, all these little things,especially once you start using images
我處理的各項工作。能夠右鍵歸檔或直接點擊結案,這些小細節,尤其是當你開始使用圖片時
29:50.080–29:56.399
and stuff too, it's just it's so muchbetter. And once I was liberated fromthe reality that doing this on another
特別是當你開始使用圖片和其他功能時,真的要好得多。一旦我從在另一台電腦上執行太困難且不再需要不斷 SSH
29:56.399–30:02.480
computer was too hard and no longersshing constantly just to make sure theagent was durable. Once all of that was
來確保代理程式持續運行的現實中解放出來,一旦所有這些都
30:02.480–30:09.760
implemented, it changed how I code. AndI went from landing like three or fourPRs a week to on my like heavy coding
實現了,它改變了我的編碼方式。我從每週提交三到四個 PR,變成在
30:09.760–30:17.200
days as many as 20 PRs a day landing.And moving from the terminal to a realgraphical interface is a significant
重度編碼日裡每天提交多達 20 個 PR。從終端機轉向真正的圖形介面是
30:17.200–30:22.960
part of why I was able to make thatshift. Just to make sure this is clear,I love terminals and there's a lot of me
我能做出這種轉變的重要原因之一。為了確保這很清楚,我喜歡終端機,而且我也像過去一樣
30:22.960–30:28.480
that misses using them as much as I usedto. But at the same time, they're justnot the right shape for the things that
我現在也很想念以前那樣使用它們,但同時,它們的形狀已經不適合我們今天要做的事情了
30:28.480–30:35.520
we do today. And it's time to stopretending they are. The same way thatiPhones used to make all the apps looklike the real world objects in the
我們今天所做的,終端機已不再適合。現在該停止假裝它們還適用了。就像 iPhone 時代讓所有應用程式都模擬成現實世界的物件,因為當時很重要,當人們看到行事曆時,它看起來就像行事曆,否則他們就不會使用它。我們現在仍處於這樣的時代,在 AI 開發工具中,我們沿用舊有的做法,因為否則會一下子承受太多。不過,我希望你能夠向前看。我想讓你挑戰這種信念,因為那些在終端機方面是高手的開發者
30:35.520–30:41.200
skumorphic era because it was importanthat people saw a calendar and it lookedlike a calendar because otherwise they
iPhone 在 skeuomorphic(擬物化)時代讓所有應用程式看起來像現實世界中的物件,因為
30:41.200–30:48.960
wouldn't use it. We're in that era stillnow with AI dev tools. We're doingthings the way we used to becauseotherwise it's too much at once. I need
人們看到日曆時,它看起來像日曆很重要,否則他們就不會使用它。我們現在仍然處於那個時代,
30:48.960–30:54.640
you to look forward a bit though. I wantyou to challenge that belief because thedevs who were the wizards at terminals
使用 AI 開發工具。我們沿用過去的方式,因為否則一次接受太多會太困難。不過我希望你能夠
30:54.640–30:59.679
are the same devs who should be wizardswith agents. And as hard as it is toadmit, cuz I know it was really, really
向前看一點。我希望你能挑戰那個信念,因為那些精通終端機的開發者
30:59.679–31:06.559
hard for me, the terminal is not theideal interface for the way that webuild today. And if I'm being fullyhonest with you, the only way the
也應該是精通代理程式的開發者。儘管承認這一點很困難,因為我知道這對我來說真的非常困難,但終端機並非我們今天建構方式的最佳介面。如果我要對你完全誠實,唯一
31:06.559–31:13.039
terminal isn't holding you back would beif you're not building big enough. Pushyourself more and try out some gooies. I
終端機沒有拖累你的話,是因為你建構的規模不夠大。更嚴格要求自己,嘗試一些 gooies。我
31:13.039–31:17.000
have a feeling you'll be surprised. Anduntil next time, peace nuts.
我有種感覺,你會感到驚訝。下次再見,和平 nuts。