Baileys 是一个基于 WebSocket 协议的 TypeScript/JavaScript 开源库,它通过逆向工程 WhatsApp Web 的通信机制,让你无需申请官方 API(WhatsApp Business API 需企业资质、审核严、费用高),就能在自己的应用中实现消息收发、联系人管理、群组操作等核心功能。它本质上是一个“本地化 WhatsApp 客户端 SDK”,帮你绕过官方封闭生态,快速构建客服机器人、自动化通知系统、社群运营工具等场景应用。
核心功能
- 全功能消息交互:支持发送文本、图片、音频、视频、文档、联系人卡片、位置信息,以及接收并解析所有类型消息(含已读回执、输入状态)
- 多会话与设备兼容:可同时管理多个 WhatsApp 账号(扫码登录后持久化会话),完美适配 Node.js、Deno 和 Bun 运行时,轻量高效
- 实时事件驱动架构:内置完整事件系统(如
chats.upsert、messages.upsert、connection.update),轻松监听新消息、联系人变更、网络状态等关键事件 - 群组与状态管理:创建/退出群组、修改群信息、获取群成员列表、设置/更新个人状态(Status)、管理群管理员权限
- 离线消息同步与缓存:自动处理 WhatsApp 的增量同步协议(Sync Full/Partial),支持本地消息存储扩展,保障断网重连后数据不丢失
- 类型安全 & 开发友好:100% TypeScript 编写,提供完整类型定义、清晰文档(新版指南已上线 baileys.wiki)和活跃社区支持
适合哪些人用
如果你是以下角色,Baileys 极可能成为你项目的关键基础设施:独立开发者——想快速验证 WhatsApp 自动化创意;中小型企业技术负责人——需要低成本搭建客户通知系统或售前机器人;教育/社群运营者——希望批量管理学员群、自动分发资料;Node.js/Deno 全栈工程师——追求轻量、可控、可定制的通信层,而非黑盒 SaaS 服务;甚至 安全与逆向学习者——该项目本身也是研究现代 Web 应用加密通信与协议逆向的优质案例。
快速上手
安装只需一行命令(推荐使用 npm):
npm install baileys
基础使用示例(Node.js):
import { makeWASocket, useMultiFileAuthState } from 'baileys'
import * as fs from 'fs'
async function connectToWhatsApp() {
const { state, saveCreds } = await useMultiFileAuthState('./auth_info')
const sock = makeWASocket({ auth: state })
sock.ev.on('creds.update', saveCreds)
sock.ev.on('messages.upsert', async ({ messages }) => {
console.log('收到新消息:', messages[0].message?.conversation)
})
// 扫码登录
console.log('请扫描二维码登录 →')
await sock.waitForConnectionUpdate((update) => update.connection === 'open')
}
connectToWhatsApp()
首次运行会生成二维码,用手机 WhatsApp「设置 → 链接设备」扫描即可完成认证。会话凭证自动保存,重启后无需重复扫码。
项目信息
Socket-based TS/JavaScript API for WhatsApp Web
10.4k
今日 +12 stars today
Stars
3.2k
Forks
JavaScript
MIT
编程语言:TypeScript / JavaScript|GitHub Star 数:10,370+|开源协议:MIT|GitHub 项目地址
它是目前中文开发者生态中最成熟、文档最完善、社区最活跃的 WhatsApp Web 自主接入方案——稳定、开源、免授权费,且持续由核心维护者深度投入迭代。



