@monasprox

🦞 zaloclaw

OpenClaw channel plugin for Zalo personal accounts via zca-js

Current version
v2.0.4
code-pluginCommunitysource-linked
<div align="center">

🦞 zaloclaw

Unofficial OpenClaw plugin — Zalo Personal Account Channel

Connect your personal Zalo account to an AI agent with 147 full-featured actions.

CI License: MIT ClawHub OpenClaw Node.js

Cài đặt · Tính năng · Cấu hình · 147 Actions · Cộng đồng

</div>

⚠️ Disclaimer — Dự án không chính thức

Dự án này không có liên kết, không được phê duyệt và không được tài trợ bởi Zalo hoặc VNG Corporation.

Zalo không cung cấp API chính thức cho tài khoản cá nhân và không cho phép tự động hóa tài khoản cá nhân theo Điều khoản dịch vụ. Plugin hoạt động thông qua thư viện reverse-engineered zca-jscó thể vi phạm ToS Zalo, dẫn đến tài khoản bị khóa hoặc đình chỉ.

Được cung cấp "as-is" cho mục đích nghiên cứu và tự động hóa cá nhân. Người dùng tự chịu toàn bộ rủi ro.


Tại sao zaloclaw?

Zalo (~75 triệu người dùng tại Việt Nam) không có API bot cho tài khoản cá nhân — chỉ có Zalo OA dành cho doanh nghiệp với nhiều hạn chế. ZaloClaw lấp khoảng trống đó bằng cách bridge tài khoản Zalo cá nhân với OpenClaw, cho phép hội thoại AI và tự động hóa toàn diện qua Zalo.


Cài đặt

Cách 1 — ClawHub (khuyến nghị)

openclaw plugins install clawhub:zaloclaw
openclaw gateway restart
openclaw channels login --channel zaloclaw
# → Quét QR code bằng app Zalo

Cách 2 — Clone thủ công

git clone https://github.com/monas-team/zaloclaw.git /path/to/zaloclaw
cd /path/to/zaloclaw && npm install
openclaw plugins install --link /path/to/zaloclaw
openclaw gateway restart
openclaw channels login --channel zaloclaw

Kiểm tra

openclaw status
# ✓ zaloclaw → ON

Yêu cầu: OpenClaw ≥ 2026.2.0 · Node.js ≥ 22 · Tài khoản Zalo cá nhân


Tính năng

Danh mụcHighlights
💬 Nhắn tinText, rich text, ảnh, file, video, voice, sticker, link preview
👥 NhómTạo/quản lý nhóm, admin, bình chọn, nhắc nhở, link mời
🤝 Bạn bèTìm, kết bạn, chặn, biệt danh, trạng thái online
🤖 AI-nativeMention gating, image buffering, quote context, typing indicator
🔐 Kiểm soátDM policy, group policy, allowlist/blocklist theo user/nhóm
⚙️ Cài đặtAuto-reply, quick messages, auto-unsend, read receipt

Chi tiết nổi bật

  • Mention gating — Bot chỉ phản hồi khi được @mention trong nhóm; có thể tắt per-group
  • Image buffering — Nhớ ảnh từ tin nhắn không mention, dùng làm context khi được @tag sau
  • Rich text — Markdown tự chuyển sang bold/italic/gạch chân/màu sắc Zalo
  • Urgency levels1 = quan trọng 🔶, 2 = khẩn cấp 🔴
  • Quote reply — AI nhận đầy đủ context tin nhắn được trích dẫn + người gửi

Cấu hình

File: ~/.openclaw/openclaw.json → key channels.zaloclaw

{
  "channels": {
    "zaloclaw": {
      "accounts": {
        "default": {
          "enabled": true,

          // Chính sách DM: open | pairing | allowlist | disabled
          "dmPolicy": "open",
          "allowFrom": ["*"],
          "denyFrom": [],

          // Chính sách nhóm: open | allowlist | disabled
          "groupPolicy": "open",

          // Override theo từng nhóm (dùng group ID hoặc "*" cho mặc định)
          "groups": {
            "*":          { "requireMention": true },
            "<group_id>": { "allow": true, "requireMention": false }
          }
        }
      }
    }
  }
}

DM Policy

PolicyHành vi
openChấp nhận tất cả DM
pairingYêu cầu trao đổi mã với người dùng lạ
allowlistChỉ user trong allowFrom
disabledChặn tất cả DM

147 Actions

Plugin expose một tool zaloclaw duy nhất với 147 actions. Tên người dùng và tên nhóm tự động resolve thành Zalo numeric ID. Xem đầy đủ tại docs/agent-help.md.

<details> <summary><b>💬 Nhắn tin — 16 actions</b></summary> <br>
ActionMô tả
sendGửi text (urgency 0/1/2, messageTtl)
send-styledRich text: bold, italic, gạch chân, gạch ngang, màu
send-imageẢnh qua URL hoặc local path
send-fileFile bất kỳ (PDF, doc, zip…) qua URL hoặc local path
send-videoVideo
send-voiceTin nhắn thoại
send-linkURL kèm preview tự động
send-stickerSticker theo ID hoặc keyword
send-cardDanh thiếp liên hệ
send-bank-cardThông tin thẻ ngân hàng
send-typingChỉ báo đang nhập
send-to-strangerNhắn người chưa kết bạn
forward-messageChuyển tiếp đến nhiều hội thoại (hỗ trợ TTL)
delete-messageXóa tin nhắn
undo-messageThu hồi tin nhắn đã gửi
add-reactionReact: heart · like · haha · wow · cry · angry
</details> <details> <summary><b>🤝 Bạn bè — 16 actions</b></summary> <br>
ActionMô tả
friendsDanh sách bạn bè (filter/search)
find-userTìm theo số điện thoại
find-user-by-usernameTìm theo username Zalo
send-friend-requestGửi lời mời kết bạn
accept-friend-requestChấp nhận lời mời
reject-friend-requestTừ chối lời mời
get-friend-requestsLời mời đang chờ
get-sent-requestsLời mời đã gửi
undo-friend-requestHủy lời mời đã gửi
unfriendXóa bạn
check-friend-statusTrạng thái kết bạn / lời mời
set-friend-nicknameĐặt biệt danh
remove-friend-nicknameXóa biệt danh
get-online-friendsBạn bè đang online
get-close-friendsBạn thân
get-friend-recommendationsGợi ý kết bạn
</details> <details> <summary><b>👥 Nhóm — 22 actions</b></summary> <br>
ActionMô tả
groupsDanh sách nhóm (có search)
get-group-infoChi tiết nhóm
create-groupTạo nhóm mới
add-to-groupThêm thành viên
remove-from-groupXóa thành viên
leave-groupRời nhóm
rename-groupĐổi tên nhóm
add-group-admin / remove-group-adminQuản lý admin
change-group-ownerChuyển quyền trưởng nhóm
disperse-groupGiải tán nhóm
update-group-settingsCài đặt (lịch sử, duyệt tham gia, khóa tên…)
enable/disable/get-group-linkQuản lý link mời nhóm
get/review-pending-membersDuyệt yêu cầu tham gia
block/unblock-group-memberChặn thành viên
get-group-members-infoChi tiết thành viên
change-group-avatarĐổi avatar nhóm
upgrade-group-to-communityNâng cấp thành cộng đồng
get-group-chat-historyLịch sử tin nhắn
</details> <details> <summary><b>📊 Bình chọn — 6 actions</b></summary> <br>

create-poll · vote-poll · lock-poll · get-poll-detail · add-poll-options · share-poll

Hỗ trợ: đa lựa chọn, thêm tùy chọn mới, ẩn danh, thời hạn tùy chỉnh.

</details> <details> <summary><b>🔔 Nhắc nhở — 6 actions</b></summary> <br>

create-reminder · edit-reminder · remove-reminder · list-reminders · get-reminder · get-reminder-responses

</details> <details> <summary><b>💼 Hội thoại, Tự động trả lời, Hồ sơ, Sản phẩm — 51 actions</b></summary> <br>

Quản lý hội thoại (16): Mute/unmute, pin/unpin, ẩn/hiện, tự xóa (1/7/14 ngày), lưu trữ, đánh dấu chưa đọc.

Tin nhắn nhanh & Auto-reply (8): CRUD quick messages + auto-reply rules (phạm vi: tất cả / người lạ / bạn bè cụ thể).

Hồ sơ & Tài khoản (14): me, update-profile, change-avatar, get-qr, last-online, get-biz-account, quản lý lịch sử avatar, v.v.

Danh mục & Sản phẩm (8): CRUD catalog và product — dành cho tài khoản shop/doanh nghiệp.

Tiện ích & Cài đặt (5): get/update-settings, update-active-status, parse-link, search-stickers, tra cứu hàng loạt SĐT.

</details> <details> <summary><b>🔧 Quản lý Bot — OpenClaw layer — 13 actions</b></summary> <br>

Block/unblock user toàn cục và theo nhóm, allowlist, require-mention config per-group, trust management.

</details>

Kiến trúc

zaloclaw/
├── index.ts                    ← Entry point & tool registration
├── src/
│   ├── channel/
│   │   ├── channel.ts          ← Plugin lifecycle (start / stop / dock)
│   │   ├── monitor.ts          ← Inbound router & access control
│   │   ├── send.ts             ← Outbound dispatcher & markdown converter
│   │   ├── onboarding.ts       ← QR login flow
│   │   └── image-downloader.ts ← Media handler
│   ├── client/
│   │   ├── zalo-client.ts      ← zca-js wrapper (login, getApi, reconnect)
│   │   ├── credentials.ts      ← Credential persistence
│   │   └── accounts.ts         ← Multi-account resolver
│   ├── config/                 ← Schema validation & runtime config
│   ├── tools/tool.ts           ← 147 action handlers
│   └── features/               ← sticker · quote-reply · reaction-ack · …
└── docs/
    ├── agent-help.md           ← Full 147-action reference
    └── agent-install.md        ← Install guide

Message flow:

Zalo WS → zca-js → monitor.ts
                       │
                       ├─ Access control (block/allow/policy)
                       ├─ Mention gate  (skip → buffer image)
                       ├─ Media download
                       ├─ Context build (sender · quote · media)
                       └─ OpenClaw agent → send.ts → Zalo

Phát triển

npm run typecheck          # TypeScript check
npm run test               # Vitest test suite
npm run build              # esbuild → dist/index.js

# Dev — link trực tiếp, không cần build lại
openclaw plugins install --link .
openclaw gateway restart

Thêm action mới: Handler trong src/tools/tool.ts → wire vào monitor.ts / send.ts nếu cần → typecheck → restart.


Hạn chế đã biết

Mức độVấn đềChi tiết
🔴Unofficial APIReverse-engineered client — có thể break khi Zalo cập nhật protocol
🟡SessionCookie có thể hết hạn — cần quét lại QR để khôi phục
🟡Rate limitGửi quá nhiều có thể bị Zalo throttle hoặc block tài khoản
🟡Đa tài khoảnHỗ trợ về kiến trúc nhưng chưa kiểm thử đầy đủ
🟢StreamingTắt theo thiết kế (blockStreaming: true)
🟢Message TTLServer Zalo có thể không áp dụng — dùng set-auto-delete-chat thay thế

Ủng hộ đồng bào 🇻🇳

Nếu ZaloClaw có ích với bạn, hãy cân nhắc đóng góp cho Quỹ Cứu trợ Trung ương — Ủy ban MTTQ Việt Nam để hỗ trợ đồng bào bị thiên tai, lũ lụt.

Ngân hàngSố tài khoảnTên tài khoảnChi nhánhQR
Vietcombank666.666.1010Ủy ban TW MTTQ Việt NamHà NộiQR
VietinBank55102025Ban Vận động Cứu trợ TWQR
BIDV1200979797Ủy ban TW MTTQ Việt NamSở Giao dịch 1QR

⚠️ MTTQ đã cảnh báo về nhiều tài khoản giả mạo — chỉ chuyển vào 3 STK trên. Nguồn chính thức: mattran.org.vn


<div align="center">

Giấy phép

MIT © monas-team

</div>
<div align="center"> <sub>Dự án này không có liên kết với Zalo hay VNG Corporation. "Zalo" là thương hiệu thuộc sở hữu của VNG Corporation.</sub> </div>

Source and release

Source repository

monas-team/zaloclaw

Open repo

Source commit

f6881199408ff87b3b1ee10162d6e57fc194e51d

View commit

Install command

openclaw plugins install clawhub:zaloclaw

Metadata

  • Package: zaloclaw
  • Created: 2026/06/10
  • Updated: 2026/06/10
  • Executes code: Yes
  • Source tag: main

Compatibility

  • Built with OpenClaw: 2026.5.7
  • Plugin API range: >=2026.2.0
  • Tags: latest
  • Files: 63