Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add taslim/nanoclaw-gws-ea --skill whatsapp-formattinggit clone --depth 1 https://github.com/taslim/nanoclaw-gws-eaWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/taslim/nanoclaw-gws-ea/whatsapp-formatting)<a href="https://agentmods.dev/skills/taslim/nanoclaw-gws-ea/whatsapp-formatting"><img src="https://agentmods.dev/badge/skills/taslim/nanoclaw-gws-ea/whatsapp-formatting/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/taslim/nanoclaw-gws-ea/whatsapp-formatting"><img src="https://agentmods.dev/badge/skills/taslim/nanoclaw-gws-ea/whatsapp-formatting.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00048 | $0.00830 |
| Opus 5.5 | $0.00019 | $0.00332 |
| Sonnet 5.5 | $0.00010 | $0.00166 |
| Haiku 4.5 | $0.00005 | $0.00083 |
Grade A, and why
whatsapp-formatting scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 62 lines — stays where its author put it; the contents beside it link to each section on GitHub.
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 [email protected]. 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.
What ships with it
1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 1mo ago First seen · 62 lines · 48 tokens per session scan A d20ec7024c8c
whatsapp-formatting is a skill published in the GitHub repository taslim/nanoclaw-gws-ea (11 stars, last pushed today), licensed MIT. It adds 48 tokens to every session and 830 once invoked, about $0.0002 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-18.
Other skills, from other repositories
orbit-notion
Open Orbit briefing skill — selected by the Orbit pipeline when Notion is the user's only connected connector, or when the user explicitly scopes their daily digest to Notion. Pulls the past 24 hours of document edits, comments, mentions, and database row changes from the user's authenticated Notion connection and…
agentmail
Use your assigned AgentMail inbox to read email tasks, explicitly send or reply, and check delivery. Provided automatically by your inbox assignment.
rowboat-spaces
How to work as a member of Rowboat Spaces, the team chat where people and agents work together. Load it once per session, before acting on any request that reaches you from Rowboat; it covers your setup, mentions and hand-offs, the tools, and files.
feishu
Work with Feishu or Lark bots, docs, sheets, bitables, approval flows, and OpenAPI/MCP setup without hardcoding credentials.
pinchtab-mcp
Use this skill when a task requires browser automation through PinchTab's MCP server connected to a remote browser instance. Covers navigation, element interaction, data extraction, form filling, multi-step flows, and session management via MCP tools.
mochi-remind
Handle due reminders — notify the user with natural language and mark them done.