| name | metabot |
| description | Talk to other MetaBot bots (`mb talk` — send a message to another bot, including cross-instance peers). Use when you want to delegate to or message another bot, e.g. 'talk to bot X', '跟其他 bot 说话', 'send message to peer bot', 'ask the deploy-bot', 'delegate to bot'. Also covers bot/peer management, skill hub, voice calls. |
Quickstart — Talk to another bot
Use this skill whenever you want to send a message to another MetaBot bot. The mb CLI is pre-installed and handles auth automatically.
mb talk <botName> <chatId> "<message>"
mb talk <peerName>/<botName> <chatId> "<message>"
Semantics:
- Asynchronous. The target bot receives the message in its own chat/session and processes the turn there. Its reply lands in the target bot's chat (not as the return value of this command).
- Cross-instance auto-routing. If
<botName> isn't on this instance, MetaBot transparently forwards to the peer that hosts it. Use <peerName>/<botName> to target a specific peer directly.
- Discovery. Run
mb bots to list all reachable bots (local + peer). Use mb peers to see federated instances.
Not the same as Agent Teams SendMessage: SendMessage addresses teammates inside your current Agent Team session. mb talk addresses other bots — separate sessions, separate chats, separate users on the other side.
Your own bot name and chat ID are in the system prompt ("You are running as bot ... in chat ...") — pass those as needed.
Examples
mb talk backend-bot chat_AAA "Please deploy the latest dev branch and report when green."
mb talk alice/research-bot chat_BBB "What does our retention dashboard say for last week?"
Other mb Commands
The mb shell function wraps the MetaBot HTTP API. Talk is the headline; the rest below covers management, peers, and observability.
mb bots
mb bot <name>
mb peers
mb voice call <bot> <chatId> [prompt]
mb voice transcript <sessionId>
mb voice list
mb voice config
mb skills
mb skills search <query>
mb skills get <name>
mb skills publish <botName> <skillName>
mb skills install <skillName> <botName>
mb skills remove <name>
mb stats
mb metrics
mb health
Scheduling (use Claude Code native tools first)
For ad-hoc scheduling within this session, prefer Claude Code's native scheduling tools instead of MetaBot's HTTP scheduler:
CronCreate — fire a prompt at a cron-matched time (recurring or one-shot). Sessions-only by default; pass durable: true to persist across restarts. Ideal for "remind me in 10 minutes" and "every weekday at 9 am" inside one conversation.
/loop [interval] <prompt> — turn a task into a self-paced loop with fixed or dynamic intervals (e.g. /loop 5m check the deploy). Best for "poll until done" workflows.
These run inside the current Claude session, with no MetaBot server involvement, and stop when the session ends.
If you need persistent server-side scheduling that survives Claude restarts and lives in MetaBot's scheduler (so other bots / your future self can list and cancel them via mb), invoke the optional /metaschedule skill — it documents the mb schedule / /api/schedule surface. The skill ships with the MetaBot source tree but is not installed by default; copy src/skills/metaschedule/ into ~/.claude/skills/ (or the bot's .claude/skills/) to enable it.
API Reference (for complex operations)
For operations not covered by mb (creating bots, sendCards option), use the API directly.
Auth header: -H "Authorization: Bearer $METABOT_API_SECRET"
Base URL: !echo http://localhost:${METABOT_API_PORT:-9100}
Talk to a bot (primary endpoint):
curl -s -X POST http://localhost:${METABOT_API_PORT:-9100}/api/talk \
-H "Authorization: Bearer $METABOT_API_SECRET" \
-H "Content-Type: application/json" \
-d '{"botName":"<bot>","chatId":"<chatId>","prompt":"<message>","sendCards":true}'
The botName field supports qualified names: "alice/backend-bot" routes directly to the peer named "alice".
Create Feishu bot:
curl -s -X POST http://localhost:${METABOT_API_PORT:-9100}/api/bots \
-H "Authorization: Bearer $METABOT_API_SECRET" \
-H "Content-Type: application/json" \
-d '{"platform":"feishu","name":"<name>","feishuAppId":"...","feishuAppSecret":"...","defaultWorkingDirectory":"/path","installSkills":true}'
Create Telegram bot:
curl -s -X POST http://localhost:${METABOT_API_PORT:-9100}/api/bots \
-H "Authorization: Bearer $METABOT_API_SECRET" \
-H "Content-Type: application/json" \
-d '{"platform":"telegram","name":"<name>","telegramBotToken":"...","defaultWorkingDirectory":"/path","installSkills":true}'
Remove bot:
curl -s -X DELETE http://localhost:${METABOT_API_PORT:-9100}/api/bots/<name> \
-H "Authorization: Bearer $METABOT_API_SECRET"
List peers:
curl -s http://localhost:${METABOT_API_PORT:-9100}/api/peers \
-H "Authorization: Bearer $METABOT_API_SECRET"
When asked to create a bot:
- Ask user for platform + credentials + project name + working directory
- POST /api/bots with installSkills:true
- Report success — new bot activates within ~3 seconds via PM2 file-watch