sliverp/DeepSeek-harness-qqbot
QQ Bot text and image channel plugin for DeepSeek Harness
DeepSeek Harness QQBot is an out-of-tree channel plugin that connects an official QQ Bot Gateway to persistent Harness agents: C2C and group text messages, inbound PNG/JPEG/WebP/GIF images as durable attachments (with text-only fallback), voice transcripts and attachment metadata, outbound assistant text/images/local workspace files, a QQ-turn-scoped qq_send_file tool with workspace containment, QQ Markdown replies, one persistent session per conversation, slash-command passthrough (/compact, /goal, /plan, ...), proactive requester-bound approval prompts with Allow/Reject buttons, typing indicators, long-reply splitting, ordering and duplicate suppression, and open/allowlist/disabled access policies.
Install
pnpm dsh plugin --profile web add github:sliverp/DeepSeek-harness-qqbotGitHub bundle install per README (no npm package name documented): pnpm dsh plugin --profile web add github:sliverp/DeepSeek-harness-qqbot, or from a local checkout pnpm dsh plugin --profile web add /absolute/path/to/DeepSeek-harness-qqbot. Configure: set the AppID in the launch environment and store the AppSecret under the credential reference QQBOT_APP_SECRET (export QQBOT_APP_ID=... QQBOT_APP_SECRET=... then pnpm dsh --profile web). For a durable setup put QQBOT_APP_ID in ~/.dsh/.env and store the AppSecret with the Harness credential settings surface — never commit either. DSH_QQBOT_CWD overrides the working directory. Installing the bundle does not require configuring credentials immediately: without them the channel logs that it is inactive and DSH still starts.
Compatibility
Node.js 22.19+, pnpm 10.33.4, DeepSeek Harness 0.1.0-rc.7+. Requires a QQ Bot AppID and AppSecret with C2C and/or group message events enabled; Inline Keyboard permission is required for QQ approval buttons. Official @tencent-connect/qqbot-nodejs Gateway client. One persistent Harness session per C2C or group conversation; agent-preset composition; /new and /reset switch to fresh durable sessions; requester-bound approval prompts with one-shot Allow/Reject; open/allowlist/disabled access policies; image input auto-fallback for text-only models; QQ Markdown replies on by default.
Details
- Repo: sliverp/DeepSeek-harness-qqbot
- Category: Messaging & Communication
- Stars: 7
- Version: GitHub bundle install github:sliverp/DeepSeek-harness-qqbot (README-documented)
- Last push: 2026-08-19
- First seen: 2026-08-13
Recent updates
The current English README documents: features, requirements, install from GitHub, configuration (QQBOT_APP_ID env, QQBOT_APP_SECRET credential, DSH_QQBOT_CWD override, cordis.patch.yml override with access policy/limits), imageInputMode auto/always/never semantics, markdownSupport, agentPreset composition, /new and /reset session handling, dormant startup without credentials, and security (never commit credentials).
FAQ
- Does installing the plugin require QQ credentials immediately?
- No — the bundle starts dormant when AppID or AppSecret is not configured, so installation alone never blocks DSH startup. Configure both values and reload or restart DSH to connect; an invalid credential leaves only the QQ channel offline.
- Can the bot send images and files?
- Yes — outbound assistant text, images, and local workspace files are supported, plus the qq_send_file tool with workspace containment and file-size checks. Inbound images arrive as durable Harness attachments.
- How do approvals work from QQ?
- Approval prompts are requester-bound with one-shot Allow and Reject buttons; timeouts reject by default, and the plugin falls back to another composed approval channel. There is no escalation carry-over to later tool calls.
Alternatives
hi-wenw/dsh-telegram-channel · imetn/dsh-lark-bridge · PlutoKeating/dsh-lark-bot