@neelegirly/baileys
v2.2.25
Published
Neelegirly fork of Baileys: multi-device WhatsApp Web API for Node.js
Maintainers
Readme
🌸 @neelegirly/baileys
WhatsApp Web API core connection layer.
Clean Architecture
@neelegirly/libsignal
↓
@neelegirly/baileys
↓
@neelegirly/wa-api
↓
App (PM2 managed)
↓
@neelegirly/downloader (optional utility)Official Package Role
- Depends on @neelegirly/libsignal
- Core connection layer
- Used by @neelegirly/wa-api
PM2 Rule
WA-API handles sessions internally. PM2 only runs the app.
Start your app with PM2 like this:
pm2 start index.js --name botDo not start one PM2 process per session. Sessions belong inside the app through @neelegirly/wa-api.
Install
npm install @neelegirly/baileysClean Stability Release
This release clarifies the ecosystem structure and removes workspace/core confusion from the documentation.
🌸 @neelegirly/baileys 🌸
Die WhatsApp Web API mit sauberem Neelegirly-Glow-up
QR Branding · Wrapper-Aware Update Notify · LID · Smart Queue
Installation · Quickstart · Highlights · QR Branding · Migration · Release Notes
Neelegirlys Variante von Baileys ist die WhatsApp-Web-Basis für stabile Bots, schöne QR-Flows und einen sauber gepinnten Multi-Session-Stack. Die Library bleibt nah an Baileys, aber mit fokussiertem Branding, Update-Notify und Begleit-Ökosystem für @neelegirly/wa-api.
Hinweis: Dieses Projekt ist nicht offiziell mit WhatsApp, Meta oder Baileys-Upstream verbunden.
✨ Highlights
| Feature | Beschreibung | Status |
| --- | --- | --- |
| 💖 Multi-Device API | WhatsApp Web auf Node.js mit Event-Flow | ✅ |
| 📷 QR Branding | Header/Footer + Wrapper-/Versionskontext direkt im QR-Flow | ✅ |
| 🔔 Wrapper-Aware Update Notify | Status für Baileys und optionalen Wrapper-Kontext | ✅ |
| 🚀 Smart Queue | Retries, Prioritäten und Bulk-Sending für produktive Setups | ✅ |
| 🧷 LID / Session-Fokus | passend für moderne Multi-Device-/Linked-ID-Flows | ✅ |
| 🎀 Neelegirly Scope | sauber auf @neelegirly/* ausgerichtet | ✅ |
🆕 Was sich in v2.2.22 geändert hat
- ✅ Aktuelle Baileys-Upstream-Fixes vom 24./25. April 2026 sauber übernommen
- ✅ AB-Props-Query nutzt wieder den aktuellen
abt/Protocol-1-Flow - ✅ Username-Felder in Contacts, Gruppenmetadaten, Message Keys und USync ergänzt
- ✅ App-State-Sync robuster bei fehlenden Keys, Snapshot-Retry und Reconnects
- ✅ Call-Events, Album-Messages und History/Media-Streaming erweitert
- ✅ Baileys-WA-API mit robusteren Group-/Message-Guards, Reachout-/Message-Cap-Abfragen und Newsletter-Join/Leave-IDs aktualisiert
- ✅ libsignal-Dependency auf
1.0.31mit TypeScript-Definitionen und ProtocolAddress-Typen aktualisiert - ✅ MEX-LID-Mappings werden in die Signal-Store-Anbindung übernommen
- ✅ Link-Preview-Redirect-Retry und serverseitige MEX-Notifications fuer Reachout/Message-Capping geprueft
📦 Kompatibilität
| Paket | Empfohlene Version |
| --- | --- |
| @neelegirly/baileys | 2.2.22 |
| @neelegirly/wa-api | 1.8.6 |
| @neelegirly/libsignal | 1.0.31 |
🚀 Installation
npm
npm install @neelegirly/[email protected] @neelegirly/[email protected] --save-exactyarn
yarn add @neelegirly/[email protected] @neelegirly/[email protected] --exactpnpm
pnpm add @neelegirly/[email protected] @neelegirly/[email protected] --save-exactFür den kompletten Neelegirly-Stack passt dazu
@neelegirly/[email protected].
⚡ Quickstart
import makeWASocket, {
useMultiFileAuthState,
fetchLatestBaileysVersion,
DisconnectReason,
Browsers
} from '@neelegirly/baileys'
async function start() {
const { state, saveCreds } = await useMultiFileAuthState('./auth')
const { version } = await fetchLatestBaileysVersion()
const sock = makeWASocket({
auth: state,
version,
browser: Browsers.ubuntu('Chrome'),
printQRInTerminal: true
})
sock.ev.on('creds.update', saveCreds)
sock.ev.on('connection.update', ({ connection, lastDisconnect }) => {
if (connection === 'open') {
console.log('Verbunden 💖')
return
}
if (connection === 'close') {
const statusCode = lastDisconnect?.error?.output?.statusCode
const isLoggedOut = statusCode === DisconnectReason.loggedOut
if (!isLoggedOut) start().catch(console.error)
}
})
}
start().catch(console.error)Direktes
sock.ev.on('creds.update', saveCreds)ist für kleine Demos okay. In produktiven Multi-Session-Setups sollten Credential-Saves gebündelt oder debounced werden.
🧩 Companion Stack
| Paket | Rolle |
|------|-------|
| @neelegirly/baileys 2.2.22 | Socket, Events, Messaging |
| @neelegirly/libsignal 1.0.31 | Signal-Protokoll-Komponente |
| @neelegirly/wa-api 1.8.6 | Lifecycle-, Session- und Update-Wrapper |
🩷 QR Branding & Update Status
Beim QR-Scan werden automatisch Markenzeilen oberhalb und unterhalb des QR-Codes ausgegeben. Die Ausgabe liest Versionen dynamisch aus package.json, verarbeitet Update-Status robust und kann zusätzlich Wrapper-Kontext aus @neelegirly/wa-api darstellen.
Typische Anzeige:
Baileys Update-Status: up to date (2.2.22)Wrapper Update-Status: up to date (1.8.6)- Bei echten Updates werden kompakte Hinweise auf
latesteingeblendet
Wenn kein Wrapper-Kontext vorhanden ist, bleibt die Anzeige sauber bei Baileys. Kein unnötiges Drama, nur QR. ✨
🔄 Update-Check
- Quelle 1: npm Registry (
registry.npmjs.org) - Quelle 2: GitHub Releases (
neelegirly/baileys) als Fallback - Fehler und Timeouts werden abgefangen, ohne den Prozess zu stoppen
- Semver-Vergleich wird numerisch ausgewertet
- Wrapper-Status kann über die von
@neelegirly/wa-apigesetzten Umgebungsvariablen übernommen werden
Wenn du direkt prüfen willst:
import { checkNpmVersion } from '@neelegirly/baileys'
const info = await checkNpmVersion('@neelegirly/baileys', '2.2.22', {
githubRepo: 'neelegirly/baileys'
})
console.log(info)🌐 Namespace-Migration
Wenn du vom Upstream kommst, nutze den Neelegirly-Scope:
- import makeWASocket from '@whiskeysockets/baileys'
+ import makeWASocket from '@neelegirly/baileys'📝 Release Notes 2.2.22
- 🔧 Upstream-Änderungen vom 24./25. April 2026 portiert, ohne QR-/Update-Notify- oder Message-ID-Handling umzubauen
- 🧩 Username-USync und Inbound-Username-Felder für Kontakte, Gruppen und Message Keys ergänzt
- 🛡️ App-State-Sync und libsignal-LID/PN-Typen robuster gemacht
- 🖼️ Album-Message-Sending und erweiterte Call-Event-Typen ergänzt
- 🔐 libsignal auf
1.0.31mit WhiskeySockets-TypeScript-Definitionen und ProtocolAddress-Typen gepinnt - 🔗 Companion-Stack auf
2.2.22 / 1.8.6 / 1.0.31aktualisiert - 🛡️ Null-/Undefined-Pfade in Gruppen-, Nachrichten- und Chat-ID-Verarbeitung gehärtet
- 🧷 MEX-LID-Mappings werden in den Signal-Store übernommen
- 🧩 Reachout- und Message-Cap-WA-API-Abfragen plus TypeScript-Definitionen ergänzt
- 🔁 Link-Preview-Redirect-Retry-Counter repariert und Server-Push-MEX-Updates verarbeitet
