Agent skill

Add WeChat Channel

by nanocoai in nanocoai/nanoclaw

Adds a personal WeChat channel to a NanoClaw install through Tencent's iLink Bot API, with QR-code login and long polling instead of a public webhook.

MITAuto-check: notesProductivity & Automation

Install Add WeChat Channel

skills CLI
$ npx skills add nanocoai/nanoclaw --skill add-wechat -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install nanocoai/nanoclaw add-wechat --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/nanocoai/nanoclaw.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/add-wechat .claude/skills/add-wechat && rm -rf skills-src

Use ~/.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/

Facts

Skill name
add-wechat
GitHub stars
31k
Token cost
~1.9k tokens
SKILL.md length
921 words
Files
3 (incl. scripts)
Skills in repo
59
Repo updated
First seen
Licence
MIT

At a glance

Adds a personal WeChat channel to a NanoClaw install through Tencent's iLink Bot API, with QR-code login and long polling instead of a public webhook.

  • Works in 9 steps: Copy the adapter and its registration test → Append the self-registration import → Install the library (pinned) → …
  • Connecting a NanoClaw agent to a personal WeChat account
  • SKILL.md covers Prerequisites, Install, Credentials and Wire your first DM, plus 3 more sections
  • Runs TypeScript scripts from its folder; calls pnpm, jq and bash

What it does

Through Tencent's first-party iLink Bot API, which is meant for personal WeChat accounts rather than WeCom or Official Accounts, the skill installs a WeChat adapter for NanoClaw. Login happens by scanning a QR code with your phone, so no API keys, paid tokens or public webhook address are needed, and the adapter polls for messages.

Installation copies src/channels/wechat.ts and a registration test from the channels branch, appends an import line to src/channels/index.ts, adds a pinned wechat-ilink-client dependency, then builds the project and runs the registration test, which must pass before you continue. After setting WECHAT_ENABLED=true in .env and restarting the service, you scan the QR code. A script named scripts/wire-dm.ts and a REMOVE.md file are included in the folder.

When your agent uses it

  • Connecting a NanoClaw agent to a personal WeChat account
  • Replacing an unofficial WeChat library with Tencent's official bot API
  • Adding a messaging channel without exposing a public webhook URL

Example prompts

  • “Add WeChat to my NanoClaw setup so I can message the agent from my phone.”
  • “Set up the iLink Bot WeChat channel and walk me through the QR login.”

Requirements

  • A NanoClaw project
  • A personal WeChat account with the mobile app
  • A phone to scan the login QR code
  • Node.js 20 or newer

Workflow steps

9 steps, taken from the step headings in SKILL.md.

  1. Copy the adapter and its registration test
  2. Append the self-registration import
  3. Install the library (pinned)
  4. Build and validate
  5. Enable the channel
  6. Start the service and scan the QR
  7. Trigger the first inbound message
  8. Run the wire script
  9. Test

What it can do on your machine

Read from SKILL.md and the folder at commit 66f0823. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Ships 1 file in scripts/ (TypeScript), which the agent can run.

    Shell commands in SKILL.md call:

    • pnpm
    • jq
    • bash

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use pnpm, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Add WeChat Channel loads about 1.9k tokens when it runs. Until then it costs about 41 tokens; SKILL.md has 921 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~41
When it runs · the whole SKILL.md, loaded when a task matches
~1.9k

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.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NoteMentions a .env fileSKILL.md:70
    Add to `.env`:

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); the scripts in this folder are not scanned.

SKILL.md

The full file from nanocoai/nanoclaw at commit 66f0823, republished under its MIT licence (© nanocoai). 921 words, ~1,891 tokens.

Download SKILL.mdSave it as .claude/skills/add-wechat/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
add-wechat
description
Add WeChat (personal) channel integration via Tencent's official iLink Bot API. Uses long-polling and QR scan — no webhook, no ToS risk, no paid token.

Add WeChat Channel

Adds WeChat support via iLink Bot API — the first-party Tencent API for personal WeChat bots (different from WeCom / Official Account).

Why this is different from wechaty/PadLocal:

  • Official Tencent API — no ToS violation, no ban risk
  • Free — no PadLocal token required
  • No public webhook URL needed — uses long-poll
  • Works with any personal WeChat account

Prerequisites

  • A personal WeChat account with the mobile app installed
  • A phone to scan the QR code for login
  • Node.js >= 20 (already required by NanoClaw)

Install

NanoClaw doesn't ship channels in trunk. This skill copies the WeChat adapter in from the channels branch.

1. Copy the adapter and its registration test

Fetch the channels branch from the configured remote that carries it, then overwrite the skill-owned files with the canonical registry copies:

nccopy
src/channels/wechat.ts
src/channels/wechat-registration.test.ts
2. Append the self-registration import

Append to src/channels/index.ts (skip if the line is already present):

ncappend
import './wechat.js';
3. Install the library (pinned)
ncdep
wechat-ilink-client@0.1.0
4. Build and validate
ncrun
pnpm run build
ncrun
pnpm exec vitest run src/channels/wechat-registration.test.ts

Both must be clean before proceeding. wechat-registration.test.ts is the one integration test: it imports the real channel barrel and asserts the registry contains wechat. It goes red if the import './wechat.js'; line is deleted or drifts, if the barrel fails to evaluate (so the channel genuinely would not register), or if wechat-ilink-client isn't installed (the import throws) — so it also implicitly verifies the dependency from step 4. Importing is safe: the adapter opens its long-poll connection only in setup() (at host startup), never at import.

End-to-end message delivery against a real WeChat account is verified manually once the service is running — see Credentials and Wire your first DM above.

Credentials

Unlike most channels, WeChat requires no pre-configured API keys. Auth happens via QR code scan from your phone.

1. Enable the channel

Add to .env:

bash
WECHAT_ENABLED=true
2. Start the service and scan the QR

Restart NanoClaw.

Run from your NanoClaw project root:

bash
source setup/lib/install-slug.sh
systemctl --user restart $(systemd_unit)              # Linux
# or
launchctl kickstart -k gui/$(id -u)/$(launchd_label)  # macOS

The adapter will print a QR URL to the logs and save it to data/wechat/qr.txt:

bash
tail -f logs/nanoclaw.log | grep WeChat
# or
cat data/wechat/qr.txt

Open the URL in a browser (it renders a QR code), then:

  1. Open WeChat on your phone
  2. Use its built-in QR scanner (top-right "+" → Scan)
  3. Approve the authorization on your phone
  4. Auth credentials are saved to data/wechat/auth.json — do not commit this file

The bot is now connected as your WeChat account.

Wire your first DM

A successful QR login alone isn't enough — the adapter still needs to be wired to an agent group before it can respond.

Prerequisite: the host service must be running. The wire script creates the wiring through ncl, which talks to the running host over a Unix socket — there is no offline mode.

1. Trigger the first inbound message

Have a different WeChat account send a message to the bot account. This auto-creates a messaging_groups row with the sender's platform_id and the unknown_sender_policy the WeChat adapter declares.

2. Run the wire script
bash
pnpm exec tsx .claude/skills/add-wechat/scripts/wire-dm.ts

Interactive flow: the script lists all unwired WeChat messaging groups, asks which agent group to wire it to, and runs ncl wirings create — engage mode/pattern and priority come from the WeChat adapter's declared channel defaults, so a wiring created here matches one created by /manage-channels or the approval-card flow.

With request_approval as the sender policy, the next DM from a stranger fires an approval card to the admin — admin taps Approve/Deny, approved users are added as members and their queued message replays through the agent.

Non-interactive:

bash
pnpm exec tsx .claude/skills/add-wechat/scripts/wire-dm.ts \
  --platform-id wechat:wxid_xxxxx \
  --agent-group ag-xxxxx \
  --non-interactive

Flags:

  • --platform-id <id> — wire a specific messaging group (default: most recent unwired)
  • --agent-group <id> — target agent group (default: prompt; auto-picked when only one exists)
  • --sender-policy public|strict|request_approval — override the messaging group's unknown_sender_policy (default: leave whatever the WeChat adapter declared when the row was auto-created)
  • --session-mode shared|per-thread — default shared

Equivalent raw ncl invocation (host must be running):

bash
ncl wirings create --messaging-group-id <mg-id> --agent-group-id <ag-id> --session-mode shared
Show full SKILL.md (313 more words)Show less
3. Test

Have the sender message the bot again — the agent should respond.

Operational notes

  • Only one instance can use a given token at a time. Don't run multiple NanoClaw instances pointing to the same data/wechat/auth.json.
  • Re-login on session expiry: if you see WeChat: session expired in logs, delete data/wechat/auth.json and restart — you'll be asked to re-scan.
  • Sync cursor persistence: data/wechat/sync-buf.txt holds the long-poll cursor. Deleting it replays recent history on next start; don't delete it in normal operation.
  • Account safety: this uses the official Tencent API, so account bans for bot automation aren't a risk. That said, don't spam — normal rate limits still apply.

Next Steps

If you're in the middle of /setup, return to the setup flow now.

Otherwise, restart the service to pick up the new channel and wiring.

Channel Info

  • type: wechat
  • terminology: WeChat has "contacts" (DMs) and "group chats" (rooms). Each DM or group is a separate messaging group.
  • how-to-find-id: Send a message to the bot from the target account; the adapter auto-creates a messaging group and logs WeChat inbound platformId=wechat:<id>. Use wechat:<user_id> for DMs, wechat:<group_id> for rooms.
  • admin-user-id: The operator's WeChat user_id (for init-first-agent.ts --admin-user-id) is saved to data/wechat/auth.json as operatorUserId after the QR scan. Read it with cat data/wechat/auth.json | jq -r .operatorUserId and prefix with wechat: (i.e. wechat:<operatorUserId>).
  • supports-threads: no (WeChat has no reply threads)
  • typical-use: Long-poll — the adapter holds a persistent connection to Tencent's iLink API and receives messages in real time. No webhook URL needed.
  • default-isolation: shared session mode per messaging group (DM or room). Use strict sender policy if you want only specific users to reach the agent; public opens it to anyone who messages the bot.
  • post-install-wiring: Use the wire-dm.ts helper (see the "Wire your first DM" section above) if running this skill standalone. If running as part of bash nanoclaw.sh, init-first-agent.ts handles wiring — just pass the platform-id and admin-user-id captured above.

© nanocoai, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 2 other files (scripts) in .claude/skills/add-wechat of nanocoai/nanoclaw.

  • SKILL.md
  • REMOVE.md
  • scripts/wire-dm.ts

Open the folder on GitHubat commit 66f0823

Compare with similar skills

Add WeChat Channel 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.

Add WeChat Channel compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Add WeChat Channel this skillnanocoai/nanoclaw31k—~1.9kAutomated safety check: NotesMIT
AI Model NodejsTencentCloudBase/CloudBase-AI-Toolkit1.1k3 repos~5kAutomated safety check: PassMIT
AI Model WechatTencentCloudBase/CloudBase-AI-Toolkit1.1k2 repos~6.4kAutomated safety check: PassMIT
AI Model Nodejsmajiayu000/claude-skill-registry6662 repos~1.7kAutomated safety check: PassMIT
AI Model Wechatmajiayu000/claude-skill-registry6662 repos~1.4kAutomated safety check: PassMIT
Weixin Accessqufei1993/cc-weixin154—~372Automated safety check: PassMIT

Similar skills

  • AI Model Nodejs

    TencentCloudBase/CloudBase-AI-Toolkit

    A skill your agent uses for Node.js backend AI via @cloudbase/node-sdk (=3.16.0) — cloud functions, CloudRun, Express/Koa/NestJS, serverless APIs, scheduled jobs, LLM proxies, agent orchestration.

    1.1k GitHub starsUsed in 3 repos~5k tokens
    Backend & APIsAuto-check passed
  • AI Model Wechat

    TencentCloudBase/CloudBase-AI-Toolkit

    A skill your agent uses for WeChat Mini Program AI via wx.cloud.extend.AI (小程序, wx.cloud apps).

    1.1k GitHub starsUsed in 2 repos~6.4k tokens
    Media & CreativeAuto-check passed
  • AI Model Nodejs

    majiayu000/claude-skill-registry

    A skill your agent uses when developing Node.js backend services or CloudBase cloud functions (Express/Koa/NestJS, serverless, backend APIs) that need AI capabilities.

    666 GitHub starsUsed in 2 repos~1.7k tokens
    Backend & APIsAuto-check passed
  • AI Model Wechat

    majiayu000/claude-skill-registry

    A skill your agent uses when developing WeChat Mini Programs (小程序, 企业微信小程序, wx.cloud-based apps) that need AI capabilities.

    666 GitHub starsUsed in 2 repos~1.4k tokens
    Media & CreativeAuto-check passed
  • Weixin Access

    qufei1993/cc-weixin

    Manage WeChat access control (pairing codes and allowlist). An agent skill from qufei1993/cc-weixin.

    154 GitHub stars~372 tokensUpdated 5 mo ago
    Productivity & AutomationAuto-check passed
  • Cloudbase Wechat Integration

    TencentCloudBase/CloudBase-AI-Toolkit

    CloudBase WeChat integration guide for Mini Program WeChat Pay, Mini Program virtual payment (虚拟支付, wx.requestVirtualPayment), Official Account JSAPI Pay, Native QR-code Pay, Official Account OAuth…

    1.1k GitHub starsUsed in 2 repos~1.9k tokens
    Productivity & AutomationAuto-check passed

More from nanocoai/nanoclaw

All 59 skills in this repo
  • 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.

    31k GitHub stars~4.6k tokensUpdated 2 days ago
    Auto-check: notes
  • Agent Browser

    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.

    31k GitHub starsUsed in 3 repos~1.6k tokens
    Auto-check passed
  • Installs or refreshes OneCLI as the gateway provider for NanoClaw, copying the adapter files, registering the provider and running the setup script.

    31k GitHub stars~1.1k tokensUpdated 2 days ago
    Auto-check: notes
  • Guides a conversational migration from an OpenClaw install to NanoClaw v2, carrying over identity, channel credentials, scheduled tasks and workspace files.

    31k GitHub stars~6k tokensUpdated 2 days ago
    Auto-check: notes
  • 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.

    31k GitHub starsUsed in 1 repo~1.5k tokens
    Auto-check passed
  • NanoClaw LLM Wiki Setup

    nanocoai/nanoclaw

    Adds a persistent wiki knowledge base to a NanoClaw group following Karpathy's LLM Wiki pattern, with folders, a tailored container skill and a CLAUDE.md section.

    31k GitHub starsUsed in 1 repo~1.3k tokens
    Auto-check passed

Works with

Questions about Add WeChat Channel

What does Add WeChat Channel do?

Adds a personal WeChat channel to a NanoClaw install through Tencent's iLink Bot API, with QR-code login and long polling instead of a public webhook. Through Tencent's first-party iLink Bot API, which is meant for personal WeChat accounts rather than WeCom or Official Accounts, the skill installs a WeChat adapter for NanoClaw. Login happens by scanning a QR code with your phone, so no API keys, paid tokens or public webhook address are needed, and the adapter polls for messages.

When should I use Add WeChat Channel?

Add WeChat Channel fits situations like: connecting a NanoClaw agent to a personal WeChat account; replacing an unofficial WeChat library with Tencent's official bot API; adding a messaging channel without exposing a public webhook URL.

How do I install Add WeChat Channel in Claude Code?

Run `npx skills add nanocoai/nanoclaw --skill add-wechat -a claude-code`. Or copy the skill folder (.claude/skills/add-wechat in nanocoai/nanoclaw) into .claude/skills/add-wechat in your project. Claude Code loads it when a task matches its description.

How do I install Add WeChat Channel in Codex?

Run `npx skills add nanocoai/nanoclaw --skill add-wechat -a codex`. Or copy the skill folder (.claude/skills/add-wechat in nanocoai/nanoclaw) into .agents/skills/add-wechat in your project. Codex loads it when a task matches its description.

Can I use Add WeChat Channel in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add nanocoai/nanoclaw --skill add-wechat -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-wechat, .gemini/skills/add-wechat, .github/skills/add-wechat and .opencode/skills/add-wechat in your project.

What does Add WeChat Channel need to run?

Going by SKILL.md and its folder, Add WeChat Channel needs TypeScript for the scripts in its folder and the command-line tools its instructions call (pnpm, jq and bash). Our summary lists: A NanoClaw project; A personal WeChat account with the mobile app; A phone to scan the login QR code; Node.js 20 or newer.

Does Add WeChat Channel access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Add WeChat Channel safe to install?

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. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Add WeChat Channel use?

Add WeChat Channel is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Add WeChat Channel use?

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.

What are the alternatives to Add WeChat Channel?

Skills that share tags, products or a category with Add WeChat Channel: AI Model Nodejs (TencentCloudBase/CloudBase-AI-Toolkit, 1.1k stars), AI Model Wechat (TencentCloudBase/CloudBase-AI-Toolkit, 1.1k stars), AI Model Nodejs (majiayu000/claude-skill-registry, 666 stars) and AI Model Wechat (majiayu000/claude-skill-registry, 666 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Add WeChat Channel?

nanocoai (a GitHub organization) maintains it in nanocoai/nanoclaw, which has 30,897 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.