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

团队协作网关 zhoujianbin/dsh-team-hub

DeepSeek Harnessv0.3.3
zhoujianbin11 天前有提交已提供中文文档扫描:含敏感能力

把单用户的 DeepSeek Harness Web 实例,变成局域网内可安全共用的团队服务。

53.3/100
综合分
49
GitHub 星标
228
npm 周下载
—/5
用户评分

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

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add dsh-team-hub
npm 源 · dsh-team-hub 的发布者账号已校验与本仓库一致

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · market
装得上吗
本站已在 dsh 0.2.1-rc.2 下真实安装成功
非静态推断
L5 · 运行时冒烟等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 11 天前
档位由哪些信号合成

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

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过
展开查看检查明细 ↓

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

✓npm 包dsh-team-hub @ 0.3.3
✓Node 引擎要求 >=22 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

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

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

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

可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 26 处,展示前 17 条)
  • 读取本地文件
    src/patch.mjs:42
    const original = readFileSync(backup, "utf8");
  • 读取本地文件
    src/patch.mjs:43
    const hashes = JSON.parse(readFileSync(meta, "utf8"));
  • 读取本地文件
    src/patch.mjs:66
    if (!existsSync(backup)) {
  • 写入本地文件
    src/patch.mjs:67
    writeFileSync(backup, original);
  • 读取本地文件
    src/patch.mjs:71
    const meta = JSON.parse(readFileSync(backupMetaPath(target), "utf8"));
  • 写入本地文件
    src/patch.mjs:75
    writeFileSync(backup, original);
  • 读取本地文件
    src/patch.mjs:83
    if (existsSync(candidate)) return candidate;
  • 读取本地文件
    src/patch.mjs:92
    if (explicit) return existsSync(explicit) ? explicit : null;
  • 执行外部命令来自配置/变量
    src/patch.mjs:97
    const globalRoot = spawnSync(npmCmd, ["root", "-g"], { encoding: "utf8", shell: process.platform === "win32" }).stdout.trim();
  • 写入本地文件
    src/patch.mjs:145
    writeFileSync(backupMetaPath(file), JSON.stringify({ originalSha, patchedSha }) + "\n");
  • 写入本地文件
    src/patch.mjs:146
    writeFileSync(file, patched);
  • 写入本地文件
    src/patch.mjs:160
    writeFileSync(file, readFileSync(file + BAK_SUFFIX, "utf8"));
  • 发起网络请求
    src/dsh-browser-auth.mjs:84
    response = await fetch(url, { redirect: "manual",
  • 发起网络请求
    src/upstream.mjs:18
    response = await fetch(`${config.upstream}/api/${method}`, {
  • 发起网络请求
    admin-ui/app.js:10
    const response = await fetch("/__teamhub/api" + path, {
  • 发起网络请求
    src/server.mjs:131
    const response = await fetch(upstreamUrl, { method: req.method, headers, body, redirect: "manual" });
  • 发起网络请求
    src/server.mjs:286
    const response = await fetch(`${context.config.upstream}/api/${method}`, {
扫描于 2026/11/2(1 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包

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

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

界面预览

1 张 · 点击查看大图

功能亮点

  • 局域网团队共用
  • 工作区隔离
  • 安全访问

把单用户 DeepSeek Harness 实例变成安全、工作区隔离的团队服务

README

由 DeepSeek 最新模型翻译生成
dsh-team-hub 把单用户的 DeepSeek Harness Web 实例,变成局域网内可安全共用的团队服务。 dsh-team-hub 位于浏览器和本地 DSH 实例之间。它不修改 DSH,而是在外层提供登录、角色、工作区隔离、RPC 过滤、WebSocket 事件过滤、Admin 控制台和审计日志。 English README dsh-team-hub Admin 控制台 dsh-team-hub 是面向团队的 DSH 协作网关。 管理员可以统一管理成员、工作区、共享权限和审计记录;团队成员在各自隔离的工作区中共享同一个 DSH 服务,不再把个人机器上的单用户环境直接暴露给所有人。 版本与兼容性:v0.3.1(共享工作区协作首发于 v0.3.0)支持 DSH 0.2.0 及以上版本(当前在 DSH 0.2.x 上验证)。 本项目不提供 OS 级多租户隔离;共享 Agent 仍运行在同一个宿主账户下,详见下方安全边界。 为什么需要它 DSH Web 默认是单用户形态,通常只监听本机回环地址。直接把 DSH 地址分享给团队成员,会让所有人都获得同一个高权限宿主上下文。
展开完整文档(README 剩余 1 节)
dsh-team-hub

把单用户的 DeepSeek Harness Web 实例,变成局域网内可安全共用的团队服务。

dsh-team-hub 位于浏览器和本地 DSH 实例之间。它不修改 DSH,而是在外层提供登录、角色、工作区隔离、RPC 过滤、WebSocket 事件过滤、Admin 控制台和审计日志。

English README

dsh-team-hub Admin 控制台

dsh-team-hub 是面向团队的 DSH 协作网关。 管理员可以统一管理成员、工作区、共享权限和审计记录;团队成员在各自隔离的工作区中共享同一个 DSH 服务,不再把个人机器上的单用户环境直接暴露给所有人。

版本与兼容性:v0.3.1(共享工作区协作首发于 v0.3.0)支持 DSH 0.2.0 及以上版本(当前在 DSH 0.2.x 上验证)。 本项目不提供 OS 级多租户隔离;共享 Agent 仍运行在同一个宿主账户下,详见下方安全边界。

为什么需要它

DSH Web 默认是单用户形态,通常只监听本机回环地址。直接把 DSH 地址分享给团队成员,会让所有人都获得同一个高权限宿主上下文。

dsh-team-hub 提供:

- 用户名/密码登录、首次登录强制修改密码
- Admin / Member / Disabled 角色状态
- 按成员隔离工作区和会话
- 管理员按工作区授权共享成员:成员同时看到自己的工作区和被共享的工作区
- 共享工作区的历史浏览、文本文件预览和排队消息
- DSH RPC 默认拒绝策略和逐帧 WebSocket 事件过滤
- 独立 Admin 控制台和结构化审计日志
- macOS launchd / Linux systemd 服务安装
- DSH 兼容性自检

共享工作区(v0.3.0)

有些项目需要多人协作。管理员可以在 Admin 控制台把指定的工作区共享给一个或多个成员;成员登录后,侧栏会同时显示:

- 自己的工作区
- 管理员共享给自己的其他工作区

设置共享成员

1. 打开 Admin 控制台:/admin
2. 进入“工作区”
3. 在工作区行点击“设置共享成员”
4. 在双列选择器中调整成员:
- 左侧“已有权限”
- 右侧“尚未授权”
- 选中成员后使用 ← / → 移动
5. 保存后,已登录成员刷新页面即可看到变化

工作区所有者无需重复授权。共享成员列表保存在网关私有配置中,并写入审计日志。

共享成员可以做什么

| 操作 | 工作区所有者 | 共享成员 |
| 查看工作区与历史会话 | 是 | 是 |
| 预览工作区内的文本文件 | 是 | 是 |
| 发送纯文本消息 | 是 | 是(排队发送) |
| 中断正在运行的回合 | 是 | 否 |
| 审批工具请求 / 回答问题 | 是 | 否 |
| 重命名、创建、删除、归档、固定会话 | 是 | 否 |
| 修改工作区名称、排序或设置 | 是 | 否 |

发送消息是共享成员唯一的写操作;它只接受已审核的纯文本,不支持图片、文件附件或跨会话引用。共享成员不能代替所有者审批工具调用,也不能修改工作区本身。

撤销共享

撤销授权后立即生效:

- 新的共享工作区和会话请求会被拒绝
- 已打开的共享会话流会停止
- 文件预览和共享消息发送同时失效

安全边界

共享工作区按“工作区 ID + 受信任的会话/路径映射”授权,而不是简单按目录前缀放行:

- 工作区归属和路径必须来自 DSH 受信任清单
- 共享会话必须属于已授权工作区
- 子代理会话只有在父会话可访问、且 cwd 严格位于父工作区内时才继承访问
- 文件预览拒绝绝对路径、../ 穿越、不存在的文件、目录和符号链接逃逸
- 上游响应返回后再次校验授权,防止撤销后的竞态
- DSH 宿主绝对路径会替换为工作区相对路径
- 共享历史中的图片和文件附件显示为安全占位符

环境要求

- Node.js 22 或更高版本
- DSH Web 0.2.0 或更高版本(当前在 DSH 0.2.x 上验证;不支持 DSH 0.1)
- macOS 或 Linux(用于系统服务安装)
- 一个可访问的 DSH Web 实例,默认 http://127.0.0.1:3080
- 可信局域网。不要在未配置 HTTPS/反向代理和额外访问控制的情况下直接暴露到公网

DSH 0.2+ 兼容性

当前版本面向 DSH 0.2.0 及以上版本,使用 DSH 0.2 的私有浏览器认证、斜杠 RPC、会话/工作区清单和远程流协议。已在 DSH 0.2.x 上验证:

- 成员登录、首次改密和工作区隔离
- 独立工作区中的会话创建、模型/推理等级选择、消息提交和历史回放
- 跨成员历史拒绝
- 共享工作区中的历史加载、文本文件预览和排队消息
- 共享撤销后的即时失效

DSH 的 RPC 和事件协议属于内部协议,升级后仍可能变化。未知的新方法默认拒绝,升级后最多导致新功能暂时不可用,不会自动扩大成员权限。

网关会自动从运行账户持有、权限为 0600 的 DSH Web 启动日志读取 token;日志不在默认位置时,可在网关 config.json 中设置:

{ "dshWebLog": "/绝对路径/私有启动日志" }

DSH 上游必须是不带凭证的回环地址(如 http://127.0.0.1:3080)。不要把 token 放入 URL,也不要把 DSH 凭证发送到成员浏览器。

安全边界与已知限制

- 不是 OS 级多租户隔离。 所有 DSH Agent 运行在同一个宿主账户下,共享模型额度、宿主进程和其他宿主资源。
- 成员未明确允许的 DSH RPC 方法默认拒绝。
- 未识别的 WebSocket 事件类型默认丢弃。
- 宿主文件选择、系统设置、凭证、工作区创建/删除等特权方法对成员禁用。
- 宿主级插件(包括宠物、任务看板、SSH、技能中心等)的宿主路由不对成员开放;成员控制台会隐藏对应入口。
- 共享成员不能代替所有者审批工具请求;需要审批时仍由所有者处理。
- 共享历史中的图片/文件附件以占位符显示,避免泄露宿主或他人文件路径。
- 成员设置仍以只读/受限为主;模型供应商、内置插件、Agent 预设等宿主级设置不对成员开放。
- selftest 只检查清单和连通性,不代表所有浏览器交互均已验收。

完整威胁模型见 docs/security.md。

快速开始

bash
npm install -g dsh-team-hub@0.3.1

dsh-team-hub init alice bob
dsh-team-hub start

初始化时会打印一次 admin 初始密码。打开: text http://<服务器局域网IP>:3090

Admin 控制台: text http://<服务器局域网IP>:3090/admin

所有用户首次登录后,都必须用初始密码设置新密码。管理员随后可在「工作区」中设置共享成员。

升级 bash
npm install -g dsh-team-hub@latest

升级后重启网关服务(例如 macOS 的 launchd 服务或 Linux systemd 服务),然后刷新浏览器。Admin 静态资源使用 no-store,正常刷新即可加载新界面。

已有版本升级到 v0.3.1 后,原有成员、工作区和会话保持不变;新增的共享授权默认为空。

命令行 bash dsh-team-hub init [--port 3090] [--upstream http://127.0.0.1:3080] [member ...] dsh-team-hub start dsh-team-hub selftest dsh-team-hub user add <name> [--role member|admin] dsh-team-hub user disable <name> dsh-team-hub user enable <name> dsh-team-hub user reset-password <name> dsh-team-hub service install dsh-team-hub service status dsh-team-hub service uninstall

远程设置补丁(patch)

DSH 上游把 settings 设计为仅本机(loopback)可用:通过局域网 IP/域名访问时,设置页可能报「加载提供方目录失败」。当前版本可识别已知的 DSH 0.2 客户端表达式并自动打补丁;未知版本保持原样。
bash
dsh-team-hub patch status
dsh-team-hub patch apply
dsh-team-hub patch rollback

找不到 DSH 安装目录时,用 --dsh-root <path> 显式指定,或在 config.json 中设置 "dshRoot": "<path>"。

运行数据默认保存到: text ~/.dsh-team-hub

可通过环境变量修改: bash
export DSH_TEAM_HUB_HOME=/path/to/data

安全模型

- 未明确允许的 DSH RPC 方法默认拒绝
- 未识别的 WebSocket 事件默认丢弃
- 所有受保护参数都校验会话/工作区归属
- 成员可见列表只包含自己的资源以及被共享的资源
- 共享文件读取限制在已授权工作区内
- 共享消息只允许排队文本,不允许中断、审批或工作区修改
- 密码使用 scrypt 哈希
- 配置和会话文件权限为 0600
- 审计日志会脱敏 password/token/secret/api-key 类字段

Admin 控制台

控制台由网关提供,地址为 /admin:

- 总览
- 用户创建、禁用、启用、重置密码
- 工作区归属查看
- 工作区共享成员设置(双列选择器)
- 审计查询
- 系统状态和 DSH 兼容性自检

Member 继续使用正常的 DSH 界面,不需要理解网关内部实现。

共享目录

运行目录中包含: text shared/knowledge shared/repo

它们是 Member Agent 可读取的基础共享位置。共享工作区解决的是「某个具体项目工作区对多人可见/可协作」的问题;团队知识的发布、版本化和自动注入仍是后续路线图。

升级 DSH 后

本版本支持 DSH 0.2.0 及以上版本,但 DSH 的内部 RPC 和事件协议仍可能变化。升级 DSH 后建议运行: bash dsh-team-hub selftest
npm test

未识别的新方法会默认拒绝;如果新版本引入了新的安全功能,需要更新网关的成员白名单和投影规则。

路线图

v0.3 — 共享工作区协作(当前版本)

- 管理员按工作区授权共享成员
- 共享工作区、历史会话和文件预览
- 共享成员排队发送文本消息
- 撤销即时生效

后续版本

- 共享会话的审批协作与受控中断
- 团队知识库、提示词、Skills 和模板的发布/版本化/自动注入
- Codex / KimiWork 会话只读聚合
- 团队使用统计
- HTTPS 反向代理部署模板
- 多 DSH 主机管理

免责声明

这是独立社区项目,不是 DeepSeek 官方产品。

☕ 请作者喝杯咖啡

本项目由我在工作之外利用业余时间开发和维护,完全免费使用。

如果它对你有所帮助,欢迎请作者喝杯咖啡。你的支持会鼓励我继续维护项目,并持续改进体验。

感谢每一份支持与鼓励 ❤️

📢 开发者声明

本项目是开发者利用工作之外的业余时间独立开发和维护的免费开源项目。

项目的主要目的是学习、实践和分享,开发者会尽力维护项目的正常运行,并根据时间和精力持续改进。但由于项目由个人业余维护,无法承诺固定的更新频率,也无法保证所有问题都能及时修复或响应。

欢迎提交 Issue 和 Pull Request,也欢迎提出建议和反馈。对于项目使用过程中可能产生的任何直接或间接损失,请在使用前自行评估并承担相应风险。

项目完全免费使用,任何捐助都不是必须的,也不会影响项目的正常使用。感谢你的理解、支持与鼓励!

License

MIT
预览分享卡片长什么样 ↓zhoujianbin/dsh-team-hub
分享 · DeepSeek Harness Hub
zhoujianbin/dsh-team-hub

把单用户的 DeepSeek Harness Web 实例,变成局域网内可安全共用的团队服务。

回到顶部