GUIs are deprecated: how I got my movie on the TV by yelling at Claude

Using Claude Code to play movie files on the TV while Android TV doesn't work.

Pokemon Red battle: Clawd (Claude Code mascot) cleaves MissingNo. — built from dark UX patterns — with a binary katana. SUPER EFFECTIVE!
CLAUDE CODE used COMMAND LINE. It's super effective!

I'm using this stupid Android TV. It's garbage. Nothing ever works. It should be simple. It should just read files. But it can't. These corpos make everything into a living hell.

The apps don't work. They're full of ads. Everything takes forever.

So I'm trying to play a movie on the TV. Locally. My laptop is on the same Wi-Fi as the TV. There should be a built-in feature: click the file, hit Cast, done. They could have built that. They didn't. They want you in their shitty app with all the ads.

Here's what actually works.

The terminal tells you what's wrong. The GUI hides it.

This is why GUIs are deprecated. The terminal tells you what's wrong, which tells the AI what to do, which lets the AI fix it. You can't use GUIs anymore if you're smart. I lived through the end of the graphic user interface. We're back to the real world. The terminal. Just talking to it.

The actual fix: catt + ffmpeg via Claude

I installed the Jellyfin client on the Android TV first, because Claude suggested it. Then I asked Claude how to actually get the file on the TV. The first answer was a normie answer — "open the app, click cast" — and I told it: that's a normie answer. Give me a command line answer. I don't want normie slop.

This is the thing you have to learn about AI. It morphs around you. It's not like a book. A book doesn't change for the reader. AI does. If you set your defaults to "I'm not a normie, give me the real answer," it will. So tell it.

The real answer is catt — Cast All The Things. A Python CLI that casts a local file to any Cast device on your network.

pip install catt
catt scan
catt -d "Living Room TV" cast "/path/to/movie.mkv"

That's it. Three commands. No app. No ads. No "tap menu, scroll down, tap cast, wait, click yes."

I told Claude: add catt to the always-allow list. As in, never ask me permission to run cast again. Because what can you break? Nothing. Then it added the rule and now in any new session catt just works. Forever.

When the file is the wrong format, the AI just fixes it.

First try, catt failed. Wrong file format. The TV won't even show you the file in the GUI — it just hides it. No error. Just gone. Which is why you can't debug anything in a GUI. The terminal told me exactly what format mismatch happened.

I didn't even have to tell Claude to fix it. It said: I'll transcode it with ffmpeg. Re-encoded the file in five minutes on my Mac.

ffmpeg -i "movie.mkv" -c:v libx264 -preset fast -c:a aac "movie.mp4"
catt -d "Living Room TV" cast movie.mp4

Now the movie is on the TV. Halfway through I realized there were no English subtitles. I hit a button on my Mac, said "pause the show and turn on English subtitles." Done. Boom. It paused, downloaded subtitles, turned them on. I hit a button. I talked. It did stuff. This is so based.

Hacker stuff works now. That's new.

This is the thing nobody wants to admit. The corporate option — the Android TV, the cast button in the YouTube app, the Google ecosystem — is supposed to be the one that works. The hacker stuff is supposed to be more powerful but more unstable. Lightning shooting out of your fingertips. You'll break things.

That trade-off isn't true anymore. The hacker stuff just works. And it's becoming mandatory if you want to do anything. Unix isn't just for nerds. Join the command line revolution. I command the line.

This is the move. They squeeze the alternatives out. They make the GUIs worse so you fall back to their app. They make their app full of ads so you pay to remove them. The whole stack is hostile.

The terminal isn't hostile. The terminal tells you what's wrong, and the AI fixes it. That's the bypass.