Model or dataset
BytePioneer-AI/openclaw-china avatar
BytePioneer-AI/openclaw-china

openclaw-china: OpenClaw channel plugins for DingTalk, WeCom, WeChat MP, QQ and Feishu

OpenClaw中国插件:支持飞书,钉钉,QQ,企业微信,微信

3,966 stars341 forksTypeScriptLicense varies

At a glance

What is it?
A pnpm monorepo of TypeScript plugins that connects an OpenClaw assistant to Chinese messaging platforms. Useful if your users live in DingTalk or WeCom; unnecessary if you only need the official WeChat and Feishu plugins.
Who is it for?
Adopt openclaw-china if your users are inside DingTalk, WeCom or a WeChat official account and you need one assistant reachable from those clients; the WeCom smart-robot long-connection channel is the cheapest to run because it needs no public IP. Skip it if you only need WeChat or Feishu, since the README points those two at official plugins outside this repository, and skip the Feishu plugin here because the README marks it as no longer maintained.
Can I use it commercially?
Not without permission. GitHub finds no licence file in the repository, and without a licence all rights are reserved by default: you may read the code but not reuse it. Check the README, or ask the authors, before using it.
Is it still maintained?
Yes. The repository last received commits 111 days ago.
What is it written in?
Mainly TypeScript, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 30, 2026, and from our analysis. They are not legal advice.

Editorial analysis

What openclaw-china actually adds to an OpenClaw deployment

OpenClaw is the assistant runtime; openclaw-china is the set of channel adapters that let that runtime talk to Chinese IM platforms. The README lists DingTalk, QQ bot, three separate WeCom entries (smart robot over a long connection, self-built app that can reach ordinary WeChat, and WeChat Customer Service for external users), WeChat official accounts, and a Feishu plugin that the table marks as 停止维护, meaning the repository's own Feishu plugin is no longer maintained. WeChat and Feishu are also covered by official plugins that live outside this repository, and the README links out to them rather than duplicating the work.

The audience is narrow and specific: teams whose end users already sit in DingTalk or WeCom and who do not want to build a bot framework per platform. The repository's own 'who is using it' table names Alibaba Cloud, Volcano Engine, 财富云, 北少云 and 西安铂傲智能, with a quoted customer note about intelligent customer service and low-cost operations across convenience stores, building materials and real estate. That is a support-and-sales profile, not a developer-tools profile.

Architecture: a pnpm workspace with one package per channel

The repository is a pnpm workspace. pnpm-workspace.yaml and the package.json workspaces field both declare packages/* and extensions/*, so each channel ships as its own package under the @openclaw-china scope: @openclaw-china/shared, @openclaw-china/dingtalk, @openclaw-china/channels and @openclaw-china/setup all appear in the build scripts. The root package.json is private and only aggregates scripts, so you do not install the root as a library; you install the individual channel packages or run the setup package.

Runtime requirements are stated in the root manifest: node >=20.0.0 and [email protected]. The only runtime dependency declared at the root is dingtalk-stream ^2.1.4, with @openclaw-china/channels as a workspace reference. TypeScript 5.7 and oxlint 0.16 are dev dependencies, and lint runs through oxlint while typecheck runs tsc --noEmit.

The interesting architectural split is transport. DingTalk and the WeCom smart robot use long connections, which is why the README says the WeCom long-connection channel needs no public IP. The self-built WeCom app, WeChat Customer Service and WeChat official account all require a public IP and, for the official account, a domain as well. That single fact decides most deployment topologies before you write any configuration.

Installing openclaw-china and wiring a first channel

The release notes for 2026-04-23 introduce a one-shot installer: @openclaw-china/setup, run through npx, which the changelog describes as guiding installation and initialization of OpenClaw China. That is the documented entry point, so start there rather than cloning the monorepo. The changelog gives the command as npx @openclaw-china/setup.

The same release moved the QQ bot configuration entry to channels.qqbot-china specifically to avoid colliding with the channels.qqbot key used by OpenClaw's built-in QQ plugin. If you are upgrading from an older version, that key change is the one that will silently break an existing QQ setup.

QQ streaming is off by default. The README states that turning it on requires setting channels.qqbot-china.streaming=true explicitly. With that set, the plugin uses QQ's native stream_messages so the assistant body updates inside a single message. The README is explicit about the boundary: streaming covers C2C private chats only, and group chats, channels, replyFinalOnly=true, structured Markdown and media replies all fall back to the ordinary send path.

If you would rather build from source, the root package.json defines pnpm build for everything, plus pnpm build:shared, pnpm build:dingtalk and pnpm build:setup for individual packages.

The WeCom channel choice is the real configuration decision

Three of the seven supported channels are WeCom variants, and the README frames them as a selection problem rather than a feature list. The smart robot over a long connection is for internal company use, handles private and group chat, needs no public IP, and cannot reach ordinary WeChat. The self-built app can reach ordinary WeChat but does not support group chat and needs a public IP. WeChat Customer Service is for external users arriving through a customer-service entry point, also no group chat, also needs a public IP.

Pick wrong and you find out late. If your requirement is 'our staff ask the assistant questions in a WeCom group', the self-built app is disqualified by the group-chat row in the feature table. If your requirement is 'any WeChat user can reach us', the smart robot is disqualified because it cannot connect to WeChat at all. The README's own recommendation tags line up with that: smart robot for internal use, self-built app for personal use, customer service for external customers.

The WeChat official account path adds a platform constraint that has nothing to do with the plugin. Subscription accounts have a 5-second passive reply limit and cannot send proactively; service accounts and test accounts have neither restriction. The plugin does support active delivery through activeDeliveryMode, with split sending messages one by one and merged combining them, plus byte-limit-aware splitting for over-long messages. None of that helps a subscription account, because the limit is imposed by the platform.

Where openclaw-china is the wrong tool

The repository's own documentation is the best source of limitations. Feishu is listed as available but marked 停止维护, so if Feishu is your primary channel, the plugin in this repository is not the one to build on; the README instead points at Feishu's official plugin documentation. The same is true for WeChat, where the README directs readers to the official plugin install document rather than to anything in this repository.

Several capabilities are still marked 开发中 in the feature table: file send and receive plus scheduled proactive sending for WeChat Customer Service, and multi-account plus scheduled proactive sending for the WeChat official account. If your rollout depends on multiple accounts behind one official account, the table says that is not done. Markdown is unsupported on WeChat Customer Service entirely, and image support on the official account is partial, limited to images.

The QQ streaming feature carries its own caveat. It covers C2C private chats only and is disabled by default, so a group-chat deployment gets no benefit from it. The README also notes that when streaming splits a single Markdown table row across chunks, the plugin merges the fragments locally before sending, and re-adds the table header on continuation blocks. That is a workaround for a real failure mode, not a guarantee that tables survive every upstream chunking pattern.

Licensing is a separate caution. The README badge says MIT and the root package.json declares "license": "MIT", but the repository metadata supplied for this project lists the license as unknown. Resolve that discrepancy before you rely on the MIT grant.

How it compares with the official channel plugins

The genuine alternative is not another China-IM bot framework; it is using OpenClaw's official channel plugins for WeChat and Feishu and skipping this repository for those two platforms. The difference in approach is maintenance ownership. The official plugins are maintained upstream alongside OpenClaw itself, which is why the README links to their install documentation and marks this repository's Feishu plugin as no longer maintained. This repository's value is concentrated in the channels the official plugins do not cover: DingTalk, QQ bot, and the three WeCom variants.

Within DingTalk there is a second, smaller comparison. The root package.json depends on dingtalk-stream ^2.1.4, the SDK for DingTalk's long-connection mode, which is what lets the DingTalk channel avoid a public IP. That is a meaningfully different deployment shape from the webhook-and-public-endpoint pattern the WeCom self-built app and official account channels require.

The practical reading: adopt this repository for DingTalk, QQ and WeCom, and treat its WeChat and Feishu entries as pointers to the official plugins rather than as reasons to install it.

Upgrade and maintenance cost

The repository is not archived, and the last push was on 2026-06-12. The most recent tagged release is v2026.4.24 from 2026-04-23, with v2026.3.22 and v2026.3.21 before it in March. Release cadence has been roughly monthly, and the changelog entries are dated and specific, which makes it possible to trace which version introduced the setup package and the qqbot-china config rename.

That rename is the concrete upgrade hazard. Any deployment still writing channels.qqbot will not pick up the plugin's configuration after moving to a version that expects channels.qqbot-china. The changelog frames the rename as a deliberate move to avoid colliding with OpenClaw's built-in QQ plugin, so it is not going to be reverted.

The second cost is per-channel configuration. Each channel has its own guide under doc/guides, and the README rates complexity as simple for DingTalk, QQ and the WeCom smart robot, and medium for the self-built app, WeChat Customer Service and the official account. That rating reflects the platform onboarding, not the plugin: registering a DingTalk enterprise or a WeCom self-built app involves administrative steps on the platform side that no installer can perform for you.

On licensing, the MIT declaration in package.json is permissive and imposes no copyleft obligation on your own code, but the metadata conflict noted above means you should confirm the actual license file before shipping a commercial product on it. This is not legal advice; check the repository's license file directly.

Editorial conclusion

Adopt openclaw-china if your users are inside DingTalk, WeCom or a WeChat official account and you need one assistant reachable from those clients; the WeCom smart-robot long-connection channel is the cheapest to run because it needs no public IP. Skip it if you only need WeChat or Feishu, since the README points those two at official plugins outside this repository, and skip the Feishu plugin here because the README marks it as no longer maintained. Before committing, verify which of the three WeCom channels matches your audience, check whether your公众号 is a subscription account (5-second passive reply limit, no proactive send), and confirm that the multi-account and file-transfer features your workflow needs are past the '开发中' state in the feature table.

Frequently asked questions

What is openclaw-china?

It is a collection of OpenClaw channel extension plugins for Chinese messaging platforms, covering DingTalk, QQ bot, three WeCom variants and WeChat official accounts, plus a Feishu plugin the README marks as no longer maintained. The stated focus is stable message send and receive, a unified plugin interface, and a low-friction configuration process.

Is openclaw-china an alternative to the official WeChat and Feishu plugins?

No. The README points WeChat and Feishu at their official plugin install documentation outside this repository, and it marks this repository's own Feishu plugin as 停止维护. The channels this repository actually owns are DingTalk, QQ bot and the WeCom variants.

How do I install openclaw-china?

The 2026-04-23 changelog introduces @openclaw-china/setup, run through npx, which guides installation and initialization. Building from source instead requires Node >=20.0.0 and pnpm 9, then pnpm build at the workspace root.

Which WeCom channel should I choose in openclaw-china?

The README recommends the smart robot over a long connection for internal company use because it needs no public IP, the self-built app for reaching ordinary WeChat users, and WeChat Customer Service for external customers arriving through a service entry point. Only the smart robot supports group chat, and only the self-built app and customer service channels reach ordinary WeChat.

Does openclaw-china support streaming replies?

Streaming is listed as supported for DingTalk, QQ, the WeCom smart robot, and the WeChat official account, but not for the self-built WeCom app or WeChat Customer Service. For QQ specifically, the README states that native stream_messages covers C2C private chats only and is off by default until channels.qqbot-china.streaming is set to true.

Official sources

  1. BytePioneer-AI/openclaw-china on GitHub
  2. Issues
  3. README
  4. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/bytepioneer-ai-openclaw-china.svg)](https://hysenlabs.com/projects/bytepioneer-ai-openclaw-china)