A powerful, privacy-first WhatsApp bot that uses high-performance local Vision-Language Models (VLMs) to summarize your chats. It can read messages, understand context, and even analyze images sent in your groups or private chats.
- Privacy First: Everything runs locally on your machine. No chat data is sent to external AI APIs.
- Multimodal Vision: Uses Qwen2-VL-7B to actually see and describe images sent in your chats.
- VRAM Management: Dynamically loads the model into VRAM/GPU only when a request is made and immediately disposes of it afterwards to keep your system resources free when idle.
- Smart Caching: Incremental chat caching with automatic daily rotation to keep the bot fast and your disk clean.
- Auto-Downloader: Automatically detects, downloads, and initializes the required GGUF models upon first run.
- Flexible Commands:
!summary: Get a comprehensive summary of today's key discussions and action items.!hourly: Get a quick recap of the last 60 minutes.!ask <question>: Ask a specific question about today's chat history.
- Node.js: Version 18.20+ or 20+ (required for
node-llama-cpp). - Hardware: A GPU (NVIDIA recommended for CUDA speed) is highly recommended, though it can run on a powerful CPU.
- WhatsApp: A phone with WhatsApp to scan the QR code for authentication.
-
Clone the repository:
git clone git@github.com:isieo/whatcoms.git cd WhatsappSummarizer -
Install dependencies:
npm install
-
Set up Environment Variables: Create a
.envfile from the example:cp .env.example .env
Open
.envand enter your WhatsApp ID (usually your phone number + country code followed by@c.us):WHATSAPP_OWNER_ID=60123456789@c.us
-
Start the bot:
node index.js
-
Authenticate: Scan the QR code that appears in your terminal with your WhatsApp mobile app (Linked Devices).
-
Commands (Owner Only): Send these commands from your phone to any chat or directly to the bot:
!summary [instructions]: Summarize the whole day.!hourly [instructions]: Summarize the last hour.!ask <your question>: Query the chat logs for specific info.
This project uses local GGUF models. If you have any issues with model performance, ensure your GPU drivers are updated and CUDA is installed properly for node-llama-cpp.
β¨ This project is vibecoded.