DeepSeek Harness Plugin Hub

Publish and manage complete Harness Profiles. Discover Plugins for your next setup.

Explore

PluginsPresetsDocsNews

Community

Publish a pluginContactReport an issue

Resources

Plugin Hub on GitHubDeepSeek HarnessSystem statusPrivacy notice
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

Independent and unofficial. Not affiliated with, authorized by, or endorsed by DeepSeek.

DeepSeek Harness Plugin Hub
ProfilesPluginsCategoriesNewsDocsSign inManage Profiles
ProfilesPluginsCategoriesNewsDocsSign in
← Plugins

dsh-qq-moony

Qq Moony

Connect a QQ alt account to DeepSeek Harness for messaging, sending stickers, posting QQ Space updates, and participating in group chats. It can find topics on its own and includes startup and rate limiting to help prevent bans.

The plugin will be installed here. Keep web if you are unsure.

npx -y @deepseek-ai/dsh plugin --profile web add dsh-qq-moony@0.13.0
READMECompatibilityVersions

Compatibility and provenance

Qq Moony is published as dsh-qq-moony and currently resolves to version 0.13.0. The Hub verifies its manifest and preserves the exact installation source for reproducible installs.

DSH compatibility
*
Runtime surfaces
web
Release source
npm
Registry updated
11/4/2026

Versions

0.13.0stable
10/26/2026
0.10.0stable
10/25/2026
0.9.4stable
10/25/2026
Show 12 more versionsCollapse versions
0.9.3stable
10/25/2026
0.9.2stable
10/25/2026
0.9.1stable
10/25/2026
0.9.0stable
10/25/2026
0.8.1stable
10/25/2026
0.8.0stable
10/25/2026
0.7.0stable
10/25/2026
0.6.0stable
10/25/2026
0.5.2stable
10/25/2026
0.5.1stable
10/25/2026
0.5.0stable
10/25/2026
0.4.0stable
10/25/2026

Related plugins

Loading related plugins…

Latest
0.13.0
DSH
*
HMR
Process restart
Tree shaking
Safe tree shaking not declared
Unpacked size
123 kB
Files
10
Surface
web
License
MIT
Source
npm
GitHub
★ 0
Weekly downloads
2,197
Security scan
✓ v0.13.0 scan passed
Last push
10/26/2026
View source ↗Project homepage ↗
README badge

Click the badge to copy Markdown for your README.

Do you maintain this Plugin?Claim benefit · Priority security scan

Verify the GitHub repository declared in package.json to manage this listing. After you claim it, Hub will prioritize a security scan of the current version and publish the result when it passes.

Claim this Plugin →
Report an issue

Related plugins

More verified plugins in integrations-communication.

Remote Web Ui@linxin666/dsh-remote-web-uiScan-to-pair remote access for the dsh web GUI that shares one official interface: a QR beside the settings button pairs phones and PCs into the same Web GUI (a portrait-touch adaptation layer for phones, full desktop on PCs) through one-time tokens and rRemote Bridge@linxin666/dsh-remote-bridgeDSH remote bridge: the host half serves protocol v1 over one exact /ios/v1 WebSocket route — session roster, history baseline, prompting, live turn increments with tool activity, interrupt, and in-process agent approval — to a device paired by a one-shot Im@xmanrui/dsh-im把微信、飞书、企微、钉钉、QQ、Telegram、WhatsApp、Slack、Discord、Matrix接入DSH。 Connect Telegram, WhatsApp, Slack, Discord, Matrix, WeChat, Feishu, WeCom, DingTalk, and QQ to DSH.Ds Botds-botDS Bot: a team of long-lived Bots for DeepSeek Harness, with Main Bots, Bot-to-Bot messages and group chats

README

dsh-qq-moony

把 QQ 小号接进 DeepSeek Harness。

装完之后,Harness 里的 Agent 就有了第二个出口:发消息、收消息、发表情包、发 QQ 空间说说,还能自己主动找人。它只当手,不当腿——QQ 客户端和 NapCat 得你自己先备好。

dsh plugin add dsh-qq-moony

版本以 package.json 和 CHANGELOG.md 为准。这里不写死版本号——写死过一次,后来就忘了改。

装完之后设置页会自己报版本:插件会去 npm 上查最新版,跟本地比一比,有新版本就在顶上提示一句(只提醒,不自动更新)。


一、它能干什么

工具干什么
qq_status小号在不在线、登录的是谁、今天发了多少、还剩多少额度
qq_send发消息。私聊写 QQ 号,群聊写 group:群号;image 可以只发图或图文一起
qq_read读最近收到的消息
qq_stickers列出攒下来的图,带标签(情绪 / 用途 / 一句描述)
qq_tag_sticker把一张图收进表情库并打标签(重复的、糊的、真人照片不收)
qq_pick_sticker按情绪和用途从库里挑一张
qq_qzone发一条 QQ 空间说说
qq_qzone_history看自己发过哪些说说(本地账本,不读空间接口)

除工具之外,还有几件自动的事:

收消息不用外部脚本。 插件启动时自己连 NapCat 的 WebSocket(默认 ws://127.0.0.1:3001),收到的消息进内存缓冲并写盘。

断线自检。 NapCat 每 30 秒发一次心跳;超过 90 秒没有任何帧,插件主动断开重连。连接、断开、自检触发都写进日志——不会再出现"线断了没人知道"。

图片会真的取下来。 别人发图,下载到 <DSH_HOME>/qq-moony/media/,记录里留本地路径,Agent 可以直接打开看。

自动回复(可选)。 收到私聊,随机等 2–7 秒,把来信投进一个专用会话,那边的 Agent 用 qq_send 回过去。投递时自动附一段记忆(memory/MEMORY.md 末尾 + 当天日记,约 2000 字)。

主动说话(可选)。 每隔一段随机时间,给它一次"想说什么就说,也可以不说"的机会。

QQ 空间自动发说说(可选)。 你写一段要求(内容、语气、频率都行),到点把这段原话交给它判断发不发。

群聊(可选,两个开关分开)。

  • 接消息:白名单里的群,被 @ 才应。
  • 参与聊天:每群记着最近三十条,隔 8–20 分钟给一次"要不要插一句"的机会,把这现场交给它判断,接不住就什么都不发。冷场(五分钟没人说话)不开口;同群冷却十分钟;群里一天最多二十条。

一句一句说。 一段话会按句末标点拆成几条发,中间隔 1–3 秒,像人说话那样。太短的("哦。""!")并进上一句;一轮最多 4 条,多的并到最后一条。

表情包会自己攒、自己配。 收到图先看一眼,值得收才收(重复、糊的、真人照片不收),打三个标签存进库;回话时合适的就配一张,挑不到就不配——一张不配比配错好。

打开 DSH 就自带 NapCat。 启动时探一下 3000 端口,没通就用 -q 快速登录把 NapCat 拉起来——免扫码,几秒上线。而且是静默的:插件生成一个 VBS 用 wscript 起,不会弹黑窗口(windowsHide 对批处理不管用,这是唯一可靠的办法)。

会自己报版本。 插件去 npm 上查最新版,跟本地比一比;有新版本就在设置页顶上提示一句——只提醒,不替你更新。判断是逐段比数字的:本地比 npm 新的时候,不会瞎报"有新版本"。

连不上时有一个按钮。 设置页顶部那块「还差几步才能用」里,会带一个一键连接——点了先探活,没跑就静默拉起 NapCat,最多等 60 秒。它不会替你杀掉旧的 QQ 进程(那会连你主号一起关掉),只会把实况摆出来:现在有几个 QQ 进程、其中几个带着 NapCat 的 hook,然后告诉你下一步该干什么。

别人发文件,她收得到。 图片下到 media/,文件下到 files/(时间戳 + 原文件名);消息交给她的时候会写清"已存到哪,要读就 read / read_image"。取不下来的也会记一笔,不会一声不响。

卡片也能读。 QQ 里转发的图文卡片、小程序卡片,原来只会显示成 [json],现在会把标题、描述、链接挖出来——比如"某某想和你建立情侣关系"。

连发几条会等她说完。 同一个人连着发时,每条都把计时器往后推(默认安静 8 秒算说完),然后把这一批当成一整段,一次答完;最长等 30 秒,不会一直拖着不回。


二、装之前必须先有

  1. QQ NT(9.9.x)。老版 QQ 9.7 注不进去,这是死条件。
  2. NapCat Shell 版。Windows 上用 launcher-user.bat 启动。
  3. OneBot 服务开着:HTTP 默认 http://127.0.0.1:3000,WebSocket 默认 ws://127.0.0.1:3001,两处都要设 token。

⚠️ 一定要用小号

不要拿常用号、更不要拿主号。

NapCat 是接管整个 QQ 客户端的行为——消息收发、登录态、空间说说,全都在它的手里。QQ 那边对"非官方客户端"的判定不透明,封号也不讲道理。用主号意味着:你的好友、群、聊天记录、空间,一起陪绑。

小号出事的代价是"再注册一个",主号出事的代价是你没法估。

另外:小号也别绑钱包、别实名做要紧的事、别进你非去不可的群。


三、设置页(名字叫「QQ嗦嗨嗨」)

装完重启 DSH,设置里会多一项 QQ嗦嗨嗨。

顶上一块是体检:QQ NT 装没装、NapCat 找不找得到、能不能连上。缺哪样它就列哪样,写明去哪儿下、哪几步——不用盯着一片红猜。

  • 连接状态:在线没有、登录的是谁、今天发了多少、上限多少
  • 主动说话:开关(点一下即时保存)
  • 自动回复:开关
  • 主动间隔:最短 / 最长(分钟),每次从区间里随机抽
  • 每小时上限 / 每天上限:数字,1–200 / 1–1000
  • 群聊:两个开关(接消息 / 参与聊天)+ 群号白名单 + 六个可调的数
  • QQ 空间自动发说说:开关 + 一段提示词 + 随机间隔

开关即时生效;数字和提示词走草稿,改完点右下角保存更改。

⚠️ 群聊"参与聊天"很费 token:每给一次机会都等于跑一整轮会话,哪怕它最后决定不说话。间隔别设太短。


人设:默认是中性,不会变成作者的角色

包里不带任何人的身份。persona 留空时,自动回复的会话只被告知"你替这个账号主人在 DSH 里收发消息"——干净、中性,你说什么它就是什么。

想让它有自己的性格,就在设置页「人设」那一栏写几句,或者改 config.json 的 persona:

"persona": "你是这个账号主人在 DSH 里养的助手,说话短、口语,不自我介绍"

填了之后,这段话会跟着每条自动回复一起投给会话。

⚠️ 同理,包里也不带作者的 token 和小号号。cordis.patch.yml 里这几项都是空的,必须你自己在 config.json 填。

四、配置

优先级:本地配置文件 > bundle patch 里的 config > 代码默认值。

<DSH_HOME>/qq-moony/config.json
{
  "baseUrl": "http://127.0.0.1:3000",
  "token": "你的 OneBot token",
  "uin": 123456789,

  "wsUrl": "ws://127.0.0.1:3001",
  "listen": true,
  "staleTimeoutMs": 90000,

  "napCatDir": "C:\\path\\to\\napcat",
  "qqUin": 123456789,
  "autoStartNapCat": true,

  "perHour": 20,
  "perDay": 60,

  "autoReply": false,
  "replyTo": [],
  "replyDelayMinMs": 2000,
  "replyDelayMaxMs": 7000,
  "sessionId": "qq-moony-auto",
  "cwd": "",
  "autoContext": true,
  "maxContextChars": 2000,

  "groupReply": false,
  "groupChat": false,
  "groupWhitelist": [],
  "groupContextSize": 30,
  "groupChatEveryMinMin": 8,
  "groupChatEveryMinMax": 20,
  "groupActiveWindowMin": 5,
  "groupCooldownMin": 10,
  "groupPerDay": 20,

  "proactive": false,
  "proactiveEveryMinMin": 45,
  "proactiveEveryMinMax": 90,

  "qzoneAuto": false,
  "qzonePrompt": "",
  "qzoneEveryMinMin": 120,
  "qzoneEveryMinMax": 240
}

几个关键项:

  • token:写错会报 token verify failed,这是第一道坎。
  • replyTo:自动回复的私聊白名单;空数组表示谁发都回。
  • groupWhitelist:群白名单;空数组等于群聊没开。
  • cwd:自动回复会话的工作目录。指到你的工作区,它才会带上你的人设文件和记忆。
  • maxContextChars:每条自动回复附多少字记忆。调小省钱,调大记得住。
  • staleTimeoutMs:多久没收到帧就重连。

⚠️ 配置文件不要带 BOM。 PowerShell 的 Set-Content 写 UTF-8 会带 BOM,Node 的 JSON.parse 会抛错,整份配置被当成不存在。用这个写:

[System.IO.File]::WriteAllText("路径", $json, [System.Text.UTF8Encoding]::new($false))

(插件读的时候已经会剥 BOM,但写文件那边的坑还是留着。)


五、防封

写在代码里,不靠自觉:

  • 每条消息发出前随机等 2–7 秒
  • 一小时 / 一天上限按「轮」算(一轮 = 一次回复,可能拆成几条),到顶直接拒发(不是提醒,是拒绝)
  • 每分钟硬上限按「条」算(默认 6)。这条不跟"轮"妥协——风控只看得见条数,看不见你以为的"一轮"
  • 群里默认不接;开了也只接白名单 + 被 @ 的,且同群冷却 10 分钟、全群日额 20
  • 额度记账在 <DSH_HOME>/qq-moony/sent.log(条)和 rounds.log(轮),跨会话累计
  • 留了一个「不限条数」开关,给确实需要的人——开了就没有上面那两道闸,自己掂量

真正决定会不会被封的是拿它做什么。插件只能保证不让你手滑:

只回不主动、不群发、不刷屏、不加好友、不发链接。

群聊的额外一条

放进熟人群之前想清楚:那儿的人未必认识这个号。一个陌生头像突然接话,第一反应是"这谁"。要是正赶上聊私事(家人、成绩、室友之间的事),插一句就不只是尴尬。

建议:先只开"接消息",让别人 @ 一次看看反应;觉得合适再开"参与聊天"。


六、已知限制

  • 不装 NapCat、不注入 QQ。 那部分在客户端侧,插件碰不到。
  • 不是官方机器人。 走客户端协议端,有封号风险,别拿主号试。
  • QQ 空间只能发,不能读。 NapCat 只给"发说说 / 删说说"两个接口,读动态、点赞、评论一律"不支持的 Api"(逐个试过)。所以只有本地账本 qq_qzone_history,没有"刷空间"功能。
  • 不支持语音、文件。 目前只处理文字和图片。
  • 主动、空间、自动回复、群聊共用一个会话(qq-moony-auto),理论上会互相排队。
  • 自动回复是"另一个我":同工作区、共享记忆和文件,但不共享你正在聊的那个窗口的上下文。

七、出问题先看这里

<DSH_HOME>/qq-moony/debug.log

常见症状按顺序排查:

  1. token verify failed → token 写错,或 NapCat 那边没设。
  2. 能发不能收 → 看 debug.log 有没有 WebSocket 已连上;没有就查 3001 端口和 NapCat 的 websocketServers。
  3. 收到消息但不回 → 看有没有"自动回复检查"那行;有检查没投递,多半是白名单或 autoReply 没开;投递了没回应,看 sessionId 对应的会话起没起来。
  4. 页面报 SyntaxError: ... not valid JSON → 接口没挂上,重启一次 DSH。
  5. 设置页改了没生效 → 检查是不是带 BOM;数字项要点"保存更改"。

八、版本

见 CHANGELOG.md。

License

MIT