Preface

DeepSeek Harness (DSH) Agent sessions primarily take place within the Web interface. When a user is away from the computer, tasks cannot be sent; after completing a round of conversation in the Web, there are no immediate notifications on the mobile side. A common approach is to set up a separate message bot or develop a custom forwarding layer, which also involves handling issues like public network exposure and permission whitelisting.

dsh-qq-bridge is a client plugin under the DSH Web profile, maintained by TomoyoNatsume. It converts QQ messages into DSH Agent session requests and sends replies back to QQ. The connection uses the local NapCat / OneBot or Tencent’s official QQ Bot, eliminating the need to open external ports specifically for the bridge.

What Is This

The purpose of dsh-qq-bridge is straightforward: Send message from QQ → bridge → DSH Agent → reply to QQ.

QQ sends message -> NapCat / OneBot -> dsh-qq-bridge -> DSH Agent -> QQ reply

The plugin is mounted as a DSH bundle, with the npm package name @yachangchang/dsh-qq-bridge (current version 1.0.5) and an MIT license. The community directory page is on SkillHub, and the source code is on GitHub (11 stars). SkillHub is an independent DSH plugin community site with no official affiliation to DeepSeek / High-Flyer.

The default recommendation is NapCat / OneBot: Log in with a single QQ account via NapCat and send messages to yourself from the mobile QQ app, eliminating the need for an additional bot account. It also supports dual-account mode (one account logged into NapCat to receive messages, another to send commands) and Tencent’s official QQ open platform bot path.

Core Features

The following capabilities are listed in the README; you can check them before installation based on your needs.

QQ Remote Control Agent

Whitelisted users send tasks directly in QQ; the plugin converts them into DSH live sessions, and the final reply is sent back to QQ.

Workspace, Model, and Session Control

Supports bridge-side commands like /dir, /new-session, /models, /model, /reasoningEff, /permission, etc. Also supports switching common settings using natural language.

Scheduled Reminders and Memos

Supports one-time scheduled tasks starting from v0.4.0; configuration via the Web UI is available starting from v1.0.0. For example, you can say in QQ, “Please remind me to submit the report at 12:00 noon on September 1, 2026.” At the scheduled time, it will trigger the Agent in the same session and proactively remind you. Data is persisted through DSH’s storageDomain.

Web Session Completion Alerts

After a non-QQ-initiated Web session ends, it can proactively send a reminder to the admin’s QQ. Sessions initiated via QQ only return the actual Agent reply. This feature is not supported in the official QQ Bot path.

Dual Access Paths

  • NapCat / OneBot: For personal use on the local machine, fully functional, community-driven solution; the secondary account risks being forcibly logged off.
  • Tencent’s official QQ Bot: Requires AppID, AppSecret, more stable integration, but fewer features; proactive reminders have quota limits, and the plugin disables notifications.agentReply.enabled by default in official mode.

Installation and Enabling

System Requirements

  1. DSH is installed, and dsh web starts normally.
  2. Linux / WSL2 environment; Node.js 20+. The automatic installation wizard currently only supports Linux / WSL2; native Windows users are advised to use WSL2 first.
  3. NapCat path: NapCat CLI must be installed locally, and a QQ account that can log in via QR code is required.
  4. Official QQ Bot path: You need to create a bot on the QQ Open Platform and provide AppID and AppSecret.

Installing the Plugin

It is recommended to install the stable version from npm:

pnpm dsh plugin --profile web add @yachangchang/dsh-qq-bridge

You can also install directly from the GitHub repository:

pnpm dsh plugin --profile web add github:TomoyoNatsume/dsh-qq-bridge

The plugin will be written to dsh.profile.bundles. Upon installation, it defaults to enabled: false, so it won’t connect to QQ or start the bridge.

NapCat Installation (When Choosing the NapCat Path)

Recommended for Linux / WSL2:

cd ~
curl -o napcat.sh https://raw.githubusercontent.com/NapNeko/NapCat-Installer/main/script/install.sh
bash napcat.sh --docker n --cli y

Confirm the command is available:

napcat help

Only NapCat CLI needs to be installed; there’s no need to manually start the QQ background process first. When saving configuration on the settings page, it will execute napcat start <QQ> based on the provided QQ account.

Enabling in the Web UI

  1. Start dsh web, open the “Settings” in the lower-left corner, and go to QQ bridge.
  2. Select the access method (NapCat / OneBot or Tencent’s official QQ Bot), fill in the admin, Agent model, etc., and click “Save Configuration”. The NapCat branch will detect the local NapCat and automatically write the OneBot forward WebSocket configuration and token (default 127.0.0.1:3001).
  3. After saving successfully, send ping in QQ to verify. If there is no response, run napcat log <your QQ account> or check ~/Napcat/log/napcat_<your QQ account>.log to confirm if you have scanned the QR code to log in.

For the official QQ Bot, the first-time setup will generate a one-time pair <code>. Send it to the bot from the admin’s QQ account to complete the adminOpenId pairing.

Typical Usage

After verifying connectivity, the README suggests trying the following messages in order:

ping
What is the current working directory?
List the directories and files in the current working directory
/dir /home/xxx/project
/models
/model deepseek-v4-pro
/reasoningEff high
/permission workspace-write
/new-session
Help me change the working directory to /home/xxx/project
Please remind me to submit the report at 12:00 noon on September 1, 2026

When a valid QQ command is received, the plugin first replies with agent.ackMessage (default “Received, processing…”), which can be disabled by setting it to an empty string.

Example of a common Agent configuration:

agent:
  provider: deepseek-official
  model: deepseek-v4-pro
  cwd: "~"
  preset: dsh-qq-bridge
  ackMessage: Received, processing...
  • cwd: Default working directory for the QQ Agent; /dir <directory> overrides the subsequent session directory for the current QQ session.
  • preset: Dedicated preset for QQ sessions; if not selected for regular Web sessions, the QQ reply style skill will not be applied.

Example of NapCat mode configuration:

platform: napcat
napcat:
  wsUrl: ws://127.0.0.1:3001
  token: "<NapCat OneBot access token>"

It is recommended to modify configuration in the QQ bridge page of the Web UI; for manual troubleshooting, you can view ~/.dsh/profiles/web/cordis.patch.yml and restart dsh web after making changes.

Use Cases and Considerations

Who Is It For

  • Developers who need to remotely assign tasks to and receive replies from DSH Agent via mobile QQ.
  • People who want to receive QQ reminders after Web sessions end without monitoring the browser progress long-term (NapCat path).
  • Users who already have a NapCat environment or are willing to register an official bot on the QQ Open Platform.

Before Using, Please Note

  1. Permission Boundaries: The plugin runs with the user permissions of the current dsh web process; the Agent’s access to workspaces, files, and networks is consistent with DSH. Before installation, review the source code and MIT license to ensure that the whitelist and admin configurations meet your security requirements.
  2. Access Method Differences: NapCat offers more features but is unofficial; the official bot is more stable but does not support automatic alerts for Web session completion, and proactive messages have quota limits.
  3. Single/Dual Account Mode: Dual account mode is recommended for new users; single account mode can receive Agent completion alerts but may miss message notifications. It is not advisable to use a rarely used secondary account for the NapCat account logged into DSH.
  4. Known Limitations: Currently, full interaction via QQ’s “My Computer” session is not supported; such messages can be captured in logs, but the reply chain is incomplete.
  5. Legacy Migration: When migrating from an older setup to the bundle, startup will automatically clean up old id: dsh-qq-bridge entries in cordis.patch.yml and leave a .bak backup in the same directory.

For a more complete architecture description, see the repository’s docs/project-overview.md, and for usage diagrams, see docs/usage-guide.html.

Conclusion

dsh-qq-bridge integrates QQ into DSH’s Agent pipeline, enabling message forwarding on the local machine while supporting remote control, model switching, scheduled reminders, and Web session notifications. The DSH ecosystem’s philosophy is “everything is a plugin”; if you need to drive the Whale Girl on mobile, you can start by verifying connectivity with ping, then choose between the NapCat or official bot path based on your use case.