Agent skill

Whatsapp

by sanjay3290 in sanjay3290/ai-skills

Send and receive WhatsApp messages via the unofficial linked-device client pywhats (pip install pywhats) — pair with QR, send text/images, group chat, read receipts, presence/typing, and a…

Apache-2.0Auto-check passed

Install Whatsapp

skills CLI
$ npx skills add sanjay3290/ai-skills --skill whatsapp -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install sanjay3290/ai-skills whatsapp --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/sanjay3290/ai-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/whatsapp .claude/skills/whatsapp && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
whatsapp
GitHub stars
431
Token cost
~1.1k tokens
SKILL.md length
314 words
Files
5 (incl. scripts, references)
Skills in repo
24
Repo updated
First seen
Licence
Apache-2.0

At a glance

Send and receive WhatsApp messages via the unofficial linked-device client pywhats (pip install pywhats) — pair with QR, send text/images, group chat, read receipts, presence/typing, and a…

  • The user wants to script WhatsApp as a linked companion device (like WhatsApp Web)
  • SKILL.md covers Mental model, ⚠️ Never bare-await Client…, Commands and Sessions / multi-account, plus 1 more section
  • Runs Shell and Python scripts from its folder
  • Send a WhatsApp from Python

What it does

Whatsapp is an agent skill from sanjay3290/ai-skills. Send and receive WhatsApp messages via the unofficial linked-device client pywhats (pip install pywhats) — pair with QR, send text/images, group chat, read receipts, presence/typing, and a long-running JSON event stream. Use when the user wants to script WhatsApp as a linked companion device (like WhatsApp Web), pair a device, send a WhatsApp from Python, or listen for inbound messages. Triggers: 'whatsapp', 'send whatsapp', 'pair whatsapp', 'pywhats', 'linked device', 'whatsapp web client'. NOT the official…

Its SKILL.md is about 1.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 6 other files, including scripts and reference files (for example `README.md`, `references/api.md` and `scripts/_bootstrap.sh`).

It works with WhatsApp and Python. The repository describes itself as: 24 cross-platform agent skills for Claude Code, Cursor, Codex & Gemini CLI — databases, messaging, research, TTS, DevOps, and Google Workspace. The licence is Apache-2.0.

When your agent uses it

  • The user wants to script WhatsApp as a linked companion device (like WhatsApp Web)
  • Send a WhatsApp from Python
  • Listen for inbound messages

Example prompts

  • “whatsapp”
  • “send whatsapp”
  • “pair whatsapp”
  • “/whatsapp”

Requirements

  • Python 3
  • A Bash shell

What it can do on your machine

Read from SKILL.md and the folder at commit 281d88d. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 2 files in scripts/ (Shell and Python), which the agent can run.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • pypi.org

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Whatsapp loads about 1.1k tokens when it runs, and up to ~3.7k if it reads all its reference files. Until then it costs about 138 tokens; SKILL.md has 314 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~138
When it runs · the whole SKILL.md, loaded when a task matches
~1.1k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~3.7k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from sanjay3290/ai-skills at commit 281d88d, republished under its Apache-2.0 licence (© sanjay3290). 314 words, ~1,060 tokens.

Download SKILL.mdSave it as .claude/skills/whatsapp/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.
name
whatsapp
description
Send and receive WhatsApp messages via the unofficial linked-device client pywhats (pip install pywhats) — pair with QR, send text/images, group chat, read receipts, presence/typing, and a long-running JSON event stream. Use when the user wants to script WhatsApp as a linked companion device (like WhatsApp Web), pair a device, send a WhatsApp from Python, or listen for inbound messages. Triggers: 'whatsapp', 'send whatsapp', 'pair whatsapp', 'pywhats', 'linked device', 'whatsapp web client'. NOT the official WhatsApp Business/Cloud API.

WhatsApp (pywhats)

Drive a WhatsApp account as a linked companion device (like WhatsApp Web) from async Python via pywhats (pre-alpha, text/image only). This is an unofficial multi-device client — not the official WhatsApp Business / Cloud API.

CLI entrypoint: scripts/wa.py (auto-bootstraps a managed venv on first run).

Mental model

  • Pairing = one-time QR scan. wa.py pair shows an ASCII QR; scan it in WhatsApp → Linked Devices. Credentials persist to $PYWHATS_HOME/<session>.session (+ .signal.db).
  • Resuming = silent. Later commands reconnect with the same session — no QR.
  • JIDs address chats. Bare phone 15550001234 → 15550001234@s.whatsapp.net; groups use ...@g.us.
  • Events are how you receive. wa.py listen prints one JSON object per event.

⚠️ Never bare-await Client calls inside a handler

Event handlers run inline on the receive loop. Awaiting send_*, mark_read, get_group_info, download_media, etc. inside a handler deadlocks the connection. Always asyncio.create_task(...). The listen subcommand already does this for --read.

Commands

bash
scripts/wa.py pair                                          # one-time QR pair
scripts/wa.py send-text 15550001234 "hello"                 # 1:1 text
scripts/wa.py send-image 15550001234 photo.jpg --caption hi # 1:1 image
scripts/wa.py group-info 120363000000000000@g.us            # group metadata JSON
scripts/wa.py group-send 120363000000000000@g.us "hi all"   # group text
scripts/wa.py mark-read 15550001234 MSGID [--sender JID]    # blue ticks
scripts/wa.py presence available                            # global presence
scripts/wa.py typing 15550001234 composing [--media audio]  # typing indicator
scripts/wa.py listen --read --events message,receipt        # JSONL event stream
scripts/wa.py --session work send-text 15550001234 "hi"     # named session
CommandBehavior
pairFresh link via ASCII QR; idempotent if already paired
send-text <to> <text>Send 1:1 text; print message id
send-image <to> <path> [--caption C]Send image (jpg/png/webp, ≤16MB); print id
group-info <gid>Print group JSON (subject, owner, participants, …)
group-send <gid> <text>Resolve members then send group text; print id
mark-read <chat> <ids...>Blue-tick; --sender for groups
presence <available|unavailable>Global presence
typing <to> <composing|paused>Chat presence; optional --media audio
listenLong-running JSON lines; --read, --events, --subscribe JID (required for presence events)

Global: --session NAME (default default, or env PYWHATS_SESSION) — goes before the subcommand: wa.py --session work pair.

Sessions / multi-account

$PYWHATS_HOME/                 # default: ~/.pywhats
  venv/                        # managed Python + pywhats
  default.session              # --session default
  default.session.signal.db
  work.session                 # --session work

Override home with PYWHATS_HOME. Unpaired / logged-out sessions print a clear message to re-run wa.py --session <name> pair.

If pair reports the device was logged out right after scanning, that is WhatsApp device-churn reaping, not a failure of the skill — the dead session is deleted automatically; follow the recovery steps it prints (remove linked devices, wait 15–20 min, pair once).

Full reference

references/api.md — every Client method, every event payload, JID construction, and the download_media note.

© sanjay3290, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 4 other files (scripts, references) in skills/whatsapp of sanjay3290/ai-skills.

  • SKILL.md
  • README.md
  • references/api.md
  • scripts/_bootstrap.sh
  • scripts/wa.py

Open the folder on GitHubat commit 281d88d

Compare with similar skills

Whatsapp next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Whatsapp compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Whatsapp this skillsanjay3290/ai-skills431—~1.1kAutomated safety check: PassApache-2.0
Greenapi Client Pythongreen-api/whatsapp-api-client-python209—~3.3kAutomated safety check: PassMIT
Whatsapp Cloud APIsickn33/agentic-awesome-skills47k2 repos~4.5kAutomated safety check: PassMIT
Meta Adshoodini/ai-agents-skills282—~4.2kAutomated safety check: NotesNone
Facebook Ads Library Searchbrowser-act/skills6.1k—~2.3kAutomated safety check: PassMIT
MCP Server Builderanthropics/skills180k63 repos~2.3kAutomated safety check: PassApache-2.0

Similar skills

  • Greenapi Client Python

    green-api/whatsapp-api-client-python

    Write correct Python code with the official GREEN-API SDK whatsapp-api-client-python (package whatsappapiclientpython).

    209 GitHub stars~3.3k tokensUpdated 9 days ago
    Productivity & AutomationAuto-check passed
  • Whatsapp Cloud API

    sickn33/agentic-awesome-skills

    Integracao com WhatsApp Business Cloud API (Meta). An agent skill from sickn33/agentic-awesome-skills.

    47k GitHub starsUsed in 2 repos~4.5k tokens
    Backend & APIsAuto-check passed
  • Meta Ads

    hoodini/ai-agents-skills

    Pull, analyze, manage, and CREATE Meta ads (Facebook, Instagram, Messenger, Threads, Click-to-WhatsApp) via the Marketing API.

    282 GitHub stars~4.2k tokensUpdated 3 mo ago
    Marketing & SEOAuto-check: notes
  • Facebook Ads Library Search

    browser-act/skills

    Searches Meta Ad Library (Facebook/Instagram/WhatsApp ads) by keyword or Facebook page ID and extracts ad details including creatives, copy, CTA, publisher platforms, spend, impressions, reach…

    6.1k GitHub stars~2.3k tokensUpdated 1 mo ago
    Marketing & SEOAuto-check passed
  • MCP Server Builder

    anthropics/skills

    Official

    Guides the design and implementation of Model Context Protocol servers in TypeScript or Python, from tool naming and error messages to evaluation.

    180k GitHub starsUsed in 63 repos~2.3k tokens
    Agent WorkflowsAuto-check passed
  • PDF Processing

    anthropics/skills

    Official

    Handles everyday PDF jobs in Python and on the command line: extract text and tables, merge, split, rotate, watermark, fill forms, encrypt and OCR.

    180k GitHub starsUsed in 48 repos~2k tokens
    Documents & OfficeAuto-check passed

More from sanjay3290/ai-skills

All 24 skills in this repo
  • Deep Research

    sanjay3290/ai-skills

    Execute autonomous multi-step research using Google Gemini Deep Research Agent.

    431 GitHub starsUsed in 9 repos~683 tokens
    Auto-check: notes
  • Imagen

    sanjay3290/ai-skills

    Generate images using Google Gemini's image generation capabilities.

    431 GitHub starsUsed in 6 repos~657 tokens
    Auto-check passed
  • Notebooklm

    sanjay3290/ai-skills

    Query and manage Google NotebookLM notebooks with persistent profile auth, source sync, batch/multi queries, and structured exports.

    431 GitHub stars~655 tokensUpdated 29 days ago
    Auto-check passed
  • Postgres

    sanjay3290/ai-skills

    Execute read-only SQL queries against multiple PostgreSQL databases.

    431 GitHub starsUsed in 1 repo~975 tokens
    Auto-check passed
  • Atlassian

    sanjay3290/ai-skills

    Manage Jira issues and Confluence wiki pages in Atlassian Cloud.

    431 GitHub stars~1.6k tokensUpdated 29 days ago
    Auto-check passed
  • Azure Devops

    sanjay3290/ai-skills

    Manage Azure DevOps projects, work items, repos, PRs, pipelines, wikis, test plans, security alerts, variable groups, environments/approvals, branch policies, and attachments.

    431 GitHub stars~4.2k tokensUpdated 29 days ago
    Auto-check passed

Works with

Questions about Whatsapp

What does Whatsapp do?

Send and receive WhatsApp messages via the unofficial linked-device client pywhats (pip install pywhats) — pair with QR, send text/images, group chat, read receipts, presence/typing, and a…. Whatsapp is an agent skill from sanjay3290/ai-skills. Send and receive WhatsApp messages via the unofficial linked-device client pywhats (pip install pywhats) — pair with QR, send text/images, group chat, read receipts, presence/typing, and a long-running JSON event stream.

When should I use Whatsapp?

Whatsapp fits situations like: the user wants to script WhatsApp as a linked companion device (like WhatsApp Web); send a WhatsApp from Python; listen for inbound messages.

How do I install Whatsapp in Claude Code?

Run `npx skills add sanjay3290/ai-skills --skill whatsapp -a claude-code`. Or copy the skill folder (skills/whatsapp in sanjay3290/ai-skills) into .claude/skills/whatsapp in your project. Claude Code loads it when a task matches its description.

How do I install Whatsapp in Codex?

Run `npx skills add sanjay3290/ai-skills --skill whatsapp -a codex`. Or copy the skill folder (skills/whatsapp in sanjay3290/ai-skills) into .agents/skills/whatsapp in your project. Codex loads it when a task matches its description.

Can I use Whatsapp in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add sanjay3290/ai-skills --skill whatsapp -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/whatsapp, .gemini/skills/whatsapp, .github/skills/whatsapp and .opencode/skills/whatsapp in your project.

What does Whatsapp need to run?

Going by SKILL.md and its folder, Whatsapp needs a shell and Python for the scripts in its folder. Our summary lists: Python 3; A Bash shell.

Does Whatsapp access the network?

SKILL.md names 1 domain. As links in the text: pypi.org. This is read from the text; nothing was executed.

Is Whatsapp safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Whatsapp use?

Whatsapp is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Whatsapp use?

About 1.1k tokens (SKILL.md is roughly 4.2k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 2.6k tokens, read only when the agent opens those files.

What are the alternatives to Whatsapp?

Skills that share tags, products or a category with Whatsapp: Greenapi Client Python (green-api/whatsapp-api-client-python, 209 stars), Whatsapp Cloud API (sickn33/agentic-awesome-skills, 47k stars), Meta Ads (hoodini/ai-agents-skills, 282 stars) and Facebook Ads Library Search (browser-act/skills, 6.1k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Whatsapp?

sanjay3290 (a GitHub user) maintains it in sanjay3290/ai-skills, which has 431 GitHub stars. The repository holds 24 skills in this directory. The repository was last updated on September 10, 2026.

Source: sanjay3290/ai-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.