Wechaty logo

Wechaty

Universal SDK for building cross‑platform chatbots in minutes

Wechaty lets developers write a chatbot once in JavaScript, Python, Go or Java and run it on WhatsApp, WeChat, and other messengers, with Docker, Linux, Windows, macOS support.

Wechaty banner

Overview

Overview

Wechaty is an RPA SDK that lets developers create conversational bots with as few as six lines of code. By providing a unified API, it abstracts the differences between messaging platforms such as WhatsApp, WeChat, and others, so the same source runs everywhere.

Who it's for & how it works

Targeted at JavaScript, Python, Go, and Java developers, the SDK runs on Linux, Windows, macOS, or inside Docker containers. After installing the package (Node ≥ 16) you can write a bot, set the desired puppet protocol via WECHATY_PUPPET, and launch it with wechaty.start(). The community supplies free tokens for the web‑based puppet and additional providers for Windows or custom protocols.

Deployment options

Bots can be started directly with Node, packaged with npm, or executed in a Docker image (wechaty/wechaty). The Docker workflow supports both JavaScript and TypeScript without a separate compile step, making scaling and CI/CD straightforward.

Highlights

Write once, run on multiple messaging platforms
Supports JavaScript, Python, Go, and Java
Docker and native OS deployment options
Extensible puppet protocol architecture

Pros

  • Rapid development with minimal code
  • Cross‑platform messaging support
  • Active community and extensive documentation
  • Flexible deployment (npm, Docker, native)

Considerations

  • Requires Node.js 16+ environment
  • Limited to supported puppet providers
  • Additional configuration for protocol switching
  • Performance may vary across platforms

Managed products teams compare with

When teams consider Wechaty, these hosted platforms usually appear on the same shortlist.

Landbot logo

Landbot

No-code chatbot builder for conversational experiences

ManyChat logo

ManyChat

Chat marketing automation on Instagram, WhatsApp, TikTok, Messenger

Rasa logo

Rasa

Open-source conversational AI framework

Looking for a hosted option? These are the services engineering teams benchmark against before choosing open source.

Fit guide

Great for

  • Developers building chatbots for multiple messengers
  • Teams needing quick prototyping of conversational flows
  • Projects that prefer a JavaScript/TypeScript stack
  • Enterprises leveraging Docker for scalable bot deployment

Not ideal when

  • Non‑Node environments without language bindings
  • Use cases demanding ultra‑low latency native SDKs
  • Bots requiring unsupported messaging platforms
  • Developers unwilling to manage puppet tokens or configurations

How teams use it

Customer support bot

Automates FAQ responses across WhatsApp and WeChat, reducing manual workload.

Event notification service

Sends real‑time alerts to users on multiple channels with a single codebase.

Community engagement

Runs interactive games and polls in group chats to boost participation.

E‑commerce order tracking

Provides order status updates via chat, improving customer experience.

Tech snapshot

TypeScript75%
JavaScript20%
Shell4%
Dockerfile1%

Tags

wechatconversational-airoboticsqqframeworkwhatsappbotchatbotwechaty

Frequently asked questions

What Node.js version is required?

Wechaty requires Node.js version 16 or higher.

Which programming languages are supported?

You can write bots in JavaScript, TypeScript, Python, Go, and Java.

Can I run a bot inside Docker?

Yes, the official `wechaty/wechaty` Docker image supports both JavaScript and TypeScript bots.

How do I switch the underlying messaging protocol?

Set the `WECHATY_PUPPET` environment variable to the desired puppet provider (e.g., `wechaty-puppet-puppeteer`).

Is there a free token for development?

Wechaty provides free tokens for the web‑based puppet; additional providers may require separate registration.

Project at a glance

Active
Stars
22,350
Watchers
22,350
Forks
2,777
LicenseApache-2.0
Repo age9 years old
Last commitlast month
Primary languageTypeScript

Last synced 3 hours ago