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>
Tool name: zalouser
Actions: send, image, link, friends, groups, me, status
Channel message actions (not the agent tool) also support react for message
reactions.