luppy
v1.2.1
Published
Luppy — WhatsApp WebSocket library with Android/iOS client support, JID/LID compatibility and rich messaging foundations.
Maintainers
Readme
Lupy
Private-first WhatsApp WebSocket library by Naqib.
Lupy is a standalone TypeScript/ESM package built around the existing WhatsApp WebSocket, Signal, WABinary, WAProto and USync layers. The bot framework is intentionally not bundled with this package.
Branding
╭──[ 𝙽𝙿𝙼 𝙿𝙰𝙲𝙺𝙰𝙶𝙴 𝙻𝚄𝙿𝙿𝚈 ]──✧
┆ 𝙾𝚆𝙽𝙴𝚁 : 𝙽𝙰𝚀𝙸𝙱
┆ 𝙼𝚄𝙳𝚄𝙻𝙴 : 𝙿𝙻𝚄𝙶𝙸𝙽 𝙴𝚂𝙼
┆ 𝚆𝙴𝙱𝚂𝙸𝚃𝙴 : 𝙽𝚀𝙸𝙱.𝙼𝚈
╰┅────★The startup credit is enabled by default when makeWASocket() creates a socket. It is printed once per Node.js process, so normal package imports do not print it and repeated socket construction does not spam the console. Set printLupyBanner: false to disable it, or call printLupyBanner() manually.
Rich messaging
The package exposes builders and socket helpers for Native Flow, Interactive, Button/legacy button payloads, Button V2 compatibility, List, Template and Carousel messages. Raw protobuf messages can be sent through sendRichMessage().
const sock = makeWASocket({ auth })
await sock.sendNativeFlow(jid, {
body: 'Choose an action',
buttons: [
{ id: 'one', text: 'One', nativeFlowName: 'quick_reply' }
]
})Android / iOS
Browsers.android(), Browsers.androidPhone(), Browsers.androidTablet(), Browsers.ios() and Browsers.ipad() are available for client identity configuration. Protocol capabilities are exposed through the compatibility helpers.
Client identity and protobuf availability do not guarantee server-side acceptance for every historical or future WhatsApp version. Always test the exact client/version combination before production deployment.
Package boundary
Lupy is the core library. Bot plugins and runtime code belong in a separate package such as luppy-md and should depend on lupy instead of copying the core source.
Drop-in migration alias
Existing projects can keep their current import path and point the dependency at Lupy:
{
"dependencies": {
"@whiskeysockets/baileys": "npm:lupy@latest"
}
}Then existing code can continue to use:
import makeWASocket from '@whiskeysockets/baileys'The alias is configured by the application developer. Lupy is published under the lupy package name and does not claim ownership of the @whiskeysockets/baileys namespace.
Supported convenience helpers
sendNativeFlow()sendButtonV2()sendButtons()sendInteractive()sendList()sendCarousel()sendTemplate()sendPoll()sendProduct()sendRichMessage()
These helpers are convenience APIs over the existing Lupy/WAProto message pipeline; they do not guarantee that every payload is rendered or accepted by every historical or future WhatsApp client/server version.
