{"adoption": {"forks": 65, "observed_at": "2026-08-28T04:04:17.013675+00:00", "stars": 1297}, "canonical_url": "https://ross.abutalabs.com/products/twire", "card": {"archived": false, "artifact_type": "application", "description": "Twire is an alternative and open source Twitch client for Android", "domain": ["media", "android-tools", "entertainment", "self-hosted"], "enriched": true, "function": ["video-processing", "chat-interface", "ui-components"], "health_score": 89, "homepage": null, "language": "Kotlin", "license": "GPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["twireapp/Twire"], "name": "twireapp/Twire", "platform": ["jvm"], "pushed_at": "2026-07-10T02:22:18+00:00", "repo": "twireapp/Twire", "stars": 1297, "tags": ["twitch-client", "stream-player", "ad-free", "vod", "custom-emotes", "open-source-client", "android", "mobile"], "topics": ["android", "twitch", "twitch-tv", "twitch-client", "java", "hacktoberfest"], "urls": [], "use_cases": ["watch twitch streams on android without ads", "open source twitch client for android", "watch vods with chat replay on mobile", "use bttv ffz and 7tv emotes on twitch android", "picture in picture twitch streaming app", "ad-free twitch browsing on my phone"], "what_it_is": "Twire is an open-source, ad-free alternative Twitch browser and stream player for Android, forked from Pocket Plays for Twitch. It supports VODs with chat replay, custom emotes, picture-in-picture, and Twitch account login.", "when_to_avoid": ["you need an iOS or desktop Twitch client", "you require features only available in the official Twitch app, such as drops or purchases", "you need a library or API to integrate Twitch into your own app"], "when_to_choose": ["you want an ad-free, open-source Twitch experience on Android", "you need VOD playback with chat replay and custom emotes", "you prefer F-Droid-installable apps with a customizable UI"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/twire", "repo": "twireapp/Twire", "role": "main", "score": 76}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:17.013675+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:53:54.604940+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dbf2116686a9f5d008295678838cb98e9194ceb0620be80355d8ea3d9e978166", "fetched_at": "2026-08-28T04:04:17.013675+00:00", "kind": "readme", "missing": false, "url": "https://github.com/twireapp/Twire"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:17.013675+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:53:54.604940+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dbf2116686a9f5d008295678838cb98e9194ceb0620be80355d8ea3d9e978166", "fetched_at": "2026-08-28T04:04:17.013675+00:00", "kind": "readme", "missing": false, "url": "https://github.com/twireapp/Twire"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:53:54.604940+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dbf2116686a9f5d008295678838cb98e9194ceb0620be80355d8ea3d9e978166", "fetched_at": "2026-08-28T04:04:17.013675+00:00", "kind": "readme", "missing": false, "url": "https://github.com/twireapp/Twire"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:04:17.013675+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:17.013675+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:17.013675+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:53:54.604940+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dbf2116686a9f5d008295678838cb98e9194ceb0620be80355d8ea3d9e978166", "fetched_at": "2026-08-28T04:04:17.013675+00:00", "kind": "readme", "missing": false, "url": "https://github.com/twireapp/Twire"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:17.013675+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:17.013675+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:53:54.604940+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dbf2116686a9f5d008295678838cb98e9194ceb0620be80355d8ea3d9e978166", "fetched_at": "2026-08-28T04:04:17.013675+00:00", "kind": "readme", "missing": false, "url": "https://github.com/twireapp/Twire"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:17.013675+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:17.013675+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:17.013675+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:53:54.604940+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dbf2116686a9f5d008295678838cb98e9194ceb0620be80355d8ea3d9e978166", "fetched_at": "2026-08-28T04:04:17.013675+00:00", "kind": "readme", "missing": false, "url": "https://github.com/twireapp/Twire"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:17.013675+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:17.013675+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:53:54.604940+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dbf2116686a9f5d008295678838cb98e9194ceb0620be80355d8ea3d9e978166", "fetched_at": "2026-08-28T04:04:17.013675+00:00", "kind": "readme", "missing": false, "url": "https://github.com/twireapp/Twire"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:53:54.604940+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dbf2116686a9f5d008295678838cb98e9194ceb0620be80355d8ea3d9e978166", "fetched_at": "2026-08-28T04:04:17.013675+00:00", "kind": "readme", "missing": false, "url": "https://github.com/twireapp/Twire"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:53:54.604940+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dbf2116686a9f5d008295678838cb98e9194ceb0620be80355d8ea3d9e978166", "fetched_at": "2026-08-28T04:04:17.013675+00:00", "kind": "readme", "missing": false, "url": "https://github.com/twireapp/Twire"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:53:54.604940+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dbf2116686a9f5d008295678838cb98e9194ceb0620be80355d8ea3d9e978166", "fetched_at": "2026-08-28T04:04:17.013675+00:00", "kind": "readme", "missing": false, "url": "https://github.com/twireapp/Twire"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 91, "longevity": 100, "rhythm": 44}, "computed_at": "2026-09-03T02:39:23.370411+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2719, "days_push": 55, "days_rel": 378, "gap_med": 22.5, "n_releases_24m": 3}, "score": 76, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}