HasanAbi Chat Thing - a compact, customisable, one-page Twitch client, orientated around the Hasan Piker stream, aka the Piker Broadcasting Service (PBS); a general/second-screen/accessibility web tool with organizing info, media links, multi-stream support, and other extras

liberate the HasanAbi Twitch chat with a web tool thing, for general/second-screen/accessibility use, with stats, media and info hub + more - no build step, no install (though a PWA), no account needed to watch, settings and logs stored locally, recently missed chat back-filled if possible, and a super customisable UI


open the chat thing →

chat

extras

resources

themes

click to try

three local custom theme slots available, copy settings to url for everything

layouts

1col
2col
2x2
the 2x2 layout2x2
3col

alt twitch chat

this pagechatterinochatterino7chattychatsenfrostydankchatxtrajchatkapchatraftchattwitch-tuiany irc clientsmarttv clients0undtvtwitch apptwitch popout
runs onwebwin·lin·macwin·lin·macwin·lin·macios·androidios·androidandroidandroidwebwebwebterminalanythingtvtvios·android·tv·consolesweb
kindall-in-onethe standardforkchatchat-firstfull clientchat onlyfull clientoverlayoverlaychat gridterminalirctvtvofficialofficial
3rd-party emotes7tv·bttv·ffz7tv·bttv·ffz7tv·bttv·ffz7tv·bttv·ffz7tv·bttv·ffz7tv·bttv·ffz7tv·bttv·ffz7tv·bttv·ffz7tv·bttv·ffzbttv·ffz7tv·bttv·ffznames onlynames onlyshows themshows themtwitch onlytwitch only
emote pickersearchableyesyesyesyesyesyesyes-------yes-
badgesyesyesyesyeslibraryyesyesyes-------yes-
paints--yes--------------
sendyesyesyesyesyesyesyesyesnononoyesyes--yesyes
reply / threadsreply+whisperthreadsthreads------------yes-
autocompletetabyesyesyesyesyesyesyes----per client--yesyes
watchembednonononoyesnoyesnononononoyesyesyesno
browse-----yes-yes-----yesyesyes-
vods-----yes-downloads-----yesyesyes-
chat replay-----yes-yes-----yesyesyes-
multi-chanmergesplitssplitstabstabsnotabsnononogridnobuffersnononono
notifsmention+liveyesyesyesyesyesyesyes----highlights--yes-
filtershighlight+hideyesyesyes-yes------per client--yesyes
searchfind+30dyesyesyes--------logs----
archive30d storelogslogslogs--------logs----
backfillyes----------------
link previewscards+embedstooltiptooltip--------------
user cardshistory+pronounsyesyesyesyesyesyesyes----whois--yes-
pronounsyesyesyes-yesyes-----------
mod toolsquickyesyesyes--------cmds--yes-
statsmsgs/sec+tops----------------
resourceslists+links----------------
layouts16splitssplits--------------
customthemes+fontsthemesthemes+paints-----csscss-themesper client----
plugins-lualuacmds--------scripts----
obs overlay--------yesyes-------
adsnononononononononononononononoyesno
fossagplgplgplgplgplgplgplyesnononogplgplyesyesnono

multi-chan: merge = rooms in one feed · splits/tabs/grid = side by side · foss: license or public source · green = ticks the box

backend

Neocities ships a strict CSP (connect-src 'self'), so no WebSocket to Twitch IRC is possible. the page embeds a hidden iframe relay hosted on GitHub Pages (no CSP) and talks postMessage to it: the frontend owns all presentation, the relay owns every outbound connection. a Cloudflare worker, linkpeek, scrapes og/twitter/JSON-LD/oEmbed metadata for link cards and stats titles.
→ twitch-chat-relay: the relay & worker source