{"id":50409613,"url":"https://github.com/involvex/whatsapp-cli","last_synced_at":"2026-05-31T03:02:03.100Z","repository":{"id":350293949,"uuid":"1155806394","full_name":"involvex/whatsapp-cli","owner":"involvex","description":"A cli to interact with Whatsapp web. ","archived":false,"fork":false,"pushed_at":"2026-04-29T23:44:34.000Z","size":363,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-02T19:41:43.991Z","etag":null,"topics":["cli","whatsapp","whatsapp-cli","wwebjs"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/involvex.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"Security.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"Agents.md","dco":null,"cla":null},"funding":{"github":["involvex"],"patreon":["involvex"],"open_collective":["whatsapp-cli"],"ko_fi":["involvex"],"tidelift":["npm/@involvex/whatsapp-cli"],"community_bridge":["whatsapp-cli"],"liberapay":["involvex"],"issuehunt":["involvex"],"otechie":["involvex"],"custom":["https://github.com/sponsors/involvex","https://paypal.me/involvex"]}},"created_at":"2026-02-11T23:28:52.000Z","updated_at":"2026-04-29T23:44:36.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/involvex/whatsapp-cli","commit_stats":null,"previous_names":["involvex/whatsapp-cli"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/involvex/whatsapp-cli","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/involvex%2Fwhatsapp-cli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/involvex%2Fwhatsapp-cli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/involvex%2Fwhatsapp-cli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/involvex%2Fwhatsapp-cli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/involvex","download_url":"https://codeload.github.com/involvex/whatsapp-cli/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/involvex%2Fwhatsapp-cli/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33717419,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-31T02:00:06.040Z","response_time":95,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","whatsapp","whatsapp-cli","wwebjs"],"created_at":"2026-05-31T03:02:02.137Z","updated_at":"2026-05-31T03:02:03.096Z","avatar_url":"https://github.com/involvex.png","language":"TypeScript","funding_links":["https://github.com/sponsors/involvex","https://patreon.com/[\"involvex\"]","https://opencollective.com/[\"whatsapp-cli\"]","https://ko-fi.com/[\"involvex\"]","https://tidelift.com/funding/github/[\"npm/@involvex/whatsapp-cli\"]","https://funding.communitybridge.org/projects/[\"whatsapp-cli\"]","https://liberapay.com/[\"involvex\"]","https://issuehunt.io/r/[\"involvex\"]","https://otechie.com/[\"involvex\"]","https://paypal.me/involvex"],"categories":[],"sub_categories":[],"readme":"# WhatsApp CLI\n\nA minimal terminal-based WhatsApp client built with TypeScript, [whatsapp-web.js](https://github.com/pedrosans/whatsapp-web.js), and Node.js readline.\n\n## Features\n\n- Clean CLI interface with colored output\n- QR code authentication in terminal\n- Menu-driven commands with settings panel\n- Send and receive messages\n- **AI Message Generation** support (OpenRouter, OpenAI, Gemini)\n- Session persistence - no re-authentication needed after restart\n- Production-ready and minimal\n\n## Quick Start\n\n```bash\n# Install dependencies\nbun install\n\n# Run in development\nbun dev\n\n# Build for production\nbun run build\n\n# Start the CLI\nbun start\n```\n\n## Installation\n\n### Prerequisites\n\n- **Node.js**: v18+ or **Bun**: v1.0+\n- **Chrome/Chromium or Edge**: Installed in a standard location, or let Puppeteer manage Chrome\n- **Memory**: Minimum 2GB RAM\n\n### Browser Configuration\n\nThe CLI now tries browsers in this order:\n\n1. `PUPPETEER_EXECUTABLE_PATH`\n2. `BUN_CHROME_PATH`\n3. Standard Chrome/Chromium/Edge install locations\n4. Puppeteer's managed browser cache\n\nIf auto-detection fails, set an explicit path:\n\n**Windows:**\n\n```powershell\n$env:PUPPETEER_EXECUTABLE_PATH = \"C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe\"\n```\n\n**macOS:**\n\n```bash\nexport PUPPETEER_EXECUTABLE_PATH=\"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome\"\n```\n\n**Linux:**\n\n```bash\nexport PUPPETEER_EXECUTABLE_PATH=\"/usr/bin/google-chrome\"\n```\n\nIf you do not have a local browser install, download Puppeteer's managed Chrome once:\n\n```bash\nbunx puppeteer browsers install chrome\n```\n\n## First Run\n\n1. Run `bun start`\n2. Scan the QR code with your WhatsApp app\n3. Session is saved automatically for next time\n\n## Usage\n\n### Main Menu\n\n```\n1. List chats         - Show all your WhatsApp chats\n2. Select chat        - Choose a chat to work with\n3. Send message       - Send a message to the selected chat\n4. Show chat history  - Display last 15 messages from chat\n5. Toggle AI mode     - Enable/disable AI message generation\n6. Settings           - Configure AI provider, model, temperature, tokens\n7. About              - Show app information\n8. Logout \u0026 reset     - Clear auth token and force re-scan QR code\nQ. Exit               - Close the application\n```\n\n### AI Integration\n\nConfigure AI providers in Settings (option 6):\n\n```bash\n# Set API keys\nexport OPENROUTER_API_KEY=your_key_here\nexport OPENAI_API_KEY=your_key_here\nexport GEMINI_API_KEY=your_key_here\n```\n\nSupported providers:\n\n- **OpenRouter** - Multi-model support (Claude, GPT, PaLM)\n- **OpenAI** - GPT-3.5, GPT-4 models\n- **Google Gemini** - Gemini AI models\n\n## Development\n\n```bash\n# Format code\nbun run format\n\n# Type check\nbun run typecheck\n\n# Lint\nbun run lint\nbun run lint:fix\n\n# Build\nbun run build\n```\n\n## Documentation\n\n- [Quick Start Guide](docs/QUICKSTART.md)\n- [Session Persistence](docs/SESSION_PERSISTENCE.md)\n- [Security Policy](Security.md)\n- [Claude Code Integration](Claude.md)\n- [AI Agents](Agents.md)\n\n## Project Structure\n\n```\nsrc/\n├── cli.ts              # Main CLI entry point\n├── client.ts           # WhatsApp Web.js wrapper\n├── ui.ts               # Chalk-based UI utilities\n├── config.ts           # Configuration management\n├── settings.ts         # Interactive settings menu\n└── readline-utils.ts   # CLI input utilities\n```\n\n## Troubleshooting\n\n### Chrome Not Found\n\nThe CLI auto-detects Chrome/Chromium/Edge before falling back to Puppeteer's cache.\nIf startup still fails:\n\n1. Verify a browser is installed.\n2. Set `PUPPETEER_EXECUTABLE_PATH` to the exact browser executable.\n3. Or install Puppeteer's managed browser: `bunx puppeteer browsers install chrome`\n4. If you use a custom cache location, verify `PUPPETEER_CACHE_DIR`.\n\n### DEP0040 Warning\n\n`[DEP0040]` comes from the current `whatsapp-web.js -\u003e node-fetch -\u003e whatwg-url -\u003e tr46`\ndependency chain on newer Node versions. The CLI filters that upstream warning during startup,\nbut the root cause remains upstream until those dependencies are modernized.\n\n### Session Expired\n\nDelete `~/.whatsapp-cli/auth/` and re-scan the QR code.\n\n### High Memory Usage\n\nChrome headless mode uses ~150-300MB RAM. This is normal.\n\n## License\n\nMIT\n\n---\n\n**Built with** [Claude Code](https://claude.com/claude-code) | [Documentation](docs/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finvolvex%2Fwhatsapp-cli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finvolvex%2Fwhatsapp-cli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finvolvex%2Fwhatsapp-cli/lists"}