Fork of tommyxchow/frosty with TwitchAdSolutions (vaft) adblock https://frostyapp.io
Find a file
copilot 47150d0ab3
All checks were successful
Actions probe / probe (push) Successful in 0s
Release APK / Build & publish release (push) Successful in 7m59s
Fix tag pagination and persist viewer sort.
Load tag (and language) directories via Helix with client-side tag matching so scroll can continue past the GQL integrity wall. Re-sort lists locally after each fetch and store streamViewerSort in Settings.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-01 11:41:25 +02:00
.claude feat(video,chat): native player, ad-break awareness, chat send/delay reliability, and tab redesign (#567) 2026-06-13 17:06:24 -04:00
.cursor chore(mcp): share dart server across grok, claude, and cursor 2026-08-23 11:08:03 -07:00
.forgejo/workflows ci: add temporary Actions probe workflow 2026-09-30 11:36:53 +02:00
.github build(deps): bump Flutter to 3.47.0 and Android Gradle stack (#590) 2026-08-15 14:51:05 -07:00
.vscode add .env-based config, token script, and VS Code launch configs 2026-03-01 20:09:39 -08:00
android fix: correct typos and grammar in comments and login copy 2026-08-17 19:07:42 -07:00
assets release v5.2.1 2026-09-30 11:36:03 +02:00
docs Add Forgejo Actions release workflow for Obtainium APK updates. 2026-09-30 10:59:23 +02:00
ios chore(store): drop brand names from listing title and short copy 2026-08-17 18:52:05 -07:00
lib Fix tag pagination and persist viewer sort. 2026-10-01 11:41:25 +02:00
scripts Add script to mint and upload Forgejo Obtainium release secrets. 2026-09-30 11:34:44 +02:00
test Add TwitchAdSolutions-style ad blocking for native and WebView players. 2026-09-30 10:55:50 +02:00
web ci(workflows): align xcode setup and refresh locks 2026-06-13 15:52:15 -07:00
.env.example add .env-based config, token script, and VS Code launch configs 2026-03-01 20:09:39 -08:00
.gitignore build(deps): bump Flutter to 3.47.0 and Android Gradle stack (#590) 2026-08-15 14:51:05 -07:00
.mcp.json chore(mcp): share dart server across grok, claude, and cursor 2026-08-23 11:08:03 -07:00
.metadata Upgrade Flutter/Dart and dependencies (#265) 2023-05-30 21:10:04 -04:00
AGENTS.md docs(agents): keep in-app notes to three consecutive versions 2026-08-16 12:26:57 -07:00
analysis_options.yaml build(deps): bump Flutter to 3.47.0 and Android Gradle stack (#590) 2026-08-15 14:51:05 -07:00
DESIGN.md Fix tag pagination and persist viewer sort. 2026-10-01 11:41:25 +02:00
firebase.json Re-run flutterfire configure and fix plugin versions 2024-08-13 00:03:53 -07:00
LICENSE Create LICENSE 2022-01-11 15:29:38 -05:00
pubspec.lock build(deps): pick up compatible lockfile bumps 2026-08-16 12:33:59 -07:00
pubspec.yaml Fix tag pagination and persist viewer sort. 2026-10-01 11:41:25 +02:00
README.md replace get-twitch-token bash script with cross-platform Dart script 2026-03-07 16:59:31 -08:00

Showcase of the Frosty app with screenshots in a masonry grid

Badge showing the CI status. Badge showing the number of open issues. Badge showing the date of the last commit. Badge showing the current license of the repo. Badge showing the version of the latest release.

Download

Apple App Store badge. Google Play Store badge.

Why

The official Twitch mobile app doesn't support emotes from 7TV, BetterTTV (BTTV), and FrankerFaceZ (FFZ) — third-party extensions for Twitch used by millions. As a result, only emote text names are rendered rather than their actual image or GIF, making the chat unreadable in many channels.

Features

  • Support for 7TV, BetterTTV, and FrankerFaceZ emotes and badges
  • Browse followed streams, top streams, and top categories
  • Autocomplete for emotes and user mentions
  • Light, dark, and black (OLED) themes
  • Search for channels and categories
  • See and filter chatters in a channel
  • Local chat user message history
  • Theater and fullscreen mode
  • Watch live streams with chat
  • Picture-in-picture mode
  • Block and report users
  • Emote menu
  • Sleep timer
  • And more...

For a more detailed overview, visit frostyapp.io.

Development setup

  1. Install Flutter.

  2. Clone this repo (e.g., git clone https://github.com/tommyxchow/frosty.git).

  3. Go to the Twitch dev console and register a new application to retrieve a Client ID and Client Secret.

  4. Copy .env.example to .env and fill in your credentials:

    cp .env.example .env
    
  5. Run flutter pub get to fetch all the dependencies.

  6. Choose an emulator or device and run the app! The included VS Code launch configurations will automatically read your .env file.

  7. (Optional) Run dart run scripts/get_twitch_token.dart to quickly get a user auth token. Long-press the Anonymous account tile in the app to log in.

Important

Frosty uses MobX for state management. Please refer to the documentation about code generation, otherwise your changes within MobX stores may not be applied.

Donate

If you appreciate my work and would like to donate/tip, you can through:

Otherwise, downloading Frosty, leaving a review, or starring this repository is more than enough to show support. Thank you!

License

Frosty is licensed under AGPL-3.0-or-later.