container/skills/whatsapp-formatting/SKILL.md
Format messages for WhatsApp, including mentions that render as real WhatsApp tags. Use when responding in a WhatsApp conversation (platform_id / chatJid ends with @s.whatsapp.net or @g.us).
npx skillsauth add qwibitai/nanoclaw whatsapp-formattingInstall 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.
WhatsApp uses its own lightweight markup and a phone-number-based mention syntax. The host's WhatsApp adapter (Baileys) handles markdown conversion automatically, but mentions are only protocol-level mentions if you use the right syntax — otherwise they render as plain text and don't notify the recipient.
You're in a WhatsApp conversation when any of these are true:
@s.whatsapp.net (1-on-1 DM)@g.us (group)chatJid matching the aboveTo tag a user so their name appears bold and clickable in WhatsApp and they get a push notification, write the @ followed by their phone number digits (no +, no spaces, no display name):
@15551234567 can you confirm?
The adapter scans your outgoing text for @<digits> (5–15 digits, optional leading + is stripped) and tells WhatsApp to render them as real mention tags.
The sender's phone JID is always in your inbound message metadata. When a user writes to you, inbound content.sender looks like [email protected]. The part before the @ is exactly what you put after @ when tagging them back.
| You write | What recipients see |
|-----------|---------------------|
| @Adam can you... | Plain text @Adam. No tag, no notification. |
| @15551234567 can you... | Bold/blue @Adam (or whatever name they're saved as), notification fires. |
| @+15551234567 ... | Same as above — adapter strips the +. |
participants / inbound content.sender to find the JID of the person you mean. Don't guess from display names — pushNames can collide and are not reliable.@<name> — it won't tag and it will look like a tag that failed.WhatsApp uses single-character delimiters, not doubled like standard Markdown.
| Style | Syntax | Renders as |
|-------|--------|------------|
| Bold | *bold* | bold |
| Italic | _italic_ | italic |
| Strikethrough | ~strike~ | ~strike~ |
| Monospace | `code` | code |
| Block monospace | ```block``` | preformatted block |
The adapter converts standard Markdown (**bold**, [link](url), # heading) to the WhatsApp-native form automatically, so you don't have to think about it — but be aware that single asterisks become italics, not bold.
<@U123> (that's Slack), <@!123> (Discord), or any other channel's mention syntax.@[email protected] in the text — only the digits before the JID's @ go after your @.tools
Introduce yourself to a newly connected channel. Triggered automatically when a channel is first wired. Send a friendly greeting and brief overview of what you can do.
tools
OneCLI Gateway: transparent HTTPS proxy that injects stored credentials into outbound calls. You MUST use this skill when the user asks you to read emails, check calendar, access GitHub repos, create issues, check Stripe payments, or interact with ANY external service or API. Do NOT use browser extensions or OAuth CLI tools. Make HTTP requests directly; the gateway injects credentials automatically.
tools
Deploy apps to Vercel. Use when asked to deploy, ship, or publish a web application, or manage Vercel projects, domains, and environment variables.
tools
Customize your own agent — add capabilities, install packages, add MCP servers, edit code or CLAUDE.md. Use when the user asks you to add a feature, install a tool, or modify how you work. For non-trivial code changes, delegate to a builder agent via create_agent.