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

Discord 远程控制 suuuuuu-1/dsh-discord

DeepSeek Harnessv0.0.1
suuuuuu-166 天前有提交已提供中文文档扫描:含敏感能力

在 Discord 频道与私聊中远程驱动 DSH 会话

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

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

自动兼容检查有告警:npm 同名包「dsh-discord」归属 dushaobindoudou/dsh-discord,装到的可能不是本插件。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add suuuuuu-1/dsh-discord
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么
dsh 原生插件 · platform
装得上吗
静态安装检查有提示项,装前建议看一眼 README
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 66 天前
档位由哪些信号合成

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

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查⚠ 装前注意

npm 同名包「dsh-discord」归属 dushaobindoudou/dsh-discord,装到的可能不是本插件

展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✓npm 包dsh-discord @ 0.0.1
✓Node 引擎要求 ^22.19.0 || >=24.0.0 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/11/1 04:57:38

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

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

可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 30 处,展示前 30 条)
  • 执行外部命令固定命令
    src/cli/doctor.ts:5
    const result = spawnSync('dsh', ['--profile', 'discord'], {
  • 读取本地文件
    src/cli/setup.ts:25
    const projectRoot = await realpath(resolve(enteredProject.trim() || process.cwd()))
  • 执行外部命令固定命令
    src/cli/setup.ts:52
    const result = spawnSync('dsh', ['--help'], { stdio: 'ignore', shell: process.platform === 'win32' })
  • 执行外部命令固定命令
    src/cli/setup.ts:57
    const result = spawnSync('dsh', args, { stdio: 'inherit', env, shell: process.platform === 'win32' })
  • 读取本地文件
    src/cli/setup.ts:64
    if (!existsSync(dirname(filename))) mkdirSync(dirname(filename), { recursive: true })
  • 写入本地文件
    src/cli/setup.ts:64
    if (!existsSync(dirname(filename))) mkdirSync(dirname(filename), { recursive: true })
  • 写入本地文件
    src/cli/setup.ts:79
    writeFileSync(filename, content, { encoding: 'utf8', mode: 0o600 })
  • 请求外部主机discord.com
    src/cli/setup.ts:83
    const response = await fetch('https://discord.com/api/v10/oauth2/applications/@me', {
  • 发起网络请求
    src/cli/setup.ts:83
    const response = await fetch('https://discord.com/api/v10/oauth2/applications/@me', {
  • 执行外部命令来自配置/变量
    src/cli/start.ts:23
    const child = spawn(launch.command, [...launch.prefixArgs, '--profile', 'discord'], {
  • 执行外部命令固定命令
    src/cli/start.ts:44
    const result = spawnSync('taskkill.exe', ['/PID', String(runtime.pid), '/T', '/F'], {
  • 写入本地文件
    src/cli/start.ts:72
    mkdirSync(logs, { recursive: true })
  • 执行外部命令来自配置/变量
    src/cli/start.ts:81
    child = spawn(launch.command, [...launch.prefixArgs, '--profile', 'discord'], {
  • 写入本地文件
    src/cli/start.ts:97
    writeFileSync(runtimeFilename(), JSON.stringify(runtime, undefined, 2) + '\n', { encoding: 'utf8', mode: 0o600 })
  • 执行外部命令固定命令
    src/cli/start.ts:104
    const located = spawnSync('where.exe', ['dsh.cmd'], { encoding: 'utf8', windowsHide: true })
  • 读取本地文件
    src/cli/start.ts:108
    if (existsSync(bin)) return { command: process.execPath, prefixArgs: [bin], shell: false }
  • 读取本地文件
    src/cli/start.ts:116
    if (!existsSync(filename)) return undefined
  • 读取本地文件
    src/cli/start.ts:118
    const value: unknown = JSON.parse(readFileSync(filename, 'utf8'))
  • 删除本地文件
    src/cli/start.ts:134
    rmSync(runtimeFilename(), { force: true })
  • 写入本地文件
    src/cli/start.ts:139
    mkdirSync(directory, { recursive: true })
  • 发起网络请求
    src/discord/client.ts:118
    const channel = await client.channels.fetch(channelId)
  • 发起网络请求
    src/discord/client.ts:126
    const channel = await client.channels.fetch(message.channelId)
  • 发起网络请求
    src/discord/client.ts:141
    const channels = await guild.channels.fetch()
  • 发起网络请求
    src/discord/client.ts:250
    const response = await fetch(url)
  • 读取本地文件
    src/index.ts:110
    const info = await stat(policy.projectRoot).catch(() => undefined)
  • 发起网络请求
    src/index.ts:146
    const disposeApprovalListener = ctx.on('approval/request', (request, next) => approvals.request(request) ?? next())
  • 读取本地文件
    src/state/store.ts:42
    text = await readFile(this.filename, 'utf8')
  • 写入本地文件
    src/state/store.ts:113
    await mkdir(dirname(this.filename), { recursive: true })
  • 写入本地文件
    src/state/store.ts:115
    await writeFile(temporary, snapshot, { encoding: 'utf8', mode: 0o600, flag: 'wx' })
  • 写入本地文件
    src/state/store.ts:116
    await rename(temporary, this.filename)
扫描于 2026/11/3(0 天前) · 范围 全包扫描(包内未声明入口) · 来源 GitHub 仓库
涉及外部主机:discord.com

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

依赖的 DSH / Cordis 模块
@deepseek-ai/schemastery@deepseek-ai/cordis@deepseek-ai/dsh-agent@deepseek-ai/dsh-agent-default-model@deepseek-ai/dsh-attachment@deepseek-ai/dsh-credentials@deepseek-ai/dsh-llm@deepseek-ai/dsh-session@deepseek-ai/dsh-user-approval@deepseek-ai/dsh-user-questions
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

界面预览

1 张 · 点击查看大图

功能亮点

  • 私聊远程驱动会话
  • 双向Discord桥接

DeepSeek Harness 的双向 Discord 桥接与远程控制器

README

由 DeepSeek 最新模型翻译生成
dsh-discord DSH Marketplace 实测可装 dsh-discord — Discord 原生的 DeepSeek Harness 远程控制器 DeepSeek Harness 的双向 Discord 桥接与远程控制插件。 已收录于独立社区项目 DSH Marketplace(项目源码)。 插件以独立 discord profile 运行,支持单 Owner、单 Project,以及 Discord DM、服务器文字频道和 Thread。每个 Discord 会话独立映射一个可恢复的 DSH Session;普通文本使用 followup,运行中自动排队,只有 /dsh steer 进入当前任务最近的步骤。 消息触发规则:Owner 在 DM 中可直接对话;Guild 普通文字频道中的自然语言必须明确 @Bot;陌生 Thread 的第一条任务也必须 @Bot,一旦 Thread 已绑定 DSH Session,后续对话无需重复 mention。/dsh Slash Command 始终不要求 mention。未触发的消息会静默忽略。
展开完整文档(README 剩余 1 节)
dsh-discord

DSH Marketplace 实测可装

dsh-discord — Discord 原生的 DeepSeek Harness 远程控制器

DeepSeek Harness 的双向 Discord 桥接与远程控制插件。

已收录于独立社区项目 DSH Marketplace(项目源码)。

插件以独立 discord profile 运行,支持单 Owner、单 Project,以及 Discord DM、服务器文字频道和 Thread。每个 Discord 会话独立映射一个可恢复的 DSH Session;普通文本使用 followup,运行中自动排队,只有 /dsh steer 进入当前任务最近的步骤。

消息触发规则:Owner 在 DM 中可直接对话;Guild 普通文字频道中的自然语言必须明确 @Bot;陌生 Thread 的第一条任务也必须 @Bot,一旦 Thread 已绑定 DSH Session,后续对话无需重复 mention。/dsh Slash Command 始终不要求 mention。未触发的消息会静默忽略。

功能

- DM、Guild 文字频道和 Thread 普通消息
- 每个频道/Thread 独立创建、恢复和持久化 Session
- /dsh help、/dsh status、/dsh new、/dsh stop、/dsh steer
- 合并限频的进度消息、工具安全摘要和最终结果
- 长结果作为 Markdown 文件发送,禁止 Agent 输出触发 Discord 提及
- 一次性工具审批按钮和结构化问题(选择器、Modal)
- 图片附件通过 ctx.attachments 持久化;UTF-8 文本与代码附件直接进入用户消息
- Discord 事件持久去重、Gateway 自动重连、v1 状态自动迁移
- 前台运行及受管后台运行(PID 与独立日志)
- Token 只通过 DSH Credentials 保存和解析

插件不修改 DSH 核心,也不会安装进 web profile。

要求

- Node.js ^22.19.0 或 >=24
- DeepSeek Harness dsh CLI
- Discord Bot 应用及 Token
- Discord Developer Portal → Bot → Privileged Gateway Intents 中开启 Message Content Intent

Bot 安装到服务器后,应在需要使用的频道拥有 View Channel、Send Messages、Send Messages in Threads、Read Message History、Embed Links 和 Attach Files。setup 生成的邀请链接会请求这组权限,doctor 也会检查同一组权限。插件不维护额外的 Guild/Channel 白名单;Discord 自身的服务器、频道和角色权限决定 Bot 能看到哪里。为了避免其他成员控制本机,入站操作仍只接受配置的 Owner ID。

安装与运行

npm 正式发布前,先从 GitHub 安装 CLI。
npm install --global github:suuuuuu-1/dsh-discord
dsh-discord setup --package-spec github:suuuuuu-1/dsh-discord
dsh-discord doctor
dsh-discord start

后台运行:

dsh-discord start --daemon
dsh-discord status
dsh-discord stop

全局安装的 CLI 只负责启动和管理插件。插件本体仅在专用 discord profile 中启用,并固定到 setup 时选择的单个项目目录;它不会自动出现在每个工作目录,也不会安装进 web profile。

setup 会验证 Token、生成邀请链接、选择项目目录、将包安装到专用 profile,并通过 ctx.credentials 保存 Token。不要把 Token 放进聊天、普通配置、日志或命令行参数。

配置文件默认位于:

~/.dsh/profiles/discord/cordis.patch.yml

凭据位于 DSH 管理的:

~/.dsh/.credentials.yaml

配置只引用 DSH_DISCORD_BOT_TOKEN,不保存明文值。

附件

当前 DSH 官方附件 seam 支持 PNG、JPEG、WebP 和 GIF。dsh-discord 还支持最大 512 KiB/个、合计 1 MiB 的 UTF-8 文本与常见代码文件。PDF、压缩包、音视频及其他二进制附件会明确拒绝,不会写入项目目录。

开发验证

没有真实 Token 时使用 FakeDiscordTransport:

npm ci --ignore-scripts
npm run typecheck
npm test
npm run build
npm run smoke

详细架构见 DESIGN.md,安全边界见 SECURITY.md。
预览分享卡片长什么样 ↓suuuuuu-1/dsh-discord
分享 · DeepSeek Harness Hub
suuuuuu-1/dsh-discord

在 Discord 频道与私聊中远程驱动 DSH 会话

回到顶部