Plug dsh into QQ: the dsh-im plugin and a NapCat field test

Route A installs a plugin and scans a QR; Route B puts NapCat, the QQ protocol side, in front of dsh — 9 frame-checked screenshots, each deep-linked to its source video.

Last updated: 2026-10-03

The IM-robot settings panel in DeepSeek Harness listing the chat platforms that pair by QR code, with an already-connected WeChat bot card reporting normal status
One settings panel, nine messengers — every channel is one scan away.

Can DeepSeek Harness live inside QQ? Yes — and there are two routes. Route A is dsh-im, an open-source plugin (verified on GitHub as xmanrui/dsh-im, ★1.6k, MIT): install it with one command, scan a QR code in settings, and an IM bot is wired into dsh. QQ is one of nine channels alongside WeChat, Feishu, DingTalk, WeCom, Telegram, Discord, WhatsApp and Slack. Route B adds NapCat — a community protocol-side implementation of the QQ client — which is what the live recording uses for group-level bot features like joining groups and member analytics.

The nine screenshots below all come from two real recordings and were frame-checked one by one; every figure deep-links back to the exact second of its source video. For the WeChat/Feishu side of the same plugin, see the WeChat integration guide. WeChat integration: the same plugin, WeChat axis

TL;DR

  • ▸Route A: install dsh-im with one command → Settings → Plugins → IM robot → scan the QR. QQ is one of nine channels (WeChat, Feishu, DingTalk, WeCom, QQ, Telegram, Discord, WhatsApp, Slack).
  • ▸Route B: NapCat (★10.8k QQ protocol side) + the dsh web UI's 'QQ chat' workspace — messages land as sessions, with cache hits measured at 80%.
  • ▸Live demo: the bot joins a group as a member, swaps photos and 10-second voice messages in private chat, works across sessions, and maps 18 group members into 16 relationships.
  • ▸Terminology: dsh-im is the plugin, NapCat is the protocol side (not a plugin), and MoonBot is the video author's private panel with no public repo — don't go searching for it.

From zero to a QQ bot on dsh, in 9 steps

Route A: the dsh-im plugin (official channels)

  1. 1

    Install the dsh-im plugin

    Two equivalent commands come straight from the README: the one-line installer npx -y github:xmanrui/dsh-im install, or the plugin-market route dsh plugin --profile web add @xmanrui/dsh-im. If you previously installed dsh-feishu, dsh-weixin or dsh-dingtalk directly, the installer replaces them with dsh-im and keeps your existing channel configs and keys.

    $npx -y github:xmanrui/dsh-im install
    $dsh plugin --profile web add @xmanrui/dsh-im
    The dsh-im README install section open in a browser, showing the one-line npx installer and the dsh plugin add command side by side
    Two install paths from the README; either line gets the plugin onto your machine.Watch at 0:52
  2. 2

    Scan to pair: Settings → Plugins → IM robot

    Restart dsh web and a new IM-robot panel appears in settings: each of the nine channels pairs by QR code. The recording shows an already-connected WeChat bot card reading 'running normally, message channel iLink long-polling, 1/1 online'; QQ pairs the same way. Once connected, incoming messages get a read receipt and a 'typing' indicator before the harness's final answer comes back.

    The Settings → Plugins → IM-robot pairing panel in the dsh web UI, its connected card lit up with a 'running normally, iLink long-polling, 1/1 online' status line
    After the scan the card turns green: running normally, 1/1 online.Watch at 0:14

Route B: NapCat, the QQ protocol side

  1. 3

    Meet NapCat: the QQ protocol side

    Route B starts one layer lower. NapCat (NapNeko/NapCatQQ, ★10.8k) implements the QQ client protocol, and its WebUI — reachable at 127.0.0.1:6099 with a token — centralizes the bot account and versions: the recording runs NapCat 4.9.49 on QQ 9.9.26, with two network configs hosting one HTTP server and one WebSocket server. dsh never touches this layer directly; NapCat translates QQ into an ordinary message source.

    NapCat's official WebUI overview page reporting the bot account, NapCat 4.9.49 and the QQ client version, with the sidebar showing two network configs and one WebSocket server online
    NapCat runs beside your QQ client; its network side is wired up in this WebUI.Watch at 3:16
  2. 4

    Watch QQ messages land inside dsh

    With NapCat wired up, the dsh web UI grows a 'QQ chat' workspace: private and group conversations appear as sessions, a role card (SPEECH RULES) is injected automatically, wake events like '[Wake] private:… sleep ended' scroll through the log, and the status bar measures 1 round, first token in 0.6 s and cache hits at 80%. From dsh's point of view, the bot is just another chat window.

    The 'QQ chat' workspace in the dsh web UI where QQ messages arrive as a session list, the SPEECH RULES role card injected and the status bar stopped at 80% cache hits
    No glue code in sight — QQ messages simply become dsh sessions.Watch at 3:24

Field test: switches, persona, member insights

  1. 5

    See what it can do: groups, pictures, voice

    In the recording, the bot sits in a 5-person group's member list under the name 'DeepSeek Harness'; private chat exchanges a photo and a 10-second voice message both ways; the author notes that 'in theory every operation can cross sessions', and web search works too — 'yes, though not always accurate'. The Easter egg: the bot posts a first-person ATRI diary to its own QQ Zone.

    Two QQ windows side by side: the left private chat exchanging a photo and a 10-second voice message, the right group member list including a bot named 'DeepSeek Harness'
    It joins groups as a member and handles pictures and voice in private chat.Watch at 2:00
  2. 6

    Set the bot's behavior switches

    The MoonBot panel (the video author's own build — see the FAQ) shows the knobs that matter for a group bot: enable the full agent suite, multi-turn injection, private-chat-only persistence (up to 24 back-and-forths, idle close at 1,800,000 ms), friend-request trust with auto-accept plus a friend guard, and a 100,000-word document quota.

    MoonBot's feature-config panel lined with toggles for the agent suite, multi-turn injection, private-chat persistence and a 100,000-word Word document quota
    Turn limits, friend trust, quotas — the switches that keep a group bot polite live here.Watch at 3:36
  3. 7

    Give the bot a standing persona

    One screen defines who the bot is: a persistent automation preamble plus a free-form prompt, saved once and inherited by every chat. How formal, how chatty, how terse — it's all decided here, because QQ group culture runs on personality.

    A persistent automation preamble and a custom prompt being saved together as the QQ bot's standing character in MoonBot's persona settings
    Set the persona once; every chat inherits it.Watch at 4:00
  4. 8

    Read the room: the group-member graph

    After running in a group for a while, the panel draws a relationship graph — 18 people and 16 connections in the recording, line thickness encoding interaction strength, with legend entries for owner, group owner, admin and private-chat roles. Clicking any person opens their card.

    A group-member relationship graph plotting 18 people and 16 connections in one network, with an owner/admin/private-chat legend and line thickness encoding interaction strength
    Weeks of group chat, condensed into one social map.Watch at 4:45
  5. 9

    Open a member profile

    Each member's dialog puts a chat-style summary up top with a timeline of logged interactions and their connection web underneath — the data source for the graph in the previous step. dsh sees this data all along; it's just arranged for humans here.

    A member-profile dialog summarizing one group member's chat style above a timeline of logged interactions and their connection web
    Click a dot and the bot tells you who this person is and how they talk.Watch at 4:50

FAQ: wiring dsh to QQ

The six questions people actually ask before connecting the two.

Can DeepSeek Harness run a QQ bot?

Yes — two routes. Route A installs the dsh-im plugin (one npx command) and pairs QQ from Settings → Plugins → IM robot by QR code; QQ is one of nine supported channels. Route B puts NapCat, an open-source protocol-side implementation, in front of dsh — that's the path behind the group-level features in this guide's recording, like joining groups and member analytics. Use either one alone, or both together.

What's the difference between dsh-im and NapCat — which should I pick?

dsh-im is a dsh plugin that connects through each platform's official channels: scan a QR and you're done, across nine messengers including QQ, WeChat, Telegram and Discord. NapCat (NapCatQQ) is not a dsh plugin at all — it implements the QQ client protocol, which is how the recording produces more QQ-native group behavior. Pick dsh-im for the easy official path; add NapCat when you need group-level bot features.

Is NapCat an official Tencent product? Is it safe?

No. NapCat (GitHub: NapNeko/NapCatQQ, ★10.8k, TypeScript) is a community open-source project implementing a modern protocol side on top of NTQQ. It is affiliated with neither Tencent nor DeepSeek Harness, so evaluate the risk yourself and follow QQ's terms of service before tying a real account to it. This page only quotes its publicly posted demo footage.

What can the QQ bot actually do once connected?

Per the recording: it joins a group as an ordinary member, exchanges photos and 10-second voice messages in private chat, 'in theory every operation can cross sessions', it runs web searches when asked ('yes, though not always accurate', per the author), and it even posts a first-person diary to its QQ Zone. The member graph covers 18 people and 16 relationships, with a profile card one click away. Your dsh models and plugins all keep working — the bot is just another door for messages into the harness.

Is MoonBot a plugin? Where do I download it?

It isn't. MoonBot is the control panel the video author (等一只萝卜子) built for their own deployment — it has no public repository and cannot be installed. The public, reproducible path is dsh-im for official-channel access plus NapCat for the protocol side; treat the MoonBot screens as a demo of what that combination can do.

Besides QQ, which chat apps can dsh connect to?

dsh-im ships nine channels at once: WeChat, Feishu, DingTalk, WeCom, QQ, Telegram, Discord, WhatsApp and Slack. Outside mainland China, Telegram and Discord are the lowest-friction pair, and the same QR-pairing panel handles them. For the WeChat/Feishu side, our WeChat integration guide walks it step by step.

Related guides

Keep going: more dsh guides and collections on this site.

Sources & credits

All screenshots come from two third-party recordings and were frame-checked one by one; every figure deep-links back to its source video at the exact second. The vertical dsh-im video is a cropped re-export — its yellow title/subtitle banners appear in no frame — and the NapCat recording's aquarium wallpaper is removed by tight window crops. The MoonBot panels are the video author's own build with no public repository. Repo names and stars re-verified via the GitHub API on 2026-10-03: xmanrui/dsh-im (★1,589, MIT) and NapNeko/NapCatQQ (★10,830).

DSH Plugins is an independent community directory of DeepSeek Harness plugins. Not affiliated with or endorsed by DeepSeek. Third-party plugins are not security-audited — review the source before installing.

New DeepSeek Harness plugins, weekly. No spam.