From agent
Guides users through installing Claude Code plugins for WhatsApp, Telegram, Discord, iMessage, Fakechat to enable external messaging channels. Shows exact commands, prerequisites like Bun.
npx claudepluginhub crisandrews/clawcode --plugin agentThis skill uses the workspace's default tool permissions.
Guide the user through installing a messaging plugin so they can reach this agent from their phone or desktop.
Bridges Claude Code sessions to Telegram, Discord, Feishu/Lark, or QQ for mobile chatting. Manages bridge daemon with setup, start, stop, status, logs, reconfigure, doctor subcommands.
Automates ClaudeClaw setup: installs dependencies, authenticates messaging channels, registers main channel, starts background services. Triggers on setup, install, configure claudeclaw, or first-time requests.
Bridges local AI coding agents (Claude Code, Cursor, Gemini CLI, Codex) to messaging platforms (Telegram, Slack, Discord, Feishu) without public IP for remote chat control.
Share bugs, ideas, or general feedback.
Guide the user through installing a messaging plugin so they can reach this agent from their phone or desktop.
IMPORTANT — architectural limitation: The agent CANNOT execute /plugin marketplace add or /plugin install — these are REPL-only commands. This skill SHOWS the user the exact commands to run, and guides them through the flow.
| # | Platform | Marketplace | Launch flag | Notes |
|---|---|---|---|---|
| 1 | WhatsApp ⭐ | crisandrews/claude-whatsapp | --dangerously-load-development-channels | Rich access control, voice transcription (Whisper local), Baileys (unofficial WhatsApp Web API). Not on official allowlist. |
| 2 | Telegram | anthropics/claude-plugins-official | --channels | Official Bot API, pairing. Requires Bun + claude.ai login. |
| 3 | Discord | anthropics/claude-plugins-official | --channels | Official Bot API, requires bot creation + Message Content Intent. |
| 4 | iMessage | anthropics/claude-plugins-official | --channels | macOS only. Reads chat.db directly, no token. Needs Full Disk Access. |
| 5 | Fakechat (demo) | anthropics/claude-plugins-official | --channels | Localhost UI for testing the channel flow. No real platform. |
Note: Slack is NOT a channel plugin. See Claude in Slack for the different integration model.
Prerequisites for official channels (Telegram/Discord/iMessage/Fakechat):
Ask the user which platform (unless specified in the argument). Default recommendation: WhatsApp.
Check if the plugin is already installed:
ls ~/.claude/plugins/cache/ 2>/dev/null | grep -iE "whatsapp|telegram|discord|imessage|slack"
If already installed, skip to the relaunch step.
Show the EXACT commands from the plugin's README (do not invent or simplify):
crisandrews/claude-whatsapp README)Prerequisites: Node.js v18+
Step 1 — Create a folder for the WhatsApp agent (if not already in one):
mkdir ~/my-whatsapp-agent && cd ~/my-whatsapp-agent
claude
Step 2 — Install the plugin (inside Claude Code):
/plugin marketplace add crisandrews/claude-whatsapp
/plugin install whatsapp@claude-whatsapp
When prompted for scope, select "Install for you, in this repo only (local scope)" — isolates the agent to this folder.
Step 3 — Exit and relaunch with the channel flag:
/exit
Then from the terminal:
claude --dangerously-load-development-channels plugin:whatsapp@claude-whatsapp --dangerously-skip-permissions
Flag explanation:
--dangerously-load-development-channels plugin:whatsapp@claude-whatsapp — loads the whatsapp channel plugin--dangerously-skip-permissions — agent executes tools without asking for confirmation (recommended for smooth WhatsApp flow, otherwise every reply would need approval)First launch: installs dependencies in the background (~60-90 seconds). Wait for the "dependencies installed" notification.
Step 4 — Scan the QR code:
/whatsapp:configure
Opens a QR code on screen. Scan from phone: WhatsApp → Settings → Linked Devices → Link a Device.
Session is saved to .whatsapp/auth/ — you won't scan again unless you log out.
Step 5 — Pair (first-time contact): Message your own WhatsApp number from another phone. It replies with a 6-character code. Then in Claude Code:
/whatsapp:access pair <code>
Step 6 — Lock down access:
/whatsapp:access policy allowlist
Now only approved contacts can reach the agent.
For an agent that doesn't ask permission and can browse the web:
claude --dangerously-load-development-channels plugin:whatsapp@claude-whatsapp --dangerously-skip-permissions --chrome
The --chrome flag enables browser automation (via claude-in-chrome MCP).
When recommending these commands to a user, substitute
<lang>with the language they're actually using in the conversation (e.g.en,es,pt). Do not default toes.
After the plugin is running:
/whatsapp:configure audio
Downloads local Whisper model (~77 MB) — no API keys needed, runs entirely on device. Whisper auto-detects the spoken language.
Optionally pin the language for better accuracy on short clips:
/whatsapp:configure audio <lang>
Supported: en, es, pt, fr, de, it, ja, zh, ko, ar, ru, hi.
Examples: /whatsapp:configure audio en (English), /whatsapp:configure audio es (Spanish), /whatsapp:configure audio pt (Portuguese).
See the README at https://github.com/crisandrews/claude-whatsapp for macOS launchd and Linux systemd examples.
Prerequisites: Bun installed (bun --version to verify). Claude Code v2.1.80+. claude.ai login (API key auth not supported for channels).
Step 1 — Create a Telegram bot:
/newbotbotStep 2 — Install the plugin:
/plugin install telegram@claude-plugins-official
If "plugin not found", run /plugin marketplace update claude-plugins-official (or /plugin marketplace add anthropics/claude-plugins-official if never added). Then retry.
After installing: /reload-plugins to activate the configure command.
Step 3 — Configure the token:
/telegram:configure <token>
Saves to ~/.claude/channels/telegram/.env. (Alternatively, set TELEGRAM_BOT_TOKEN in shell env before launching Claude Code.)
Step 4 — Restart with channels enabled:
/exit
claude --channels plugin:telegram@claude-plugins-official
Step 5 — Pair account:
/telegram:access pair <code>
/telegram:access policy allowlist
Prerequisites: Same as Telegram (Bun, v2.1.80+, claude.ai login).
Step 1 — Create a Discord bot:
Step 2 — Invite the bot to your server:
botStep 3 — Install the plugin:
/plugin install discord@claude-plugins-official
Then /reload-plugins.
Step 4 — Configure the token:
/discord:configure <token>
Saves to ~/.claude/channels/discord/.env.
Step 5 — Restart with channels:
/exit
claude --channels plugin:discord@claude-plugins-official
Step 6 — Pair account:
/discord:access pair <code>
/discord:access policy allowlist
Prerequisites: macOS, Bun, Claude Code v2.1.80+, claude.ai login. No bot token or external service needed — reads Messages database directly, sends via AppleScript.
Step 1 — Grant Full Disk Access:
The Messages database at ~/Library/Messages/chat.db is protected. On first launch, macOS prompts for access — click Allow. The prompt names the app that launched Bun (Terminal, iTerm, etc.).
If no prompt or you clicked "Don't Allow", grant manually: System Settings → Privacy & Security → Full Disk Access → add your terminal. Without this, server exits with authorization denied.
Step 2 — Install the plugin:
/plugin install imessage@claude-plugins-official
If "not found": /plugin marketplace update claude-plugins-official first.
Step 3 — Restart with channels:
/exit
claude --channels plugin:imessage@claude-plugins-official
Step 4 — Text yourself:
Step 5 — Allow other senders (optional):
/imessage:access allow +15551234567
Handles are phone numbers (+country format) or Apple ID emails (user@example.com).
Slack is NOT in the official channels list. If the user wants Slack, direct them to:
For quick testing without setting up any real platform:
/plugin install fakechat@claude-plugins-official
/exit
claude --channels plugin:fakechat@claude-plugins-official
Opens a chat UI at http://localhost:8787 — type messages, Claude replies back. Good for verifying the channel flow before setting up WhatsApp/Telegram/etc.
*bold*, not **bold**).memory/YYYY-MM-DD.md just like in terminal.crons skill. It uses bin/cron-from.sh for deterministic time math and CronCreate(durable: true) so the cron survives session restarts. Never promise a reminder using ScheduleWakeup or verbal-only — see skills/crons/SKILL.md ⛔ FORBIDDEN block.After installing and relaunching:
/mcp — should show both clawcode and the messaging plugin as connected./status in the chat — should show the agent's identity card.Messaging plugins log conversations to disk. These logs are valuable context that the agent should be able to search. ClawCode can index them automatically via memory.extraPaths in agent-config.json.
IMPORTANT: Only index .md log files, NOT .jsonl. Most plugins (including claude-whatsapp) write both formats — indexing both would duplicate content.
| Plugin | Log path | Format |
|---|---|---|
| claude-whatsapp (local scope) | ./.whatsapp/logs/conversations/ | .md + .jsonl |
| claude-whatsapp (user scope) | ~/.claude/channels/whatsapp/logs/conversations/ | .md + .jsonl |
After the messaging plugin is installed, add its log directory to agent-config.json:
agent_config(
action='set',
key='memory.extraPaths',
value='["./.whatsapp/logs/conversations"]'
)
Then /mcp to reload. Next memory_search will find content from those conversations. Only .md files are indexed.
Log entries appear in search results with extra: prefix, e.g. extra:conversations/2026-04-09.md.
--dangerously-load-development-channels flag./mcp after relaunch.