CtrlK
BlogDocsLog inGet started
Tessl Logo

whatsapp

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.

75

Quality

94%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Low

Low-risk findings worth noting

SKILL.md
Quality
Evals
Security

Quality

Content

92%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

Excellent body: copy-paste-ready command coverage with realistic examples, a well-sequenced pair→resume→operate→listen workflow with explicit error-recovery loops, and a clean split of detail into a single verified one-level-deep reference. The only weakness is presenting the command list twice (bash block plus table).

Suggestions

Merge the Commands bash block and the behavior table into one artifact (e.g., a single table with an example invocation per row) to remove the duplicated nine-command listing and cut tokens.

In the table, fold the argument constraints (e.g., 'jpg/png/webp, ≤16MB') into the same row as the example invocation so each command is documented exactly once.

The device-churn paragraph could be compressed to two sentences pointing to the printed recovery steps, since the CLI already prints them at runtime.

DimensionReasoningScore

Conciseness

Mostly lean — mental model, a deadlock warning, session layout, and recovery notes are all non-obvious information Claude cannot infer. However, the nine commands appear twice (the bash block and the behavior table repeat `pair`, `send-text`, `send-image`, `group-info`, `group-send`, `mark-read`, `presence`, `typing`), which is a trimmable redundancy.

4 / 5

Actionability

Fully executable, copy-paste-ready commands with concrete argument examples (realistic JIDs like `15550001234` and `120363000000000000@g.us`), constraints inline (jpg/png/webp, ≤16MB), and exact global-flag placement ("--session goes before the subcommand"). Covers the common cases directly.

5 / 5

Workflow Clarity

The multi-step flow is clearly sequenced: one-time QR pair → silent resume with persisted sessions → per-command use → listen for events. Error feedback loops are explicit: unpaired sessions "print a clear message to re-run wa.py --session <name> pair", commands print message ids as success signal, and the device-churn case has printed recovery steps (remove linked devices, wait 15–20 min, pair once).

5 / 5

Progressive Disclosure

The body is a genuine overview: commands, gotchas, and session layout inline, with the bulk (every Client method, event payloads, JID details) split into one clearly signaled, one-level-deep reference — [references/api.md] — whose existence and relevance I verified against the bundle.

5 / 5

Total

19

/

20

Passed

Description

92%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

A strong description: concrete capability list, explicit use-when guidance with trigger phrases, and a clear disambiguation from the official WhatsApp Business/Cloud API. The only gap is a handful of missing natural trigger variations.

DimensionReasoningScore

Specificity

The description lists multiple concrete actions — "pair with QR, send text/images, group chat, read receipts, presence/typing, and a long-running JSON event stream" — covering the skill's full capability surface comprehensively, matching the anchor for multiple specific concrete actions. It stays in third person ("Send and receive WhatsApp messages").

5 / 5

Completeness

Explicitly answers both questions: a clear 'what' (send/receive via pywhats with enumerated capabilities) and a concrete 'when' ("Use when the user wants to script WhatsApp as a linked companion device... pair a device, send a WhatsApp from Python, or listen for inbound messages") plus an explicit Triggers list, matching the 5 anchor's what+when with concrete trigger phrases.

5 / 5

Trigger Term Quality

Good keyword coverage with natural phrases users would say: "whatsapp", "send whatsapp", "pair whatsapp", "pywhats", "linked device", "whatsapp web client". A few natural variations are missing (e.g., "whatsapp message", "whatsapp group", "receive whatsapp"), so it sits just below the comprehensive synonym coverage of the 5 anchor.

4 / 5

Distinctiveness Conflict Risk

Clear niche — the unofficial pywhats linked-device client — with distinct triggers, and an explicit boundary ("NOT the official WhatsApp Business/Cloud API") that prevents overlap with any official-API skill. Minimal conflict risk.

5 / 5

Total

19

/

20

Passed

Validation

100%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository
sanjay3290/ai-skills
Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.