Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add InitechSoftware/openclaw-whatsapp-skills --skill whatsapp-sendgit clone --depth 1 https://github.com/InitechSoftware/openclaw-whatsapp-skillsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/initechsoftware/openclaw-whatsapp-skills/whatsapp-send)<a href="https://agentmods.dev/skills/initechsoftware/openclaw-whatsapp-skills/whatsapp-send"><img src="https://agentmods.dev/badge/skills/initechsoftware/openclaw-whatsapp-skills/whatsapp-send/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/initechsoftware/openclaw-whatsapp-skills/whatsapp-send"><img src="https://agentmods.dev/badge/skills/initechsoftware/openclaw-whatsapp-skills/whatsapp-send.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00077 | $0.01568 |
| Opus 5 | $0.00039 | $0.00784 |
| Sonnet 5 | $0.00015 | $0.00314 |
| Haiku 4.5 | $0.00008 | $0.00157 |
Grade B, and why
whatsapp-send scanned grade B with 2 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 12d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Sends data to an external URLmediumData exfiltration
A POST to an outside endpoint may be telemetry or may be exfiltration; either way the mod talks to somewhere, and you should know where.
NEVER use `curl -d "..."` with arbitrary content. Shell encoding will corrupt non-ASCII characters — em-dashes, smart quotes, emoji — and the TimelinesAI JSON parser will reject the whole request with `'utf-8' codec can' Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
CHAT_JID=$(curl -sS -H "Authorization: Bearer $TIMELINES_AI_API_KEY" \ How it starts
The opening of the file, as written. The whole thing — 135 lines — stays where its author put it; the contents beside it link to each section on GitHub.
WhatsApp send
Send one WhatsApp message. Two paths:
| Path | Use when | Endpoint |
|---|---|---|
| By phone number | New recipient, or you don't know the chat id | POST /messages with {"phone":"+...", "text":"..."} |
| By chat id | Existing conversation, you have the chat id (e.g. from a webhook or an earlier send) | POST /chats/{chat_id}/messages with {"text":"..."} |
The sender is determined differently in each mode:
- In phone-number mode, TimelinesAI picks the sender from your connected numbers. In a single-number workspace this is unambiguous. In a multi-number workspace it uses the workspace default — if you need deterministic sender control, use chat-id mode with a chat you know the ownership of.
- In chat-id mode, the sender is always the JID stored in the chat's
whatsapp_account_idfield. You don't pick it, the chat record does. That's why this skill verifies chat ownership whenALLOWED_SENDER_JIDis set.
⚠️ Compliance — read before sending
Personal WhatsApp numbers connected to TimelinesAI are for transactional messages and replies to conversations the customer started. WhatsApp bans personal numbers for cold outreach quickly and aggressively. This skill will let you send anything — it's your responsibility to know the send is safe.
Safe sends with this skill (personal-number workflow):
- Order confirmation, shipping update, delivery notification, payment receipt.
- Appointment reminder or booking confirmation.
- Reply to a customer who opened the thread within WhatsApp's 24-hour session window.
- Event-triggered notification the customer explicitly opted into (HubSpot "demo scheduled" → meeting link, Stripe failed payment → recovery note).
- Sending a file (quote, invoice, contract) the customer just asked for.
Not safe — don't use this skill for:
- Cold outreach to purchased lists.
- Marketing broadcasts to customers who didn't opt in.
- Any unsolicited promotional message.
Those use cases need the WhatsApp Business API, which TimelinesAI supports today through the dashboard — public API automation is coming in Q2 2026. See ../../docs/compliance.md for the full explanation.
What ships with it
1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 12d ago First seen · 135 lines · 77 tokens per session scan B e502e07577e2
whatsapp-send is a skill published in the GitHub repository InitechSoftware/openclaw-whatsapp-skills (3 stars, last pushed 4mo ago), licensed MIT. It adds 77 tokens to every session and 1,568 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it B with 2 findings (sends data to an external url, makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
meeting-note-summarizer
Turn meeting notes or transcripts into factual summaries, decisions, questions, and action items. Use when a user wants a concise recap or needs explicit owners and deadlines extracted without filling in missing details.
daily-standup-journal
Generate concise daily standups, reflection prompts, and weekly retrospectives for individuals or teams. Use for planning a day, surfacing blockers, reviewing user-provided entries, or drafting a check-in without assuming prior history.
skillhub-cli
Connect an Agent to a SkillHub registry and use the official SkillHub CLI to search, install, list, or explicitly upgrade SkillHub skills. Use when a user asks to connect SkillHub, install a SkillHub skill, or manage skills previously installed from SkillHub.
sandbase
Access 2,000+ AI models and API tools through one MCP interface for inference, media generation, search, scraping, embeddings, social data, and structured retrieval. Use sandbasediscover before building custom integrations or declaring external data inaccessible; prefer an existing dedicated tool or API key when the…
dev-workflow
The complete development workflow for SkillHub contributors including local dev, staging validation, testing, and PR creation. Ensures agents follow the correct sequence of steps.
study-strategy-selector
Recommend practical study strategies matched to the material, learning goal, assessment, time, and learner constraints. Use for revision planning, homework routines, independent study, replacing ineffective habits, or adapting recall, spacing, explanation, and practice activities.