Agent Skills: WhatsApp (Evolution API)

Manage WhatsApp via Evolution API (v2.x): list chats with unread messages and reply.

UncategorizedID: devexpert-io/devexpert-skills/whatsapp-evo

Install this agent skill to your local

pnpm dlx add-skill https://github.com/antoniolg/agent-kit/tree/HEAD/skills/whatsapp-evo

Skill Files

Browse the full folder contents for whatsapp-evo.

Download Skill

Loading file tree…

skills/whatsapp-evo/SKILL.md

Skill Metadata

Name
whatsapp-evo
Description
"Manage WhatsApp via Evolution API (v2.x): list chats with unread messages and reply."

WhatsApp (Evolution API)

Requirements

  • Environment variables:
    • EVOLUTION_API_URL (optional if config)
    • EVOLUTION_API_TOKEN
    • EVOLUTION_INSTANCE (optional if config)
  • Configure api_url and instance in ~/.config/skills/config.json under whatsapp_evo (recommended). The token must be set via env var.

Example:

{
  "whatsapp_evo": {
    "api_url": "https://evo.example.com",
    "instance": "MyInstance"
  }
}

Commands (from the skill folder)

1) Inbox (unread)

scripts/whatsapp-inbox --json-out /tmp/whatsapp-inbox.json
  • Shows a clean numbered list.
  • Saves metadata for later actions.
  • Note: the inbox is computed from the last incoming message without READ status in the API (it may not match "mark as unread" in the app).
  • Saves local state in ~/.cache/whatsapp-evo/inbox-state.json to avoid repeating chats (override with --state or WHATSAPP_EVO_STATE_PATH).
  • Use --no-update-state if you want to list the same chats again.
  • Use --since-days N to ignore old messages in the first pass (default 7).
  • Use --pending-reply to list conversations from the last N days where the latest message is not yours (ignores local state).

2) Reply (with user confirmation)

scripts/whatsapp-reply --index <n> --text "reply"
  • Replies to the chat at the given index using message/sendText.
  • For direct chats use the number; for groups use remote_jid if needed.
  • Optional: --delay <ms>, --link-preview, --instance, --url.

3) Conversation history

scripts/whatsapp-history --index <n> --limit 50
  • Use --jid or --number if you don’t have an index.
  • Filter by date with --since 2025-01-01 or --since 2025-01-01T10:00:00Z and --until.
  • Use --incoming-only to show only inbound messages.

Metadata format

/tmp/whatsapp-inbox.json contains:

  • index
  • name
  • remote_jid
  • number
  • unread_count
  • last_message_id
  • last_message_from_me
  • last_message_text
  • last_message_timestamp
  • last_message_sender

Rules

  • Show the user only the clean list; never show tokens.
  • Before replying, ask for confirmation.
  • If the JSON is stale or missing, re-run inbox.