npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@neelegirly/baileys

v2.2.29

Published

Neelegirly fork of Baileys: multi-device WhatsApp Web API for Node.js

Downloads

514

Readme

🌸 @neelegirly/baileys 🌸

Die WhatsApp-Web-API mit sauberem Neelegirly-Glow-up

QR Branding · Self-Healing WA-Web-Version · Wrapper-Aware Update Notify · LID · Smart Queue

npm wa-api libsignal WA-Web Node

Installation · Quickstart · Was ist dieser Fork? · Versionsschema · Message-ID · Release Notes


🌷 Was ist dieser Fork?

@neelegirly/baileys ist ein gepflegter Fork von Baileys (multi-device WhatsApp-Web-API für Node.js). Er bleibt nah am Upstream, ergänzt aber ein paar fokussierte Neelegirly-Eigenheiten:

  • 💖 Eigene Message-ID-Generierung (iOS-Style mit NEELE-Signatur) – siehe unten.
  • 🌐 Self-Healing WA-Web-Version – die Verbindung zieht sich die aktuelle WhatsApp-Web-Version automatisch, damit der QR-/Pairing-Login nicht durch veraltete Versionsangaben mit statusCode 405 abbricht.
  • 📷 QR Branding – Header/Footer + Versionskontext direkt im QR-Flow.
  • 🔔 Wrapper-Aware Update Notify – Statuszeilen für Baileys und den optionalen @neelegirly/wa-api-Wrapper.
  • 🎀 Sauberer @neelegirly/*-Scope mit gepinntem Begleit-Ökosystem.

Hinweis: Dieses Projekt ist nicht offiziell mit WhatsApp, Meta oder dem Baileys-Upstream verbunden.


🧱 Architektur

@neelegirly/libsignal        ← Signal-Protokoll-Krypto
        ↓
@neelegirly/baileys          ← dieser Fork · Socket, Events, Messaging
        ↓
@neelegirly/wa-api           ← Multi-Session-Wrapper (Lifecycle, QR, Update Notify)
        ↓
App (PM2 managed)
        ↓
@neelegirly/downloader       ← optionale Media-Utility

PM2-Regel: @neelegirly/wa-api verwaltet Sessions intern. PM2 startet nur die App, nicht einen Prozess pro Session.


🔢 Versionsschema

Wichtig zu verstehen — hier laufen zwei voneinander unabhängige Versionsnummern:

| Nummer | Beispiel | Bedeutung | | --- | --- | --- | | Fork-Version | 2.2.26 | Die npm-Version dieses Pakets. Eigenes semver-Schema von Neelegirly – nicht identisch mit der Upstream-Baileys-Versionsnummer. | | WhatsApp-Web-Baseline | 2.3000.1035194821 | Die Client-Version, die im Handshake an WhatsApp gemeldet wird. Wird zur Laufzeit aktuell gehalten (self-healing). |

Die Fork-Version 2.2.x ist also reines Paket-Versioning. Welche WhatsApp-Web-Version tatsächlich verbunden wird, zeigt der Boot-Banner und fetchLatestBaileysVersion().


💖 Message-ID-Anpassung (NEELE)

Dieser Fork erzeugt Message-IDs in einem iOS-Style-Format mit eingebetteter NEELE-Signatur (z. B. 3A…NEELE…, 20 Zeichen). Das ist eine bewusste, dauerhafte Anpassung – generateMessageID und generateMessageIDV2 werden niemals durch die Upstream-Variante überschrieben.

const { generateMessageID } = require('@neelegirly/baileys')
generateMessageID() // → z. B. "3AC18D8ANEELE3B14420"

Beim Abgleich mit dem Upstream bleibt diese Logik 1:1 erhalten.


🚀 Installation

npm install @neelegirly/[email protected] @neelegirly/[email protected] --save-exact
yarn add @neelegirly/[email protected] @neelegirly/[email protected] --exact

Für den kompletten Stack passt dazu @neelegirly/[email protected].

Update eines bestehenden Setups

npm install @neelegirly/baileys@latest @neelegirly/wa-api@latest --save-exact

Nach dem Update genügt ein App-Neustart. Der QR-/Pairing-Login zieht sich die aktuelle WhatsApp-Web-Version automatisch.


⚡ Quickstart

import makeWASocket, {
  useMultiFileAuthState,
  fetchLatestBaileysVersion,
  DisconnectReason,
  Browsers
} from '@neelegirly/baileys'

async function start() {
  const { state, saveCreds } = await useMultiFileAuthState('./auth')
  const { version } = await fetchLatestBaileysVersion() // self-healing WA-Web-Version

  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') return console.log('Verbunden 💖')
    if (connection === 'close') {
      const statusCode = lastDisconnect?.error?.output?.statusCode
      if (statusCode !== DisconnectReason.loggedOut) start().catch(console.error)
    }
  })
}

start().catch(console.error)

fetchLatestBaileysVersion() ist die empfohlene Quelle für version: Sie liefert die aktuell gültige WhatsApp-Web-Version und fällt bei Netzwerkfehlern auf die gebündelte Baseline zurück.


🧩 Companion Stack

| Paket | Version | Rolle | |------|---------|-------| | @neelegirly/baileys | 2.2.26 | Socket, Events, Messaging | | @neelegirly/libsignal | 1.0.32 | Signal-Protokoll-Komponente | | @neelegirly/wa-api | 1.8.10 | Lifecycle-, Session- und Update-Wrapper |


🩷 QR Branding & Update Status

Beim QR-Scan werden Markenzeilen ober- und unterhalb des QR-Codes ausgegeben. Versionen werden dynamisch aus package.json gelesen, Update-Status robust verarbeitet und optionaler Wrapper-Kontext aus @neelegirly/wa-api dargestellt. Der Boot-Banner zeigt zusätzlich die aktive WhatsApp-Web-Baseline.


🌐 Namespace-Migration

- import makeWASocket from '@whiskeysockets/baileys'
+ import makeWASocket from '@neelegirly/baileys'

📝 Release Notes 2.2.26

  • 🛠️ QR-/Pairing-Login repariert. Die veraltete, hartcodierte WhatsApp-Web-Version führte zu statusCode 405 ("Multi-device mismatch") und verhinderte jeden QR-Scan. Baseline auf 2.3000.1035194821 aktualisiert.
  • 🌐 Self-Healing WA-Web-Version. fetchLatestBaileysVersion() bezieht die Versionsangabe jetzt aus einer gepflegten, immer aktuellen Quelle statt aus einer toten URL (die zuvor mit 404 ins Leere lief und still eine veraltete Version pinnte). Künftige WhatsApp-Versions-Bumps heilen sich damit selbst.
  • 🧷 Message-ID-Logik unverändert. Die NEELE-Signatur in generateMessageID / generateMessageIDV2 bleibt exakt erhalten.
  • 🪧 Modernisierter Boot-Banner. Zusätzliche, ehrliche Zeile mit der aktiven WhatsApp-Web-Baseline.
  • 🔗 Companion-Stack auf 2.2.26 / 1.8.10 / 1.0.32 aktualisiert.