@rune-kit/rune 2.10.0 → 2.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -21
- package/README.md +8 -6
- package/commands/rune.md +168 -168
- package/contexts/dev.md +34 -34
- package/contexts/research.md +43 -43
- package/contexts/review.md +55 -55
- package/extensions/ai-ml/PACK.md +88 -88
- package/extensions/ai-ml/skills/ai-agents.md +172 -172
- package/extensions/ai-ml/skills/code-sandbox.md +187 -187
- package/extensions/ai-ml/skills/deep-research.md +146 -146
- package/extensions/ai-ml/skills/embedding-search.md +66 -66
- package/extensions/ai-ml/skills/fine-tuning-guide.md +74 -74
- package/extensions/ai-ml/skills/llm-architect.md +125 -125
- package/extensions/ai-ml/skills/llm-integration.md +64 -64
- package/extensions/ai-ml/skills/prompt-patterns.md +72 -72
- package/extensions/ai-ml/skills/rag-patterns.md +66 -66
- package/extensions/ai-ml/skills/web-extraction.md +114 -114
- package/extensions/analytics/PACK.md +92 -92
- package/extensions/analytics/skills/ab-testing.md +72 -72
- package/extensions/analytics/skills/dashboard-patterns.md +83 -83
- package/extensions/analytics/skills/data-validation.md +68 -68
- package/extensions/analytics/skills/funnel-analysis.md +81 -81
- package/extensions/analytics/skills/sql-patterns.md +57 -57
- package/extensions/analytics/skills/statistical-analysis.md +79 -79
- package/extensions/analytics/skills/tracking-setup.md +71 -71
- package/extensions/backend/PACK.md +104 -104
- package/extensions/backend/skills/api-patterns.md +84 -84
- package/extensions/backend/skills/async-pipeline.md +193 -193
- package/extensions/backend/skills/auth-patterns.md +97 -97
- package/extensions/backend/skills/background-jobs.md +133 -133
- package/extensions/backend/skills/caching-patterns.md +108 -108
- package/extensions/backend/skills/cli-generation.md +133 -133
- package/extensions/backend/skills/database-patterns.md +87 -87
- package/extensions/backend/skills/middleware-patterns.md +104 -104
- package/extensions/chrome-ext/PACK.md +93 -93
- package/extensions/chrome-ext/skills/cws-preflight.md +143 -143
- package/extensions/chrome-ext/skills/cws-publish.md +104 -104
- package/extensions/chrome-ext/skills/ext-ai-integration.md +251 -251
- package/extensions/chrome-ext/skills/ext-messaging.md +139 -139
- package/extensions/chrome-ext/skills/ext-storage.md +133 -133
- package/extensions/chrome-ext/skills/mv3-scaffold.md +164 -164
- package/extensions/content/PACK.md +96 -96
- package/extensions/content/skills/blog-patterns.md +88 -88
- package/extensions/content/skills/cms-integration.md +131 -131
- package/extensions/content/skills/content-scoring.md +107 -107
- package/extensions/content/skills/i18n.md +83 -83
- package/extensions/content/skills/mdx-authoring.md +137 -137
- package/extensions/content/skills/reference.md +1014 -1014
- package/extensions/content/skills/seo-patterns.md +67 -67
- package/extensions/content/skills/video-repurpose.md +153 -153
- package/extensions/devops/PACK.md +101 -101
- package/extensions/devops/skills/chaos-testing.md +67 -67
- package/extensions/devops/skills/ci-cd.md +75 -75
- package/extensions/devops/skills/docker.md +58 -58
- package/extensions/devops/skills/edge-serverless.md +163 -163
- package/extensions/devops/skills/infra-as-code.md +158 -158
- package/extensions/devops/skills/kubernetes.md +110 -110
- package/extensions/devops/skills/monitoring.md +57 -57
- package/extensions/devops/skills/server-setup.md +64 -64
- package/extensions/devops/skills/ssl-domain.md +42 -42
- package/extensions/ecommerce/PACK.md +116 -116
- package/extensions/ecommerce/skills/cart-system.md +79 -79
- package/extensions/ecommerce/skills/inventory-mgmt.md +102 -102
- package/extensions/ecommerce/skills/order-management.md +126 -126
- package/extensions/ecommerce/skills/payment-integration.md +472 -472
- package/extensions/ecommerce/skills/shopify-dev.md +69 -69
- package/extensions/ecommerce/skills/subscription-billing.md +93 -93
- package/extensions/ecommerce/skills/tax-compliance.md +117 -117
- package/extensions/gamedev/PACK.md +142 -142
- package/extensions/gamedev/skills/asset-pipeline.md +74 -74
- package/extensions/gamedev/skills/audio-system.md +129 -129
- package/extensions/gamedev/skills/camera-system.md +87 -87
- package/extensions/gamedev/skills/ecs.md +98 -98
- package/extensions/gamedev/skills/game-loops.md +72 -72
- package/extensions/gamedev/skills/input-system.md +199 -199
- package/extensions/gamedev/skills/multiplayer.md +180 -180
- package/extensions/gamedev/skills/particles.md +105 -105
- package/extensions/gamedev/skills/physics-engine.md +89 -89
- package/extensions/gamedev/skills/scene-management.md +146 -146
- package/extensions/gamedev/skills/threejs-patterns.md +90 -90
- package/extensions/gamedev/skills/webgl.md +71 -71
- package/extensions/mobile/PACK.md +106 -106
- package/extensions/mobile/skills/app-store-connect.md +152 -152
- package/extensions/mobile/skills/app-store-prep.md +66 -66
- package/extensions/mobile/skills/deep-linking.md +109 -109
- package/extensions/mobile/skills/flutter.md +60 -60
- package/extensions/mobile/skills/ios-build-pipeline.md +142 -142
- package/extensions/mobile/skills/native-bridge.md +66 -66
- package/extensions/mobile/skills/ota-updates.md +97 -97
- package/extensions/mobile/skills/push-notifications.md +111 -111
- package/extensions/mobile/skills/react-native.md +82 -82
- package/extensions/saas/PACK.md +116 -116
- package/extensions/saas/skills/billing-integration.md +200 -200
- package/extensions/saas/skills/feature-flags.md +130 -130
- package/extensions/saas/skills/multi-tenant.md +103 -103
- package/extensions/saas/skills/onboarding-flow.md +139 -139
- package/extensions/saas/skills/subscription-flow.md +95 -95
- package/extensions/saas/skills/team-management.md +144 -144
- package/extensions/security/PACK.md +99 -99
- package/extensions/security/skills/api-security.md +140 -140
- package/extensions/security/skills/compliance.md +68 -68
- package/extensions/security/skills/owasp-audit.md +64 -64
- package/extensions/security/skills/pentest-patterns.md +77 -77
- package/extensions/security/skills/secret-mgmt.md +65 -65
- package/extensions/security/skills/supply-chain.md +65 -65
- package/extensions/trading/PACK.md +80 -80
- package/extensions/trading/skills/chart-components.md +55 -55
- package/extensions/trading/skills/experiment-loop.md +125 -125
- package/extensions/trading/skills/fintech-patterns.md +47 -47
- package/extensions/trading/skills/indicator-library.md +58 -58
- package/extensions/trading/skills/quant-analysis.md +111 -111
- package/extensions/trading/skills/realtime-data.md +58 -58
- package/extensions/trading/skills/trade-logic.md +104 -104
- package/extensions/ui/PACK.md +130 -130
- package/extensions/ui/skills/a11y-audit.md +91 -91
- package/extensions/ui/skills/animation-patterns.md +127 -127
- package/extensions/ui/skills/component-patterns.md +100 -100
- package/extensions/ui/skills/design-decision.md +108 -108
- package/extensions/ui/skills/design-system.md +68 -68
- package/extensions/ui/skills/landing-patterns.md +155 -155
- package/extensions/ui/skills/palette-picker.md +173 -173
- package/extensions/ui/skills/react-health.md +90 -90
- package/extensions/ui/skills/type-system.md +125 -125
- package/extensions/ui/skills/web-vitals.md +153 -153
- package/extensions/zalo/PACK.md +145 -145
- package/extensions/zalo/skills/zalo-oa-mcp.md +317 -317
- package/extensions/zalo/skills/zalo-oa-messaging.md +429 -429
- package/extensions/zalo/skills/zalo-oa-setup.md +236 -236
- package/extensions/zalo/skills/zalo-oa-webhook.md +189 -189
- package/extensions/zalo/skills/zalo-personal-messaging.md +194 -194
- package/extensions/zalo/skills/zalo-personal-setup.md +153 -153
- package/extensions/zalo/skills/zalo-rate-guard.md +219 -219
- package/hooks/auto-format/index.cjs +48 -48
- package/hooks/hooks.json +111 -111
- package/hooks/post-session-reflect/index.cjs +189 -189
- package/hooks/pre-compact/index.cjs +95 -95
- package/hooks/run-hook.cmd +1 -1
- package/hooks/secrets-scan/index.cjs +100 -100
- package/hooks/session-start/index.cjs +71 -71
- package/hooks/typecheck/index.cjs +65 -65
- package/package.json +63 -63
- package/references/ui-pro-max-data/LICENSE-UI-PRO-MAX +21 -21
- package/references/ui-pro-max-data/charts.csv +26 -26
- package/references/ui-pro-max-data/colors.csv +161 -161
- package/references/ui-pro-max-data/styles.csv +68 -68
- package/references/ui-pro-max-data/typography.csv +74 -74
- package/references/ui-pro-max-data/ui-reasoning.csv +162 -162
- package/references/ui-pro-max-data/ux-guidelines.csv +99 -99
- package/skills/adversary/SKILL.md +283 -283
- package/skills/asset-creator/SKILL.md +157 -157
- package/skills/audit/SKILL.md +147 -2
- package/skills/autopsy/SKILL.md +335 -335
- package/skills/brainstorm/SKILL.md +342 -342
- package/skills/browser-pilot/SKILL.md +168 -168
- package/skills/constraint-check/SKILL.md +165 -165
- package/skills/context-engine/SKILL.md +404 -404
- package/skills/cook/SKILL.md +917 -863
- package/skills/db/SKILL.md +273 -273
- package/skills/debug/SKILL.md +465 -465
- package/skills/dependency-doctor/SKILL.md +265 -235
- package/skills/deploy/SKILL.md +274 -231
- package/skills/design/DESIGN-REFERENCE.md +365 -365
- package/skills/design/SKILL.md +589 -589
- package/skills/doc-processor/SKILL.md +254 -254
- package/skills/docs/SKILL.md +374 -374
- package/skills/docs-seeker/SKILL.md +177 -177
- package/skills/fix/SKILL.md +330 -330
- package/skills/git/SKILL.md +339 -339
- package/skills/hallucination-guard/SKILL.md +219 -219
- package/skills/incident/SKILL.md +254 -253
- package/skills/integrity-check/SKILL.md +169 -169
- package/skills/journal/SKILL.md +240 -240
- package/skills/launch/SKILL.md +344 -344
- package/skills/logic-guardian/SKILL.md +251 -251
- package/skills/marketing/SKILL.md +290 -289
- package/skills/mcp-builder/SKILL.md +425 -425
- package/skills/neural-memory/SKILL.md +362 -362
- package/skills/onboard/SKILL.md +404 -403
- package/skills/perf/SKILL.md +346 -346
- package/skills/plan/SKILL.md +433 -428
- package/skills/preflight/SKILL.md +415 -415
- package/skills/problem-solver/SKILL.md +380 -284
- package/skills/rescue/SKILL.md +474 -474
- package/skills/retro/SKILL.md +3 -1
- package/skills/review/SKILL.md +612 -588
- package/skills/review-intake/SKILL.md +249 -249
- package/skills/safeguard/SKILL.md +200 -200
- package/skills/sast/SKILL.md +190 -190
- package/skills/scaffold/SKILL.md +328 -287
- package/skills/scope-guard/SKILL.md +180 -180
- package/skills/scout/SKILL.md +263 -263
- package/skills/sentinel/SKILL.md +382 -381
- package/skills/sentinel-env/SKILL.md +254 -254
- package/skills/sequential-thinking/SKILL.md +234 -234
- package/skills/session-bridge/SKILL.md +543 -543
- package/skills/skill-forge/SKILL.md +581 -581
- package/skills/skill-router/SKILL.md +3 -0
- package/skills/surgeon/SKILL.md +215 -215
- package/skills/team/SKILL.md +556 -537
- package/skills/test/SKILL.md +614 -614
- package/skills/trend-scout/SKILL.md +145 -145
- package/skills/verification/SKILL.md +326 -326
- package/skills/video-creator/SKILL.md +201 -201
- package/skills/watchdog/SKILL.md +168 -168
- package/skills/worktree/SKILL.md +140 -140
package/extensions/zalo/PACK.md
CHANGED
|
@@ -1,145 +1,145 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: "@rune/zalo"
|
|
3
|
-
description: Zalo platform integration — Official Account API (OAuth2, messaging, webhooks, MCP server) and personal account automation (zca-js). Dual-track with explicit risk gating.
|
|
4
|
-
metadata:
|
|
5
|
-
author: runedev
|
|
6
|
-
version: "0.2.0"
|
|
7
|
-
layer: L4
|
|
8
|
-
price: free
|
|
9
|
-
target: Vietnamese developers building Zalo bots, OA automation, and AI agent integrations
|
|
10
|
-
format: split
|
|
11
|
-
---
|
|
12
|
-
|
|
13
|
-
# @rune/zalo
|
|
14
|
-
|
|
15
|
-
## Purpose
|
|
16
|
-
|
|
17
|
-
Zalo is Vietnam's dominant messaging platform (~75M users) but its developer ecosystem has critical gaps: no Node.js SDK, zero webhook handling in official SDKs, undocumented rate limits, and confusing dual-token OAuth2 flows. This pack provides production-ready guidance for two tracks:
|
|
18
|
-
|
|
19
|
-
**Track A — Official Account API** (production-safe): OAuth2 PKCE, 8 message types, webhook server, token lifecycle, and MCP server blueprint for AI agent integration. Use this for business chatbots, customer support automation, and notification systems.
|
|
20
|
-
|
|
21
|
-
**Track B — Personal Account via zca-js** (unofficial, risk-gated): QR login, personal/group messaging, media handling. Use this for personal bots, group utilities, and rapid prototyping before committing to OA.
|
|
22
|
-
|
|
23
|
-
Both tracks share a rate limiting skill — the #1 cause of account bans.
|
|
24
|
-
|
|
25
|
-
## Best Fit
|
|
26
|
-
|
|
27
|
-
- Vietnamese dev teams building Zalo OA chatbots or customer support automation
|
|
28
|
-
- AI agent projects that need Zalo as a communication channel (MCP server pattern)
|
|
29
|
-
- Personal automation: group bots, notification forwarders, quick prototypes
|
|
30
|
-
- Projects migrating from unofficial to official Zalo API
|
|
31
|
-
|
|
32
|
-
## Not a Fit
|
|
33
|
-
|
|
34
|
-
- Facebook Messenger, Telegram, or Discord bots — different APIs entirely
|
|
35
|
-
- ZaloPay payment integration (separate API surface, not covered here)
|
|
36
|
-
- Zalo Mini App development (JSAPI bridge, not OA/personal messaging)
|
|
37
|
-
|
|
38
|
-
## Triggers
|
|
39
|
-
|
|
40
|
-
- Auto-trigger: when `zalo`, `zca-js`, `@anthropic-ai/sdk` + Zalo context detected
|
|
41
|
-
- `/rune zalo-oa` — Official Account setup and messaging
|
|
42
|
-
- `/rune zalo-personal` — Personal account automation
|
|
43
|
-
- `/rune zalo-mcp` — MCP server for AI agent ↔ Zalo
|
|
44
|
-
- `/rune zalo-rate` — Rate limiting and anti-ban strategies
|
|
45
|
-
- Called by `cook` (L1) when Zalo integration task detected
|
|
46
|
-
- Called by `mcp-builder` (L2) when building Zalo MCP server
|
|
47
|
-
|
|
48
|
-
## Skills Included
|
|
49
|
-
|
|
50
|
-
| Skill | Model | Track | Description |
|
|
51
|
-
|-------|-------|-------|-------------|
|
|
52
|
-
| [zalo-oa-setup](skills/zalo-oa-setup.md) | sonnet | A | OAuth2 PKCE flow, dual token management (User vs OA), app registration, appsecret_proof signing, token auto-refresh middleware. |
|
|
53
|
-
| [zalo-oa-messaging](skills/zalo-oa-messaging.md) | sonnet | A | All 8 OA message types (text, image, file, sticker, list, template, transaction, promotion), follower management, broadcast with demographic targeting. |
|
|
54
|
-
| [zalo-oa-webhook](skills/zalo-oa-webhook.md) | sonnet | A | Webhook server setup, event routing, signature verification, retry handling, event type catalog, Express/Fastify/Hono patterns. |
|
|
55
|
-
| [zalo-oa-mcp](skills/zalo-oa-mcp.md) | sonnet | A | MCP server blueprint — tools for read/send/broadcast, webhook-to-MCP bridge, credential storage, AI agent conversation loop. |
|
|
56
|
-
| [zalo-personal-setup](skills/zalo-personal-setup.md) | sonnet | B | zca-js setup, QR login flow, credential persistence, session management, WebSocket listener, keepAlive, anti-detection baseline. |
|
|
57
|
-
| [zalo-personal-messaging](skills/zalo-personal-messaging.md) | sonnet | B | Personal/group messaging, media (image/video/voice/sticker), reactions, group management (create, members, settings), mention gating, message buffer. |
|
|
58
|
-
| [zalo-rate-guard](skills/zalo-rate-guard.md) | sonnet | Shared | Rate limiting patterns for both tracks — token bucket per endpoint, exponential backoff, queue management, quota monitoring, anti-ban strategies. |
|
|
59
|
-
|
|
60
|
-
## Risk Gate — Track B (Personal Account)
|
|
61
|
-
|
|
62
|
-
<HARD-GATE>
|
|
63
|
-
Track B skills use unofficial reverse-engineered APIs via zca-js.
|
|
64
|
-
Before ANY Track B implementation, the developer MUST acknowledge:
|
|
65
|
-
|
|
66
|
-
1. **ToS violation**: Personal account automation violates Zalo's Terms of Service
|
|
67
|
-
2. **Ban risk**: Account can be suspended without warning
|
|
68
|
-
3. **Single-session**: Cannot run bot + personal Zalo simultaneously on same account
|
|
69
|
-
4. **API instability**: Zalo can break the internal API at any time without notice
|
|
70
|
-
5. **No support**: Zalo will not help with issues caused by unofficial API usage
|
|
71
|
-
|
|
72
|
-
Track B is for: personal projects, prototypes, group utilities.
|
|
73
|
-
Track B is NOT for: production business systems, customer-facing bots, high-volume messaging.
|
|
74
|
-
|
|
75
|
-
For production use → Track A (Official Account API).
|
|
76
|
-
</HARD-GATE>
|
|
77
|
-
|
|
78
|
-
## Connections
|
|
79
|
-
|
|
80
|
-
```
|
|
81
|
-
Calls → mcp-builder (L2): zalo-oa-mcp uses mcp-builder patterns for server scaffolding
|
|
82
|
-
Calls → sentinel (L2): credential handling triggers security review
|
|
83
|
-
Calls → rate-guard (shared): all messaging skills call rate-guard before API calls
|
|
84
|
-
Calls → verification (L3): verify webhook server is running and receiving events
|
|
85
|
-
Called By ← cook (L1): when Zalo integration task detected in project
|
|
86
|
-
Called By ← scaffold (L1): when bootstrapping a Zalo bot project
|
|
87
|
-
Called By ← mcp-builder (L2): when building Zalo-specific MCP server
|
|
88
|
-
```
|
|
89
|
-
|
|
90
|
-
## Tech Stack
|
|
91
|
-
|
|
92
|
-
| Component | Recommended | Alternatives |
|
|
93
|
-
|-----------|-------------|--------------|
|
|
94
|
-
| Runtime | Node.js 20+ | Bun, Deno |
|
|
95
|
-
| OA HTTP client | undici / fetch | axios |
|
|
96
|
-
| Personal API | zca-js | none (only option) |
|
|
97
|
-
| Webhook server | Hono | Express, Fastify |
|
|
98
|
-
| MCP framework | @anthropic-ai/sdk | custom |
|
|
99
|
-
| Queue (rate limit) | p-queue | bottleneck, bull |
|
|
100
|
-
| Validation | zod | joi |
|
|
101
|
-
|
|
102
|
-
## Constraints
|
|
103
|
-
|
|
104
|
-
1. All skills MUST reference Zalo OA API v3 (not deprecated v2)
|
|
105
|
-
2. Track B skills MUST display HARD-GATE risk disclaimer before execution
|
|
106
|
-
3. Rate limiting MUST be implemented before any messaging — no fire-and-forget
|
|
107
|
-
4. Credentials (tokens, cookies, secrets) MUST never be logged or committed
|
|
108
|
-
5. Webhook signature verification MUST NOT be skipped — even in development
|
|
109
|
-
|
|
110
|
-
## Sharp Edges
|
|
111
|
-
|
|
112
|
-
| Failure Mode | Severity | Mitigation |
|
|
113
|
-
|---|---|---|
|
|
114
|
-
| OAuth2 access token expires (1h) without auto-refresh causing silent API failures | HIGH | Implement token refresh middleware that intercepts 401 responses and retries with new token before propagating errors |
|
|
115
|
-
| zca-js session lost when running personal bot and Zalo app simultaneously on same account | HIGH | Use a dedicated account for bot automation — single-session limit is non-negotiable on Track B |
|
|
116
|
-
| Webhook signature verification skipped in development, then deployed to production unsigned | HIGH | Always validate `X-Zalo-Signature` header from first commit — skip in dev only via explicit `SKIP_WEBHOOK_VERIFY=true` env flag |
|
|
117
|
-
| Rate limit hit causes account ban with no warning (HTTP 429 mishandled as transient error) | HIGH | Implement token bucket per endpoint; treat sustained 429s as ban-risk signal and back off for 60+ seconds |
|
|
118
|
-
|
|
119
|
-
## References
|
|
120
|
-
|
|
121
|
-
| Reference | Trigger |
|
|
122
|
-
|-----------|---------|
|
|
123
|
-
| [VietQR & Banking](references/vietqr-banking.md) | Payment, bank transfer, QR code patterns detected |
|
|
124
|
-
| [Conversation Management](references/conversation-management.md) | Polls, auto-reply, mute/archive, advanced messaging |
|
|
125
|
-
| [MCP Production](references/mcp-production.md) | MCP server deployment, cursor pagination, pm2 setup |
|
|
126
|
-
| [Multi-Account & Proxy](references/multi-account-proxy.md) | Multi-account setup, proxy configuration, VPS deployment |
|
|
127
|
-
| [Listen Mode](references/listen-mode.md) | WebSocket listener, real-time events, webhook forwarding |
|
|
128
|
-
| [Eval Scenarios](references/eval-scenarios.md) | Quality gate — 24 test scenarios (functional + security) |
|
|
129
|
-
|
|
130
|
-
## Credits
|
|
131
|
-
|
|
132
|
-
This pack was originally inspired by and incorporates patterns from:
|
|
133
|
-
|
|
134
|
-
- **[zalo-agent-cli](https://github.com/PhucMPham/zalo-agent-cli)** by PhucMPham (MIT) — CLI tool for Zalo automation, 90+ commands, MCP server, VietQR banking integration
|
|
135
|
-
- **[openzalo](https://github.com/darkamenosa/openzalo)** by darkamenosa — OpenClaw channel plugin for Zalo personal accounts via openzca CLI
|
|
136
|
-
- **[zca-js](https://github.com/RFS-ADRENO/zca-js)** — Unofficial Zalo client library (reverse-engineered API)
|
|
137
|
-
|
|
138
|
-
## Done When
|
|
139
|
-
|
|
140
|
-
- OA OAuth2 flow working with auto-refresh
|
|
141
|
-
- All 8 message types documented with request/response examples
|
|
142
|
-
- Webhook server receiving and routing events correctly
|
|
143
|
-
- MCP server operational: agent can read and send Zalo messages
|
|
144
|
-
- Rate limiting active on all outbound API calls
|
|
145
|
-
- Track B: QR login + personal/group messaging working with risk gate shown
|
|
1
|
+
---
|
|
2
|
+
name: "@rune/zalo"
|
|
3
|
+
description: Zalo platform integration — Official Account API (OAuth2, messaging, webhooks, MCP server) and personal account automation (zca-js). Dual-track with explicit risk gating.
|
|
4
|
+
metadata:
|
|
5
|
+
author: runedev
|
|
6
|
+
version: "0.2.0"
|
|
7
|
+
layer: L4
|
|
8
|
+
price: free
|
|
9
|
+
target: Vietnamese developers building Zalo bots, OA automation, and AI agent integrations
|
|
10
|
+
format: split
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# @rune/zalo
|
|
14
|
+
|
|
15
|
+
## Purpose
|
|
16
|
+
|
|
17
|
+
Zalo is Vietnam's dominant messaging platform (~75M users) but its developer ecosystem has critical gaps: no Node.js SDK, zero webhook handling in official SDKs, undocumented rate limits, and confusing dual-token OAuth2 flows. This pack provides production-ready guidance for two tracks:
|
|
18
|
+
|
|
19
|
+
**Track A — Official Account API** (production-safe): OAuth2 PKCE, 8 message types, webhook server, token lifecycle, and MCP server blueprint for AI agent integration. Use this for business chatbots, customer support automation, and notification systems.
|
|
20
|
+
|
|
21
|
+
**Track B — Personal Account via zca-js** (unofficial, risk-gated): QR login, personal/group messaging, media handling. Use this for personal bots, group utilities, and rapid prototyping before committing to OA.
|
|
22
|
+
|
|
23
|
+
Both tracks share a rate limiting skill — the #1 cause of account bans.
|
|
24
|
+
|
|
25
|
+
## Best Fit
|
|
26
|
+
|
|
27
|
+
- Vietnamese dev teams building Zalo OA chatbots or customer support automation
|
|
28
|
+
- AI agent projects that need Zalo as a communication channel (MCP server pattern)
|
|
29
|
+
- Personal automation: group bots, notification forwarders, quick prototypes
|
|
30
|
+
- Projects migrating from unofficial to official Zalo API
|
|
31
|
+
|
|
32
|
+
## Not a Fit
|
|
33
|
+
|
|
34
|
+
- Facebook Messenger, Telegram, or Discord bots — different APIs entirely
|
|
35
|
+
- ZaloPay payment integration (separate API surface, not covered here)
|
|
36
|
+
- Zalo Mini App development (JSAPI bridge, not OA/personal messaging)
|
|
37
|
+
|
|
38
|
+
## Triggers
|
|
39
|
+
|
|
40
|
+
- Auto-trigger: when `zalo`, `zca-js`, `@anthropic-ai/sdk` + Zalo context detected
|
|
41
|
+
- `/rune zalo-oa` — Official Account setup and messaging
|
|
42
|
+
- `/rune zalo-personal` — Personal account automation
|
|
43
|
+
- `/rune zalo-mcp` — MCP server for AI agent ↔ Zalo
|
|
44
|
+
- `/rune zalo-rate` — Rate limiting and anti-ban strategies
|
|
45
|
+
- Called by `cook` (L1) when Zalo integration task detected
|
|
46
|
+
- Called by `mcp-builder` (L2) when building Zalo MCP server
|
|
47
|
+
|
|
48
|
+
## Skills Included
|
|
49
|
+
|
|
50
|
+
| Skill | Model | Track | Description |
|
|
51
|
+
|-------|-------|-------|-------------|
|
|
52
|
+
| [zalo-oa-setup](skills/zalo-oa-setup.md) | sonnet | A | OAuth2 PKCE flow, dual token management (User vs OA), app registration, appsecret_proof signing, token auto-refresh middleware. |
|
|
53
|
+
| [zalo-oa-messaging](skills/zalo-oa-messaging.md) | sonnet | A | All 8 OA message types (text, image, file, sticker, list, template, transaction, promotion), follower management, broadcast with demographic targeting. |
|
|
54
|
+
| [zalo-oa-webhook](skills/zalo-oa-webhook.md) | sonnet | A | Webhook server setup, event routing, signature verification, retry handling, event type catalog, Express/Fastify/Hono patterns. |
|
|
55
|
+
| [zalo-oa-mcp](skills/zalo-oa-mcp.md) | sonnet | A | MCP server blueprint — tools for read/send/broadcast, webhook-to-MCP bridge, credential storage, AI agent conversation loop. |
|
|
56
|
+
| [zalo-personal-setup](skills/zalo-personal-setup.md) | sonnet | B | zca-js setup, QR login flow, credential persistence, session management, WebSocket listener, keepAlive, anti-detection baseline. |
|
|
57
|
+
| [zalo-personal-messaging](skills/zalo-personal-messaging.md) | sonnet | B | Personal/group messaging, media (image/video/voice/sticker), reactions, group management (create, members, settings), mention gating, message buffer. |
|
|
58
|
+
| [zalo-rate-guard](skills/zalo-rate-guard.md) | sonnet | Shared | Rate limiting patterns for both tracks — token bucket per endpoint, exponential backoff, queue management, quota monitoring, anti-ban strategies. |
|
|
59
|
+
|
|
60
|
+
## Risk Gate — Track B (Personal Account)
|
|
61
|
+
|
|
62
|
+
<HARD-GATE>
|
|
63
|
+
Track B skills use unofficial reverse-engineered APIs via zca-js.
|
|
64
|
+
Before ANY Track B implementation, the developer MUST acknowledge:
|
|
65
|
+
|
|
66
|
+
1. **ToS violation**: Personal account automation violates Zalo's Terms of Service
|
|
67
|
+
2. **Ban risk**: Account can be suspended without warning
|
|
68
|
+
3. **Single-session**: Cannot run bot + personal Zalo simultaneously on same account
|
|
69
|
+
4. **API instability**: Zalo can break the internal API at any time without notice
|
|
70
|
+
5. **No support**: Zalo will not help with issues caused by unofficial API usage
|
|
71
|
+
|
|
72
|
+
Track B is for: personal projects, prototypes, group utilities.
|
|
73
|
+
Track B is NOT for: production business systems, customer-facing bots, high-volume messaging.
|
|
74
|
+
|
|
75
|
+
For production use → Track A (Official Account API).
|
|
76
|
+
</HARD-GATE>
|
|
77
|
+
|
|
78
|
+
## Connections
|
|
79
|
+
|
|
80
|
+
```
|
|
81
|
+
Calls → mcp-builder (L2): zalo-oa-mcp uses mcp-builder patterns for server scaffolding
|
|
82
|
+
Calls → sentinel (L2): credential handling triggers security review
|
|
83
|
+
Calls → rate-guard (shared): all messaging skills call rate-guard before API calls
|
|
84
|
+
Calls → verification (L3): verify webhook server is running and receiving events
|
|
85
|
+
Called By ← cook (L1): when Zalo integration task detected in project
|
|
86
|
+
Called By ← scaffold (L1): when bootstrapping a Zalo bot project
|
|
87
|
+
Called By ← mcp-builder (L2): when building Zalo-specific MCP server
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
## Tech Stack
|
|
91
|
+
|
|
92
|
+
| Component | Recommended | Alternatives |
|
|
93
|
+
|-----------|-------------|--------------|
|
|
94
|
+
| Runtime | Node.js 20+ | Bun, Deno |
|
|
95
|
+
| OA HTTP client | undici / fetch | axios |
|
|
96
|
+
| Personal API | zca-js | none (only option) |
|
|
97
|
+
| Webhook server | Hono | Express, Fastify |
|
|
98
|
+
| MCP framework | @anthropic-ai/sdk | custom |
|
|
99
|
+
| Queue (rate limit) | p-queue | bottleneck, bull |
|
|
100
|
+
| Validation | zod | joi |
|
|
101
|
+
|
|
102
|
+
## Constraints
|
|
103
|
+
|
|
104
|
+
1. All skills MUST reference Zalo OA API v3 (not deprecated v2)
|
|
105
|
+
2. Track B skills MUST display HARD-GATE risk disclaimer before execution
|
|
106
|
+
3. Rate limiting MUST be implemented before any messaging — no fire-and-forget
|
|
107
|
+
4. Credentials (tokens, cookies, secrets) MUST never be logged or committed
|
|
108
|
+
5. Webhook signature verification MUST NOT be skipped — even in development
|
|
109
|
+
|
|
110
|
+
## Sharp Edges
|
|
111
|
+
|
|
112
|
+
| Failure Mode | Severity | Mitigation |
|
|
113
|
+
|---|---|---|
|
|
114
|
+
| OAuth2 access token expires (1h) without auto-refresh causing silent API failures | HIGH | Implement token refresh middleware that intercepts 401 responses and retries with new token before propagating errors |
|
|
115
|
+
| zca-js session lost when running personal bot and Zalo app simultaneously on same account | HIGH | Use a dedicated account for bot automation — single-session limit is non-negotiable on Track B |
|
|
116
|
+
| Webhook signature verification skipped in development, then deployed to production unsigned | HIGH | Always validate `X-Zalo-Signature` header from first commit — skip in dev only via explicit `SKIP_WEBHOOK_VERIFY=true` env flag |
|
|
117
|
+
| Rate limit hit causes account ban with no warning (HTTP 429 mishandled as transient error) | HIGH | Implement token bucket per endpoint; treat sustained 429s as ban-risk signal and back off for 60+ seconds |
|
|
118
|
+
|
|
119
|
+
## References
|
|
120
|
+
|
|
121
|
+
| Reference | Trigger |
|
|
122
|
+
|-----------|---------|
|
|
123
|
+
| [VietQR & Banking](references/vietqr-banking.md) | Payment, bank transfer, QR code patterns detected |
|
|
124
|
+
| [Conversation Management](references/conversation-management.md) | Polls, auto-reply, mute/archive, advanced messaging |
|
|
125
|
+
| [MCP Production](references/mcp-production.md) | MCP server deployment, cursor pagination, pm2 setup |
|
|
126
|
+
| [Multi-Account & Proxy](references/multi-account-proxy.md) | Multi-account setup, proxy configuration, VPS deployment |
|
|
127
|
+
| [Listen Mode](references/listen-mode.md) | WebSocket listener, real-time events, webhook forwarding |
|
|
128
|
+
| [Eval Scenarios](references/eval-scenarios.md) | Quality gate — 24 test scenarios (functional + security) |
|
|
129
|
+
|
|
130
|
+
## Credits
|
|
131
|
+
|
|
132
|
+
This pack was originally inspired by and incorporates patterns from:
|
|
133
|
+
|
|
134
|
+
- **[zalo-agent-cli](https://github.com/PhucMPham/zalo-agent-cli)** by PhucMPham (MIT) — CLI tool for Zalo automation, 90+ commands, MCP server, VietQR banking integration
|
|
135
|
+
- **[openzalo](https://github.com/darkamenosa/openzalo)** by darkamenosa — OpenClaw channel plugin for Zalo personal accounts via openzca CLI
|
|
136
|
+
- **[zca-js](https://github.com/RFS-ADRENO/zca-js)** — Unofficial Zalo client library (reverse-engineered API)
|
|
137
|
+
|
|
138
|
+
## Done When
|
|
139
|
+
|
|
140
|
+
- OA OAuth2 flow working with auto-refresh
|
|
141
|
+
- All 8 message types documented with request/response examples
|
|
142
|
+
- Webhook server receiving and routing events correctly
|
|
143
|
+
- MCP server operational: agent can read and send Zalo messages
|
|
144
|
+
- Rate limiting active on all outbound API calls
|
|
145
|
+
- Track B: QR login + personal/group messaging working with risk gate shown
|