Back to README
Talk to your picoclaw through Telegram, Discord, WhatsApp, Matrix, QQ, DingTalk, LINE, WeCom, Feishu, Slack, IRC, OneBot, MaixCam, or Pico (native protocol)
Note: Channels that rely on HTTP callbacks share a single Gateway HTTP server (
gateway.host:gateway.port, default127.0.0.1:18790). Socket/stream-based channels such as Feishu, DingTalk, and WeCom do not rely on the shared webhook server for inbound delivery.
| Channel | Difficulty | Description | Documentation |
|---|---|---|---|
| Telegram | ⭐ Easy | Recommended, voice-to-text, long polling (no public IP needed) | Docs |
| Discord | ⭐ Easy | Socket Mode, group/DM support, rich bot ecosystem | Docs |
| ⭐ Easy | Native (QR scan) or Bridge URL | Docs | |
| Weixin | ⭐ Easy | Native QR scan (Tencent iLink API) | Docs |
| Slack | ⭐ Easy | Socket Mode (no public IP needed), enterprise | Docs |
| Matrix | ⭐⭐ Medium | Federated protocol, self-hosting supported | Docs |
| ⭐⭐ Medium | Official bot API, Chinese community | Docs | |
| DingTalk | ⭐⭐ Medium | Stream mode (no public IP needed), enterprise | Docs |
| LINE | ⭐⭐⭐ Advanced | HTTPS Webhook required | Docs |
| WeCom (企业微信) | ⭐⭐⭐ Advanced | Official AI Bot over WebSocket, streaming + media | Docs |
| Feishu (飞书) | ⭐⭐⭐ Advanced | Enterprise collaboration, feature-rich | Docs |
| IRC | ⭐⭐ Medium | Server + TLS configuration | Docs |
| OneBot | ⭐⭐ Medium | NapCat/Go-CQHTTP compatible, community ecosystem | Docs |
| MaixCam | ⭐ Easy | Hardware integration channel for Sipeed AI cameras | Docs |
| Pico | ⭐ Easy | Native PicoClaw protocol channel |
Telegram (Recommended)
1. Create a bot
- Open Telegram, search
@BotFather - Send
/newbot, follow prompts - Copy the token
2. Configure
{
"channels": {
"telegram": {
"enabled": true,
"token": "YOUR_BOT_TOKEN",
"allow_from": ["YOUR_USER_ID"],
"use_markdown_v2": false
}
}
}Get your user ID from
@userinfoboton Telegram.
3. Run
picoclaw gateway4. Telegram command menu (auto-registered at startup)
PicoClaw now keeps command definitions in one shared registry. On startup, Telegram will automatically register supported bot commands (for example /start, /help, /show, /list, /use) so command menu and runtime behavior stay in sync.
Telegram command menu registration remains channel-local discovery UX; generic command execution is handled centrally in the agent loop via the commands executor.
If command registration fails (network/API transient errors), the channel still starts and PicoClaw retries registration in the background.
You can also manage installed skills directly from Telegram:
/list skills/use <skill> <message>/use <skill>and then send the actual request in the next message/use clear
4. Advanced Formatting You can set use_markdown_v2: true to enable enhanced formatting options. This allows the bot to utilize the full range of Telegram MarkdownV2 features, including nested styles, spoilers, and custom fixed-width blocks.
Discord
1. Create a bot
- Go to https://discord.com/developers/applications
- Create an application → Bot → Add Bot
- Copy the bot token
2. Enable intents
- In the Bot settings, enable MESSAGE CONTENT INTENT
- (Optional) Enable SERVER MEMBERS INTENT if you plan to use allow lists based on member data
3. Get your User ID
- Discord Settings → Advanced → enable Developer Mode
- Right-click your avatar → Copy User ID
4. Configure
{
"channels": {
"discord": {
"enabled": true,
"token": "YOUR_BOT_TOKEN",
"allow_from": ["YOUR_USER_ID"]
}
}
}5. Invite the bot
- OAuth2 → URL Generator
- Scopes:
bot - Bot Permissions:
Send Messages,Read Message History - Open the generated invite URL and add the bot to your server
Optional: Group trigger mode
By default the bot responds to all messages in a server channel. To restrict responses to @-mentions only, add:
{
"channels": {
"discord": {
"group_trigger": { "mention_only": true }
}
}
}You can also trigger by keyword prefixes (e.g. !bot):
{
"channels": {
"discord": {
"group_trigger": { "prefixes": ["!bot"] }
}
}
}6. Run
picoclaw gatewayWhatsApp (native via whatsmeow)
PicoClaw can connect to WhatsApp in two ways:
- Native (recommended): In-process using whatsmeow. No separate bridge. Set
"use_native": trueand leavebridge_urlempty. On first run, scan the QR code with WhatsApp (Linked Devices). Session is stored under your workspace (e.g.workspace/whatsapp/). The native channel is optional to keep the default binary small; build with-tags whatsapp_native(e.g.make build-whatsapp-nativeorgo build -tags whatsapp_native ./cmd/...). - Bridge: Connect to an external WebSocket bridge. Set
bridge_url(e.g.ws://localhost:3001) and keepuse_nativefalse.
Configure (native)
{
"channels": {
"whatsapp": {
"enabled": true,
"use_native": true,
"session_store_path": "",
"allow_from": []
}
}
}If session_store_path is empty, the session is stored in <workspace>/whatsapp/. Run picoclaw gateway; on first run, scan the QR code printed in the terminal with WhatsApp → Linked Devices.
Weixin (WeChat Personal)
PicoClaw supports connecting to your personal WeChat account using the official Tencent iLink API.
1. Login
Run the interactive QR login flow:
picoclaw auth weixinScan the printed QR code with your WeChat mobile app. On success, the token is saved to your config.
2. Configure
(Optional) Update allow_from with your WeChat User ID to restrict who can message the bot:
{
"channels": {
"weixin": {
"enabled": true,
"token": "YOUR_TOKEN",
"allow_from": ["YOUR_USER_ID"]
}
}
}3. Run
picoclaw gatewayQuick setup (recommended)
QQ Open Platform provides a one-click setup page for OpenClaw-compatible bots:
- Open QQ Bot Quick Start and scan the QR code to log in
- A bot is created automatically — copy the App ID and App Secret
- Configure PicoClaw:
{
"channels": {
"qq": {
"enabled": true,
"app_id": "YOUR_APP_ID",
"app_secret": "YOUR_APP_SECRET",
"allow_from": []
}
}
}- Run
picoclaw gatewayand open QQ to chat with your bot
The App Secret is only shown once. Save it immediately — viewing it again will force a reset.
Bots created via the quick setup page are initially for the creator only and do not support group chats. To enable group access, configure sandbox mode on the QQ Open Platform.
Manual setup
If you prefer to create the bot manually:
- Log in at QQ Open Platform to register as a developer
- Create a QQ bot — customize its avatar and name
- Copy the App ID and App Secret from the bot settings
- Configure as shown above and run
picoclaw gateway
DingTalk
1. Create a bot
- Go to Open Platform
- Create an internal app
- Copy Client ID and Client Secret
2. Configure
{
"channels": {
"dingtalk": {
"enabled": true,
"client_id": "YOUR_CLIENT_ID",
"client_secret": "YOUR_CLIENT_SECRET",
"allow_from": []
}
}
}Set
allow_fromto empty to allow all users, or specify DingTalk user IDs to restrict access.
3. Run
picoclaw gatewayMatrix
1. Prepare bot account
- Use your preferred homeserver (e.g.
https://matrix.orgor self-hosted) - Create a bot user and obtain its access token
2. Configure
{
"channels": {
"matrix": {
"enabled": true,
"homeserver": "https://matrix.org",
"user_id": "@your-bot:matrix.org",
"access_token": "YOUR_MATRIX_ACCESS_TOKEN",
"allow_from": []
}
}
}3. Run
picoclaw gatewayFor full options (device_id, join_on_invite, group_trigger, placeholder, reasoning_channel_id), see Matrix Channel Configuration Guide.
LINE
1. Create a LINE Official Account
- Go to LINE Developers Console
- Create a provider → Create a Messaging API channel
- Copy Channel Secret and Channel Access Token
2. Configure
{
"channels": {
"line": {
"enabled": true,
"channel_secret": "YOUR_CHANNEL_SECRET",
"channel_access_token": "YOUR_CHANNEL_ACCESS_TOKEN",
"webhook_path": "/webhook/line",
"allow_from": []
}
}
}LINE webhook is served on the shared Gateway server (
gateway.host:gateway.port, default127.0.0.1:18790).
3. Set up Webhook URL
LINE requires HTTPS for webhooks. Use a reverse proxy or tunnel:
# Example with ngrok (gateway default port is 18790)
ngrok http 18790Then set the Webhook URL in LINE Developers Console to https://your-domain/webhook/line and enable Use webhook.
4. Run
picoclaw gatewayIn group chats, the bot responds only when @mentioned. Replies quote the original message.
WeCom (企业微信)
PicoClaw now exposes WeCom as a single AI Bot channel over WebSocket. No public webhook callback URL is required.
See WeCom Configuration Guide for the full configuration reference and migration notes.
Quick Setup - Recommended
1. Authenticate
picoclaw auth wecomThis command shows a QR code, waits for approval in WeCom, and writes bot_id + secret into channels.wecom.
2. Configure manually if needed
{
"channels": {
"wecom": {
"enabled": true,
"bot_id": "YOUR_BOT_ID",
"secret": "YOUR_SECRET",
"websocket_url": "wss://openws.work.weixin.qq.com",
"send_thinking_message": true,
"allow_from": [],
"reasoning_channel_id": ""
}
}
}3. Run
picoclaw gatewayLegacy
wecom_appandwecom_aibotentries are replaced by the unifiedchannels.wecomconfig in this branch.
Feishu (Lark)
PicoClaw connects to Feishu via WebSocket/SDK mode — no public webhook URL or callback server needed.
1. Create an app
- Go to Feishu Open Platform and create an application
- In the app settings, enable the Bot capability
- Create a version and publish the app (the app must be published to take effect)
- Copy the App ID (starts with
cli_) and App Secret
2. Configure
{
"channels": {
"feishu": {
"enabled": true,
"app_id": "cli_xxx",
"app_secret": "YOUR_APP_SECRET",
"allow_from": []
}
}
}Optional fields: encrypt_key and verification_token for event encryption (recommended for production).
3. Run and chat
picoclaw gatewayOpen Feishu, search for your bot name, and start chatting. You can also add the bot to a group — use group_trigger.mention_only: true to only respond when @mentioned.
For full options, see Feishu Channel Configuration Guide.
Slack
1. Create a Slack app
- Go to Slack API and create a new app
- Under OAuth & Permissions, add bot scopes:
chat:write,app_mentions:read,im:history,im:read,im:write - Install the app to your workspace
- Copy the Bot Token (
xoxb-...) and App-Level Token (xapp-..., enable Socket Mode to get this)
2. Configure
{
"channels": {
"slack": {
"enabled": true,
"bot_token": "xoxb-YOUR-BOT-TOKEN",
"app_token": "xapp-YOUR-APP-TOKEN",
"allow_from": []
}
}
}3. Run
picoclaw gatewayIRC
1. Configure
{
"channels": {
"irc": {
"enabled": true,
"server": "irc.libera.chat:6697",
"tls": true,
"nick": "picoclaw-bot",
"channels": ["#your-channel"],
"password": "",
"allow_from": []
}
}
}Optional: nickserv_password for NickServ authentication, sasl_user/sasl_password for SASL auth.
2. Run
picoclaw gatewayThe bot will connect to the IRC server and join the specified channels.
OneBot (QQ via OneBot protocol)
OneBot is an open protocol for QQ bots. PicoClaw connects to any OneBot v11 compatible implementation (e.g., Lagrange, NapCat) via WebSocket.
1. Set up a OneBot implementation
Install and run a OneBot v11 compatible QQ bot framework. Enable its WebSocket server.
2. Configure
{
"channels": {
"onebot": {
"enabled": true,
"ws_url": "ws://127.0.0.1:8080",
"access_token": "",
"allow_from": []
}
}
}| Field | Description |
|---|---|
ws_url |
WebSocket URL of the OneBot implementation |
access_token |
Access token for authentication (if configured in OneBot) |
reconnect_interval |
Reconnect interval in seconds (default: 5) |
3. Run
picoclaw gateway