heatsync tui
heat-sorted live multichat in the terminal. twitch, kick and youtube (read-only), real emotes, vim keys.
install
pick one. each gives you the same heatsync-tui.
1. download it (no rust needed). linux, on a 64-bit pc or arm board:
if that last line says "command not found", ~/.local/bin isn't on your PATH yet: run ~/.local/bin/heatsync-tui instead, or add export PATH="$HOME/.local/bin:$PATH" to your ~/.bashrc (~/.zshrc for zsh) and open a new terminal.
-
uname -mfills inx86_64(most pcs) oraarch64(raspberry pi 4/5 on a 64-bit os, asahi). anything else makes curl say "error: 404": there is no build for that machine, use cargo below -
old or odd distro, or alpine, and the file won't start? get the static build (x86_64 only): end the url with
heatsync-tui-x86_64-linux-musl -
windows (10 or newer, 64-bit): open powershell in the folder you want it in and run
curl.exe -fL -o heatsync-tui.exe https://github.com/mellen9999/heatsync-tui/releases/latest/download/heatsync-tui-x86_64-windows.exe .\heatsync-tui.exe --versionit's a terminal app: run it from powershell or windows terminal, not by double-clicking. the exe isn't code-signed, so if you download it in a browser instead, windows says "windows protected your pc": click more info, then run anyway. downloading with the powershell command above usually skips that
-
proof it's the real file: every release has a
SHA256SUMS. on linux, download it next to the binary and runsha256sum -c --ignore-missing SHA256SUMS; on windowsGet-FileHash heatsync-tui.exeshould print the same hash as the windows line -
update: run the same commands again
2. cargo (needs rust and a c compiler: gcc or clang on linux and mac, the visual studio build tools on windows):
3. arch (builds it for you, also installs the short name hs):
run
heatsync-tui # your saved channels (or a demo set)
heatsync-tui xqc forsen kick:trainwreckstv # pick channels (youtube: yt:<video id>)
heatsync-tui login # pair this terminal (see login)
keys: j/k scroll · h/l (or j/k with a side tab bar) switch channel ·
i compose · o pick a live channel (opens a temp tab, underlined) · s keep the temp tab · m manage · x close · T move tab bar · v message cursor (j/k ctrl-d/ctrl-u g/G move · r reply · y yank · d delete · b block an emote on the line · esc back) · t timestamps · P hide the pinned message · space pause · q quit.
open channels + tab-bar position persist in ~/.config/heatsync/config.
language
speaks the same 34 languages as the browser extension. it follows your system language (LC_ALL, LC_MESSAGES, LANG; the user locale on windows), english when yours isn't there. pick one yourself:
heatsync-tui lang # what it is now + the list
heatsync-tui lang de # force german (also: ja, pt_BR, zh_TW, … or auto)
it's the lang= line in ~/.config/heatsync/config. right-to-left scripts (arabic, hebrew) are shown as text, the layout isn't mirrored.
login
heatsync-tui login pairs this terminal with your heatsync account: it shows a
code, you approve it on heatsync.org, and a revocable token lands in
~/.config/heatsync (mode 0600). on the approve page you tick what the
terminal may do. chat (send chat, feed posts, dms, whispers) is always on; two
boxes are optional:
- mod — ban / timeout / delete from the tui
- account — read your dms, whispers and mention hits (also signs the live socket in)
run heatsync-tui login again any time to change the ticks. no login = read-only.
HEATSYNC_TOKEN in the environment still overrides the socket login.
tabs and commands
open with /mentions, /feed, /whispers — they pin left and stay open next run.
| tab | what it holds | how you talk |
|---|---|---|
| mentions | everything that pinged you, plus what your heatsync mention rules caught while you were away | read-only · enter jumps to the source tab |
| feed | the live heatsync feed | type to post an OP · r on a row (cursor mode) replies to it |
| whispers | twitch whispers + heatsync dms, history loads on open | r on a row fills in /w <them> or /dm <them> |
/open <channel>look at a stream in the one temp tab (underlined, never saved, replaced by the next look);/keeporssaves it, and so does a send that lands./joinalways saves/layout <heatsync.org/m/ link>load a shared layout ·/sharelayout(/sl) share yours/block <emote>hide that exact emote (not every emote with the name) ·/unblock <emote>·/blockedlists them. kept in~/.config/heatsync/config; logged in, your heatsync account gets them too, so the extension agreesalt+1..alt+9jump to that tab · what you've sent is remembered across restarts (last 200,~/.config/heatsync/history; whispers and dms are never saved)/w <user> <msg>twitch whisper ·/dm <user> <msg>heatsync dm — works from any tab/op <text>post to the feed ·/re <text>reply to the newest OP in the feed tab/wand/dmlook the name up on heatsync (and remember it); an unknown name leaves your text in the composer. whispering needs twitch linked with whispers allowed (the tui prints the exact link if not).- sends and reads need the matching tick above; if one is missing the tui says so in a line and which command fixes it.
emotes
emotes draw as real images (animated) in terminals that support inline graphics, detected automatically — nothing to set:
- kitty · ghostty · wezterm — kitty graphics, flicker-free
- foot · mlterm · contour · gnome-terminal (vte 0.78+) — sixel
- iterm2 · mintty — inline images
- anything else — emote names as text, fully usable
works inside tmux (it asks tmux for the outer terminal).
more
changelog · contributing · security · MIT