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.25

Published

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

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 bot

Do not start one PM2 process per session. Sessions belong inside the app through @neelegirly/wa-api.

Install

npm install @neelegirly/baileys

Clean 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

Version wa-api libsignal Node npm

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.31 mit 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-exact

yarn

yarn add @neelegirly/[email protected] @neelegirly/[email protected] --exact

pnpm

pnpm add @neelegirly/[email protected] @neelegirly/[email protected] --save-exact

Fü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 latest eingeblendet

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-api gesetzten 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.31 mit WhiskeySockets-TypeScript-Definitionen und ProtocolAddress-Typen gepinnt
  • 🔗 Companion-Stack auf 2.2.22 / 1.8.6 / 1.0.31 aktualisiert
  • 🛡️ 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