silva-baileys
v1.0.4
Published
A fast, lightweight, full-featured WhatsApp Web API library for Node.js
Maintainers
Readme
Disclaimer
This project is not affiliated, associated, authorized, endorsed by, or in any way officially connected with WhatsApp or any of its subsidiaries or affiliates. Use at your own discretion. Do not spam people with this. We discourage any stalkerware, bulk or automated messaging usage.
Installation
npm install silva-baileysyarn add silva-baileysQuick Start
CommonJS
const { default: makeWASocket, useMultiFileAuthState, Browsers } = require('silva-baileys')ES Modules / TypeScript
import pkg from 'silva-baileys'
const { default: makeWASocket, useMultiFileAuthState, Browsers } = pkgBasic Usage
const { default: makeWASocket, useMultiFileAuthState, DisconnectReason } = require('silva-baileys')
const { Boom } = require('@hapi/boom')
async function connectToWhatsApp() {
const { state, saveCreds } = await useMultiFileAuthState('auth_info')
const sock = makeWASocket({
auth: state,
printQRInTerminal: true
})
sock.ev.on('creds.update', saveCreds)
sock.ev.on('connection.update', (update) => {
const { connection, lastDisconnect } = update
if (connection === 'close') {
const shouldReconnect = (lastDisconnect.error instanceof Boom)?.output?.statusCode !== DisconnectReason.loggedOut
console.log('Connection closed, reconnecting:', shouldReconnect)
if (shouldReconnect) connectToWhatsApp()
} else if (connection === 'open') {
console.log('Connected!')
}
})
sock.ev.on('messages.upsert', async ({ messages }) => {
const msg = messages[0]
if (!msg.key.fromMe && msg.message) {
console.log('New message:', msg.message)
}
})
}
connectToWhatsApp()Features
- Full WhatsApp Web API support
- Multi-device support with QR code and pairing code authentication
- LID (Link ID) addressing support for both personal chats and groups
- Group status/story sending
- Session management and restoration
- Send & receive messages, media, documents, stickers
- Group management
- Privacy settings control
- Profile management
- Newsletter support
- And much more!
API Reference
makeWASocket(config)
Creates a new WhatsApp socket connection.
| Option | Type | Description |
|--------|------|-------------|
| auth | AuthenticationState | Auth state from useMultiFileAuthState |
| printQRInTerminal | boolean | Print QR code in the terminal |
| browser | [string, string, string] | Browser identity tuple |
| logger | Logger | Custom pino logger instance |
useMultiFileAuthState(folder)
Manages authentication state using multiple files in a folder.
const { state, saveCreds } = await useMultiFileAuthState('./auth_info')Sending Messages
// Text message
await sock.sendMessage(jid, { text: 'Hello!' })
// Image with caption
await sock.sendMessage(jid, { image: { url: './image.jpg' }, caption: 'Look at this!' })
// Video
await sock.sendMessage(jid, { video: { url: './video.mp4' }, caption: 'Check this out' })
// Reply to a message
await sock.sendMessage(jid, { text: 'This is a reply' }, { quoted: msg })
// Send with mentions
await sock.sendMessage(jid, { text: '@user', mentions: [userJid] })License
MIT — see LICENSE for details.
