Ak Dev New Messaging Integration
yaalalabs/agent-kernel
Step-by-step guide for adding a new messaging platform integration to Agent Kernel.
Connects NanoClaw to WhatsApp through Meta's official Business Cloud API using the Chat SDK bridge, with notes for upgrading older installs.
$ npx skills add nanocoai/nanoclaw --skill add-whatsapp-cloud -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install nanocoai/nanoclaw add-whatsapp-cloud --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/nanocoai/nanoclaw.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/add-whatsapp-cloud .claude/skills/add-whatsapp-cloud && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "add-whatsapp-cloud" agent skill from https://github.com/nanocoai/nanoclaw/tree/main/.claude/skills/add-whatsapp-cloud into .claude/skills/add-whatsapp-cloud/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "add-whatsapp-cloud", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/nanocoai/nanoclaw/tree/main/.claude/skills/add-whatsapp-cloudType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add nanocoai/nanoclaw --skill add-whatsapp-cloud -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install nanocoai/nanoclaw add-whatsapp-cloud --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/nanocoai/nanoclaw.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/add-whatsapp-cloud .agents/skills/add-whatsapp-cloud && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "add-whatsapp-cloud" agent skill from https://github.com/nanocoai/nanoclaw/tree/main/.claude/skills/add-whatsapp-cloud into .agents/skills/add-whatsapp-cloud/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "add-whatsapp-cloud", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add nanocoai/nanoclaw --skill add-whatsapp-cloud -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install nanocoai/nanoclaw add-whatsapp-cloud --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/nanocoai/nanoclaw.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/add-whatsapp-cloud .cursor/skills/add-whatsapp-cloud && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "add-whatsapp-cloud" agent skill from https://github.com/nanocoai/nanoclaw/tree/main/.claude/skills/add-whatsapp-cloud into .cursor/skills/add-whatsapp-cloud/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "add-whatsapp-cloud", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/nanocoai/nanoclaw.git --path .claude/skills/add-whatsapp-cloud--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add nanocoai/nanoclaw --skill add-whatsapp-cloud -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install nanocoai/nanoclaw add-whatsapp-cloud --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/nanocoai/nanoclaw.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/add-whatsapp-cloud .gemini/skills/add-whatsapp-cloud && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "add-whatsapp-cloud" agent skill from https://github.com/nanocoai/nanoclaw/tree/main/.claude/skills/add-whatsapp-cloud into .gemini/skills/add-whatsapp-cloud/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "add-whatsapp-cloud", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install nanocoai/nanoclaw add-whatsapp-cloudInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add nanocoai/nanoclaw --skill add-whatsapp-cloud -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/nanocoai/nanoclaw.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/add-whatsapp-cloud .github/skills/add-whatsapp-cloud && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "add-whatsapp-cloud" agent skill from https://github.com/nanocoai/nanoclaw/tree/main/.claude/skills/add-whatsapp-cloud into .github/skills/add-whatsapp-cloud/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "add-whatsapp-cloud", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add nanocoai/nanoclaw --skill add-whatsapp-cloud -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install nanocoai/nanoclaw add-whatsapp-cloud --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/nanocoai/nanoclaw.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/add-whatsapp-cloud .opencode/skills/add-whatsapp-cloud && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "add-whatsapp-cloud" agent skill from https://github.com/nanocoai/nanoclaw/tree/main/.claude/skills/add-whatsapp-cloud into .opencode/skills/add-whatsapp-cloud/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "add-whatsapp-cloud", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
add-whatsapp-cloudConnects NanoClaw to WhatsApp through Meta's official Business Cloud API using the Chat SDK bridge, with notes for upgrading older installs.
This channel uses Meta's official WhatsApp Business Cloud API, not the native Baileys adapter. The adapter is copied from the `channels` branch, registered with one import and backed by the pinned `@chat-adapter/whatsapp` package. A registration test checks that `whatsapp-cloud` is in the registry, and real delivery needs a WhatsApp Business number and a webhook.
A section covers upgrading. Older copies registered under the bare `whatsapp` key, which collided with the native adapter, and now register as a distinct `whatsapp-cloud` instance while the channel type stays `whatsapp`. As a result the webhook route moves from `/webhook/whatsapp` to `/webhook/whatsapp-cloud`, and installs that ran the previous version must account for that.
4 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 66f0823. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
ngrokpnpmFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
developers.facebook.comFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
WHATSAPP_VERIFY_TOKENWHATSAPP_ACCESS_TOKENWHATSAPP_APP_SECRETFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
WhatsApp Cloud API Channel for NanoClaw loads about 1.9k tokens when it runs. Until then it costs about 23 tokens; SKILL.md has 927 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
ed `ncl` or the OneCLI vault instead of `.env` by swapping only the consumer.Here they go to `.env` (set-if-absent — a value you've already filled in isice (see Next Steps) so the adapter and `.env` values are live.Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from nanocoai/nanoclaw at commit 66f0823, republished under its MIT licence (© nanocoai). 927 words, ~1,903 tokens.
.claude/skills/add-whatsapp-cloud/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.Connect NanoClaw to WhatsApp via the official Meta WhatsApp Business Cloud API.
NanoClaw doesn't ship channels in trunk — this skill copies the WhatsApp Cloud
adapter in from the channels branch.
The mechanical steps under Apply carry nc: directive fences: an agent reads
the prose and applies them, and a parser can apply them deterministically from
the same document. Every directive is idempotent, so the whole skill is safe to
re-run; anything a parser can't apply falls back to the prose beside it.
Fetch the channels branch and copy the WhatsApp Cloud adapter into
src/channels/ (overwrite — the branch is canonical):
src/channels/whatsapp-cloud.ts
src/channels/whatsapp-cloud-registration.test.tsAppend the self-registration import to the channel barrel (skipped if the line is already present). This one line is the skill's only reach-in into core:
import './whatsapp-cloud.js';Pinned to an exact version — the supply-chain policy rejects ranges and latest:
@chat-adapter/whatsapp@4.29.0Build guards the typed createChatSdkBridge(...) core call and proves the
dependency is installed — the import throws at evaluation if @chat-adapter/whatsapp
is missing or the barrel drifts:
pnpm run buildpnpm exec vitest run src/channels/whatsapp-cloud-registration.test.tswhatsapp-cloud-registration.test.ts imports the real channel barrel and asserts
the registry contains whatsapp-cloud — it goes red if the import line is deleted
or drifts, if the barrel fails to evaluate, or if @chat-adapter/whatsapp isn't
installed (the import throws), so it also covers the dependency from step 3.
End-to-end message delivery against a real WhatsApp Business number is verified manually once the service is running — see Next Steps and the webhook setup below.
Older copies of the adapter registered this bridge under the bare whatsapp key,
which collided with the native Baileys adapter. It now registers under a distinct
whatsapp-cloud instance (channelType stays whatsapp). Two consequences for an
install that ran the previous version:
/webhook/whatsapp to /webhook/whatsapp-cloud.
Update the callback URL in your Meta App dashboard (WhatsApp > Configuration)
accordingly.chat_sdk_* tables
re-key under the new instance, so previously-subscribed threads may need to
re-engage the bot.Fresh installs need none of this.
Meta app setup is human and interactive — these steps are prose, not directives (no parser can click through the Meta dashboard). A recipe rebuild produces a compiling, registered adapter that cannot receive a message until they're done.
whatsapp_business_messaging permission.https://your-domain/webhook/whatsapp-cloud.messages.Capture the four values, then write them. prompt only asks and binds the
answer to a name; a separate directive consumes it — so the same prompts could
feed ncl or the OneCLI vault instead of .env by swapping only the consumer.
Here they go to .env (set-if-absent — a value you've already filled in is
never overwritten):
Paste the System User access token — WhatsApp > API Setup, with `whatsapp_business_messaging` permission.Paste the Phone Number ID — WhatsApp > API Setup (not the phone number itself).Paste the App Secret — Settings > Basic.Paste the Verify Token — the random string you set under WhatsApp > Configuration.WHATSAPP_ACCESS_TOKEN={{access_token}}
WHATSAPP_PHONE_NUMBER_ID={{phone_number_id}}
WHATSAPP_APP_SECRET={{app_secret}}
WHATSAPP_VERIFY_TOKEN={{verify_token}}The Chat SDK bridge automatically starts a shared webhook server on port 3000
(WEBHOOK_PORT to change it), handling /webhook/whatsapp-cloud. This port must be
publicly reachable for Meta to deliver events. Running locally, expose it with
ngrok (ngrok http 3000), a Cloudflare Tunnel, or a reverse proxy on a VPS —
the resulting public URL is the base for the webhook URL set under WhatsApp >
Configuration above.
If you're in the middle of /setup, return to the setup flow now.
Otherwise, run /manage-channels to wire this channel to an agent group.
whatsapp-cloudMeta's "Verify and save" fails on the webhook. Meta hits your URL with a challenge the moment you click, so the endpoint must already be publicly reachable at /webhook/whatsapp-cloud (shared webhook server, port 3000) and the service must be running with WHATSAPP_VERIFY_TOKEN set to exactly the string you typed under WhatsApp > Configuration. Start or restart the service first, then click verify.
Everything works for a day, then all calls 401. You stored the temporary token from WhatsApp > API Setup, which expires in ~24 hours. Create a System User under Business Settings → Users, grant it the app with whatsapp_business_messaging, generate a permanent token, and replace WHATSAPP_ACCESS_TOKEN.
Outbound messages are accepted but never delivered. Two Meta-side gates: while the app is in development mode you can only message numbers added to the recipient allowlist in API Setup; and free-form replies are only allowed within 24 hours of the user's last inbound message — outside that window you need an approved template. Also confirm WHATSAPP_PHONE_NUMBER_ID is the Phone Number ID, not the phone number itself.
Adapter installed but nothing flows. Run pnpm exec vitest run src/channels/whatsapp-cloud-registration.test.ts — red means the barrel import or the @chat-adapter/whatsapp install drifted, so re-run the Apply steps. If green, restart the service (see Next Steps) so the adapter and .env values are live.
© nanocoai, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 2 other files in .claude/skills/add-whatsapp-cloud of nanocoai/nanoclaw.
Open the folder on GitHubat commit 66f0823
WhatsApp Cloud API Channel for NanoClaw next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| WhatsApp Cloud API Channel for NanoClaw this skillnanocoai/nanoclaw | 31k | — | ~1.9k | Automated safety check: Notes | MIT | |
| Ak Dev New Messaging Integrationyaalalabs/agent-kernel | 192 | — | ~4.6k | Automated safety check: Pass | Apache-2.0 | |
| Ak Add Integrationyaalalabs/agent-kernel | 192 | — | ~3.1k | Automated safety check: Pass | Apache-2.0 | |
| Integrate Whatsappgokapso/agent-skills | 177 | — | ~4.8k | Automated safety check: Pass | None | |
| Integration WebhooksBuilderIO/agent-native | 7.1k | — | ~5.3k | Automated safety check: Pass | None | |
| MoltflowLeoYeAI/openclaw-master-skills | 2.2k | — | ~3.8k | Automated safety check: Pass | MIT |
yaalalabs/agent-kernel
Step-by-step guide for adding a new messaging platform integration to Agent Kernel.
yaalalabs/agent-kernel
Add a messaging platform integration to an existing Agent Kernel project.
gokapso/agent-skills
Connect WhatsApp to your product with Kapso: onboard customers with setup links, detect connections, receive events via webhooks, and send messages/templates/media.
BuilderIO/agent-native
Cross-platform pattern for handling messaging integration webhooks (Slack, Telegram, WhatsApp, email, etc.) on serverless hosts.
LeoYeAI/openclaw-master-skills
WhatsApp Business automation API for sessions, messaging, groups, labels, and webhooks.
LeoYeAI/openclaw-master-skills
Complete WhatsApp automation via Evolution API Go v3 - instances, messages (text/media/polls/carousels), groups, contacts, chats, communities, newsletters, and real-time webhooks
nanocoai/nanoclaw
Installs or refreshes Iron Proxy and its Iron Control web console for NanoClaw, with a local Docker setup, database, credentials and a human approval bridge.
nanocoai/nanoclaw
Installs or refreshes OneCLI as the gateway provider for NanoClaw, copying the adapter files, registering the provider and running the setup script.
nanocoai/nanoclaw
Drives a web browser from the shell with the agent-browser CLI: open pages, read an element snapshot, click and fill by reference, grab text and screenshots.
nanocoai/nanoclaw
Guides a conversational migration from an OpenClaw install to NanoClaw v2, carrying over identity, channel credentials, scheduled tasks and workspace files.
nanocoai/nanoclaw
Wires up an additional phone number onto an already-installed Dial channel, so one NanoClaw install answers SMS and AI voice calls on more than one line.
nanocoai/nanoclaw
Installs the `dial` CLI and a credential in NanoClaw agent containers so chosen agents can send SMS, place AI voice calls and receive verification codes.
Works with
Categories
Connects NanoClaw to WhatsApp through Meta's official Business Cloud API using the Chat SDK bridge, with notes for upgrading older installs. This channel uses Meta's official WhatsApp Business Cloud API, not the native Baileys adapter. The adapter is copied from the `channels` branch, registered with one import and backed by the pinned `@chat-adapter/whatsapp` package.
WhatsApp Cloud API Channel for NanoClaw fits situations like: using the official WhatsApp Business Cloud API with a NanoClaw agent; upgrading an install that used the older bare whatsapp registration; updating a webhook URL after the route changed.
Run `npx skills add nanocoai/nanoclaw --skill add-whatsapp-cloud -a claude-code`. Or copy the skill folder (.claude/skills/add-whatsapp-cloud in nanocoai/nanoclaw) into .claude/skills/add-whatsapp-cloud in your project. Claude Code loads it when a task matches its description.
Run `npx skills add nanocoai/nanoclaw --skill add-whatsapp-cloud -a codex`. Or copy the skill folder (.claude/skills/add-whatsapp-cloud in nanocoai/nanoclaw) into .agents/skills/add-whatsapp-cloud in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add nanocoai/nanoclaw --skill add-whatsapp-cloud -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/add-whatsapp-cloud, .gemini/skills/add-whatsapp-cloud, .github/skills/add-whatsapp-cloud and .opencode/skills/add-whatsapp-cloud in your project.
Going by SKILL.md and its folder, WhatsApp Cloud API Channel for NanoClaw needs the command-line tools its instructions call (ngrok and pnpm) and credentials named WHATSAPP_VERIFY_TOKEN, WHATSAPP_ACCESS_TOKEN and WHATSAPP_APP_SECRET. Our summary lists: A NanoClaw installation with pnpm; A WhatsApp Business number with Cloud API access.
SKILL.md names 1 domain. As links in the text: developers.facebook.com. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
WhatsApp Cloud API Channel for NanoClaw is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.9k tokens (SKILL.md is roughly 7.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with WhatsApp Cloud API Channel for NanoClaw: Ak Dev New Messaging Integration (yaalalabs/agent-kernel, 192 stars), Ak Add Integration (yaalalabs/agent-kernel, 192 stars), Integrate Whatsapp (gokapso/agent-skills, 177 stars) and Integration Webhooks (BuilderIO/agent-native, 7.1k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
nanocoai (a GitHub organization) maintains it in nanocoai/nanoclaw, which has 30,902 GitHub stars. The repository holds 59 skills in this directory. The repository was last updated on October 6, 2026.
Source: nanocoai/nanoclaw on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.