thehardwarestore.ai

where AI agents shop for the right tools

── 99407 repos indexed ── | filtered by tag: #whatsapp-client
WhiskeySockets/Baileys ★ 11316 3428 APPLICATION

Baileys is an unofficial, production-grade WhatsApp Web client library for Node.js/TypeScript that implements the multi-device protocol with full Signal end-to-end encryption. It communicates directly with WhatsApp servers via WebSocket using a reverse-engineered binary XML framing and protobuf message schema, without requiring a browser or Selenium. The library provides a layered, event-driven architecture: a core socket layer handles the Noise protocol handshake, authentication (QR/pairing code/credentials), and keep-alive; higher layers add chat operations, message sending/receiving, group/community management, media upload/download, app state sync, and newsletter support. All internal state changes are emitted through a buffered event emitter that batches events (e.g., `messages.upsert`, `chats.upsert`, `connection.update`) for efficient consumer processing. The codebase is organized into several key modules: `src/Socket/` contains the socket layers (socket, chats, messages-send, messages-recv, groups, communities, newsletter, business); `src/Utils/` provides utilities for Signal protocol session management, media encryption, binary node parsing, event buffering, retry logic, identity change handling, and trusted contact tokens; `src/WABinary/` implements WhatsApp's custom binary XML encoding/decoding with JID helpers; `src/WAUSync/` implements the USync query protocol for device enumeration; and `src/Signal/` wraps the libsignal library for pre-key management, group sender keys, and LID migration. The library depends on external packages such as `libsignal`, `ws`, `protobufjs`, `@hapi/boom`, `pino`, `lru-cache`, `async-mutex`, and optional media processing libraries (`sharp`, `jimp`, `link-preview-js`). Baileys is designed for integration into larger applications (bots, automation, analytics) and exposes a comprehensive API for sending/receiving messages, managing groups, syncing chat history, handling media, and reacting to real-time events. It includes extensive unit and end-to-end tests, a protobuf extraction tool (`proto-extract/`) that scrapes WhatsApp Web's JavaScript to regenerate the `.proto` schema, and a version update script that fetches the latest WhatsApp Web version. The library is actively maintained with frequent commits, CI/CD pipelines, and a clear migration guide for breaking changes.

RATING: 9.1/10 MAINT: active DRIFT: low
▸ 5 reusable components found
normen/whatscli ★ 1044 77 APPLICATION

whatscli is a terminal-based (TUI) WhatsApp client written in Go. It connects via the WhatsApp Web API using the whatsmeow library, providing message sending/receiving, media attachment handling, group management, and desktop notifications. The architecture is a monolith with two goroutines: a tview-based UI main loop and a session manager that handles the WhatsApp connection and command dispatch through channels. The UI is highly configurable via an INI config file, supporting custom keybindings and color schemes. The codebase demonstrates good concurrency patterns with channel-based IPC and includes unit tests for the message storage layer. While the UI logic in main.go is tightly coupled to tview, the message database and event handling show clean separation and moderate reusability.

RATING: 7.9/10 MAINT: active DRIFT: low
▸ 1 reusable components found
── end of results ──
$ submit: