ClementWalter

Whatsapp CLI — Code Quality skill for Claude Code

Code Quality community

Pure-Python WhatsApp client + CLI: pairs as a linked device, reads/sends end-to-end-encrypted personal chats.

How to install Whatsapp CLI

This entry records only its repository, not the path inside it, so there is no exact command to give. Open ClementWalter/whatsapp-cli and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

What Whatsapp CLI does

Pure-Python WhatsApp client + CLI: pairs as a linked device, reads/sends end-to-end-encrypted personal chats. Ships as an agent skill in the Vercel skills format.

Alternatives in Code Quality

  • Import Drawio — Redraw a draw.io file as an editorial diagram at a chosen format, size, and detail level 27.2k ★
  • Job Stories — Create job stories with acceptance criteria in JTBD format 7.8k ★
  • Video Script: Claude SEO V1.7.2 — What's New — Duration: ~5 minutes Tone: Natural, conversational, like talking to a friend who knows Claude Code Format: Scr 5k ★

README

whatsapp-cli

A pure-Python WhatsApp client that pairs as a **linked device** and gives you your own chats from the terminal:

wa pull                 # catch up the server mailbox
wa list                 # 1 row per conversation
wa read "alice"         # show a thread
wa send "alice" "hi"    # send a text (1:1 or group)
wa send "alice" --doc report.pdf   # share a document (PDF or any file)

Not the Cloud Business API (which cannot read personal chats), not a Playwright browser scraper. The client speaks WhatsApp's native protocol: Noise XX over WebSocket, Signal Double Ratchet for messages, Sender Keys for groups, LtHash-verified app-state sync for chat metadata.

Install

Requires Python 3.11+ and [uv](https://github.com/astral-sh/uv).

Two ways:

**A — Bundled launcher.** No install step. Clone the repo and invoke `wa` directly; the `#!/usr/bin/env -S uv run --script` shebang and PEP 723 inline metadata make `uv` pull deps on the first run.

git clone  whatsapp-cli
cd whatsapp-cli
./bin/wa login                          # pair (one-time QR scan)
./bin/wa status

**B — Global tool install.** Puts a `wa` command on PATH; the rest of the docs use that shorter form interchangeably with `wa`.

uv tool install --from ./whatsapp-cli whatsapp-cli
wa login

State lives under `~/.config/whatsapp-cli/` (keys) and `~/.cache/whatsapp-cli/` (chats, contacts, message history). To uninstall cleanly, `uv tool uninstall whatsapp-cli` and `rm -rf` both directories.

(If you previously ran a version that stored state under `~/.config/whatsapp-user-cli/`, the CLI auto-renames those directories on first import — your pairing is preserved.)

Daily usage

wa pull                              # ~3s if nothing new, longer for a backlog
wa list                              # 20 most-recent conversations
wa list --limit 200 --json           # everything, machine-readable
wa read "alice"                      # show alice's thread; au