### ๐๏ธ Voice Messages (STT)
With STT configured, the plugin automatically transcribes voice messages to text before passing them to AI. The whole process is transparent to the user โ sending voice feels as natural as sending text.
> **You**: *(send a voice message)* "What's the weather like tomorrow in Shenzhen?"
>
> **QQBot**: Tomorrow (March 7, Saturday) Shenzhen weather forecast ๐ค๏ธ ...
### ๐ File Understanding
Send any file to the bot โ novels, reports, spreadsheets โ AI automatically recognizes the content and gives an intelligent reply.
> **You**: *(send a TXT file of "War and Peace")*
>
> **QQBot**: Got it! You uploaded the Chinese version of "War and Peace" by Leo Tolstoy. This appears to be the opening of Chapter 1...
### ๐ผ๏ธ Image Understanding
If your main model supports vision (e.g. Tencent Hunyuan `hunyuan-vision`), AI can understand images too. This is a general multimodal capability, not plugin-specific.
> **You**: *(send an image)*
>
> **QQBot**: Haha, so cute! Is that a QQ penguin in a lobster costume? ๐ฆ๐ง ...
### ๐จ Image Sending
> **You**: Draw me a cat
>
> **QQBot**: Here you go! ๐ฑ
AI can send images directly. Supports local paths and URLs. Formats: jpg/png/gif/webp/bmp.
### ๐ Voice Sending
> **You**: Tell me a joke in voice
>
> **QQBot**: *(sends a voice message)*
AI can send voice messages directly. Formats: mp3/wav/silk/ogg. No ffmpeg required.
### โฐ Scheduled Reminder (Proactive Message)
> **You**: Remind me to eat in 5 minutes
>
> **QQBot**: confirms the reminder first, then proactively sends a voice + text reminder when time is up
This capability depends on OpenClaw cron scheduling and proactive messaging. If no reminder arrives, a common reason is QQ-side interception of bot proactive messages.
### ๐ File Sending
> **You**: Extract chapter 1 of War and Peace and send it as a file
>
> **QQBot**: *(sends a .txt file)*
AI can send files directly, in any format.
Since v1.6.6, large file transfer is supported: images up to 20MB, videos up to 30MB, attachments up to 100MB, with a daily transfer limit of 2GB.
### ๐ฌ Video Sending
> **You**: Send me a demo video
>
> **QQBot**: *(sends a video)*
AI can send videos directly. Supports local files and URLs.
> **Under the hood:** Upload dedup caching, ordered queue delivery, and multi-layer audio format fallback.
### ๐ ๏ธ Slash Commands
The plugin provides built-in slash commands that are intercepted before reaching the AI queue, giving instant responses for diagnostics and management.
#### `/bot-ping` โ Latency Test
> **You**: `/bot-ping`
>
> **QQBot**: โ
pong๏ผโฑ Latency: 602ms (network: 602ms, plugin: 0ms)
Measures end-to-end latency from QQ server push to plugin response, broken down into network transport and plugin processing time.
#### `/bot-version` โ Version Info
> **You**: `/bot-version`
>
> **QQBot**: ๐ฆ Framework: OpenClaw 2026.3.13 (61d171a) / ๐ค Plugin: v1.6.3 / ๐ GitHub repo
Shows framework version, plugin version, and a direct link to the official repository.
#### `/bot-help` โ Command List
> **You**: `/bot-help`
>
> **QQBot**: Lists all available slash commands with clickable shortcuts.
#### `/bot-upgrade` โ One-Click Hot Upgrade
> **You**: `/bot-upgrade`
>
> **QQBot**: ๐ Current: v1.6.3 / โ
New version v1.6.4 available / Click button below to confirm
Credentials are automatically backed up before upgrade. Version existence is verified against npm before proceeding. Auto-recovery on failure.
> โ ๏ธ Hot upgrade is currently not supported on Windows. Sending `/bot-upgrade` on Windows will return a manual upgrade guide instead.
> โ ๏ธ v1.6.6 and below do not support hot upgrade via `/bot-upgrade`. Please upgrade using the following command:
> ```bash
> curl -fsSL https://raw.githubusercontent.com/tencent-connect/openclaw-qqbot/main/scripts/upgrade-via-npm.sh | bash
> ```
#### `/bot-logs` โ Log Export
> **You**: `/bot-logs`
>
> **QQBot**: ๐ Logs packaged (~2000 lines), sending file... *(sends a .txt file)*
Exports the last ~2000 lines of gateway logs as a file for quick troubleshooting.
#### Usage Help
All commands support a `?` suffix to show usage:
> **You**: `/bot-upgrade ?`
>
> **QQBot**: ๐ /bot-upgrade usage: โฆ
#### `/bot-clear-storage` โ Clear files generated through QQBot conversations and downloaded resources (stored on the host running OpenClaw)
`/bot-clear-storage` lists files generated by the conversation and files in the downloaded resources directory. Use `/bot-clear-storage --force` to confirm deletion.
---
## ๐ Getting Started
### Step 1 โ Create a QQ Bot on the QQ Open Platform
1. Go to the [QQ Open Platform](https://q.qq.com/) and **scan the QR code with your phone QQ** to register / log in. If you haven't registered before, scanning will automatically complete the registration and bind your QQ account.
> โ ๏ธ The bot will automatically appear in your QQ message list and send a first message. However, it will reply "The bot has gone to Mars" until you complete the configuration steps below.
4. Find **AppID** and **AppSecret** on the bot's page, click **Copy** for each, and save them somewhere safe (e.g., a notepad). **AppSecret is not stored in plaintext โ if you leave the page without saving it, you'll have to regenerate a new one.**
> For a step-by-step walkthrough with screenshots, see the [official guide](https://cloud.tencent.com/developer/article/2626045).
### Step 2 โ Install / Upgrade the Plugin
**Option A: Remote One-Liner (Easiest, no clone required)**
```bash
curl -fsSL https://raw.githubusercontent.com/tencent-connect/openclaw-qqbot/main/scripts/upgrade-via-npm.sh \
| bash -s -- --appid YOUR_APPID --secret YOUR_SECRET
```
One command does it all: download script โ cleanup old plugins โ install โ configure channel โ restart service. Once done, open QQ and start chatting!
> `--appid` and `--secret` are **required for first-time install**. For subsequent upgrades, run the following command to upgrade to the latest version:
> ```bash
> curl -fsSL https://raw.githubusercontent.com/tencent-connect/openclaw-qqbot/main/scripts/upgrade-via-npm.sh | bash
> ```
**Option B: Local Script (if you've cloned the repo)**
```bash
# Via npm
bash ./scripts/upgrade-via-npm.sh --appid YOUR_APPID --secret YOUR_SECRET
# Or via source
bash ./scripts/upgrade-via-source.sh --appid YOUR_APPID --secret YOUR_SECRET
```
**Common flags:**
| Flag | Description |
|------|-------------|
| `--appid
## โญ Star History