Manage Zalo channel access — approve pairings, edit allowlists, set DM/group policy. Use when the user asks to pair, approve someone, check who's allowed, or change policy for the Zalo channel.
Authenticate or log in to Zalo personal account. Use when the user says "connect Zalo", "log in to Zalo", "scan QR", "zalo auth", or when a tool errors with "Zalo not logged in".
Set up the Zalo channel — check login, review access policy, lock down the allowlist. Use when the user asks to configure Zalo, asks "how do I set this up" or "who can reach me", or wants channel status.
Check the current status of the Zalo plugin and its subsystems. Use when the user says "Zalo status", "is Zalo connected", "check Zalo", or to diagnose connection issues.
Fully remove the Zalo channel — stop the daemon, wipe all state (credentials, message DB, access policy, attachments, memory), and clean up any leftover Scheduled Task from older versions. Use when the user says "uninstall Zalo", "remove the Zalo plugin", "clean up Zalo", "delete everything Zalo", or wants a clean teardown.
Admin access level
Server config contains admin-level keywords
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
A Claude Code MCP plugin that bridges Zalo into your Claude sessions. Messages from approved senders appear live in your interactive session as channel events, and Claude replies under your own identity — this is your personal Zalo account, driven over a WebSocket by zca-js, not a bot.
/zalo:access pair <code>dmPolicy: allowlist silently drops anyone you haven't approvedyes <id> / no <id>PATH; works on Windows, Linux, and macOS# Add the plugin source (one-time)
claude plugin marketplace add imrim12/claude-plugin-zalo
# Install
claude plugin install zalo@imrim12
Verify it loaded:
claude plugin list # should show: zalo ✔ loaded
The MCP server runs straight from npm via bunx claude-plugin-zalo — Bun fetches the package
and its dependencies on first launch and caches them, so there's no manual install step and
nothing OS-specific to configure. State lives under your home directory
(~/.claude/channels/zalo), resolved cross-platform, independent of where Claude Code is
launched from.
Claude Code only renders notifications/claude/channel events from plugins on Anthropic's
approved channels allowlist. This plugin is not on it, so inbound messages are silently
dropped unless you launch the session with the development-channels flag:
claude --dangerously-load-development-channels plugin:zalo@imrim12
# Or YOLO mode
claude --dangerously-load-development-channels plugin:zalo@imrim12 --dangerously-skip-permissions
A confirmation dialog appears at startup — accept it. Without this flag, everything else
still works (QR login, pairing auto-replies, outbound reply), which makes the failure look
like a plugin bug: the sender sees the typing indicator but the message never reaches your
session.
To confirm you're hitting this, check the newest file in Claude Code's MCP log directory for
your project (%LOCALAPPDATA%\claude-cli-nodejs\Cache\<project>\mcp-logs-plugin-zalo-zalo\ on
Windows) for:
Channel notifications skipped: plugin zalo@imrim12 is not on the approved channels allowlist
/zalo:auth (or call the zalo_login tool)./zalo:auth reports (qr-login.png in the state directory) with the Zalo mobile app (More → QR scan).The default DM policy is pairing: when an unknown sender DMs your account, the plugin
auto-replies with a 6-character code. Approve them in your terminal:
/zalo:access pair <code>
They get a "Paired!" DM, and from then on their messages appear live in your session (provided inbound delivery is enabled — see above).
/selfZalo has no chat-with-yourself, so you can't normally trigger the assistant from your own logged-in
session. Send a message — in any chat — that starts with /self and the rest is fed to the
assistant, which answers in that same chat:
/self summarize the unread messages in this group
Only messages you send yourself that begin with /self are picked up (every other self message is
ignored). The chat you use is auto-allowlisted so the reply can go through, so prefer a group or a
dedicated chat.
Once everyone you want is paired, switch to a hard allowlist so strangers are dropped silently:
/zalo:access policy allowlist
Manage everything else with /zalo:access — allow <id>, remove <id>, deny <code>,
group add <threadId> [--no-mention] [--allow id1,id2], group rm <threadId>.
npx claudepluginhub imrim12/claude-plugin-zalo --plugin zaloMemory compression system for Claude Code - persist context across sessions
Ultra-compressed communication mode. Cuts ~75% of tokens while keeping full technical accuracy by speaking like a caveman.
Standalone image generation plugin using Nano Banana MCP server. Generates and edits images, icons, diagrams, patterns, and visual assets via Gemini image models. No Gemini CLI dependency required.
Multi-model consensus engine integrating OpenAI Codex CLI, Gemini CLI, and Claude CLI for collaborative code review and problem-solving.
Streamline people operations — recruiting, onboarding, performance reviews, compensation analysis, and policy guidance. Maintain compliance and keep your team running smoothly.
Write feature specs, plan roadmaps, and synthesize user research faster. Keep stakeholders updated and stay ahead of the competitive landscape.