ReelShell

Terminal-native streaming service.

Services
Engineering
Industries
Dev Tools
Tools
GoTUImpv
Highlight
A terminal can be a streaming client.
Live
Archived

A terminal can be a streaming client

Browsing something to watch is a browser activity by convention rather than by necessity. The catalogue is an API, the choice is a list, and the playback is a process — none of which needs a page.

ReelShell is a terminal-native tool to browse movies, series and anime, built in Go, where selection happens in a TUI and playback is handed to a real player rather than pretended at in text.

A TUI catalogue
Delegated to mpv
Written in Go
Browse in the terminal, hand playback to something that can actually decode.

The line between a client and a player

The temptation with a project like this is to render video in the terminal — half-block characters, colour quantisation, a frame rate that makes it a stunt. It looks impressive in a screen recording and it is unwatchable.

So playback delegates to mpv, which decodes properly, and the terminal does the part it is genuinely better at: a fast, keyboard-driven catalogue with no page loads. Knowing which half of a problem your interface is good at is most of the design.

Playback currently goes through a dummy provider that always returns a public-domain test clip.

Language
GoSingle binarygo.mod / go.sum
Interface
Terminal UIKeyboard-drivenNo page loads
Playback
Delegated to mpvDummy provider todayPublic-domain test clip
Not built
Nyaa / torrent providerReal source resolutionDeliberately absent
Browse without a browser
One binary, no runtime
The provider is a seam

01 / 03

What it cost

The provider interface is the whole architecture. Everything above it — the catalogue, the TUI, the playback hand-off — is written against a seam that returns a stream URL. That is what lets the shipped version run against a dummy provider and still be a real program rather than a mock.

Go was chosen for the boring reason that it is right: a single static binary with no runtime to install is what a terminal tool should be, and it is the difference between something people try and something people keep.

Where it does not work yet

This is the one on the list that most needs its own paragraph, because the headline claim and the shipped behaviour are not the same thing.

Playback always returns a public-domain test clip. The dummy provider is what is wired up. The real source-resolution providers live in a private companion repository and are never published here — and the README says outright that the Nyaa/torrent provider from v2 is "deliberately not built."

So what this repository demonstrates is the client: the catalogue, the interface, the seam and the hand-off. What it does not do, out of the box, is get you a film.