2026-01-16 13:28:18 -08:00
---
2026-03-02 15:40:46 +00:00
summary: "Zalo Personal plugin: QR login + messaging via native zca-js (plugin install + channel config + tool)"
2026-01-16 13:28:18 -08:00
read_when:
2026-01-30 03:15:10 +01:00
- You want Zalo Personal (unofficial) support in OpenClaw
2026-01-16 13:28:18 -08:00
- You are configuring or developing the zalouser plugin
2026-01-31 16:04:03 -05:00
title: "Zalo Personal Plugin"
2026-01-16 13:28:18 -08:00
---
# Zalo Personal (plugin)
2026-03-02 15:40:46 +00:00
Zalo Personal support for OpenClaw via a plugin, using native `zca-js` to automate a normal Zalo user account.
2026-01-16 13:28:18 -08:00
> **Warning:** Unofficial automation may lead to account suspension/ban. Use at your own risk.
## Naming
2026-01-31 21:13:13 +09:00
2026-01-16 13:28:18 -08:00
Channel id is `zalouser` to make it explicit this automates a **personal Zalo user account** (unofficial). We keep `zalo` reserved for a potential future official Zalo API integration.
## Where it runs
2026-01-31 21:13:13 +09:00
2026-01-16 13:28:18 -08:00
This plugin runs **inside the Gateway process** .
If you use a remote Gateway, install/configure it on the **machine running the Gateway** , then restart the Gateway.
2026-03-02 15:40:46 +00:00
No external `zca` /`openzca` CLI binary is required.
2026-01-16 13:28:18 -08:00
## Install
### Option A: install from npm
```bash
2026-01-30 03:15:10 +01:00
openclaw plugins install @openclaw/zalouser
2026-01-16 13:28:18 -08:00
```
Restart the Gateway afterwards.
### Option B: install from a local folder (dev)
```bash
2026-01-30 03:15:10 +01:00
openclaw plugins install ./extensions/zalouser
2026-01-16 13:28:18 -08:00
cd ./extensions/zalouser & & pnpm install
```
Restart the Gateway afterwards.
## Config
2026-01-31 21:13:13 +09:00
2026-01-16 13:28:18 -08:00
Channel config lives under `channels.zalouser` (not `plugins.entries.*` ):
```json5
{
channels: {
zalouser: {
enabled: true,
2026-01-31 21:13:13 +09:00
dmPolicy: "pairing",
},
},
2026-01-16 13:28:18 -08:00
}
```
## CLI
```bash
2026-01-30 03:15:10 +01:00
openclaw channels login --channel zalouser
openclaw channels logout --channel zalouser
openclaw channels status --probe
openclaw message send --channel zalouser --target < threadId > --message "Hello from OpenClaw"
openclaw directory peers list --channel zalouser --query "name"
2026-01-16 13:28:18 -08:00
```
## Agent tool
2026-01-31 21:13:13 +09:00
2026-01-16 13:28:18 -08:00
Tool name: `zalouser`
Actions: `send` , `image` , `link` , `friends` , `groups` , `me` , `status`