whatsapp-formatting
Skill5 starsChanged 5 months agoMITView on GitHub
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).
In this repository60 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- container/CLAUDE.mdCLAUDE.md
- add-amplifier-agentSkill
- add-atomic-chat-toolSkill
- add-codexSkill
- add-dashboardSkill
- add-deltachatSkill
- add-discordSkill
- add-emacsSkill
- add-gcal-toolSkill
- add-gchatSkill
- add-githubSkill
- add-gmail-toolSkill
- add-imessageSkill
- add-karpathy-llm-wikiSkill
- add-linearSkill
- add-macos-statusbarSkill
- add-matrixSkill
- add-mnemonSkill
- add-ollama-providerSkill
- add-ollama-toolSkill
- add-opencodeSkill
- add-parallelSkill
- add-resendSkill
- add-rtkSkill
- add-signalSkill
- add-slackSkill
- add-teamsSkill
- add-telegramSkill
- vercel-cliSkill
- add-vercelSkill
- add-webexSkill
- add-wechatSkill
- add-whatsapp-cloudSkill
- add-whatsappSkill
- clawSkill
- convert-to-apple-containerSkill
- customizeSkill
- debugSkill
- get-qodo-rulesSkill
- init-first-agentSkill
- init-onecliSkill
- manage-channelsSkill
- manage-mountsSkill
- migrate-from-openclawSkill
- migrate-from-v1Skill
- migrate-nanoclawSkill
- qodo-pr-resolverSkill
- setupSkill
- update-nanoclawSkill
- update-skillsSkill
- use-native-credential-proxySkill
- x-integrationSkill
- agent-browserSkill
- frontend-engineerSkill
- onecli-gatewaySkill
- self-customizeSkill
- slack-formattingSkill
- vercel-cliSkill
- welcomeSkill
The file
We split this skill into the rules it gives an agent
4 rules. About 0 are common, 1 is distinctive, and 3 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈1
Distinctive · estimate
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 41
If you don't know the JID, just refer to the person by name in plain prose.
- Very specific: line 59
Don't write <@U123> (that's Slack), <@!123> (Discord), or any other channel's mention syntax.
- Very specific: line 60
Don't paste a full JID like @15551234567@s.whatsapp.net in the text — only the digits before the JID's @ go after your @.
- Distinctive: line 61
Don't try to tag display names.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
WhatsApp Message Formatting
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.
How to detect WhatsApp context
You're in a WhatsApp conversation when any of these are true:
- The chat JID / platform id ends with
@s.whatsapp.net(1-on-1 DM) - The chat JID / platform id ends with
@g.us(group) - Your inbound message metadata has
chatJidmatching the above
Mentions — the important part
To 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 15551234567@s.whatsapp.net. The part before the @ is exactly what you put after @ when tagging them back.
Wrong vs right
| 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 +. |
Picking who to tag
- In a DM, there's no real need to tag the recipient (they already see every message), but tagging still works if you want emphasis.
- In a group, look at the
participants/ inboundcontent.senderto find the JID of the person you mean. Don't guess from display names — pushNames can collide and are not reliable. - If you don't know the JID, just refer to the person by name in plain prose. Don't write
@<name>— it won't tag and it will look like a tag that failed.
Text styles
WhatsApp uses single-character delimiters, not doubled like standard Markdown.
| Style | Syntax | Renders as |
| Bold | *bold* | bold |
| Italic | _italic_ | italic |
| Strikethrough | ~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.
What not to do
- Don't write
<@U123>(that's Slack),<@!123>(Discord), or any other channel's mention syntax. - Don't paste a full JID like
@15551234567@s.whatsapp.netin the text — only the digits before the JID's@go after your@. - Don't try to tag display names. WhatsApp has no display-name-based mention API.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

