tmi.js

几行代码接入 Twitch 聊天,快速打造聊天机器人和互动应用。

tmi.js 是一个用于连接 Twitch 聊天室的 JavaScript 库,实现了 Twitch 消息接口(TMI)。它解决了开发者需要与 Twitch 聊天室进行实时交互时面临的协议复杂性问题,提供了一套简洁的 API,让开发者可以轻松地收发聊天消息、处理用户加入/离开、订阅、私信等事件。核心能力包括:自动重连、消息解析、频道管理、命令处理等。它支持浏览器和 Node.js 环境,被广泛应用于 Twitch 聊天机器人、互动游戏、数据统计等场景。通过事件驱动模型,开发者可以快速构建响应式聊天应用,无需关注底层 WebSocket 连接细节。

开源 free 对话助手
访问官网 ↗ GitHub ↗ 文档 ↗
GitHub 星标 ★ 1588
维护状态 低维护
是否开源 是
定价模式 free

项目预览

项目数据

分类对话助手
开发团队tmijs
所属国家
官网地址https://tmijs.com
定价模式free
价格说明开源JavaScript库,MIT许可证,完全免费,无付费版本。
访问状态
是否开源是
开源协议MIT
主要语言JavaScript
技术栈/模型chat,chatbot,javascript,nodejs,tmi,tmijs,twitch,twitchdev
GitHub 星标★ 1588
30天Star增速
HF 下载量
上线时间2015-06-07 00:00:00
代码更新—
仓库体积—
本站数据更新—
维护状态低维护
中文支持
访问方式
移动端支持
综合评分
收录时间2026-08-09
浏览次数5

Star 增长趋势

本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整

正在加载星标数据…

技术标签

使用教程

—

难度:入门 约 5 分钟 部署方式:库/依赖 6 步

环境要求

  • Node.js 环境,npm 可正常执行(Node 端使用)
  • Twitch 机器人账号及 OAuth 令牌(格式为 oauth: 开头)
  • 需要连接的目标频道名称(如 my_channel)
  • 浏览器端使用时需引入 tmi.min.js 脚本文件

安装与启动步骤

  1. 1安装 tmi.js

    在项目目录下通过 npm 安装 tmi.js 依赖包,这是 Node 环境使用的第一步。

    npm i tmi.js
  2. 2创建并连接客户端

    引入 tmi.js,用 identity 填机器人账号和令牌,channels 填要加入的频道,再调用 connect 连接。

    const tmi = require('tmi.js');
    const client = new tmi.Client({
        options: { debug: true },
        identity: {
            username: 'bot_name',
            password: 'oauth:my_bot_token'
        },
        channels: [ 'my_channel' ]
    });
    client.connect().catch(console.error);
  3. 3监听并回复消息

    监听 message 事件,示例中收到 !hello 时向该频道回复 @用户名, heya!,self 用于过滤自己发的消息。

    client.on('message', (channel, tags, message, self) => {
        if(self) return;
        if(message.toLowerCase() === '!hello') {
            client.say(channel, `@${tags.username}, heya!`);
        }
    });
  4. 4浏览器中引入

    浏览器环境直接引入 tmi.min.js,库会挂在 window 上的 tmi 上,用法与 Node 端一致。

  5. 5从源码自行构建

    需要自定义构建时,克隆仓库后安装依赖并执行 build,产物可用于浏览器端。

    git clone https://github.com/tmijs/tmi.js.git
    npm install
    npm run build
  6. 6安装类型定义

    TypeScript 项目可额外安装社区类型声明包,获得类型提示(作为开发依赖)。

    npm i -D @types/tmi.js

关键配置

配置项必填说明示例
identity.username是机器人账号的 Twitch 用户名bot_name
identity.password是机器人账号的 OAuth 令牌,需带 oauth: 前缀oauth:my_bot_token
channels是要加入的频道数组,可填多个频道名[ 'my_channel' ]
options.debug否开启调试输出,便于排查连接问题{ debug: true }

如何确认成功

运行时若未打印 connect 相关报错即表示连接正常;在频道发送 !hello,机器人会回复 @用户名, heya!。

常见问题

Q:identity.password 应该填什么格式?

A:按 README 示例,需填入机器人账号的令牌并以 oauth: 开头,例如 oauth:my_bot_token,而不是账号密码。

Q:浏览器里怎么使用 tmi.js?

A:页面引入 tmi.min.js 后,库以 tmi 暴露在 window 上,直接使用 new tmi.Client({...}) 并调用 client.connect()。

Q:想自己构建浏览器版本怎么办?

A:先 git clone 仓库,再执行 npm install 和 npm run build,构建产物即可用于浏览器端引入。

Q:TypeScript 项目如何获得类型提示?

A:额外安装类型声明包 npm i -D @types/tmi.js,即可在 TypeScript 中获得类型定义。

注意事项

  • README 示例中的 bot_name、oauth:my_bot_token、my_channel 均为示例值,需替换成自己的真实信息
  • Node 端与浏览器端共用同一套 API,区别只在引入方式
  • 浏览器脚本路径 /scripts/tmi.min.js 需按实际部署位置调整,或使用 Releases 页面提供的预构建版本

核心亮点

  • API 简洁,事件驱动,上手快,文档清晰
  • 自动处理连接和重连,稳定性好
  • 支持浏览器和 Node.js,跨平台使用

不足之处

  • 仅支持 Twitch 平台,不适用于其他聊天服务
  • 文档/社区待观察

适用场景

  • 构建 Twitch 聊天机器人(如自动回复、点歌)
  • 开发直播互动游戏(如观众投票、抽奖)
  • 分析聊天数据,进行舆情或热度统计

替代项目

irc-framework、node-irc、TwitchIO

项目介绍

tmi.js 是对话助手领域的开源项目,由 tmijs 开发,2015 年首次发布。

在全站 13,635 个收录项目中,它的 GitHub 星标数(1,588)位列前 30%,在对话助手分类中处于中上游。

项目已超过三个月没有代码更新,维护节奏明显放缓,最近一次代码更新于 2025-11-21。开源JavaScript库,MIT许可证,完全免费,无付费版本。从国内网络环境看,可直接访问。

它主要面向的使用场景是:构建Twitch聊天机器人(如自动回复、点歌)。同类可对比的替代方案包括 irc-framework、node-irc、TwitchIO。

上一篇:alan-sdk-ionic

下一篇:Risuai

同类项目推荐

kelivo 开源

一个应用,畅聊所有大模型,手机电脑鸿蒙全搞定

A Flutter LLM Chat Client. Support Mobile & Desktop.

★ 4123 2026-08-09
open-webui 开源

给本地模型配个漂亮聊天室,全家都能用

User-friendly AI Interface (Supports Ollama, OpenAI API, ...)

★ 153897 2026-08-09
prompts.chat 开源

海量好提示词,抄了就能让 AI 更听话

f.k.a. Awesome ChatGPT Prompts. Share, discover, and collect prompts from the commun···

★ 171966 2026-08-09
elia 开源

终端里用键盘快速聊 AI,多模型切换不打断思路

A snappy, keyboard-centric terminal user interface for interacting with large langua···

★ 2481 2026-08-09