A chatbot SDK that says "dong" when you say "ding"
This is the official starter template for Wechaty, a JavaScript SDK that abstracts over WeChat, WhatsApp, and other messaging protocols via swappable "puppet" plugins.

What it does
Wechaty is a conversational RPA SDK for building chatbots across multiple instant-messaging platforms. This repo is the official getting-started template: clone it, npm install, set an environment variable, and you have a running bot that replies “dong” to any “ding” message. It targets total beginners who want to see something work before reading the architecture docs.
The interesting bit
The “puppet” abstraction. Wechaty decouples the bot logic from the protocol implementation, so the same TypeScript bot code can drive WeChat Web, WhatsApp Web, iPad protocols, or hosted puppet services just by swapping an environment variable and a token. The README calls this “Conversational RPA” — essentially browser automation and protocol plugins dressed up in enterprise jargon.
Key highlights
- Works out-of-the-box on Linux, macOS, Windows, Docker, and cloud IDEs (Gitpod, Google Cloud Shell)
- Supports Node.js v16+ with TypeScript and ES Modules
- Swappable puppet providers: WeChat Web, WeChat Pad (padlocal), WhatsApp Web, and others via
WECHATY_PUPPET - Includes video tutorials and step-by-step cloud IDE walkthroughs
- Active version is v1.x; v0.x lives on a separate branch and is incompatible
Caveats
- WeChat accounts registered after 2017 cannot log in via Web API; you need a non-Web puppet (e.g., pad protocol) with a separate token
- Some puppet providers require paid or apply-for tokens, which the README mentions but doesn’t price
- The default
wechaty-puppet-wechat4upuppet is chosen “for newcomer’s convenience,” implying it may not be what you want in production
Verdict
Grab this if you need to prototype a cross-platform chatbot quickly and don’t mind navigating token procurement for non-Web protocols. Skip it if you’re looking for a mature, batteries-included framework with transparent pricing and no legacy version confusion.