Skip to main content
Zalo Personal support for OpenClaw via a plugin that uses native zca-js to automate a normal Zalo user account. No external zca/openzca CLI binary is required.
Unofficial automation may lead to account suspension or ban. Use at your own risk.

Naming

Channel id is zalouser to make it explicit this automates a personal Zalo user account (unofficial). The separate zalo channel id is the official, bundled Zalo Bot/webhook integration - see Zalo.

Where it runs

This plugin runs inside the Gateway process. For a remote Gateway, install/configure it on that host, then restart the Gateway.

Install

From npm

openclaw plugins install @openclaw/zalouser
Use the bare package to follow the current official release tag; pin an exact version only when you need a reproducible install. Restart the Gateway afterwards.

From a local folder (dev)

PLUGIN_SRC=./path/to/local/zalouser-plugin
openclaw plugins install "$PLUGIN_SRC"
cd "$PLUGIN_SRC" && pnpm install
Restart the Gateway afterwards.

Config

Channel config lives under channels.zalouser (not plugins.entries.*):
{
  channels: {
    zalouser: {
      enabled: true,
      dmPolicy: "pairing",
    },
  },
}
See Zalo personal channel config for DM/group access control, multi-account setup, environment variables, and troubleshooting.

CLI

openclaw channels login --channel zalouser
openclaw channels login --channel zalouser --account <name>
openclaw channels logout --channel zalouser
openclaw channels status --probe
openclaw message send --channel zalouser --target <threadId> --message "Hello from OpenClaw"
openclaw directory self --channel zalouser
openclaw directory peers list --channel zalouser --query "name"
openclaw directory groups list --channel zalouser --query "name"
openclaw directory groups members --channel zalouser --group-id <id>

Agent tool

Tool name: zalouser Actions: send, image, link, friends, groups, me, status Channel message actions (not the agent tool) also support react for message reactions.