[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-9497":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":16,"forks30d":16,"starsTrendScore":19,"compositeScore":20,"rankGlobal":10,"rankLanguage":10,"license":21,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":22,"hasPages":22,"topics":24,"createdAt":10,"pushedAt":10,"updatedAt":45,"readmeContent":46,"aiSummary":47,"trendingCount":16,"starSnapshotCount":16,"syncStatus":48,"lastSyncTime":49,"discoverSource":50},9497,"frosty","tommyxchow\u002Ffrosty","tommyxchow","A mobile Twitch client for iOS and Android with 7TV, BetterTTV (BTTV), and FrankerFaceZ (FFZ) support.","https:\u002F\u002Ffrostyapp.io",null,"Dart",1008,66,12,155,0,5,24,4,18.48,"GNU Affero General Public License v3.0",false,"main",[25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44],"actions","android","chat","chat-application","dart","fastlane","firebase","flutter","flutter-apps","flutter-examples","frontend","github-actions","ios","irc","mobx","stream","streaming","twitch","video","vscode","2026-06-12 02:02:08","![Showcase of the Frosty app with screenshots in a masonry grid](https:\u002F\u002Fgithub.com\u002Ftommyxchow\u002Ffrosty\u002Fassets\u002F54859075\u002F09178dcc-2fd2-4618-8076-502719159424)\n\n\u003Cp>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ftommyxchow\u002Ffrosty\u002Factions\u002Fworkflows\u002Fci.yml\">\n    \u003Cimg\n      alt=\"Badge showing the CI status.\"\n      src=\"https:\u002F\u002Fgithub.com\u002Ftommyxchow\u002Ffrosty\u002Factions\u002Fworkflows\u002Fci.yml\u002Fbadge.svg\"\n    \u002F>\n  \u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ftommyxchow\u002Ffrosty\u002Fissues\">\n    \u003Cimg\n      alt=\"Badge showing the number of open issues.\"\n      src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fissues\u002Ftommyxchow\u002Ffrosty\"\n    \u002F>\n  \u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ftommyxchow\u002Ffrosty\u002Fcommits\">\n    \u003Cimg\n      alt=\"Badge showing the date of the last commit.\"\n      src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flast-commit\u002Ftommyxchow\u002Ffrosty\"\n    \u002F>\n  \u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ftommyxchow\u002Ffrosty\u002Fblob\u002Fmain\u002FLICENSE\">\n    \u003Cimg\n      alt=\"Badge showing the current license of the repo.\"\n      src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002Ftommyxchow\u002Ffrosty\"\n    \u002F>\n  \u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ftommyxchow\u002Ffrosty\u002Freleases\u002Flatest\">\n    \u003Cimg\n      alt=\"Badge showing the version of the latest release.\"\n      src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fv\u002Frelease\u002Ftommyxchow\u002Ffrosty\"\n    \u002F>\n  \u003C\u002Fa>\n\u003C\u002Fp>\n\n## Download\n\n\u003Cp>\n  \u003Ca href=\"https:\u002F\u002Fapps.apple.com\u002Fus\u002Fapp\u002Ffrosty-for-twitch\u002Fid1603987585\">\n    \u003Cimg\n      title=\"Get it on iOS (Apple App Store)\"\n      alt=\"Apple App Store badge.\"\n      src=\"https:\u002F\u002Fuser-images.githubusercontent.com\u002F54859075\u002F160051843-1d8b2186-97e9-4edd-a957-bb4797b71b4a.svg\"\n      width=\"200px\"\n    \u002F>\n  \u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fplay.google.com\u002Fstore\u002Fapps\u002Fdetails?id=com.tommychow.frosty\">\n    \u003Cimg\n      title=\"Get it on Android (Google Play Store)\"\n      alt=\"Google Play Store badge.\"\n      src=\"https:\u002F\u002Fuser-images.githubusercontent.com\u002F54859075\u002F160051854-21a57556-6b5a-41e9-8127-334daf1fac47.svg\"\n      width=\"225px\"\n    \u002F>\n  \u003C\u002Fa>\n\u003C\u002Fp>\n\n## Why\n\nThe official Twitch mobile app doesn't support emotes from [7TV](https:\u002F\u002Fchrome.google.com\u002Fwebstore\u002Fdetail\u002F7tv\u002Fammjkodgmmoknidbanneddgankgfejfh), [BetterTTV (BTTV)](https:\u002F\u002Fchrome.google.com\u002Fwebstore\u002Fdetail\u002Fbetterttv\u002Fajopnjidmegmdimjlfnijceegpefgped), and [FrankerFaceZ (FFZ)](https:\u002F\u002Fchrome.google.com\u002Fwebstore\u002Fdetail\u002Ffrankerfacez\u002Ffadndhdgpmmaapbmfcknlfgcflmmmieb) — 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.\n\n## Features\n\n- Support for 7TV, BetterTTV, and FrankerFaceZ emotes and badges\n- Browse followed streams, top streams, and top categories\n- Autocomplete for emotes and user mentions\n- Light, dark, and black (OLED) themes\n- Search for channels and categories\n- See and filter chatters in a channel\n- Local chat user message history\n- Theater and fullscreen mode\n- Watch live streams with chat\n- Picture-in-picture mode\n- Block and report users\n- Emote menu\n- Sleep timer\n- And more...\n\nFor a more detailed overview, visit [frostyapp.io](https:\u002F\u002Fwww.frostyapp.io\u002F).\n\n## Development setup\n\n1. [Install Flutter](https:\u002F\u002Fdocs.flutter.dev\u002Fget-started\u002Finstall).\n\n2. Clone this repo (e.g., `git clone https:\u002F\u002Fgithub.com\u002Ftommyxchow\u002Ffrosty.git`).\n\n3. Go to the [Twitch dev console](https:\u002F\u002Fdev.twitch.tv\u002Flogin) and register a new application to retrieve a **Client ID** and **Client Secret**.\n\n4. Copy `.env.example` to `.env` and fill in your credentials:\n\n   ```bash\n   cp .env.example .env\n   ```\n\n5. Run `flutter pub get` to fetch all the dependencies.\n\n6. Choose an emulator or device and run the app! The included VS Code launch configurations will automatically read your `.env` file.\n\n7. (Optional) Run `dart run scripts\u002Fget_twitch_token.dart` to quickly get a user auth token. Long-press the **Anonymous** account tile in the app to log in.\n\n> [!IMPORTANT]\n> Frosty uses [MobX](https:\u002F\u002Fmobx.netlify.app\u002F) for state management. Please refer to the documentation about code generation, otherwise your changes within MobX stores may not be applied.\n\n## Donate\n\nIf you appreciate my work and would like to donate\u002Ftip, you can through:\n\n- [GitHub Sponsors](https:\u002F\u002Fgithub.com\u002Fsponsors\u002Ftommyxchow)\n- [Buy Me a Coffee](https:\u002F\u002Fwww.buymeacoffee.com\u002Ftommychow)\n\nOtherwise, downloading Frosty, leaving a review, or starring this repository is more than enough to show support. Thank you!\n\n## License\n\nFrosty is licensed under [AGPL-3.0-or-later](LICENSE).\n","Frosty 是一个为 iOS 和 Android 设备设计的 Twitch 客户端，支持 7TV、BetterTTV (BTTV) 和 FrankerFaceZ (FFZ) 的表情和徽章。其核心功能包括浏览关注的直播、热门直播及分类，自动补全表情和用户提及，以及多种主题模式选择等。该应用利用 Dart 语言与 Flutter 框架开发，确保了跨平台的一致性和性能。它非常适合那些希望在移动设备上获得更丰富Twitch体验的用户，尤其是在使用第三方扩展的表情时能保持聊天内容的可读性。此外，Frosty 还提供了诸如本地消息历史记录、影院模式观看等功能，增强了用户体验。",2,"2026-06-11 03:23:06","top_language"]