{"_id":"@lekzsync/baileys","_rev":"2-b9655414e40e62e365358db77475cf96","name":"@lekzsync/baileys","dist-tags":{"latest":"1.0.5"},"versions":{"0.0.0-stage":{"name":"@lekzsync/baileys","version":"0.0.0-stage","_id":"@lekzsync/baileys@0.0.0-stage","stub":true,"maintainers":[{"name":"lekzox","email":"baksolekzo76@gmail.com"}],"dist":{"shasum":"c9eda886f468cfaecae5bcc4bf7ce64ebead2df3","tarball":"https://registry.npmjs.org/@lekzsync/baileys/-/baileys-0.0.0-stage.tgz","fileCount":2,"integrity":"sha512-wx8NYmLsxQF+d9v4aVcOVD56LoI6Okcy0Lxnfagoe0ISs5H3VTurLwCSL7LksP3/NpuZafGJltYDwsosQkgTCQ==","signatures":[{"sig":"MEQCIFIRkaSWjjCajtq3PvG/Cg6vn5aa/yKVJ9tV9xJfToavAiBFoaE7epToq5k1BCZljLfduUcoIZ4HRSMStbacdc2uJw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":339},"_npmUser":{"name":"lekzox","email":"baksolekzo76@gmail.com"},"description":"Temporary package placeholder for staged publishing","directories":{}},"1.0.5":{"_id":"@lekzsync/baileys@1.0.5","bugs":{"url":"https://github.com/lekzsync/Baileys/issues"},"dist":{"shasum":"48817a58ed9891a508a72297947eba60d59bbfb0","tarball":"https://registry.npmjs.org/@lekzsync/baileys/-/baileys-1.0.5.tgz","fileCount":128,"integrity":"sha512-MYkkxUdzaIoKOokR9VjWgewDaUKTOnpYeXtQ8lui3HqLfrGmcFX9BMLe3kOvls6GCimJoAGgelWbr6BWfG6hxg==","signatures":[{"sig":"MEYCIQC2UMnJMx4MNIAy113xI+4PEeTIy/peklttjJTd/DbBtQIhAKIRVXuaEl+o/vBFiP33l7LyhLwRyYsXmw3/6K/sBgbZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDwqxiboap4knYTP9mPeegxvqboHh+KRNoNR0XUeTf8UAIhAPPsGISzso9T0jSQVIRQGrY80cqVKAX8yOMbwRUg5ZmH"}],"unpackedSize":17847937},"main":"lib/index.js","name":"@lekzsync/baileys","author":{"name":"Lekzo"},"engines":{"node":">=20.0.0"},"gitHead":"ce650ec773c2b0c27b9d90217852445bd928f931","license":"MIT","scripts":{"lint":"eslint src --ext .js,.ts,.jsx,.tsx","test":"jest","prepack":"","prepare":"","release":"release-it","lint:fix":"eslint src --fix --ext .js,.ts,.jsx,.tsx","build:all":"tsc && typedoc","build:tsc":"tsc","build:docs":"typedoc","preinstall":"node ./engine-requirements.js","gen:protobuf":"sh WAProto/GenerateStatics.sh","changelog:last":"conventional-changelog -p angular -r 2","changelog:preview":"conventional-changelog -p angular -u"},"version":"1.0.5","_npmUser":{"name":"lekzox","email":"baksolekzo76@gmail.com"},"homepage":"https://github.com/lekzsync/Baileys","keywords":["baileys","whatsapp","whatsapp-baileys"],"repository":{"url":"git+https://github.com/lekzsync/Baileys.git","type":"git"},"_npmVersion":"10.8.2","description":"A WebSockets library for interacting with WhatsApp Web.","directories":{},"maintainers":[{"name":"lekzox","email":"baksolekzo76@gmail.com"}],"resolutions":{"tar":"^7.5.11","tmp":"^0.2.5","socks":"^2.8.8","flatted":"^3.4.2","basic-ftp":"^5.2.4","handlebars":"^4.7.9","ip-address":"^10.1.1","underscore":"^1.13.8","markdown-it":"^14.1.1","ajv@npm:^6.12.4":"^6.14.0","yaml@npm:^2.6.1":"^2.8.4","glob@npm:^10.2.2":"^10.5.0","glob@npm:^10.5.0":"^10.5.0","glob@npm:^10.3.10":"^10.5.0","js-yaml@npm:^4.1.0":"^4.1.1","js-yaml@npm:^3.13.1":"^3.14.2","minimatch@npm:^3.0.4":"^3.1.5","minimatch@npm:^3.1.2":"^3.1.5","minimatch@npm:^5.0.1":"^5.1.8","minimatch@npm:^9.0.4":"^9.0.9","minimatch@npm:^9.0.5":"^9.0.9","picomatch@npm:^2.0.4":"^2.3.2","picomatch@npm:^2.3.1":"^2.3.2","picomatch@npm:^4.0.0":"^4.0.4","picomatch@npm:^4.0.2":"^4.0.4","brace-expansion@npm:^1.1.7":"^1.1.13","brace-expansion@npm:^2.0.1":"^2.0.3"},"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.13.0","pino":"^9.6","chalk":"^4.1.2","sharp":"*","p-queue":"^9.0.0","libsignal":"^6.0.0","lru-cache":"^11.1.0","@hapi/boom":"^9.1.3","protobufjs":"^7.5.6","async-mutex":"^0.5.0","cache-manager":"^7.2.8","fluent-ffmpeg":"*","music-metadata":"^11.12.3","whatsapp-rust-bridge":"0.5.4","@cacheable/node-cache":"^1.4.0"},"_hasShrinkwrap":false,"packageManager":"yarn@4.9.2","devDependencies":{"tsx":"^4.20.3","jest":"^30.0.5","jimp":"^1.6.1","jiti":"^2.4.2","json":"^11.0.0","open":"^8.4.2","eslint":"^9","ts-jest":"^29.4.0","typedoc":"^0.27.9","prettier":"^3.5.3","@types/ws":"^8.0.0","lru-cache":"^11.1.0","@eslint/js":"^9.31.0","release-it":"^20.0.1","typescript":"^5.8.2","@types/jest":"^30.0.0","@types/node":"^20.9.0","pino-pretty":"^13.1.1","tsc-esm-fix":"^3.1.2","protobufjs-cli":"^1.1.3","link-preview-js":"^3.0.0","@eslint/eslintrc":"^3.3.1","esbuild-register":"^3.6.0","conventional-changelog":"^7.1.1","eslint-config-prettier":"^10.1.2","eslint-plugin-prettier":"^5.4.0","typedoc-plugin-markdown":"4.4.2","@typescript-eslint/parser":"^8","@whiskeysockets/eslint-config":"^1.0.0","conventional-changelog-angular":"^8.0.0","@typescript-eslint/eslint-plugin":"^8"},"peerDependencies":{"jimp":"^1.6.1","audio-decode":"^2.1.3","link-preview-js":"^3.0.0"},"peerDependenciesMeta":{"jimp":{"optional":true},"audio-decode":{"optional":true},"link-preview-js":{"optional":true}},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/baileys_1.0.5_1793337952337_0.33980522007633995"}}},"time":{"created":"2026-10-30T05:23:44.692Z","modified":"2026-10-30T05:25:52.754Z","0.0.0-stage":"2026-10-30T05:23:44.692Z","1.0.5":"2026-10-30T05:25:52.537Z"},"description":"A WebSockets library for interacting with WhatsApp Web.","maintainers":[{"name":"lekzox","email":"baksolekzo76@gmail.com"}],"readme":"<div align=\"center\">\n\n# 🚀 Lekzo — Advanced WhatsApp Web API\n\n<!-- TYPING ANIMATION -->\n<p>\n  <img src=\"https://readme-typing-svg.demolab.com/?font=Fira+Code&weight=600&size=28&duration=3000&pause=1000&color=58A6FF&center=true&vCenter=true&width=800&lines=Advanced+WhatsApp+Web+API;Native+AI+Rich+Response+%26+Interactive+Buttons;Built+with+TypeScript+%26+Baileys;Lightweight+%7C+Efficient+%7C+Stable\" alt=\"Typing Animation\" />\n</p>\n\n<!-- BADGES -->\n<p>\n  <img src=\"https://img.shields.io/npm/dw/%40lekzox%2Fbaileys?label=NPM&color=%23CB3837\" alt=\"NPM Downloads\"/>\n</p>\n\n<!-- VISUAL SHOWCASE -->\n### 📸 Project Showcase\n\n<img src=\"https://b.top4top.io/p_3816tx02l1.jpg\" alt=\"WhatsApp Interface\" width=\"800\" />\n<br/>\n<small><i>Native WhatsApp Experience integrated into your project</i></small>\n\n<br/>\n\n**Lekzo** (`lekzsync/Baileys`) is a powerful, lightweight, and efficient library for interacting with the **WhatsApp Web multi-device API** — no Selenium, no Chromium, no headless browser. It connects over a raw WebSocket, speaks WhatsApp's native binary + protobuf protocol, and exposes a fully typed, event-driven JavaScript/TypeScript API.\n\n</div>\n\n---\n\n## ⚠️ Disclaimer & Liability\n\nThis library is a community-driven project and is **in no way affiliated with, endorsed by, or sponsored by WhatsApp Inc. or Meta**. It is an unofficial, reverse-engineered API. Use at your own discretion.\n\n**Important Guidelines:**\n\n- Do **not** use this library for spamming, bulk messaging, stalkerware, or any activity that violates WhatsApp's [Terms of Service](https://www.whatsapp.com/legal/terms-of-service).\n- The developers are **not liable** for any misuse of this software, including account bans. Please refer to the [MIT License](LICENSE) for details.\n- Users are fully responsible for ensuring their usage complies with applicable laws and WhatsApp's policies.\n\n---\n\n## Table of Contents\n\n- [Features](#features)\n- [Requirements](#requirements)\n- [Installation](#installation)\n- [Import](#import)\n- [Quick Start](#quick-start)\n  - [With QR Code](#with-qr-code)\n  - [With Pairing Code](#with-pairing-code)\n- [Sending Message](#sending-message)\n  - [Generic Send / Relay](#generic-send--relay)\n  - [sPR](#spr)\n  - [Simple Senders](#simple-senders)\n  - [Ban Checker](#ban-checker)\n  - [Send Message with Participant](#send-message-with-participant)\n  - [Rich Menu](#rich-menu)\n- [Message Builder](#message-builder)\n- [Button](#button)\n  - [Quick Reply + URL + Copy](#quick-reply--url--copy)\n- [ButtonV2](#buttonv2)\n- [Carousel](#carousel)\n- [Toolkit](#toolkit)\n- [Why Choose Lekzo?](#why-choose-lekzo)\n- [Contributing](#contributing)\n- [License](#license)\n\n---\n\n## Features\n\n### 🧱 Core\n\n| Feature | Description |\n|---|---|\n| ⚡ **Lightweight** | Direct WebSocket connection — no Selenium, no Chromium, no headless browser. |\n| 🧠 **Efficient** | Drastically lower RAM usage compared to browser-based automation. |\n| 📱 **Multi-Device** | Full support for WhatsApp Multi-Device (MD) protocols. |\n| 🔒 **End-to-End Encrypted** | Complete Signal protocol implementation (1:1, groups, sender-key). |\n| 🛡️ **Type-Safe** | Written in TypeScript with full IntelliSense / `index.d.ts` support. |\n| 🔄 **Auto Reconnect** | Built-in reconnect and message retry logic. |\n\n### 💬 Messaging\n\n| Feature | Description |\n|---|---|\n| 🔁 **Generic Relay** | Send raw message objects with `relayMessage` or the standard `sendMessage`. |\n| 📝 **Simple Senders** | One-line helpers for text, image, video, audio, location, poll, and quiz messages. |\n| 📊 **Polls & Quizzes** | Create polls and quizzes with a single call. |\n| 🔘 **Interactive UI** | Quick reply, URL, and copy buttons, classic button menus, and carousels. |\n| 👥 **Participant Mode** | Send with `ptcp: true` for participant-aware delivery. |\n\n### 🚀 Exclusive Enhancements\n\n| Feature | Description |\n|---|---|\n| 📡 **sPR Helper** | Advanced send helper with include/exclude device targeting and configurable stanza options. |\n| 🔎 **Ban Checker** | `checkBan` to query a phone number's status through an external API. |\n| 🍽️ **Rich Menu** | `sendRich` for responses with a header image, action buttons, carousel cards, and a link footer. |\n| 🤖 **Message Builder** | Integrated `MB` namespace (AIRich, Button, ButtonV2, Carousel, Toolkit) for rich, interactive responses. |\n| 🧰 **Toolkit** | Helper utilities, including MP4 frame preview generation. |\n\n---\n\n## Requirements\n\n- Node.js **>= 20**\n- Optional peer dependencies, depending on the features you use:\n  - `sharp` or `jimp` for image processing\n  - `link-preview-js` for link previews\n  - `audio-decode` for audio waveform handling\n  - `fluent-ffmpeg` for frame preview video (Toolkit `getMp4Preview`)\n\n---\n\n## Installation\n\n```bash\nnpm install @whiskeysockets/baileys@github:lekzsync/Baileys\n```\n\nOr add it to your `package.json`:\n\n```json\n{\n  \"dependencies\": {\n    \"@whiskeysockets/baileys\": \"github:lekzsync/Baileys\"\n  }\n}\n```\n\n---\n\n## Import\n\n```javascript\nconst {\n  default: makeWASocket,\n  // Other Options\n} = require('@whiskeysockets/baileys');\n```\n\n---\n\n## Quick Start\n\n### With QR Code\n\n```javascript\nconst {\n  default: makeWASocket,\n  Browsers\n  // Other Options\n} = require('@whiskeysockets/baileys');\n\nconst client = makeWASocket({\n  browser: Browsers.ubuntu('Chrome'),\n  printQRInTerminal: true\n});\n```\n\n### With Pairing Code\n\n```javascript\nconst {\n  default: makeWASocket,\n  fetchLatestWAWebVersion,\n  Browsers\n} = require('@whiskeysockets/baileys');\n\nconst client = makeWASocket({\n  browser: Browsers.ubuntu('Chrome'),\n  printQRInTerminal: false,\n  version: fetchLatestWAWebVersion(),\n  auth: state\n});\n\nconst number = \"628XXXXX\";\nconst code = await client.requestPairingCode(number.trim()); // Use (number, \"XXXXXXXX\") for custom pairing\n\nconsole.log(\"Your pairing code : \" + code);\n```\n\n---\n\n## Sending Message\n\n### Generic Send / Relay\n\n```javascript\n// relayMessage — sends a raw message object\n(async () => {\n\tawait client.relayMessage(m.chat, {\n\t\tconversation: 'Lekzo'\n\t});\n})();\n\n// sendMessage — the standard way to send a message\n(async () => {\n\tawait client.sendMessage(m.chat, {\n\t\ttext: 'Lekzo'\n\t});\n})();\n```\n\n### sPR\n\nThe `sPR` helper is included in this build. It is a named export and uses the library's internal utility modules.\n\n#### Import\n\n```javascript\nconst { sPR } = require('@whiskeysockets/baileys');\n```\n\n#### Basic usage\n\n```javascript\nconst messageId = await sPR(\n  sock,\n  '6281234567890@s.whatsapp.net',\n  { conversation: 'Hello from Lekzo' }\n);\n\nconsole.log('Message ID:', messageId);\n```\n\n#### Options\n\n```javascript\nawait sPR(\n    client,\n    \"120363000000000000@g.us\",\n    {\n        conversation: \"Hello, group!\"\n    },\n    {\n        mode: \"include\",\n        target: [\n            \"6281234567890@s.whatsapp.net\",\n            \"628000000000@s.whatsapp.net\"\n        ],\n        deviceMode: 'all'\n    }\n);\n```\n\nAvailable options:\n\n| Option | Type | Default | Description |\n| --- | --- | --- | --- |\n| `messageId` | `string` | Generated automatically | Custom message ID |\n| `additionalAttributes` | `object` | `{}` | Extra message stanza attributes |\n| `useUserDevicesCache` | `boolean` | `true` | Use the device cache during recipient resolution |\n| `useCachedGroupMetadata` | `boolean` | `true` | Use cached group metadata when available |\n| `statusJidList` | `string[]` | — | Additional status recipients |\n| `additionalNodes` | `object[]` | — | Extra stanza nodes |\n| `targetMe` | `boolean` | — | Override filtering for the sender's own devices |\n| `mode` | `'include' \\| 'exclude'` | `'exclude'` | Select matching or non-matching devices |\n| `target` | `string[]` | `[]` | Recipient JIDs, optionally including a device ID |\n| `hideDecryptFail` | `boolean` | `true` | Add the `decrypt-fail=\"hide\"` attribute where applicable |\n| `deviceMode` | `'all' \\| 'primary' \\| 'secondary'` | `'all'` | Filter by primary or secondary device ID |\n\n#### Important compatibility notes\n\n- `sPR` uses internal Baileys connection methods. Keep this helper aligned with the version of this build and retest it after updating the library.\n- A returned message ID means the stanza was sent to the connection; it does not confirm that every intended recipient received or displayed it.\n- Recipient and device filtering does not guarantee a particular visibility outcome. Test with accounts and devices you control, and use it transparently and responsibly.\n- The helper supports text and message payloads that are compatible with the underlying Baileys encoders. Some message types or WhatsApp protocol changes may require further adaptation.\n\n### Simple Senders\n\n#### Send Text\n\n```javascript\n(async () => {\n\tawait client.sendText(m.chat, 'Hi!', {\n\t\tcontextInfo: {\n\t\t\tmentionedJid: [jid]\n\t\t}\n\t});\n})();\n```\n\n#### Send Image\n\n```javascript\n(async () => {\n\tawait client.sendImage(m.chat, { url: './photo.jpg' }, 'Lekzo');\n})();\n```\n\n#### Send Video\n\n```javascript\n(async () => {\n\tawait client.sendVideo(m.chat, { url: './clip.mp4' }, 'Lekzo');\n})();\n```\n\n#### Send Audio\n\n```javascript\n(async () => {\n\tawait client.sendAudio(m.chat, { url: './clip.mp3' });\n})();\n```\n\n#### Send Location\n\n```javascript\n(async () => {\n\tawait client.sendLocation(m.chat, 'Lekzo', -6.2, 106.8, 'https://maps.example', '1234567890');\n})();\n```\n\n#### Send Poll\n\n```javascript\n(async () => {\n\tawait client.sendPoll(m.chat, 'Pick one', ['Option 1', 'Option 2', 'Option 3'], true);\n})();\n```\n\n#### Send Quiz\n\n```javascript\n(async () => {\n\tawait client.sendQuiz(m.chat, 'Correct answer?', ['1', '2', '3'], '2');\n})();\n```\n\n### Ban Checker\n\n`checkBan` allows you to check the WhatsApp ban status of a phone number using an external API.\n\n#### Example\n\n```javascript\n(async () => {\n\ttry {\n\t\tconst number = '6281234567890';\n\t\tconst result = await checkBan(number);\n\n\t\tawait client.sendMessage(m.chat, {\n\t\t\ttext: JSON.stringify(result, null, 2)\n\t\t});\n\t} catch (error) {\n\t\tconsole.error('Ban Checker Error:', error.message);\n\t}\n})();\n```\n\n#### Usage\n\n- Replace `6281234567890` with the phone number you want to check.\n- `checkBan` must already be defined in your bot's environment.\n\n> [!NOTE]\n> Ban Checker relies on an external API. Its availability and accuracy depend on the API provider. Results are not an official confirmation of a WhatsApp account's ban status.\n\n### Send Message with Participant\n\n`relayMessage`:\n\n```javascript\n(async () => {\n\tawait client.relayMessage(m.chat, {\n\t\textendedTextMessage: {\n\t\t\ttext: 'Lekzo'\n\t\t}\n\t}, {\n\t\tptcp: true\n\t});\n})();\n```\n\n`sendMessage`:\n\n```javascript\n(async () => {\n\tawait client.sendMessage(m.chat, {\n\t\ttext: 'Lekzo'\n\t}, {\n\t\tptcp: true\n\t});\n})();\n```\n\n### Rich Menu\n\n`sendRich` sends a rich response with an optional header image, action buttons, carousel cards, and an open-URL footer:\n\n```javascript\nawait client.sendRich(m.chat, {\n  header: {\n    disclaimer: true,\n    disclaimerText: \"github.com/lekzsync/Baileys\",\n    title: \"Lekzo\"\n  },\n  body: {\n    title: \"Select Option\",\n    buttons: [\"Menu 1\", \"Menu 2\"]\n  },\n  footer: {\n    text: \"WhatsApp Community\",\n    url: \"https://whatsapp.com/channel/0029Vb863rSLtOjDrDNHqq3o\"\n  }\n});\n```\n\n---\n\n## Message Builder\n\nMessageBuilder v4.7 is included directly in `lekzsync/Baileys`.\n\n### Import\n\n```javascript\nconst {\n  VERSION,\n  Button,\n  ButtonV2,\n  Carousel,\n  AIRich,\n  Toolkit,\n  bind,\n  MB\n} = require('@whiskeysockets/baileys');\n```\n\n> [!NOTE]\n> MessageBuilder is integrated. You don't need to install `baileys-mbuilder` separately.\n\n### Example\n\n```javascript\nconst { MB } = require('@whiskeysockets/baileys')\n\nconst rich = new MB.AIRich(sock)\n  .setTitle('Lekzo')\n  .setFooter('Made with AIRich')\n  .addText('Halo Lekzo!')\n  .addCode('javascript', `console.log('Halo Lekzo')`)\n  .addTable([\n    ['Feature', 'Status'],\n    ['Button', 'Available'],\n    ['Carousel', 'Available'],\n    ['AIRich', 'Experimental']\n  ])\n  .addSuggest(['List Menu', 'Help', 'About Lekzo'])\n\nawait rich.send(jid)\n```\n\n---\n\n## Button\n\nThe `Button` builder is used for native-flow interactive messages.\n\n### Quick Reply + URL + Copy\n\n```js\nconst { MB } = require('@whiskeysockets/baileys')\n\nconst msg = new MB.Button(client)\n  .setTitle('Select Menu')\n  .setBody('Choose one of the options below.')\n  .setFooter('github.com/lekzsync/Baileys')\n  .addReply('Ping', 'ping')\n  .addUrl('Open Website', 'https://example.com')\n  .addCopy('Copy Code', 'LEKZO')\n\nawait msg.send(m.chat)\n```\n\n---\n\n## ButtonV2\n\n`ButtonV2` provides a simpler classic button builder.\n\n```javascript\nconst { MB } = require('@whiskeysockets/baileys')\n\nconst message = new MB.ButtonV2(client)\n  .setTitle('Lekzo')\n  .setSubtitle('WhatsApp Bot')\n  .setBody('Choose an action.')\n  .setFooter('Lekzo Baileys')\n  .setThumbnail('https://example.com/xxx.jpg')\n  .addButton('Menu', 'menu')\n  .addButton('Ping', 'ping')\n\nawait message.send(m.chat)\n```\n\n---\n\n## Carousel\n\nCarousel cards are created from `Button.toCard()` and then submitted to `Carousel`.\n\n```javascript\nconst { MB } = require('@whiskeysockets/baileys')\n\nconst card1 = await new MB.Button(client)\n  .setImage('https://example.com/card1.jpg')\n  .setBody('First card')\n  .addReply('Select', 'card_1')\n  .toCard()\n\nconst card2 = await new MB.Button(client)\n  .setImage('https://example.com/card2.jpg')\n  .setBody('Second card')\n  .addUrl('Open', 'https://example.com')\n  .toCard()\n\nconst carousel = new MB.Carousel(client)\n  .setBody('Choose one of the cards below.')\n  .setFooter('Lekzo Carousel')\n  .addCard([card1, card2])\n\nawait carousel.send(jid)\n```\n\n> [!IMPORTANT]\n> Each carousel card must have an image or video media attachment in its header.\n\n---\n\n## Toolkit\n\nThe `Toolkit` helpers are exported from the MessageBuilder namespace:\n\n```javascript\nconst { MB, Toolkit } = require('@whiskeysockets/baileys')\n```\n\n> [!NOTE]\n> `Toolkit.getMp4Preview` (frame preview video) requires `fluent-ffmpeg` to be installed.\n\n---\n\n## Why Choose Lekzo?\n\nLekzo is built for developers who need a lightweight, stable WhatsApp Web API without the overhead of a browser. It connects directly over WebSocket, keeps memory usage low, and ships with typed declarations and a focused set of messaging helpers, including rich responses, carousels, and a participant-aware send mode. It is a practical base for building reliable WhatsApp automation and integrations.\n\n---\n\n## Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n1. Fork the repository & create your branch (`git checkout -b feature/amazing-feature`)\n2. Commit your changes (`git commit -m 'feat: add amazing feature'`)\n3. Push to the branch (`git push origin feature/amazing-feature`)\n4. Open a Pull Request\n\n## License\n\nMIT — Copyright (c) 2026 Lekzo. See [LICENSE](LICENSE) for details.\n\n---\n\n<div align=\"center\">\n\n**Lekzo** — Advanced WhatsApp Web API\n\n[![NPM](https://img.shields.io/badge/NPM-%40lekzox%2Fbaileys-CB3837?logo=npm&logoColor=white)](https://www.npmjs.com/package/lekzsync/Baileys)\n[![GitHub](https://img.shields.io/badge/GitHub-lekzox%2FBaileys-181717?logo=github)](https://github.com/lekzsync/Baileys)\n[![Channel](https://img.shields.io/badge/WhatsApp-Community-25D366?logo=whatsapp)](https://whatsapp.com/channel/0029Vb863rSLtOjDrDNHqq3o)\n\nMade with by Lekzo\n\n</div>","readmeFilename":"README.md","homepage":"https://github.com/lekzsync/Baileys","keywords":["baileys","whatsapp","whatsapp-baileys"],"repository":{"url":"git+https://github.com/lekzsync/Baileys.git","type":"git"},"author":{"name":"Lekzo"},"bugs":{"url":"https://github.com/lekzsync/Baileys/issues"},"license":"MIT"}