{"adoption": {"forks": 204, "observed_at": "2026-08-28T04:05:08.124540+00:00", "stars": 1589}, "canonical_url": "https://ross.abutalabs.com/products/tmijs", "card": {"archived": false, "artifact_type": "library", "description": "💬 Javascript library for the Twitch Messaging Interface. (Twitch.tv)", "domain": ["messaging-platforms", "chatbots", "web-development", "developer-tools"], "enriched": true, "function": ["websocket", "http-client", "chatbot", "sdk"], "health_score": 52, "homepage": "https://tmijs.com", "language": "JavaScript", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["tmijs/tmi.js"], "name": "tmijs/tmi.js", "platform": ["browser", "cross-platform"], "pushed_at": "2025-11-21T21:44:22+00:00", "repo": "tmijs/tmi.js", "stars": 1589, "tags": ["twitch", "tmi", "irc", "chat", "streaming", "twitch-bots", "chat-overlay", "nodejs", "javascript"], "topics": ["twitch", "chatbot", "javascript", "nodejs", "tmi", "tmijs", "twitchdev", "chat"], "urls": [], "use_cases": ["build a twitch chat bot", "connect to twitch chat from nodejs", "create a chat overlay for obs", "handle twitch chat commands like !hello", "read twitch chat messages anonymously", "send messages to twitch chat with a bot account"], "what_it_is": "tmi.js is a JavaScript library for connecting to and interacting with Twitch chat (IRC) from Node.js or the browser. It provides a client for reading messages, sending chat commands, and building Twitch bots and chat overlays.", "when_to_avoid": ["you need Twitch API features beyond chat (the IRC connection lost some commands in 2023)", "you are building bots for platforms other than Twitch", "you need a fully supported long-term solution without awareness of the planned v2 rewrite"], "when_to_choose": ["you need a battle-tested JavaScript client for Twitch chat IRC", "you want to build Twitch bots or chat overlays in Node.js or the browser", "you want a simple event-based API for reading and sending chat messages"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/tmijs", "repo": "tmijs/tmi.js", "role": "main", "score": 47}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:08.124540+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:54:58.821984+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fb27fd66886f90cd8bd7292de88aa408c2405579f9c1659b26d8c108fb52d899", "fetched_at": "2026-08-28T04:05:08.124540+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tmijs/tmi.js"}, {"content_hash": "31ffc6d4e5f6285ec1994ad3614259ce487a09e34f038b4175d79e67120da57b", "fetched_at": "2026-08-29T11:25:57.501042+00:00", "kind": "homepage", "missing": false, "url": "https://tmijs.com"}, {"content_hash": "05217cb725041e3f6785530c2932be3c42b7125f4a2aadc501793b6ec907795e", "fetched_at": "2026-08-29T11:25:57.504758+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/tmi.js"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:08.124540+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:54:58.821984+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fb27fd66886f90cd8bd7292de88aa408c2405579f9c1659b26d8c108fb52d899", "fetched_at": "2026-08-28T04:05:08.124540+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tmijs/tmi.js"}, {"content_hash": "31ffc6d4e5f6285ec1994ad3614259ce487a09e34f038b4175d79e67120da57b", "fetched_at": "2026-08-29T11:25:57.501042+00:00", "kind": "homepage", "missing": false, "url": "https://tmijs.com"}, {"content_hash": "05217cb725041e3f6785530c2932be3c42b7125f4a2aadc501793b6ec907795e", "fetched_at": "2026-08-29T11:25:57.504758+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/tmi.js"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:54:58.821984+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fb27fd66886f90cd8bd7292de88aa408c2405579f9c1659b26d8c108fb52d899", "fetched_at": "2026-08-28T04:05:08.124540+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tmijs/tmi.js"}, {"content_hash": "31ffc6d4e5f6285ec1994ad3614259ce487a09e34f038b4175d79e67120da57b", "fetched_at": "2026-08-29T11:25:57.501042+00:00", "kind": "homepage", "missing": false, "url": "https://tmijs.com"}, {"content_hash": "05217cb725041e3f6785530c2932be3c42b7125f4a2aadc501793b6ec907795e", "fetched_at": "2026-08-29T11:25:57.504758+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/tmi.js"}], "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:05:08.124540+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:08.124540+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:08.124540+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:54:58.821984+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fb27fd66886f90cd8bd7292de88aa408c2405579f9c1659b26d8c108fb52d899", "fetched_at": "2026-08-28T04:05:08.124540+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tmijs/tmi.js"}, {"content_hash": "31ffc6d4e5f6285ec1994ad3614259ce487a09e34f038b4175d79e67120da57b", "fetched_at": "2026-08-29T11:25:57.501042+00:00", "kind": "homepage", "missing": false, "url": "https://tmijs.com"}, {"content_hash": "05217cb725041e3f6785530c2932be3c42b7125f4a2aadc501793b6ec907795e", "fetched_at": "2026-08-29T11:25:57.504758+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/tmi.js"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:08.124540+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:08.124540+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:54:58.821984+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fb27fd66886f90cd8bd7292de88aa408c2405579f9c1659b26d8c108fb52d899", "fetched_at": "2026-08-28T04:05:08.124540+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tmijs/tmi.js"}, {"content_hash": "31ffc6d4e5f6285ec1994ad3614259ce487a09e34f038b4175d79e67120da57b", "fetched_at": "2026-08-29T11:25:57.501042+00:00", "kind": "homepage", "missing": false, "url": "https://tmijs.com"}, {"content_hash": "05217cb725041e3f6785530c2932be3c42b7125f4a2aadc501793b6ec907795e", "fetched_at": "2026-08-29T11:25:57.504758+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/tmi.js"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:08.124540+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:08.124540+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:08.124540+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:54:58.821984+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fb27fd66886f90cd8bd7292de88aa408c2405579f9c1659b26d8c108fb52d899", "fetched_at": "2026-08-28T04:05:08.124540+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tmijs/tmi.js"}, {"content_hash": "31ffc6d4e5f6285ec1994ad3614259ce487a09e34f038b4175d79e67120da57b", "fetched_at": "2026-08-29T11:25:57.501042+00:00", "kind": "homepage", "missing": false, "url": "https://tmijs.com"}, {"content_hash": "05217cb725041e3f6785530c2932be3c42b7125f4a2aadc501793b6ec907795e", "fetched_at": "2026-08-29T11:25:57.504758+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/tmi.js"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:08.124540+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:08.124540+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:54:58.821984+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fb27fd66886f90cd8bd7292de88aa408c2405579f9c1659b26d8c108fb52d899", "fetched_at": "2026-08-28T04:05:08.124540+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tmijs/tmi.js"}, {"content_hash": "31ffc6d4e5f6285ec1994ad3614259ce487a09e34f038b4175d79e67120da57b", "fetched_at": "2026-08-29T11:25:57.501042+00:00", "kind": "homepage", "missing": false, "url": "https://tmijs.com"}, {"content_hash": "05217cb725041e3f6785530c2932be3c42b7125f4a2aadc501793b6ec907795e", "fetched_at": "2026-08-29T11:25:57.504758+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/tmi.js"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:54:58.821984+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fb27fd66886f90cd8bd7292de88aa408c2405579f9c1659b26d8c108fb52d899", "fetched_at": "2026-08-28T04:05:08.124540+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tmijs/tmi.js"}, {"content_hash": "31ffc6d4e5f6285ec1994ad3614259ce487a09e34f038b4175d79e67120da57b", "fetched_at": "2026-08-29T11:25:57.501042+00:00", "kind": "homepage", "missing": false, "url": "https://tmijs.com"}, {"content_hash": "05217cb725041e3f6785530c2932be3c42b7125f4a2aadc501793b6ec907795e", "fetched_at": "2026-08-29T11:25:57.504758+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/tmi.js"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:54:58.821984+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fb27fd66886f90cd8bd7292de88aa408c2405579f9c1659b26d8c108fb52d899", "fetched_at": "2026-08-28T04:05:08.124540+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tmijs/tmi.js"}, {"content_hash": "31ffc6d4e5f6285ec1994ad3614259ce487a09e34f038b4175d79e67120da57b", "fetched_at": "2026-08-29T11:25:57.501042+00:00", "kind": "homepage", "missing": false, "url": "https://tmijs.com"}, {"content_hash": "05217cb725041e3f6785530c2932be3c42b7125f4a2aadc501793b6ec907795e", "fetched_at": "2026-08-29T11:25:57.504758+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/tmi.js"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:54:58.821984+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fb27fd66886f90cd8bd7292de88aa408c2405579f9c1659b26d8c108fb52d899", "fetched_at": "2026-08-28T04:05:08.124540+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tmijs/tmi.js"}, {"content_hash": "31ffc6d4e5f6285ec1994ad3614259ce487a09e34f038b4175d79e67120da57b", "fetched_at": "2026-08-29T11:25:57.501042+00:00", "kind": "homepage", "missing": false, "url": "https://tmijs.com"}, {"content_hash": "05217cb725041e3f6785530c2932be3c42b7125f4a2aadc501793b6ec907795e", "fetched_at": "2026-08-29T11:25:57.504758+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/tmi.js"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 53, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4105, "days_push": 285, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 47, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}