{"id":"dff00d17-9e9e-4365-8bfd-3f22702bcd32","shortId":"mjmjCE","kind":"skill","title":"whatsapp","tagline":"Send WhatsApp messages programmatically via the Baileys library (WhatsApp Web multi-device protocol). Use when the user asks to send a WhatsApp message or interact with WhatsApp.","description":"# WhatsApp\n\nSend and receive WhatsApp messages using the Baileys library, which implements the WhatsApp Web multi-device protocol.\n\n## Authentication\n\nThe WhatsApp integration uses QR code authentication:\n\n1. Run `npx tsx src/integrations/whatsapp.ts`\n2. Scan the QR code with WhatsApp on your phone (Linked Devices)\n3. Auth credentials are saved to `~/.nomos/whatsapp-auth/` for reconnection\n\n## Running the Bot\n\nStart the WhatsApp bot:\n\n```bash\nnpx tsx src/integrations/whatsapp.ts\n```\n\nThe bot will:\n\n- Display a QR code on first run (scan with your phone)\n- Automatically reconnect using saved credentials\n- Listen for incoming messages in individual chats and groups\n- Respond to mentions in groups or messages starting with `/`, `!`, or `@`\n- Track conversation context for multi-turn dialogue\n\n## Message Patterns\n\n### Individual Chats\n\nThe bot responds to all messages in individual (1-on-1) chats.\n\n### Group Chats\n\nThe bot only responds when:\n\n1. **Mentioned by name** — Someone sends a message mentioning the bot's phone number\n2. **Trigger prefix** — Message starts with `/`, `!`, or `@`\n\nExample group messages that trigger a response:\n\n```\n@15551234567 what's the weather?\n/help\n!status\n@bot hello there\n```\n\n## Restricting Access\n\nTo limit the bot to specific chats, set the `WHATSAPP_ALLOWED_CHATS` environment variable with comma-separated JIDs (WhatsApp IDs):\n\n```bash\n# .env\nWHATSAPP_ALLOWED_CHATS=15551234567@s.whatsapp.net,120363123456789012@g.us\n```\n\nJID formats:\n\n- Individual chats: `[phone_number]@s.whatsapp.net` (e.g., `15551234567@s.whatsapp.net`)\n- Group chats: `[group_id]@g.us` (e.g., `120363123456789012@g.us`)\n\n## Features\n\n- **QR Code Login** — Scan with your phone to authenticate\n- **Session Persistence** — Auth credentials saved for automatic reconnection\n- **Multi-turn Context** — Maintains conversation history per chat\n- **Group Support** — Responds to mentions and trigger prefixes in groups\n- **Message Chunking** — Automatically splits long responses (4096 char limit)\n- **Typing Indicators** — Shows \"composing...\" while processing\n- **Allowlist Support** — Restrict bot to specific chats via env var\n\n## Tips\n\n- To find a chat JID, check the bot logs when a message is received\n- Group JIDs contain `@g.us`, individual chats contain `@s.whatsapp.net`\n- In groups, prefix messages with `/`, `!`, or `@` to trigger the bot without mentioning\n- The bot ignores its own messages and status broadcasts\n- Long messages are automatically split into multiple messages\n- Auth state is stored in `~/.nomos/whatsapp-auth/` — back up this directory to preserve sessions","tags":["whatsapp","nomos","project-nomos","agent-memory","agent-skills","agentic-ai","ai-agents","ai-assistant","autonomous-agents","claude","claude-ai","claude-code"],"capabilities":["skill","source-project-nomos","skill-whatsapp","topic-agent-memory","topic-agent-skills","topic-agentic-ai","topic-ai-agents","topic-ai-assistant","topic-autonomous-agents","topic-claude","topic-claude-ai","topic-claude-code","topic-claude-skills","topic-digital-clone","topic-llm"],"categories":["nomos"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/project-nomos/nomos/whatsapp","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add project-nomos/nomos","source_repo":"https://github.com/project-nomos/nomos","install_from":"skills.sh"}},"qualityScore":"0.457","qualityRationale":"deterministic score 0.46 from registry signals: · indexed on github topic:agent-skills · 14 github stars · SKILL.md body (2,604 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-22T01:02:20.329Z","embedding":null,"createdAt":"2026-04-21T19:04:09.295Z","updatedAt":"2026-04-22T01:02:20.329Z","lastSeenAt":"2026-04-22T01:02:20.329Z","tsv":"'-1':154 '/.nomos/whatsapp-auth':80,366 '/help':196 '1':57,152,163 '120363123456789012@g.us':230,246 '15551234567':191 '15551234567@s.whatsapp.net':229,239 '2':62,177 '3':74 '4096':290 'access':202 'allow':213,227 'allowlist':299 'ask':20 'auth':75,259,361 'authent':49,56,256 'automat':108,263,286,356 'back':367 'bailey':8,38 'bash':90,224 'bot':85,89,95,145,159,173,198,206,302,317,341,345 'broadcast':352 'char':291 'chat':119,143,155,157,209,214,228,234,241,273,305,313,329 'check':315 'chunk':285 'code':55,66,100,249 'comma':219 'comma-separ':218 'compos':296 'contain':326,330 'context':134,268 'convers':133,270 'credenti':76,112,260 'devic':14,47,73 'dialogu':139 'directori':370 'display':97 'e.g':238,245 'env':225,307 'environ':215 'exampl':184 'featur':247 'find':311 'first':102 'format':232 'g.us':244,327 'group':121,126,156,185,240,242,274,283,324,333 'hello':199 'histori':271 'id':223,243 'ignor':346 'implement':41 'incom':115 'indic':294 'individu':118,142,151,233,328 'integr':52 'interact':27 'jid':221,231,314,325 'librari':9,39 'limit':204,292 'link':72 'listen':113 'log':318 'login':250 'long':288,353 'maintain':269 'mention':124,164,171,278,343 'messag':4,25,35,116,128,140,149,170,180,186,284,321,335,349,354,360 'multi':13,46,137,266 'multi-devic':12,45 'multi-turn':136,265 'multipl':359 'name':166 'npx':59,91 'number':176,236 'pattern':141 'per':272 'persist':258 'phone':71,107,175,235,254 'prefix':179,281,334 'preserv':372 'process':298 'programmat':5 'protocol':15,48 'qr':54,65,99,248 'receiv':33,323 'reconnect':82,109,264 'respond':122,146,161,276 'respons':190,289 'restrict':201,301 'run':58,83,103 's.whatsapp.net':237,331 'save':78,111,261 'scan':63,104,251 'send':2,22,31,168 'separ':220 'session':257,373 'set':210 'show':295 'skill' 'skill-whatsapp' 'someon':167 'source-project-nomos' 'specif':208,304 'split':287,357 'src/integrations/whatsapp.ts':61,93 'start':86,129,181 'state':362 'status':197,351 'store':364 'support':275,300 'tip':309 'topic-agent-memory' 'topic-agent-skills' 'topic-agentic-ai' 'topic-ai-agents' 'topic-ai-assistant' 'topic-autonomous-agents' 'topic-claude' 'topic-claude-ai' 'topic-claude-code' 'topic-claude-skills' 'topic-digital-clone' 'topic-llm' 'track':132 'trigger':178,188,280,339 'tsx':60,92 'turn':138,267 'type':293 'use':16,36,53,110 'user':19 'var':308 'variabl':216 'via':6,306 'weather':195 'web':11,44 'whatsapp':1,3,10,24,29,30,34,43,51,68,88,212,222,226 'without':342","prices":[{"id":"91b0f09c-7f21-4b4d-a40e-2932aa1a4952","listingId":"dff00d17-9e9e-4365-8bfd-3f22702bcd32","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"project-nomos","category":"nomos","install_from":"skills.sh"},"createdAt":"2026-04-21T19:04:09.295Z"}],"sources":[{"listingId":"dff00d17-9e9e-4365-8bfd-3f22702bcd32","source":"github","sourceId":"project-nomos/nomos/whatsapp","sourceUrl":"https://github.com/project-nomos/nomos/tree/main/skills/whatsapp","isPrimary":false,"firstSeenAt":"2026-04-21T19:04:09.295Z","lastSeenAt":"2026-04-22T01:02:20.329Z"}],"details":{"listingId":"dff00d17-9e9e-4365-8bfd-3f22702bcd32","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"project-nomos","slug":"whatsapp","github":{"repo":"project-nomos/nomos","stars":14,"topics":["agent-memory","agent-skills","agentic-ai","ai-agents","ai-assistant","autonomous-agents","claude","claude-ai","claude-code","claude-skills","digital-clone","llm","mcp","multi-agent","multi-agent-systems","ollama","self-hosted"],"license":"mit","html_url":"https://github.com/project-nomos/nomos","pushed_at":"2026-04-18T00:18:33Z","description":"Your AI digital clone — learns who you are, acts on your behalf, remembers everything. Persistent vector memory, multi-agent teams, 60+ skills, smart model routing. Self-hosted, encrypted, multi-provider (Claude/Ollama/OpenRouter). Deploy to Slack, Discord, Telegram, WhatsApp & more in minutes.","skill_md_sha":"6c1686db08e74742b77ef5932c44e61d9ca1848e","skill_md_path":"skills/whatsapp/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/project-nomos/nomos/tree/main/skills/whatsapp"},"layout":"multi","source":"github","category":"nomos","frontmatter":{"name":"whatsapp","description":"Send WhatsApp messages programmatically via the Baileys library (WhatsApp Web multi-device protocol). Use when the user asks to send a WhatsApp message or interact with WhatsApp."},"skills_sh_url":"https://skills.sh/project-nomos/nomos/whatsapp"},"updatedAt":"2026-04-22T01:02:20.329Z"}}