Skip to content
Agentmart
Submit a tool

whatsapp-operator

Operating guidance for safe WhatsApp automation through wabot.

Skill by TeddyJubu

IndexedMIT★ 1
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/teddyjubu-whatsapp-operator

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Operating guidance for safe WhatsApp automation through wabot.

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/whatsapp-operator

What's inside

Skill name
whatsapp-operator
Description
Operating guidance for safe WhatsApp automation through wabot.
License
MIT
Instructions
73 lines in SKILL.md · view on GitHub

Files (1)

  • SKILL.md

SKILL.md (first lines)

# WhatsApp Operator

Use this skill before changing WhatsApp state, sending messages, or handling inbound automation.

## Agentic workflow

1. Understand the request.
2. **Recall memory** — `search_mem0_memories` + `recall_contact_memory` for this contact.
3. Call other tools to gather facts (do not guess inbox contents or contact history).
4. Act with the right WhatsApp tool when policy allows.
5. **Save memory** — `add_mem0_memory` / `remember_contact_fact` for important facts before replying.
6. Reply clearly — complete but WhatsApp-appropriate length.

## Rules

- Check `wabot_health` before assuming WhatsApp is linked and connected.
- For "who messaged me" / recent chat questions, call `get_last_whatsapp_inbound_message`
  or `list_whatsapp_inbound_messages`. These read inbound traffic wabot observed — not
  WhatsApp app unread badges.
- Use `lookup_whatsapp_contacts` before cold messaging unknown numbers.
- Use `list_whatsapp_groups` for group discovery; `mark_whatsapp_read` when you have
  message IDs; `send_whatsapp_typing` for composing indicators.
- Inbound attachments are auto-downloaded and processed on the VPS (text, PDF, zip, images, audio).
- Owner numbers get Whisper `base`; other senders use `tiny` (see README VPS file processing).
- Re-process with `process_whatsapp_attachment(chat, message_id)` or `process_vps_file(path)`.
- Send any file type with `send_whatsapp_file(to, path)` from `WABOT_AGENT_MEDIA_DIR`, or the
  specific `send_whatsapp_*` tools for images, documents, audio, and video.
- React with `react_whatsapp_message`; edit own messages with `edit_whatsapp_message`;
  revoke with `revoke_whatsapp_message` (pass `sender` for others' messages in groups).
- Create groups with `create_whatsapp_group`; inspect via `get_whatsapp_group`;
  rename or change settings with `update_whatsapp_group` (name, topic/description,
  announce-only, admin-only edits); add/remove/promote/demote members with
  `update_whatsapp_group_participants`; group icon JPEG via `set_whatsapp_group_picture`
  (`image_path` under media dir, or `remove=true`); invite links via `get_whatsapp_group_invite`;
  join via `join_whatsapp_group`; leave with `leave_whatsapp_group`.
- Mute, archive, or pin chats with `mute_whatsapp_chat`, `archive_whatsapp_chat`,
  `pin_whatsapp_chat` (syncs via WhatsApp app state).
- Profile metadata: `get_whatsapp_user_info(jid)` (status, picture id, verified business name).
  Avatars: `download_whatsapp_profile_picture` → `data/media/avatars/` (set `preview=true` for thumb).
- Read/delivery receipts and remote typing may appear on the dashboard SSE stream
  (`whatsapp_receipt`, `whatsapp_presence`) when wabot webhooks are configured.
- History sync backfill populates `inbound_messages` via `POST /whatsapp/history` (no auto-reply).
  Use inbox tools after linking; live traffic still arrives on `/whatsapp/inbound`.
- Deep scraping / lead lists (500+ rows, Google Maps research): read `web-research` skill, call
  `web_research_health`, then `start_web_research` with the full brief. Results arrive on WhatsApp
  when the Firecrawl web-agent job finishes (owner-only by default).
- **Group chats:** `chat` is the group JID (`@g.us`); `sender` is the participant. Auto-reply and
  session history use `chat` as the session key. Reply with `send_whatsapp_text(to=chat, ...)`.
  Under `send_policy=owner`, the group `chat` JID is an allowed send target (like reply_to_sender).
  Add group JIDs to `WABOT_AGENT_ALLOWED_RECIPIENTS` when using `allowlist`.
- **Outreach follow-up:** after messaging someone for the owner, use `track_outbound_conversation`
  (or rely on auto-track on `send_whatsapp_text`). The owner gets a WhatsApp update when the
  target replies. Use `list_outbound_tasks` / `get_outbound_task_status` for status checks.
- **Appointment booking:** when the owner asks you to book with someone, check or ask for the
  owner's available windows, message the attendee with a few concrete options, track the
  outbound conversation, and confirm only after the attendee replies with availability.
- Never send credentials, one-time codes, tokens, cookies, or session data.
- Keep outbound messages clear and human-readable; be concise but answer the question fully.
- Respect the configured send policy. If a recipient is blocked, explain the operator action needed.
- Avoid bulk or cold outreach. Escalate to the operator instead.
- **Memory is mandatory:** recall before answering; persist important facts every turn
  (read `mem0-memory` skill). Store only useful, non-secret memory. Prefer concise facts.
- **Gmail / Google Calendar:** read `composio-gmail-calendar` and call Composio tools every turn;
  never invent emails, meetings, or availability — only report live tool results.

## Failure Handling

- `401`: token mismatch or missing `WABOT_TOKEN`; do not retry sends.
- `429`: rate limited; wait for the operator or retry later.
- `503`: WhatsApp is not connected or linked; ask the operator to repair the device session.
- Network timeout: check the VPS service and `wabot` daemon health.

From TeddyJubu/wabot-agent, MIT.

Signals

Stars
1
Forks
0
Open issues
14
Last commit (this folder)
May 21, 2026 (5 months ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from TeddyJubu

Cite this page

whatsapp-operator skill. Agent Mart. https://agentmart.dev/skills/teddyjubu-whatsapp-operator (last updated 2026-10-24)