agentleFS
yourkenikeyourkenike/ciana-parrot/skills/whatsapp/SKILL.md

whatsapp

Skill1 starsChanged 9 months agoMITView on GitHub

Send and read WhatsApp messages via the wacli CLI. Search chats, view history, send text and files to contacts or groups.

  • Installs packages

14 other projects use a version of this.

Adopted by

Most recently taken up by

The file

Show its rules and text

We split this skill into the rules it gives an agent

15 rules. 0 are common, 7 are distinctive, and 8 are very specific to this project.

  • 0

    Common

    Most of the 12 edited versions we read keep these.

  • 7

    Distinctive

    This author's own choices. Worth a look.

  • 8

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Use the whatsapp bridge to read and send WhatsApp messages via the wacli CLI.

    line 9
  2. Very specific:

    Run wacli-daemon status to check if the sync daemon is running

    line 27
  3. Very specific:

    If the status is "stopped", start it: wacli-daemon start

    line 28
  4. Very specific:

    After starting, wait a few seconds, then verify with wacli doctor that CONNECTED is true

    line 29
  5. Distinctive:

    Only then proceed with the actual command

    line 30
  6. Very specific:

    If wacli doctor shows AUTHENTICATED as false, tell the user they need to re-authenticate with wacli auth on the host (this requires …

    line 34
  7. Very specific:

    All commands run via host_execute(bridge="whatsapp", command="...").

    line 38
  8. Distinctive:

    When the user asks to message someone by name (e.g.

    line 90
  9. Very specific:

    Search chats first: wacli chats list --query "Marco"

    line 92
  10. Distinctive:

    If found, use the JID or phone number from the result to send

    line 93
  11. Distinctive:

    If multiple matches, show the list and ask the user to pick

    line 94
  12. Distinctive:

    Only if no match is found, ask the user for the number

    line 95
  13. Distinctive:

    Always confirm recipient and message content: before sending

    line 99
  14. Distinctive:

    Rate limit: - don't spam

    line 101
  15. Very specific:

    Add whatsapp bridge in config.yaml, restart gateway

    line 109

“Common” is measured: kept by at least 6 in 10 of the 12 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

WhatsApp

Use the whatsapp bridge to read and send WhatsApp messages via the wacli CLI.

When to Use

  • User asks to send a WhatsApp message
  • Reading WhatsApp conversation history
  • Searching WhatsApp chats or messages

When NOT to Use

  • Telegram messages -> reply normally (Ciana routes automatically)
  • iMessage/SMS -> use the imessage bridge
  • Any other messaging platform

Pre-flight: Ensure Sync is Running

Before any WhatsApp operation, check that wacli is connected and syncing:

  1. Run wacli-daemon status to check if the sync daemon is running
  2. If the status is "stopped", start it: wacli-daemon start
  3. After starting, wait a few seconds, then verify with wacli doctor that CONNECTED is true
  4. Only then proceed with the actual command

This ensures messages are always up-to-date without requiring the user to manually sync.

If wacli doctor shows AUTHENTICATED as false, tell the user they need to re-authenticate with wacli auth on the host (this requires scanning a QR code and cannot be done remotely).

Commands

All commands run via host_execute(bridge="whatsapp", command="...").

Sync Daemon Management

wacli-daemon status          # Check if sync is running
wacli-daemon start           # Start sync in background (idempotent)
wacli-daemon stop            # Stop background sync

List Chats

wacli chats list --limit 20
wacli chats list --limit 20 --query "John"

Search Messages

wacli messages search "query" --limit 20
wacli messages search "query" --limit 20 --chat <jid>
wacli messages search "query" --after 2025-01-01 --before 2025-02-01

Send Text

wacli send text --to "+14155551212" --message "Hello!"

For groups, use JID format:

wacli send text --to "1234567890-123456789@g.us" --message "Hello group!"

Send File

wacli send file --to "+14155551212" --file /path/to/image.jpg --caption "Check this"

Auth & Diagnostics

wacli auth          # Interactive QR code authentication (host only)
wacli doctor        # Check auth/connection/store status

Contact Resolution

When the user asks to message someone by name (e.g. "send a message to Marco"), never say you don't have the number. Instead:

  1. Search chats first: wacli chats list --query "Marco"
  2. If found, use the JID or phone number from the result to send
  3. If multiple matches, show the list and ask the user to pick
  4. Only if no match is found, ask the user for the number

Safety Rules

  1. Always confirm recipient and message content before sending
  2. Never send to unknown numbers without explicit user approval
  3. Rate limit - don't spam

Setup (on host)

  • Install wacli: brew install steipete/tap/wacli
  • Install daemon: ln -sf $(pwd)/scripts/wacli-daemon /opt/homebrew/bin/wacli-daemon
  • Authenticate: wacli auth (scan QR code with WhatsApp on phone)
  • Initial sync: wacli-daemon start
  • Add whatsapp bridge in config.yaml, restart gateway

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.