Twitch TUI
- Rust 96.9%
- HTML 1.6%
- JavaScript 0.8%
- Makefile 0.7%
| assets | ||
| src | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| Makefile | ||
| my.config.toml | ||
| README.md | ||
| TODO | ||
Twitch TUI RS
A terminal UI for Twitch with local + remote playback over SSH, built with ratatui in Rust.
Table of Contents
Prerequisites
- streamlink
- A media player in your
PATH(mpvdefault) - (optional) chatterino for chat
- (optional) SSH key-based auth for remote playback
Verify with: twt --deps
Installation
cargo install --git https://git.kvndl.xyz/kvndl/twitch-tui-rs.git
Or from local source:
git clone https://git.kvndl.xyz/kvndl/twitch-tui-rs.git
cd twitch-tui-rs
cargo install --path .
Configuration
Config is created at ~/.config/twitch-tui-rs/config.toml on first run:
streamlink_player = "mpv" # or "vlc"
# player_args = ""
[chat]
client = "browser" # "browser", "chatterino", or "none"
close_on_stream_end = true
[player]
low_latency = false
enable_title_metadata = true
On first launch, authentication is required. The app uses the Device Code flow — no browser redirect or manual token setup:
- The terminal displays a short code and a URL
- Open
https://www.twitch.tv/activateand enter the code - The app detects authorization automatically and continues
The token is cached locally and reused on subsequent runs.
Remote Playback
Play streams on a remote machine over SSH.
- Deploys a helper daemon over SSH on first use
- Persistent SSH channel — no per-command overhead
- Toggle local/remote with
Ctrl+R
remote_host = "pihost" # SSH host alias from ~/.ssh/config
# remote_player = "mpv"
# remote_player_args = "--vo=drm --hwdec=auto"
Keybinds
Privacy
This app requests only user:read:follows — it reads which channels you follow and nothing else. The app cannot modify your account, send messages, or access private data.
Token is cached at ~/.config/twitch-tui-rs/token.json with owner-only permissions (0600).
To revoke access: Twitch Connections settings.
License
MIT