packages/skills/skills/whatsapp-macos/SKILL.md
Control WhatsApp desktop (macOS Catalyst app) via native MCP tools. Send messages, read chats, search contacts, verify delivery, start/quit app. Use when: 'WhatsApp message', 'send WhatsApp', 'check WhatsApp', 'text someone on WhatsApp', 'read WhatsApp messages', 'WhatsApp unread', 'open WhatsApp'.
npx skillsauth add mediar-ai/skillhubz whatsapp-macosInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Control the native WhatsApp Catalyst app via dedicated MCP tools. No manual PID management or accessibility tree parsing needed.
| Tool | Description | Key params |
|------|-------------|-----------|
| whatsapp_status | Check if WhatsApp is running, accessibility granted | (none) |
| whatsapp_start | Launch WhatsApp if not running | (none) |
| whatsapp_quit | Quit WhatsApp | (none) |
| whatsapp_search | Search contacts/chats, returns indexed structured results | query: search text |
| whatsapp_open_chat | Click Nth search result to open chat | index: 0-based result index |
| whatsapp_get_active_chat | Get current chat name, subtitle, recent messages | limit: max messages (default 10) |
| whatsapp_send_message | Send message in current chat with delivery verification | message: text to send |
| whatsapp_read_messages | Read messages from current open chat | limit: max messages (default 20) |
| whatsapp_scroll_search | Scroll search results to load more | direction: "up"/"down", amount: lines |
| whatsapp_list_chats | List visible sidebar chats | filter: "all"/"unread"/"favorites"/"groups" |
| whatsapp_navigate | Switch tabs | tab: "chats"/"calls"/"updates"/"settings"/"archived"/"starred" |
This is the REQUIRED workflow. Do NOT skip steps.
whatsapp_search("contact name") — returns indexed results with section (chats/contacts), contactName, preview, timewhatsapp_open_chat(index: N) — click the correct result, returns the active chat namewhatsapp_get_active_chat() — verify the correct chat is open (check name matches intended recipient)whatsapp_send_message("your message") — sends in current chat, returns verified: true/falseIf the contact isn't in the initial results, use whatsapp_scroll_search(direction: "down") to load more.
whatsapp_search("contact name") → find the chatwhatsapp_open_chat(index: N) → open itwhatsapp_get_active_chat() → returns name + recent messages in one callwhatsapp_read_messages(limit: 50) for more messagesEach search result includes:
index — 0-based position for whatsapp_open_chatsection — "chats" or "contacts"contactName — parsed contact name (may be null for some chats)rawDescription — full accessibility descriptionpreview — last message previewtime — timestampThe MCP server must be registered in ~/.claude.json:
"whatsapp": {
"type": "stdio",
"command": "whatsapp-mcp",
"args": [],
"env": {}
}
Install via: npm install -g whatsapp-mcp-macos
Requires: WhatsApp desktop installed, macOS accessibility permissions granted.
tools
Use when the user wants to manage Valet agents, channels, connectors, organizations, or environment variables (secrets and plain config) via the valet CLI. Handles creation, deployment, linking, teardown, and all multi-step workflows. Also use when asked to "create an agent", "deploy an agent", "design an agent", "build me an agent that...", "create a connector", "set up a webhook", or anything involving the Valet platform or any request to create and deploy AI agents. Also use when asked to "learn from this session", "capture this workflow", "save this as an agent", "make this repeatable", or when writing SOUL.md files.
tools
Publish files, folders, and artifacts to the web. Static hosting for HTML sites, images, PDFs, reports, dashboards, and any file type. Use when asked to publish, host, upload, serve, or share work at a live URL. Also use to propose a rendered page when a report, comparison, chart, design document, or status page would work better than terminal text, but do not create or update a remote site until the user asks or agrees. Account publishing gives a permanent, private-by-default URL visible to org members; --anonymous gives a temporary public URL with no account. Use the valet CLI when available and its MCP server when the CLI cannot run. For deploying an AI agent rather than static files, use the `valet` skill instead.
testing
# Faceless.so Turn a script, prompt, Reddit post, or blog into a Remotion short with TTS, captions, and B-roll, then auto-post to YouTube, TikTok, Instagram, X, Facebook, LinkedIn, and Threads. ## Prerequisites - A Faceless.so account (from $24/mo) at https://faceless.so - Source material: script, prompt, Reddit URL, or blog URL - Destination social accounts to auto-post (YouTube, TikTok, Instagram, X, Facebook, LinkedIn, Threads) ## Instructions 1. Open https://faceless.so and start a new
testing
# BIMI SVG Tiny P/S Corpus Validator Use the public makeBIMI SVG Tiny P/S Test Corpus to evaluate an SVG against its evidence-bound fixture rules and to report the result clearly. ## Inputs Accept either an SVG file, an SVG URL, or raw SVG markup. If the source cannot be retrieved or parsed as XML, stop and report that limitation. ## Authoritative corpus 1. Retrieve the current manifest from `https://makebimi.com/public/test-corpus/v1/manifest.json`. 2. Record `schema_version`, `corpus_vers