Skip to content
Guides

OpenClaw on WeChat

Tencent’s external plugin, QR login, the pairing gap in version 2.4.8, and the compatibility table

5 min read

OpenClaw connects to WeChat through an external channel plugin maintained by the Tencent Weixin team, and the docs are careful about what that means: the WeChat code does not live in the OpenClaw core repository, OpenClaw provides the generic channel plugin contract, and the plugin provides the WeChat-specific runtime. Direct chats and media are supported; group chats are not advertised, since the plugin declares direct chats only. Here is how it runs, the login, the access-control gap the docs flag for the current version, the compatibility table, and the fixes.

How it runs

  • Naming first: WeChat is the user-facing name, Weixin is the name in Tencent’s package and plugin id, and the OpenClaw channel id is openclaw-weixin, with weixin and wechat as aliases.
  • Install the package with the quick installer or with the plugin install and enable commands; plugin commands apply to a running Gateway, so start it if it is offline.
  • The Gateway discovers the plugin manifest, loads its entrypoint, and the plugin registers the channel; QR login on the same machine that runs the Gateway saves the account token locally, and the plugin starts a monitor for each configured account at Gateway start.
  • Inbound messages are normalised through the channel contract, routed to the selected agent, and sent back through the plugin’s outbound path; login, Tencent iLink API calls, media, context tokens and account monitoring are all owned by the plugin.
Do not rely on standard pairing to manage or revoke DM access with version 2.4.8.

The access-control gap

Version 2.4.8 does not register an OpenClaw pairing adapter or create pairing requests, so the standard pairing list and approve commands cannot establish DM access; QR login can still allow the user who scanned the code. Instead of OpenClaw’s SQLite pairing store, this version reads a legacy allowlist JSON file, falls back to the QR scanner’s saved user id when that list is empty, and if neither provides a user id admits any sender whose message reaches the plugin. On current OpenClaw, startup migration and the doctor’s fix import legacy approvals into SQLite and remove the source file, so previously approved secondary senders can lose access, and revoking an approval in SQLite does not revoke access granted by the plugin’s file or scanner fallback. The docs’ advice is to disable the plugin temporarily if you need pairing enforcement, until a version with repaired pairing support ships.

Compatibility and the sidecar

  • Version 2.4.8 declares OpenClaw 2026.5.12 or newer under the latest tag, and the 1.x line declares 2026.1.0 up to 2026.3.22 under the legacy tag; 2.4.8’s startup guard still checks only 2026.3.22, and passing that guard alone does not satisfy the declared requirement.
  • Plugin 2.4.6 imports a retired SDK path and cannot load on OpenClaw 2026.8.1; if startup reports that the subpath is not exported, update to 2.4.8. For several accounts, run the login again and isolate DM sessions per account, channel and peer.
  • The plugin can run helper work beside the Gateway; that path once exposed a bug in the generic stale-Gateway cleanup, where a child process tried to clean up its parent and caused restart loops under systemd. Current startup cleanup excludes the current process and its ancestors, a generic fix rather than a WeChat-specific one.

OpenClaw pairing is the approval flow this version cannot yet use, and OpenClaw plugins explains how external plugins like this one load beside the Gateway.

Troubleshooting

Check the plugin list, the channel probe and the OpenClaw version. If the channel shows as installed but does not connect, enable it and inspect the running plugin with its runtime report. If the Gateway restarts repeatedly after enabling WeChat, update both OpenClaw and the plugin, forcing the reinstall, then restart the Gateway. If startup says the package requires compiled runtime output for a TypeScript entry, the npm package shipped without the compiled JavaScript; wait for a fixed package, or disable the plugin in the meantime.

On Diali

WeChat is not among the channels Diali connects today: the ones we run are WhatsApp, Telegram, Discord, Slack, Mattermost, Matrix, SMS and voice, and a self-run instance is where this plugin lives for now. Connect your first channel in five minutes shows our connect flow, Hosted OpenClaw on Diali is the assistant and Diali security describes the boundary.

  • An external plugin, so the core stays channel-agnostic.
  • QR login on the Gateway machine, one token per account.
  • Pairing cannot govern version 2.4.8; disable it if you need enforcement.
Get started

Stop reading about it, build one

Set up an agent, pick a channel, and have it working inside the app you already keep open.