HomeVideos

I'm done with terminals

Now Playing

I'm done with terminals

Transcript

893 segments

0:00

This is a video I never wanted to make,

0:01

but the more I think about it, the more

0:03

I feel like I kind of have to because if

0:05

I'm being realistic with you guys, I've

0:07

always been a terminal first person. I

0:09

know, I know I'm the vibe coding soy boy

0:12

JavaScript guy that's always plugging

0:13

things in VS Code and invested in a VS

0:15

Code fork, but I am not that at heart. I

0:18

do like being able to scroll around code

0:20

and click and select things with a

0:22

trackpad or a mouse, but generally for

0:24

my day-to-day work, I was always in a

0:26

terminal. I've been a big terminal nerd

0:29

since before I even wrote code. I was

0:31

using them to host my Minecraft servers,

0:32

to SSH into computers all over the world

0:35

and do all sorts of fun, crazy things. I

0:37

had a deeply modified GNU screen config

0:40

that I put a lot of time into before I

0:43

started moving over to T-Mox because I'm

0:45

old enough that GNU screen was still the

0:47

standard when I started. I have been

0:49

using terminals for the majority of my

0:51

life. Since I was 13, I've spent most of

0:53

my time running, working, auditing, and

0:56

doing my day-to-day stuff inside of my

0:58

terminal. And that's just not the case

1:00

anymore. I had a moment a few days ago

1:03

where I was getting a bunch of work done

1:04

and I started commanding to try and find

1:06

my terminal and I couldn't find it

1:09

because I had done a reboot and not

1:11

opened up my terminal because I didn't

1:12

need it for like eight plus hours. And

1:16

that's when it hit me. I'm not doing my

1:18

work in a terminal anymore. And I

1:21

really, really need to talk about why.

1:24

Before I can do that, we're gonna have

1:25

to take a quick break for today's

1:26

sponsor. When I'm working on a new

1:28

project and it's time to go live, the

1:29

first thing I do every single time is I

1:31

put it up on GitHub. But right after

1:33

that, I use today's sponsor, Blacksmith,

1:36

because as soon as I want real CI, I

1:38

don't want to deal with GitHub actions

1:39

anymore. If all I got from Blacksmith

1:41

was the better speed, it would be worth

1:43

it. If all I got from Blacksmith was the

1:45

cheaper price, it would be worth it. If

1:46

all I got from Blacksmith was the four

1:48

times faster cache downloads, it would

1:50

still be worth it. But that's not all

1:51

you're getting. You also get the best

1:53

observability I've ever seen into what

1:54

your CI is actually doing. What jobs are

1:56

passing? What jobs are failing? Where

1:58

are they coming from? Where's time being

2:00

spent on projects like T3 Code, this is

2:02

so helpful. Trying to figure out why our

2:03

CI is slow and fixing it has never been

2:05

easier. It's fast by default, but you

2:07

can get even faster when you can do

2:09

things like SSH into the box and see

2:10

what's up or use an actual native MacR

2:13

runner for your Mac builds like we have

2:14

to for our iOS and Mac apps. It's

2:16

honestly gotten hard doing those time

2:18

comparisons because I haven't chosen to

2:20

use GitHub actions in months. Save

2:22

stress, time, and money on your actions

2:24

at soy.link/blacksmith.

2:26

I already know how this one's going to

2:27

go. There's going to be endless bias

2:29

accusations of, "Oh, Theo's just here to

2:32

plug T3 code. He's [ __ ] on terminals

2:34

so that he can plug his own thing." Oh,

2:35

do you mean this open- source thing that

2:37

I spent a shitload of money and time

2:39

building because I so deeply believe the

2:41

terminal is the wrong place? If you

2:43

think T3 code is the reason I'm doing

2:44

this, your reasoning is worse than

2:46

Sonnet 4s is because this is obviously a

2:50

thing I built because of my beliefs, not

2:52

I'm lying about my beliefs because I

2:54

built this thing. That obviously doesn't

2:56

make sense. I wish you guys would just

2:58

use your brains a little more before

2:59

leaving those shitty comments. I'm sure

3:00

there's already a hundred of them plus.

3:02

Scroll through the Obsidian ones and I'm

3:04

sure you'll find plenty about how I'm

3:05

just plugging my own [ __ ] But in order

3:07

to skirt those accusations for now, I

3:09

will switch to Chat GBT. So, here we

3:12

are. An app I haven't used in a while. I

3:13

just had to update it cuz I haven't been

3:14

in it as much, but it still is, in my

3:17

opinion, one of the best starting points

3:20

for a developer who is moving into

3:22

coding more with AI. While the Codex app

3:25

was the big thing that pushed me over on

3:27

this belief that terminals were just not

3:29

the right place to be coding anymore, it

3:31

was not the start of my journey here.

3:33

The place that I started thinking about

3:35

this most is honestly kind of

3:37

embarrassing and I even feel bad putting

3:38

it in here. I I feel sick even typing

3:41

it. Oh god, just can Can I delete it

3:44

now? Do I do I have to leave this word

3:46

on the screen? I'd really like to just

3:48

hide this. I'm just going to get rid of

3:49

that. Okay. Really though, when I first

3:53

tried out anti-gravity, I was mostly

3:55

unimpressed. But there was one

3:57

particular piece that impressed me.

3:58

There was a hotkey that opened up the

4:00

agent manager view that let you see what

4:03

the agents were doing across different

4:05

instances of anti-gravity. So if you

4:08

have like three windows open for three

4:10

different projects, you could have this

4:11

one window on top that showed you what

4:14

was going on with agents in each of

4:16

those other projects. It was a left

4:18

sidebar with projects that had threads

4:21

in each project that you could see from

4:22

one external view. Huh, sounds familiar.

4:27

Interesting. As much as I don't want to

4:29

admit it, the anti-gravity agent manager

4:31

was one of the first times I experienced

4:34

that. And if anti-gravity wasn't such a

4:36

[ __ ] show, I probably would have

4:37

actually used it a bit. I even said as

4:39

much in my coverage of anti-gravity when

4:41

it dropped. But what's much more

4:42

exciting to me is the new agent manager

4:45

workflow. I think this is a great idea

4:48

and there's a lot of little pieces that

4:49

I'm hyped about. So, anti-gravity was

4:51

the first step in my descent as I

4:54

realized that the terminal was not the

4:56

right place to do this anymore. Funny

4:58

enough, just a few weeks prior, I was at

5:00

the cursor office complaining to them

5:02

that all their new integrations with the

5:04

cursor v2 agent view made it too hard

5:07

for me to use my terminal because they

5:08

made it way too annoying to like get the

5:11

path that a work tree was in. So I could

5:13

cd into it in my terminal and then run

5:15

things. Because a flow I often had is I

5:18

would use cursor. I would open up

5:20

something in the sidebar, tell it to go

5:21

do something, get a result, want to go

5:24

check it, and then have to find some way

5:26

to CD into that path for the work tree

5:28

in order to run it, install things, and

5:29

do stuff. And the built-in terminal was

5:32

no, not happening, especially at that

5:34

point in time. So, I ended up bullying

5:36

them enough to give me the one-click

5:38

copy buttons that I needed in order to

5:40

keep using my terminal for the actual

5:42

doing things beyond sending prompts. And

5:45

I got to the point where I would use

5:46

cursor to send a prompt and then my

5:48

terminal to do everything from reviewing

5:50

the diffs, reading git history,

5:52

investigating changes, actually running

5:54

the code and doing things. And I was

5:56

split like 50/50 between I would be in

5:58

the cursor app for prompting and that

6:00

would be my terminal for everything

6:01

else, especially git stuff. I did all of

6:04

my git through the stock bog standard

6:07

git commands. Occasionally I would add

6:09

like oneliner helpers to do things like

6:11

commit and push with one line stuff like

6:13

that. But for the most part I just used

6:16

stock git cli. I need to get this

6:18

anti-gravity thing off the screen. It's

6:20

going to hurt me. But then the models

6:22

got better and importantly the codeex

6:25

app came out. And when I started using

6:27

this, my beliefs that I had from

6:30

anti-gravity saying that this is

6:31

horrible, but it's also kind of the

6:33

future got me really excited. And the

6:36

more I played with it, the more

6:38

impressed I was. The ability to just

6:41

break your work up into different

6:43

projects and clearly see what's going on

6:46

in them. to have multiple things going

6:48

at the same time all in their own work

6:50

trees. The ability to quickly open up a

6:52

terminal and type things in here if you

6:54

need for whatever stuff that you're

6:55

doing. I got to the point where I was

6:57

still looking at my git history through

6:58

the terminal inside of my codeex

7:01

instance and it was solid. It was

7:05

actually quite good. And in a world

7:07

where I was using my terminal more and

7:09

more because I had at this point moved

7:10

to cloud code and was constantly running

7:12

cloud code in my terminal, opening lots

7:15

of terminals, using awesome tools like

7:17

cmx, which I still highly recommend to

7:19

manage all of my different things going

7:21

on. I was still a big T-Max guy. I was

7:23

still a very deep big T-m guy. I only

7:26

started using tabs in my terminal at the

7:28

start of this year as like a personal

7:30

challenge when I set up a new computer

7:31

to see if I could finally move off

7:32

T-Mux. The answer was no spoiler, but I

7:35

I tried. So, I went through all of that

7:38

and then the Codeex app dropped and I

7:40

was like, wait, I can just screenshot

7:43

something and paste it and see it. I can

7:47

select text and copy it and paste it and

7:49

the formatting is not broken. I can

7:52

scroll and it doesn't lag a whole bunch.

7:54

And most importantly, by far, I can hop

7:58

between different things easily by just

8:01

clicking. I know this sounds silly and

8:04

dumb, but when you're working on three

8:06

plus things at a time, it's just a

8:09

couple too many hot keys in T-Max. And

8:12

keeping track of what is where is even

8:14

more annoying. You have to remember

8:15

which hotkey goes to which thing. And

8:17

then you start building systems in your

8:19

head for these three panels are for

8:22

these three things. This fourth panel is

8:24

for this thing. This fifth panel is the

8:26

flex panel. I use it for whatever. But

8:28

then you end up with a sixth task and

8:29

your whole model breaks down. I tried my

8:32

hardest to figure this out. And again,

8:34

to their credit, Semox got the closest

8:37

anything has gotten to figuring this

8:38

out. By giving you a sidebar similar to

8:40

what you get out of something like the

8:41

Codeex app, but also just giving you a

8:43

terminal on the other side. It's great

8:46

and it's still my default terminal. In

8:47

fact, all the boxes I SSH into, I have

8:49

in a little folder called SSH, so I can

8:52

have all of these connected and quickly

8:53

hop into them at any point. But man,

8:56

having a real UI with text that was more

8:58

pleasant to read with much easier to

9:01

navigate and find things with a category

9:03

system that made sense, having actual

9:05

projects that are based on where things

9:07

are in your computer, it just it made me

9:09

code way more. But one of the biggest

9:11

problems I had with Codeex is that it

9:13

was closed source. So when it did have

9:15

regressions or problems or things that I

9:17

wanted to fix, it just wasn't super

9:20

realistic. I was able to bug the Codex

9:23

team a bunch. And thank you to my

9:24

friends over at OpenAI. You guys have

9:26

been awesome about taking all of my

9:27

feedback and addressing it meaningfully

9:29

and swiftly. But there would still just

9:31

be random regressions and changes and

9:33

things like the merge into chat GPT.

9:36

Like this is no longer Codex. This is

9:37

now chat GPT. They let you use the old

9:39

icon thankfully, but like this is now

9:41

the chat GPT app. Because the Codex app

9:43

was so good, it made these tools

9:46

accessible to people who weren't

9:47

developers and they decided to give that

9:49

capability to non-devs by rebranding it

9:52

and calling it chat GPT. This is one of

9:53

my biggest issues. If you wanted good

9:56

open-source solutions, you basically had

9:59

to use the terminal. You had the codec,

10:01

but you also had lots of other awesome

10:03

things. Shout out to stuff like Open

10:05

Code and Pi, phenomenal harnesses and

10:08

terminal tools for coding with AI. But

10:10

if you wanted a guey like codeex, your

10:13

options were to use the one locked to

10:15

the provider that you like. So you can

10:17

use the cloud code app with your cloud

10:19

sub or you can use the codeex app with

10:21

your codec sub. You could hack the

10:23

codeex app to use other things kind of.

10:26

You could kind of do the same for the

10:27

cloud code app, but you shouldn't

10:28

because the cloud code app is just not

10:30

very good. But your only option if you

10:32

wanted one place for everything was open

10:34

code, but then you lose all the

10:36

subsidization because open code isn't

10:38

using the official harness. You also

10:39

don't get the features that get added to

10:41

things like cloud code or codec. If you

10:43

wanted the best features for the best

10:44

price with the best models, you had to

10:47

use claude in the CLI or codeex in the

10:49

desktop app because both companies kind

10:51

of stop supporting the other side as

10:53

much where a lot of new codeex features

10:55

only happen in the app and a lot of new

10:57

cloud code features only happen in the

10:58

CLI. And I got to a pretty nasty point

11:00

where if I needed to use my cloud

11:02

models, I was in the CLI. And if I

11:03

wanted to use Codex models and GPT

11:05

models, I was in the guey. And I ended

11:07

up finding myself defaulting to OpenAI

11:10

models even in things they were worse at

11:12

because I just liked having a good app

11:15

more. And it's all these little things

11:17

that add up. Like seriously, if you

11:18

haven't tried one of these guies, I I

11:21

would love to self-plug, but just go try

11:23

the codeex app. It is genuinely really

11:26

good. It has its edges. It has its

11:29

annoyances. They added the new activity

11:30

view, which is inspired by what we've

11:33

been building in T3 Code. And as cool as

11:36

it is, it's not quite all the way there.

11:40

But god damn, if this isn't a massive

11:42

improvement on what you're already

11:43

doing, I don't know what to tell you.

11:45

It's so much easier to keep track of

11:47

what's going on, where work is

11:49

happening, what you've been doing, and

11:52

actually getting stuff done. I can't

11:54

tell you how many times I lost track of

11:56

some terminal session. I had to open up

11:57

cloud code and tell it to go find the

11:59

cloud code I was doing work in or the

12:01

work tree that I started from, or all

12:03

these other things. I had to put a ton

12:05

of time into just keeping track of what

12:07

was going on. And as you can see from my

12:09

chaotic setup here, I put a lot of time

12:12

in. I had to reboot this machine earlier

12:13

today, so I lost all the sessions I had,

12:15

but I had like 30 terminals in T-Mux on

12:18

this one Linux box for various cloud

12:21

code and CEX things that I was doing. I

12:22

still have a whole bunch over on my

12:24

other Linux box here for all these types

12:26

of crazy tasks that I've been trying

12:28

just like running goals indefinitely to

12:31

see what happens. like the TypeScript

12:33

Rust port that I was briefly working on

12:34

before I ran out of tokens. Just keeping

12:36

track of what is what is so annoying.

12:38

And you can do like renames and things

12:41

if you want to take the time to, but

12:43

it's so annoying. And the amount of work

12:46

I had to put in to try and make an

12:48

environment that was reasonable just to

12:51

switch between cloud code and codecs on

12:53

real work and keep track of what I was

12:54

doing. It's just more mental overhead.

12:56

I'm going to be real with you. It just

12:58

is. And this is not historically how

13:01

terminals worked. Historically,

13:02

terminals have been the option that is

13:05

less mental overhead and slightly more

13:07

upfront cost. You had to spend a little

13:08

time to set it up how you want. And then

13:10

from that point on, the terminal is

13:13

mostly just doing the same thing the way

13:15

you want to. But in a world where the

13:18

work I'm doing is changing so actively

13:20

that the projects I'm working on might

13:22

be brand new, they might be months old,

13:23

they might be years old, and the amount

13:25

of work I'm doing in parallel can change

13:27

a ton as well. I might be working on one

13:28

thing. I might be working on 10 things.

13:30

The rigidity of the systems I built for

13:33

myself in the terminal was not flexible

13:35

enough for the work that I was doing

13:37

today. And I tried my godamn hardest to

13:41

fix that. I put a ton of effort into

13:43

making it so I can paste images over

13:45

cmox over SSH through my T-Max layer

13:48

here. So I can command V here and paste

13:51

an image through cmox over SSH into the

13:54

T-modex instance on this machine

13:56

remotely. That [ __ ] was so buggy for a

13:59

while and now it's relatively stable. So

14:01

I could finally paste images over SSH,

14:04

but that's like a thing I had to put

14:06

time and effort into to do something as

14:08

basic as screenshot something and then

14:10

send it to my agents. With a guey, I

14:13

just do it. And I would say like halfish

14:15

of my prompts have images because when I

14:17

have an error or a thing that is

14:19

annoying me, it's a lot easier to just

14:21

screenshot, send it, and say fix and it

14:23

will. Whether that's a screenshot of

14:24

your app or just a weird error you

14:25

didn't expect to get when you ran a

14:27

command. Sending screenshots to your

14:28

model is very effective, but it's not

14:31

very effective when you can't even see

14:32

what the image is. But my biggest

14:35

complaint is none of this. It's actually

14:38

okay. It's kind of part of one of these

14:40

things. It has very little to do with

14:41

the terminal and very little to do with

14:43

the agents. It's three very specific,

14:47

very annoying letters. SSH. SSH kind of

14:51

[ __ ] sucks. It's really useful,

14:54

really powerful, and I spend a ton of

14:57

time in SSH, but as soon as my

14:59

connection isn't perfect, I end up with

15:02

all sorts of problems. I had a problem a

15:04

few days ago where I was running Cloud

15:06

Code over SSH on my local network, which

15:08

is a Wi-Fi 7 network with gigabit to 10

15:12

gig speeds depending on if I'm wired or

15:14

wireless. And I had my computer plugged

15:15

in over 10 gig at my desk downstairs.

15:18

and I was getting sticky keys while I

15:20

typed trying to do work in cloud code.

15:22

It turned out it was bound to the Wi-Fi,

15:25

not to my Ethernet. But the fact that I

15:28

even had to care is absurd. And don't

15:31

get me started on trying to do things on

15:33

mobile. GH I I tried so hard to make

15:37

Terus work for me. I paid the full price

15:38

for it. I support the developer. I think

15:40

it's awesome and it helped me debug

15:41

something even this morning. Like I

15:43

still use these things. They're just not

15:46

the thing I default to anymore because

15:48

they're fragile. And it's incredible how

15:51

powerful a standard SSH is. That's been

15:53

around for over 30 years and it works so

15:55

great to this day. And there are other

15:57

fun things like I know SSH3 is

15:58

apparently much better. I know mosh is

16:00

really cool, but I do not have it in me

16:03

to deal with all of those things to get

16:05

marginal improvements, especially if I

16:08

want these to work on my phone because

16:10

trying to do real work on my phone via a

16:13

terminal has me questioning my own

16:15

sanity and also questioning the

16:18

reliability of all the other people who

16:19

were saying that using their terminal

16:21

over their phone was a totally

16:22

acceptable way to do quad code. It just

16:24

isn't. And thankfully, Codex accepted

16:28

this fact and they introduced the

16:30

ability to control the Codex app, now

16:31

the ChatGpt app, over the Chat GBT app

16:34

on your phone remotely. And it was so

16:37

much better. It had its rough edges, but

16:39

the ability to spin up some work on my

16:41

computer and then finish the thread on

16:43

my phone when I'm away, it just kept me

16:46

off my computer a lot more. And I found

16:48

myself like walking around doing more

16:50

chores, leaving my apartment to go run

16:52

errands, and being able to check in on

16:55

the stuff that I was doing overtime. It

16:58

was really fun and cool and also

17:00

obnoxiously buggy and most importantly

17:03

was super restricted to the Codeex

17:05

desktop app, which meant I could only

17:07

use it on my Macs. And when you combine

17:09

that with all of the annoying parts of

17:11

how codeex is implemented around the

17:13

security policy stuff on Mac OS where it

17:15

spins up five plus processes per thread

17:17

and per sub agent which can just pose

17:20

your performance. I was getting annoyed

17:22

and I had a couple things that I wanted

17:24

and I will list all of the stuff that I

17:26

wanted to make sure I could do. The

17:28

things that were annoying me obviously

17:30

pasting images was a very important one

17:32

for me. I also wanted all models with

17:35

subsidization. So, I wanted to make sure

17:37

whatever came out here worked with my

17:40

cloud code subs and my codec subs, so I

17:42

could get the 8 to 14 grand for 200

17:44

bucks instead of having to spend 8 to 14

17:46

grand for it. I wanted good remote

17:49

control. I wanted best-in-class

17:52

Linux support because, as I've said in

17:54

many videos, check out my Linux video I

17:56

did recently, Linux is so much better

17:58

for agentic work because the file

18:00

systems just suck a lot less. And

18:02

spinning up a work tree takes 2 seconds

18:03

instead of 30 seconds to 2 minutes. just

18:06

so much better. And even when I'm going

18:08

like really heavy on my work on my Linux

18:11

boxes, it is rare I can spike even like

18:14

a third of my utilization. Like I have

18:17

32 cores on this machine. It's an a

18:18

Ryzen AI max box. It's the framework

18:20

desktop. I mentioned that before. I have

18:22

tried to stress this machine and I

18:24

basically cannot do it. And a lot of

18:26

that is just the fact that Linux doesn't

18:27

have all of the chaos trying to scan

18:30

every single thing Codeex does. So, I

18:32

best-in-class Linux support, good mobile

18:34

support, good performance, low battery

18:37

impact, and probably the single biggest

18:40

part, a good way to manage lots of

18:43

things at once. This is all the stuff I

18:46

wanted. The only one of these things

18:48

terminals offer me are best-in-class

18:50

Linux support. They don't help in any of

18:52

these other categories in any way. And

18:55

now you guys have waited long enough.

18:58

The commenters can do their thing. I

19:00

need to talk about T3 code because

19:01

Julius and I made T3 code because we

19:03

shared a lot of these frustrations. We

19:06

wanted to love Codeex and did for a lot

19:08

of things. I know Julius still uses it

19:10

heavily. I've slowly moved off the Codex

19:11

desktop app. It has its benefits for

19:14

sure and I'm hoping that we can clone as

19:15

many of those as possible in the near

19:16

future. Julius and I tried all the other

19:18

options that existed at the time and

19:20

were very unhappy with them. The couple

19:22

that were okay, we gave a lot of

19:24

feedback to and they fixed some things,

19:26

they failed others and we got annoyed. I

19:29

got so annoyed about the performance

19:30

part in particular that I tried building

19:31

my own native guey for codecs to just

19:34

try and make something faster. I ended

19:35

up in hell with scrolling text because

19:38

Swift UI and AppKit are not great at big

19:42

scrollable views with text. And it turns

19:44

out Google put a lot of good work into

19:45

Chrome for that. So I begrudgingly threw

19:47

that project away. Begrudgingly spun it

19:50

back up on Electron just out of

19:51

curiosity. decided to architect it in a

19:54

way that made other things like the

19:55

remote control a little easier by

19:57

putting everything on a websocket

19:59

instead of binding it through the

20:00

electron RPC. And the result was

20:02

something surprisingly usable. The

20:04

result was T3 code. It did not look at

20:06

all like this at the time. It was

20:07

sinfully ugly at the time, but it

20:09

allowed you to use codecs with an

20:11

open-source guey that was a lot less

20:15

impactful on your systems performance.

20:17

I'll be honest though, for the first few

20:20

months, I still found myself using the

20:22

Codeex app more than T3 Code. I would

20:24

rotate between them for sure, but I

20:26

spent most of my time in Codeex

20:28

probably. There would be moments where I

20:29

went up and down, but I kept finding

20:31

myself back in codeex, but Julius

20:34

couldn't take that. Julius continued

20:37

iterating on T3 code because Julius has

20:39

something that I don't.

20:42

Julius hates terminals. This one was

20:44

hard and I've argued with him a bunch

20:47

about this. He exclusively used Git

20:50

through the VS Code extension. He didn't

20:52

even He probably knows most of the Git

20:54

commands in the terminal, but he never

20:55

uses them. The only terminal he would

20:57

open was the one in VS Code or cursor to

20:59

spin up his dev servers. Everything else

21:01

he did through the editor. He's one of

21:03

the best devs I've ever met in my life.

21:05

He's without question the best dev I've

21:07

ever known that hates terminals. For me,

21:10

T3 Code was a way to have an open-source

21:12

solution that could potentially solve a

21:14

handful of my problems. For Julius, T3

21:16

Code was his ability to escape the

21:18

terminal. And he took the challenge, and

21:20

the [ __ ] did it. He made T3 code

21:23

so reliable, so stable, so well

21:25

implemented and integrated. He got work

21:27

trees working perfectly. He got cla

21:29

working perfectly. He got open code and

21:31

grock working as well. And even cursor,

21:33

although the cursor integration needs

21:34

some work. Big update coming there soon.

21:36

He did all of that because he wanted to

21:38

take advantage of all of the models from

21:40

all these providers at all of these

21:41

subsidized rates, but he didn't want to

21:43

have to use a shitty terminal app and

21:44

memorize a whole new set of hotkeys for

21:46

every different one. And T3 Code became

21:48

his surface for managing all these

21:50

different agents and all these different

21:52

solutions with a onestop place where

21:55

everything behaved the same regardless

21:57

of which models you were using. And

21:58

reminder, this is using your cloud code

22:01

and your codecs on your machine. And

22:04

we're not doing some hacks like -p. We

22:05

were using the official agent SDK

22:07

blessed by Ampropic. They were going to

22:09

change the policy. They have temporarily

22:11

held it. They might indefinitely hold

22:12

it. Still waiting for updates there. But

22:14

this all works above board officially

22:16

supported by both Cloud Code and Codeex

22:19

to the point where the Codex team is

22:20

publicly shouting us out as inspiration

22:21

for features they're adding into Codeex.

22:23

We put a lot of work into all of this.

22:26

Not just building it, but negotiating

22:28

with the labs to make sure we do things

22:30

the way they want so that we can

22:32

continue offering your subscriptions to

22:34

the platforms you like in our app

22:36

without getting banned. And then the

22:38

magic piece comes in. There's a little

22:40

button here at the bottom. Other apps

22:43

have this to be clear. Most of them have

22:45

it as a use it on your machine or use it

22:47

on the cloud button. We have something

22:49

different. When you set up T3 code on a

22:51

machine, you can now control that

22:53

machine through T3 code on the app on

22:55

another computer on the website on

22:57

app.t3.codes or in the mobile app. Yes,

23:00

we have a fully supported mobile app for

23:02

iOS and Android. And yes, it is also

23:04

fully open source. So, if you want to

23:05

build it yourself, you can. This here is

23:08

magical. The thing that has

23:11

fundamentally changed how I work is the

23:13

ability to just pick a computer, send

23:15

off a task, and close my laptop. Before

23:18

this, I found myself having to like

23:20

prioritize my life around when I could

23:22

run an agent. Because if I had to run an

23:24

agent and then I had a meeting coming up

23:26

and that was going to overheat my

23:27

computer and make it unpleasant to use

23:29

in a call and spin my fans up so loud

23:31

that I couldn't use the mics on my

23:32

laptop, then I would wait until I got to

23:34

the end of the meeting and then spin it

23:37

up, hoping I don't have another one

23:38

coming up. If I had an appointment or a

23:40

trip or an event or something I had to

23:41

go to, I wouldn't spin up my agents

23:43

because as soon as I lose Wi-Fi, they

23:45

die. One of the more embarrassing things

23:47

I must admit here is that I'm notorious

23:49

for coding in Ubers. I would spend a lot

23:52

of time driving around to different

23:54

events and things because I have to go

23:56

to a lot of different [ __ ] And I would

23:57

often pick an Uber just because I could

24:00

sit in the Uber and get some code out.

24:02

And when I'm at my office, I am so

24:04

behind on so many other things. I have

24:05

to do all of that. So my Ubers became my

24:08

like peaceful coding time. I have a lot

24:10

of posts where I talk about the crazy

24:12

performance improvements and changes I

24:13

made from Ubers. But something bad

24:16

happened. I started using claude code

24:18

when Opus 45 dropped. I This poses me

24:21

going back to Opus 45 and trying

24:22

something. But notice how I ended it. I

24:24

will have to stop momentarily as I am

24:26

currently coding in an Uber. My bad data

24:28

connection was causing me problems. And

24:30

as soon as I got there, I had to close

24:32

my laptop and whatever agent I was

24:33

running died and I had to spin it up

24:35

later hoping that it would continue. And

24:37

the more that this happened and the more

24:39

I was doing tasks that would take hours

24:41

instead of minutes, the more I just

24:43

didn't want to code in Ubers anymore

24:45

because as soon as I have to close my

24:46

laptop, it's over. And now I have to

24:49

think about my work in a way where I

24:51

know I have enough time of laptop open

24:54

for the task to be completed. And I was

24:56

like structuring my day around this. It

24:58

was bad. Now I pick the box I want this

25:01

to run on. I send the prompt and I stop

25:04

thinking about it. I could send

25:05

something to soul like do a deep audit

25:07

of this codebase and then command Q T3

25:10

code so it's fully dead. There is no T3

25:13

code open on this computer anymore. I

25:15

can then reopen it and the work is still

25:16

going. Or I can command Q it again, get

25:19

it hard killed on my machine and go to

25:21

app.t3.codes and see the exact same work

25:24

across all of my machines with the

25:26

ability to continue sending prompts, see

25:28

what's happening, paste images, scroll

25:30

through history, and even spin up the

25:32

terminal if that's what you want to do.

25:34

You got to admit that's pretty cool. And

25:36

all of this is over the websocket

25:38

connections that are spawned by T3 code

25:40

when you run it on a machine. We now

25:42

have a bunch of easier ways to connect

25:43

as well. If you're already a tail scale

25:46

person, I have a feeling you'll dig this

25:47

new feature I recently added. npx t3.

25:50

I'll do it nightly cuz that's what I've

25:52

been using lately. T3 at nightly

25:53

pair-tail scale. This command will give

25:56

you a pairing code that you can scan on

25:59

your phone or a URL you can use to

26:00

connect on the web. And now you have a

26:03

full T3 code instance that you can

26:05

control. You do have to serve it

26:06

somehow. So T3 nightly serve and that

26:08

will host it. Or you can use the even

26:10

easier way which is npxt3 connect which

26:14

will open up a URL to sign in with

26:15

GitHub, Google or whatever else. And

26:17

then it will create a background

26:19

instance on this machine as long as on

26:20

Linux Mac support coming soon that

26:22

allows you to forever connect to this

26:24

machine and run the agents that are

26:26

already configured on that same machine.

26:28

So, if you have an old laptop somewhere

26:30

at your house or a PC that hasn't been

26:32

turned on in a while or already have a

26:34

Linux machine that you use, set up a

26:36

Linux on it if it's not already set up.

26:37

Install Cloud Code Codeex, both or

26:39

neither. Run this one command, npxt3

26:42

connect. And now you can control that

26:45

machine and all of the agents on it from

26:47

a much much better interface without

26:50

having to deal with all of the

26:52

consequences of things like SSH, of

26:54

things like terminals, of all of the

26:56

different annoying pieces that you have

26:58

to deal with. But I really, really hope

27:01

you guys understand that I'm not doing

27:02

this in some secret plan to make money.

27:05

I'm doing this one out of frustration.

27:06

I'm doing this one out of the love of

27:08

the game. If I wanted to make a bunch of

27:10

money, I could have just sold this to

27:12

OpenAI or Ananthropic at this point, but

27:14

the goal is specifically almost a

27:16

counterbource

27:20

software that we use to build software

27:22

with. When I got into coding, it was

27:24

mostly a closed source ecosystem. All

27:26

the editors people use were closed

27:27

source. Things like Visual Studio,

27:29

things like Sublime Text. They had some

27:32

concept of extensions, but barely. And

27:35

then GitHub released Atom, which was

27:36

built on top of Electron. And then

27:38

Microsoft decided to fight back with VS

27:40

Code, which was an open-source electron

27:43

editor that became the industry standard

27:45

used by over 80% of developers. And

27:48

suddenly we all were using tools that we

27:50

could customize. And now AI is huge. And

27:52

everyone moved to cursor, which is a

27:54

closed source fork, or to claude code,

27:56

which is a closed source terminal, or to

27:58

the Codex desktop app, which is a closed

27:59

source desktop app. and our ability to

28:01

customize our tools started to fade

28:03

fast, which is particularly ironic

28:06

because we're also now in an era where

28:07

it's ever been easier to customize tools

28:09

as long as you have source code access.

28:11

And it just deeply frustrated me that

28:13

the tools I used would randomly get

28:15

worse and I couldn't fix them and had

28:17

things I wanted and didn't have the

28:19

ability for me to add them. And I wanted

28:21

to make sure that the next generation

28:23

didn't have to grow up with a bunch of

28:25

closed source tools they couldn't

28:26

customize and agents that are more than

28:28

capable of customizing. So, I ended up

28:30

spending a lot of time and money and

28:32

resource and betting hard on doing this.

28:34

Not because I think I can make money on

28:36

it. Sure, there's some potential to do

28:38

that in the future, but the goal here is

28:40

to make the best possible open-source

28:43

solution for coding with AI today. And I

28:47

do not believe that that solution is a

28:49

terminal. I genuinely believe that

28:51

solution is a graphical interface that

28:53

prioritizes the people who want to get

28:55

real work done with systems that help

28:57

you get that work landed. I have so much

28:59

more I want to say about T3 code in

29:01

particular, but that's going to have to

29:02

wait for another video. For now, I just

29:04

hope you guys get this takeaway. I don't

29:06

care which guey you use. Ideally, use a

29:08

decent one. So, like if you use the

29:09

cloud code desktop app, you're not

29:11

getting the like proper guey experience,

29:13

but use something like T3 code or codeex

29:15

or you can deal with the performance

29:16

issues in the new cursor glass version

29:18

or you build your own thing or use gene

29:20

or conductor any of these other guies

29:22

for managing your agents. I think you'll

29:25

feel the difference because it really

29:27

really is significantly better than

29:30

dealing with a terminal, especially once

29:32

you have more than one or two things

29:34

going on. The ability to just hop around

29:36

or hold down a hotkey and see which

29:38

thread maps to which button and I can

29:40

just commandclick between the different

29:42

things I'm doing. Being able to

29:44

rightclick and archive or just click

29:46

settle, all these little things,

29:48

especially once you start using images

29:50

and stuff too, it's just it's so much

29:52

better. And once I was liberated from

29:54

the reality that doing this on another

29:56

computer was too hard and no longer

29:58

sshing constantly just to make sure the

30:00

agent was durable. Once all of that was

30:02

implemented, it changed how I code. And

30:05

I went from landing like three or four

30:06

PRs a week to on my like heavy coding

30:09

days as many as 20 PRs a day landing.

30:13

And moving from the terminal to a real

30:15

graphical interface is a significant

30:17

part of why I was able to make that

30:18

shift. Just to make sure this is clear,

30:20

I love terminals and there's a lot of me

30:22

that misses using them as much as I used

30:24

to. But at the same time, they're just

30:26

not the right shape for the things that

30:28

we do today. And it's time to stop

30:30

pretending they are. The same way that

30:32

iPhones used to make all the apps look

30:34

like the real world objects in the

30:35

skumorphic era because it was important

30:37

that people saw a calendar and it looked

30:39

like a calendar because otherwise they

30:41

wouldn't use it. We're in that era still

30:43

now with AI dev tools. We're doing

30:45

things the way we used to because

30:46

otherwise it's too much at once. I need

30:48

you to look forward a bit though. I want

30:50

you to challenge that belief because the

30:52

devs who were the wizards at terminals

30:54

are the same devs who should be wizards

30:56

with agents. And as hard as it is to

30:58

admit, cuz I know it was really, really

30:59

hard for me, the terminal is not the

31:01

ideal interface for the way that we

31:03

build today. And if I'm being fully

31:04

honest with you, the only way the

31:06

terminal isn't holding you back would be

31:08

if you're not building big enough. Push

31:11

yourself more and try out some gooies. I

31:13

have a feeling you'll be surprised. And

31:14

until next time, peace nuts.

Interactive Summary

The video details the creator's transition from being a terminal-heavy developer to preferring graphical user interfaces (GUIs) for AI-assisted coding. The creator explains that while they have spent their entire life in terminals, the rise of AI agents requires a more flexible and visual interface to manage multiple tasks, work trees, and visual data like screenshots effectively. This realization led to the development of T3 Code, an open-source solution designed to provide a better GUI experience for AI agents while maintaining compatibility with major platforms and addressing the frustrations associated with terminal-based workflows, SSH, and managing multiple concurrent tasks.

Suggested questions

4 ready-made prompts