🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

QQ 全能桥 dogeheng/dsh-omni

DeepSeek Harness
dogeheng3 天前有提交已提供中文文档扫描:含敏感能力

把 DSH 接入 QQ,让机器人听懂语音、看懂图片并记住聊天

30.7/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/11/2 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add dogeheng/dsh-omni
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么
dsh 原生插件 · platform
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 3 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

可执行外部命令读写/删除本地文件写入剪贴板(不计风险)读取剪贴板或密钥环境变量发起外部网络请求
查看扫描证据(共 39 处,展示前 30 条)
  • 执行外部命令固定命令
    packages/bridge/src/bridge.js:1171
    const out = execFileSync('netstat', ['-ano', '-p', 'TCP'], { encoding: 'utf8', timeout: 5000, stdio: ['ignore', 'pipe', 'ignore'] });
  • 执行外部命令固定命令
    packages/bridge/src/bridge.js:1174
    const out = execFileSync('sh', ['-c', 'ss -ltn 2>/dev/null || netstat -ltn 2>/dev/null || true'], { encoding: 'utf8', timeout: 5000, stdio: ['ignore',
  • 发起网络请求
    packages/bridge/src/bridge.js:1645
    const response = await bot.request('fetch_custom_face_detail', { count });
  • 发起网络请求
    packages/bridge/src/bridge.js:1926
    const res = await fetch(`${httpUrl}/${action}`, {
  • 发起网络请求
    packages/bridge/src/bridge.js:2001
    const res = await fetch(`${httpUrl}/get_msg`, {
  • 发起网络请求
    packages/bridge/src/bridge.js:2049
    const res = await fetch(`${httpUrl}/fetch_ptt_text`, {
  • 发起网络请求
    packages/bridge/src/bridge.js:2099
    const res = await fetch(`${httpUrl}/${action}`, {
  • 发起网络请求
    packages/bridge/src/bridge.js:2388
    const res = await fetch(`${httpUrl}/${action}`, {
  • 执行外部命令固定命令
    packages/bridge/src/bridge.js:3816
    execFile('docker', ['restart', container], { timeout: 90_000 }, (error) => {
  • 读取本地文件
    packages/bridge/src/console-assets.js:20
    const body = readFileSync(join(publicDir, 'console-assets', asset[0]));
  • 读取密钥环境变量
    packages/bridge/src/dsh-client.js:37
    const fromEnv = process.env.DSH_LAUNCH_TOKEN;
  • 发起网络请求
    packages/bridge/src/dsh-client.js:418
    const res = await fetch(url, { redirect: 'manual', signal: AbortSignal.timeout(this.timeoutMs) });
  • 发起网络请求
    packages/bridge/src/dsh-client.js:577
    const response = await fetch(input, { ...init, headers });
  • 发起网络请求
    packages/bridge/src/mcp-host-server.js:56
    const res = await fetch(`${httpUrl}/get_login_info`, {
  • 发起网络请求
    packages/bridge/src/mcp-snowluma-safe.js:90
    const res = await fetch(`${httpUrl}/${action}`, {
  • 发起网络请求
    packages/bridge/src/mcp-snowluma-safe.js:167
    const res = await fetch(`${agentApiBase()}${path}`, { ...rest, headers, signal: AbortSignal.timeout(timeoutMs) });
  • 发起网络请求
    packages/bridge/src/mcp-snowluma-safe.js:242
    req = http.request({
  • 发起网络请求
    packages/bridge/src/safe-fetch.js:218
    req = mod.request({
  • 执行外部命令固定命令
    packages/bridge/src/singing.js:139
    const out = execFileSync('vm_stat', { encoding: 'utf8', timeout: 2000 });
  • 执行外部命令来自配置/变量
    packages/bridge/src/singing.js:173
    try { execFileSync(c.ffmpegPath, ['-version'], { stdio: 'ignore', timeout: 2000 }); ffmpegOk = true; } catch {}
  • 执行外部命令来自配置/变量
    packages/bridge/src/singing.js:292
    child = spawn(command, commandArgs, {
  • 发起网络请求
    packages/bridge/src/snowluma-conn.js:86
    const res = await fetch(`${baseUrl}/get_login_info`, {
  • 读取密钥环境变量
    packages/bridge/src/snowluma-conn.js:120
    const explicit = token || process.env.SNOWLUMA_TOKEN || sl.accessToken || '';
  • 执行外部命令固定命令
    packages/bridge/src/state-acl.mjs:36
    return spawnSync('icacls', args, { encoding: 'utf8', timeout, windowsHide: true });
  • 执行外部命令来自配置/变量
    packages/bridge/src/voice-asr.js:402
    const child = fork(WORKER_PATH, [], { serialization: 'advanced', stdio: ['ignore', 'ignore', 'pipe', 'ipc'], execArgv: [] });
  • 执行外部命令来自配置/变量
    packages/bridge/src/voice-core.js:163
    child = spawn(ffprobePath, [
  • 执行外部命令来自配置/变量
    packages/bridge/src/voice-core.js:402
    child = spawn(ffmpeg, args, { windowsHide: true, stdio: 'ignore' });
  • 执行外部命令来自配置/变量
    packages/bridge/src/voice-core.js:423
    child = spawn(ffmpeg, wavArgs, { windowsHide: true, stdio: 'ignore' });
  • 发起网络请求
    packages/bridge/src/web-search.js:212
    req = https.request({
  • 写入剪贴板
    packages/launcher/client.js:105
    await navigator.clipboard.writeText(item.url);
扫描于 2026/11/3(0 天前) · 范围 全包扫描 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

README

由 DeepSeek 最新模型翻译生成
dsh-omni 把 DeepSeek Harness 接到 QQ,聊天、听语音、看图,也记得住事。 看看界面 ·快速开始 ·功能 ·文档 ·反馈问题 这是我的 QQ 伙伴「大肥鱼」用的整合包。我想让她能听懂群友的语音、看大家分享的图,记住聊过的事,也知道什么时候该安静。 消息通过 SnowLuma 进出 QQ,由 DeepSeek Harness(DSH)处理对话。角色、权限、聊天节奏和用量都可以在本地控制台里调整。项目基于 qq-bridge 做整合与二次开发。 看看界面 控制台按「总览、聊天与性格、感知与表达、记忆与学习、运行与安全」组织。参数旁有用途和影响说明,也能直接搜索定位。 查看聊天设置与参数说明 比如,调高冒泡概率会增加冷场后的主动参与机会;实际是否开口,还会受到夜间时段、近期活跃程度和 AI 判断的影响。 碰一碰大肥鱼 碰眼睛会捂眼,碰耳朵会动一动;点一下就能进入对应设置。共九种动作,支持键盘和触屏,也可以暂停。角色采用分层 2D 动画,详见交互说明。 截图与动图均来自离线演示,使用模拟数据,不含真实聊天记录。 能做什么 | 用途 | 已有功能 | | 参与聊天 | 群聊和私聊分别对应 DSH 会话;支持引用、分条发送、拍一拍、潜水、唤醒与冷场冒泡。
展开完整文档(README 剩余 1 节)
dsh-omni

把 DeepSeek Harness 接到 QQ,聊天、听语音、看图,也记得住事。

看看界面 ·快速开始 ·功能 ·文档 ·反馈问题

这是我的 QQ 伙伴「大肥鱼」用的整合包。我想让她能听懂群友的语音、看大家分享的图,记住聊过的事,也知道什么时候该安静。

消息通过 SnowLuma 进出 QQ,由 DeepSeek Harness(DSH)处理对话。角色、权限、聊天节奏和用量都可以在本地控制台里调整。项目基于 qq-bridge 做整合与二次开发。

看看界面

控制台按「总览、聊天与性格、感知与表达、记忆与学习、运行与安全」组织。参数旁有用途和影响说明,也能直接搜索定位。

查看聊天设置与参数说明

比如,调高冒泡概率会增加冷场后的主动参与机会;实际是否开口,还会受到夜间时段、近期活跃程度和 AI 判断的影响。

碰一碰大肥鱼

碰眼睛会捂眼,碰耳朵会动一动;点一下就能进入对应设置。共九种动作,支持键盘和触屏,也可以暂停。角色采用分层 2D 动画,详见交互说明。

截图与动图均来自离线演示,使用模拟数据,不含真实聊天记录。

能做什么

| 用途 | 已有功能 |
| 参与聊天 | 群聊和私聊分别对应 DSH 会话;支持引用、分条发送、拍一拍、潜水、唤醒与冷场冒泡。 |
| 听与说 | 本地 SenseVoice 语音识别;可选语音合成、语音库和短句随机转语音。支持多种 TTS 服务。 |
| 看图与读链接 | 图片理解、QQ 收藏表情、B 站卡片信息与字幕、联网搜索。B 站工具只读,处理群友分享的内容。 |
| 角色与记忆 | 人格卡和提示词热更新、长期记忆、群内黑话学习。群和私聊的记忆按作用域隔离。 |
| 本地管理 | 白名单、管理员权限、能力与工具开关、token 花费看板;macOS 上还可设置离电省电策略。 |

唱歌、短翻唱、受限文件工作区等能力需要另外准备环境。可以先跑通文字聊天,再按需开启;配置方法见文档。

四种运行模式怎么选?

| 模式 | 行为 |
| chat | 白名单内的普通对话。 |
| reserved | 一代仿真,按触发概率和活跃周期参与群聊。 |
| reserved2 | 二代仿真,自主阅读、发言、等待、潜水和安排唤醒。 |
| closed-agent | 仅管理员私聊可用的 Agent 模式。 |

在「运行与安全 → 连接与模式」切换。想调整二代的参与节奏,到「聊天与性格 → 聊天习惯」。

快速开始

下面以 macOS + DSH 桌面版 为例。先准备 Node.js ≥ 22.13、已安装并登录的 DSH 0.2.x,以及正在运行的 Docker。其他 profile、可选组件和排障见安装与维护。

1. 下载并配置

git clone https://github.com/dogeheng/dsh-omni.git
cd dsh-omni
npm --prefix packages/bridge installbash
cp -n packages/bridge/config.example.json packages/bridge/config.json
cp -n packages/bridge/.env.example packages/bridge/.env

后面的命令都在 dsh-omni 仓库根目录 执行。

编辑 packages/bridge/config.json,填写管理员 ownerQQ 和 QQ 白名单 allow.private / allow.groups。在 packages/bridge/.env 里把 VNC_PASSWD 改成自己的密码。配置字段说明见这里。

2. 启动 QQ 网关 bash
docker compose --env-file packages/bridge/.env -f packages/bridge/docker-compose.snowluma.yml up -d

打开 扫码桌面 登录 QQ,再到 SnowLuma WebUI 配置 OneBot v11 HTTP(3000)和正向 WebSocket(3001)。如启用了访问令牌,把同一个值填入 snowluma.accessToken。

3. 接入 DSH,再启动桥接 bash
node packages/bridge/scripts/setup-dsh.mjs desktop

安装完成后,重启 DSH,等它启动好,再运行: bash bash packages/bridge/start-mac.sh

脚本会探测 DSH 当前端口并启动桥接。打开 本地控制台,按提示使用 packages/bridge/data/console-token 中的令牌,然后在白名单会话里测试聊天。

DSH 桌面版重启后可能更换端口,需要重新运行启动脚本。也可以安装自动跟随服务。

只想先试试控制台?

安装 Node 依赖后运行: bash
npm --prefix packages/bridge run preview:console

访问 <http://127.0.0.1:4173>。这是离线预览:保存只改内存中的示例数据,试发不会连接 QQ,也不需要登录 DSH。

文档

| 想了解什么 | 入口 |
| 配置、其他配置档、自动启动、迁移、常见问题 | 安装与维护 |
| 控制台分类、参数说明、角色互动 | 控制台界面 |
| 消息如何在 QQ 与 DSH 之间流转 | 架构 |
| 语音识别、音色、合成服务与读音修正 | 语音收发 |
| 记忆的作用域、检索与提炼 | 长期记忆 |
| macOS 离电时保留哪些能力 | 电源与省电 |
| 曲库唱歌 / 群内短翻唱 | 唱歌 · 短翻唱 |
| 限制智能体文件读写范围 | 文件工作区 |

开发与验证

运行代码位于 packages/bridge;packages/launcher 和 packages/bili-mcp 是可选的 DSH 集成组件。
bash
npm test
npm --prefix packages/bridge run test:console-ui
npm --prefix packages/bridge run test:console-character

浏览器检查需要 Playwright 和 Chromium。完整审计有平台与安装环境依赖,已有失败及覆盖范围记录在验证说明。修改预设后的构建步骤见维护文档。

数据与访问

config.json、.env、data/、audio/ 留在本机,已加入 .gitignore。其中可能包含令牌和聊天记录,请勿上传。控制台及网关默认绑定本机回环地址,聊天范围由白名单控制。

账户余额查询仅用于主人私聊,不会带进群聊提示词。语音合成或其他外接服务可能产生费用,是否启用及用量上限由你配置。

来源与许可证

由 dogeheng 维护,采用 MIT。这个项目用到了以下开源项目:

- qq-bridge:Derpyu520 与 qq-bridge / QSH contributors,MIT。
- dsh-bili-scroll:c1overzz,MIT;其内置的 bilibili-mcp 来自 AGI_Ananas,MIT。
- Seed-VC:Plachtaa,GPL-3.0。可选组件,通过独立进程调用,代码和权重未打包进本仓库。

完整第三方声明见 NOTICE.md。
预览分享卡片长什么样 ↓dogeheng/dsh-omni
分享 · DeepSeek Harness Hub
dogeheng/dsh-omni

把 DSH 接入 QQ,让机器人听懂语音、看懂图片并记住聊天

这是你的仓库?认领条目

回到顶部