WhatsApp (WAHA API)
Interact with WhatsApp via WAHA HTTP API. All scripts use uv run --with httpx and read config from ~/documents/whatsapp/.env.
Configuration
Scripts auto-load ~/documents/whatsapp/.env. Required variables:
WAHA_API_KEY- API key (sent asX-Api-Keyheader)WAHA_BASE_URL- Base URL (e.g.https://whatsapp.wyvern-vector.ts.net)
Chat ID Format
- Personal:
<phone>@c.us(e.g.6281234567890@c.us) - Group:
<id>@g.us(e.g.120363012345678901@g.us)
Scripts
All scripts are in scripts/ and share scripts/waha_client.py for auth/config.
Send Text
uv run --with httpx scripts/send_message.py <chat_id> "message"
uv run --with httpx scripts/send_message.py 6281234567890@c.us "Hello!" --reply-to <msg_id>
Send Media
uv run --with httpx scripts/send_media.py image <chat_id> <url> --caption "text"
uv run --with httpx scripts/send_media.py file <chat_id> <url>
uv run --with httpx scripts/send_media.py video <chat_id> <url>
uv run --with httpx scripts/send_media.py voice <chat_id> <url>
List Chats & Messages
uv run --with httpx scripts/list_chats.py chats
uv run --with httpx scripts/list_chats.py overview --limit 5
uv run --with httpx scripts/list_chats.py messages <chat_id> --limit 20
Contacts
uv run --with httpx scripts/contacts.py list
uv run --with httpx scripts/contacts.py info <contact_id>
uv run --with httpx scripts/contacts.py check <phone_number>
uv run --with httpx scripts/contacts.py block <contact_id>
uv run --with httpx scripts/contacts.py unblock <contact_id>
Groups
uv run --with httpx scripts/groups.py list
uv run --with httpx scripts/groups.py info <group_id>
uv run --with httpx scripts/groups.py participants <group_id>
uv run --with httpx scripts/groups.py create "Name" user1@c.us user2@c.us
Sessions
uv run --with httpx scripts/session.py list
uv run --with httpx scripts/session.py info default
uv run --with httpx scripts/session.py start|stop|restart|logout default
Direct API Calls
For operations not covered by scripts, call the API directly. See references/api_reference.md for all endpoints and schemas.
Example with httpx:
from waha_client import client, check, pp
with client() as c:
pp(check(c.put("/api/reaction", json={"messageId": "msg_id", "reaction": "👍", "session": "default"})))
More from idjoo/skills
commit
Smart atomic commits with Conventional Commits and emoji. Use when committing changes, creating git commits, or when the user says 'commit'. Analyzes workspace changes, splits into logical atomic units, and commits with emoji conventional format (type(scope): emoji description).
10beads
Local-first issue tracker using br (beads_rust). Use when the user wants to track issues, create tasks, manage dependencies between issues, or check what's ready to work on. Triggers on: 'create an issue', 'track a bug', 'what should I work on next', 'show blocked issues', 'add a dependency', 'beads', 'br', or any project issue-tracking task.
1waha
Send and manage WhatsApp messages via WAHA HTTP API. Use when the user wants to send WhatsApp messages (text, image, video, voice, file), read chats/messages, manage contacts, groups, or sessions. Triggers on: 'send a WhatsApp message', 'check my WhatsApp chats', 'send image on WhatsApp', 'WhatsApp group', 'WhatsApp session', 'WAHA', or any WhatsApp-related task.
1python-backend
Production-ready Python backend service architecture using FastAPI, SQLModel, and async PostgreSQL. Use when: (1) Scaffolding a new backend service or API project, (2) Adding new entities, endpoints, or features to an existing service, (3) Setting up database models, migrations, or repositories, (4) Configuring CI/CD, Docker, or Cloud Run deployment, (5) Reviewing or refactoring backend code for pattern compliance. Triggers on: 'create a new service', 'add an endpoint', 'add a new entity', 'scaffold a project', 'set up a FastAPI project', 'add CRUD', 'create a model', or any Python backend development task.
1