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

ChatGPT 桥接 jiezeng2004-design/dsh-chatgpt-bridge

DeepSeek Harnessv0.6.0
jiezeng2004-design25 天前有提交已提供中文文档扫描:含敏感能力

让 ChatGPT 驱动你本地的 DSH 智能体。

44.8/100
综合分
19
GitHub 星标
368
npm 周下载
—/5
用户评分

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

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

状态速览

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

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

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

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

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

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/30 11:48:11

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

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

可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 64 处,展示前 64 条)
  • 发起网络请求
    lib/client.js:250
    const response = await fetch(API + path, { cache: 'no-store' });
  • 发起网络请求
    lib/client.js:261
    const response = await fetch(API + path, {
  • 读取本地文件
    lib/config.js:104
    const raw = readFileSync(path, 'utf8').trim();
  • 写入本地文件
    lib/config.js:162
    mkdirSync(dirname(path), { recursive: true });
  • 写入本地文件
    lib/config.js:163
    writeFileSync(path, token + '\n', { encoding: 'utf8', flag: 'wx', mode: 0o600 });
  • 读取本地文件
    lib/config.js:168
    if (error.code === 'EEXIST' && existsSync(path)) {
  • 写入本地文件
    lib/log.js:10
    mkdirSync(dir, { recursive: true });
  • 写入本地文件
    lib/log.js:22
    appendFileSync(file, `${new Date().toISOString()} [${level}] ${line}\n`);
  • 写入本地文件
    lib/log.js:53
    mkdirSync(dir, { recursive: true });
  • 写入本地文件
    lib/log.js:62
    appendFileSync(file, JSON.stringify({ time: new Date().toISOString(), level, message: line }) + '\n');
  • 删除本地文件
    lib/control/runtime-manager.js:806
    rmSync(healthUrlFile, { force: true });
  • 删除本地文件
    lib/control/runtime-manager.js:807
    rmSync(pidFile, { force: true });
  • 读取本地文件
    lib/control/routes.js:153
    if (!existsSync(path))
  • 读取本地文件
    lib/control/routes.js:155
    const stat = statSync(path);
  • 读取本地文件
    lib/control/routes.js:161
    raw = readFileSync(path, 'utf8');
  • 读取本地文件
    lib/temp-resources.js:98
    exists: (path) => existsSync(path),
  • 删除本地文件递归
    lib/temp-resources.js:100
    rmSync(path, { recursive: true, force: true });
  • 执行外部命令固定命令
    lib/temp-resources.js:103
    spawnSync('git', ['worktree', 'remove', '--force', path], {
  • 读取本地文件
    lib/goal-control.js:275
    return readFileSync(join(dir, `${safeSessionFileId(sessionId)}.json`), 'utf8');
  • 写入本地文件
    lib/goal-control.js:282
    mkdirSync(dir, { recursive: true });
  • 写入本地文件
    lib/goal-control.js:286
    writeFileSync(tmp, json, 'utf8');
  • 写入本地文件
    lib/goal-control.js:287
    renameSync(tmp, target);
  • 删除本地文件
    lib/goal-control.js:291
    rmSync(tmp, { force: true });
  • 读取本地文件
    lib/workspace-guard.js:142
    const info = await stat(join(normalized, relativePath));
  • 读取本地文件
    lib/result-schema.js:211
    if (!existsSync(file))
  • 读取本地文件
    lib/result-schema.js:215
    text = readFileSync(file, 'utf8');
  • 读取本地文件
    lib/paths.js:22
    if (!existsSync(root))
  • 读取本地文件
    lib/paths.js:35
    while (!existsSync(current)) {
  • 写入本地文件
    lib/control/secret-store.js:19
    chmodSync(path, 0o600);
  • 读取本地文件
    lib/control/secret-store.js:52
    return existsSync(this.runtimeApiKeyPath);
  • 写入本地文件
    lib/control/secret-store.js:59
    mkdirSync(this.secretsDir, { recursive: true });
  • 写入本地文件
    lib/control/secret-store.js:60
    writeFileSync(this.runtimeApiKeyPath, value + '\n', 'utf8');
  • 删除本地文件
    lib/control/secret-store.js:66
    rmSync(this.runtimeApiKeyPath, { force: true });
  • 读取本地文件
    lib/control/secret-store.js:77
    const raw = readFileSync(this.runtimeApiKeyPath, 'utf8').trim();
  • 写入本地文件
    lib/control/secret-store.js:91
    mkdirSync(this.secretsDir, { recursive: true });
  • 写入本地文件
    lib/control/secret-store.js:95
    writeFileSync(this.mcpAuthorizationPath, content, 'utf8');
  • 读取本地文件
    lib/control/secret-store.js:102
    return readFileSync(path, 'utf8');
  • 读取本地文件
    lib/control/config-store.js:75
    raw = readFileSync(this.file, 'utf8');
  • 写入本地文件
    lib/control/config-store.js:116
    mkdirSync(dir, { recursive: true });
  • 写入本地文件
    lib/control/config-store.js:119
    writeFileSync(tmp, JSON.stringify(config, null, 2) + '\n', 'utf8');
  • 写入本地文件
    lib/control/config-store.js:120
    renameSync(tmp, this.file);
  • 删除本地文件
    lib/control/config-store.js:124
    rmSync(tmp, { force: true });
  • 写入本地文件
    lib/control/profile-generator.js:64
    mkdirSync(dir, { recursive: true });
  • 写入本地文件
    lib/control/profile-generator.js:67
    writeFileSync(tmp, buildProfileYaml(input), 'utf8');
  • 写入本地文件
    lib/control/profile-generator.js:69
    renameSync(tmp, target);
  • 删除本地文件
    lib/control/profile-generator.js:72
    rmSync(tmp, { force: true });
  • 读取本地文件
    lib/control/process-tunnel-runtime.js:203
    if (existsSync(urlFile)) {
  • 读取本地文件
    lib/control/process-tunnel-runtime.js:204
    const raw = readFileSync(urlFile, 'utf8').trim();
  • 删除本地文件
    lib/control/process-tunnel-runtime.js:323
    rmSync(config.healthUrlFile, { force: true });
  • 删除本地文件
    lib/control/process-tunnel-runtime.js:330
    rmSync(config.pidFile, { force: true });
  • 执行外部命令固定命令
    lib/control/discover.js:170
    const result = spawnSync('powershell.exe', [
  • 读取本地文件
    lib/control/discover.js:194
    proc = readdirSync('/proc');
  • 读取本地文件
    lib/control/discover.js:205
    const comm = readFileSync(posixPath.join('/proc', entry, 'comm'), 'utf8').trim();
  • 读取本地文件
    lib/control/discover.js:214
    cmdline = readFileSync(posixPath.join('/proc', entry, 'cmdline'), 'utf8').replace(/ /g, ' ');
  • 执行外部命令固定命令
    lib/control/discover.js:234
    const result = spawnSync('ps', ['-ax', '-o', 'pid=,command='], { encoding: 'utf8', timeout: 5000 });
  • 读取本地文件
    lib/control/discover.js:365
    const read = hooks.readFileSync ?? ((p) => readFileSync(p, 'utf8'));
  • 读取本地文件
    lib/control/discover.js:370
    if (statSync(profilePath).size > MAX_PROFILE_BYTES)
  • 读取本地文件
    lib/control/discover.js:415
    const readDir = hooks.readdirSync ?? ((p) => readdirSync(p));
  • 执行外部命令固定命令
    lib/control/process-identity.js:49
    const result = spawnSync('powershell.exe', ['-NoProfile', '-NonInteractive', '-Command', `(Get-Process -Id ${pid} -ErrorAction SilentlyContinue).Path`
  • 执行外部命令固定命令
    lib/control/process-identity.js:59
    const result = spawnSync('ps', ['-p', String(pid), '-o', 'comm='], { encoding: 'utf8', timeout: 5000 });
  • 执行外部命令固定命令
    lib/control/process-identity.js:80
    const result = spawnSync('powershell.exe', [
  • 执行外部命令固定命令
    lib/control/process-identity.js:104
    const result = spawnSync('ps', ['-p', String(pid), '-o', 'lstart='], { encoding: 'utf8', timeout: 5000 });
  • 读取本地文件
    lib/control/process-identity.js:117
    const stat = readFileSync(`/proc/${pid}/stat`, 'utf8');
  • 读取本地文件
    lib/control/process-identity.js:125
    const bootTimeLine = readFileSync('/proc/stat', 'utf8').split('\n').find((line) => line.startsWith('btime '));
扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包

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

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

界面预览

1 张 · 点击查看大图

功能亮点

  • 创建DSH会话
  • 查看并继续会话
  • 控制智能体

MCP 桥接,让 ChatGPT 网页版能创建、查看、继续并控制 DeepSeek Harness(DSH)智能体会话。

v0.6.02026-09-29
· DSH 兼容性 版本 0.6.0 精确适配 DeepSeek Harness 0.1.7-rc.2。DSH 仍是候选发布版,其他 DSH 渠道和旧版宿主图不在本版本支持范围内。 · 按当前宿主约定适配了智能体设置、预设注册表、V3 会话读取、收件箱状态和分叉轮次状态。 · 把自动审批结果修正为官方的一次性放行结果。 · 更新无头覆盖层,避免存储和缓存服务重复。 · 保留桥接的 23 个 MCP 工具和回环与认证边界。 · 验证 · 精确源码 CI:Ubuntu 和 Windows,Node 22 和 24。每个任务依次做类型检查、构建、跑单元测试,然后在临时目录里用官方 DSH 安装打包好的包,跑两个宿主集成测试。 · Windows 本地回归:399 个测试,398 通过,1 个平台跳过,0 失败;打包包的宿主集成测试 2/2 通过。 · 真实浏览器 UI、模型轮次、ChatGPT 连接和隧道端到端不在本次发布验证范围内。 升级宿主前先备份真实的 DSH 配置档:V3 会话迁移由 DSH 负责,降级本插件不会回滚这次迁移。详情见 CHANGELOG.md 和兼容性报告。
v0.5.12026-08-28
· 重点 · 关闭 PR #5 中合并后 ChatGPT/Codex 审查提出的全部六项问题 · 整条命令审批与外部写入策略强制执行均采用失败即拒绝 · 非终态结构化结果状态如实反映,证据按会话隔离 · 旧版 dsh_start_goal 修订路径加乐观锁 · 仅对活跃 Goal 去重,并补充跨平台审批路径回归测试 · 验证 · GitHub Actions CI:提交 35072e1 在 Ubuntu/Windows × Node 22/24 全部通过 · 本地类型检查与构建通过 · 本地测试套件:385 项测试,384 项通过,1 项 Windows 平台专属权限测试跳过,0 项失败 · 生产依赖审计:0 个漏洞 · 包 dry-run 与隔离 tarball 安装/导入通过;私有文档已排除 · 隔离 TypeScript 输出比对:生成 74 个文件,0 处不一致 全新真实 DSH/ChatGPT UI 端到端测试仍属单独报告的验证边界,本次发布未运行。
v0.5.02026-08-28
· 亮点 · 可靠的目标预检校验与乐观修订 · 分级审批策略,高风险操作失败即关闭 · 单一可变工作区锁定,带脏工作树漂移保护 · 对昂贵的测试、发布、推送操作做执行幂等 · 结构化结果 schema 与凭据安全的状态自省 · DSH 0.1.1-rc.2 上的 23 个 MCP 控制面与数据面工具 · 验证 · PR 与主干 CI:Ubuntu、Windows × Node 22、24 全部通过 · 干净的已提交快照:类型检查、构建、373 项测试(372 项通过,1 项 Windows POSIX 权限跳过) · 生产依赖审计:0 个漏洞 · 发布压缩包:82 个文件;独立安装与导入冒烟测试通过 · SHA-256:8678968B34982A6B0D16E4CEC914CAEF1098C4478EFACCAAAE8A1D90CAEE054F 全新的真实 DSH、ChatGPT 界面端到端测试仍作为单独报告的验证边界。
数据来自仓库的 GitHub Release,可能与插件实际版本不一致。

README

由 DeepSeek 最新模型翻译生成
dsh-chatgpt-bridge M8ven Score 让 ChatGPT 驱动你本地的 DSH 智能体。 在 ChatGPT 里创建任务、继续会话、监督 Goal、处理审批并检查结果,不用在 ChatGPT 和 DSH 之间反复复制提示词。 dsh-chatgpt-bridge 把 ChatGPT Web → 安全 MCP 隧道 → DeepSeek Harness(DSH) 连起来。ChatGPT 成为控制面板;DSH 保留智能体循环、工具、技能、子代理、工作流、沙箱、审批和工作区安全模型。 桥接负责连接两端。它不替代 DSH,不修改 DSH 核心,也不把 DSH 的模型流量绕经 ChatGPT。 已发布的 0.6.0 精确对应 DSH 0.1.7-rc.2。未发布的工作树现在对应 0.2.0-rc.2,本地测试和打包后的官方 CLI/Web/MCP 验收已于 2026-10-08 通过。包版本尚未提升,也未重新发布。参见当前兼容性证据和已发布版本证据。连接成功后,ChatGPT 应看到 工具数量 = 23。
展开完整文档(README 剩余 1 节)
dsh-chatgpt-bridge

M8ven Score

让 ChatGPT 驱动你本地的 DSH 智能体。

在 ChatGPT 里创建任务、继续会话、监督 Goal、处理审批并检查结果,不用在 ChatGPT 和 DSH 之间反复复制提示词。

dsh-chatgpt-bridge 把 ChatGPT Web → 安全 MCP 隧道 → DeepSeek Harness(DSH) 连起来。ChatGPT 成为控制面板;DSH 保留智能体循环、工具、技能、子代理、工作流、沙箱、审批和工作区安全模型。

桥接负责连接两端。它不替代 DSH,不修改 DSH 核心,也不把 DSH 的模型流量绕经 ChatGPT。

已发布的 0.6.0 精确对应 DSH 0.1.7-rc.2。未发布的工作树现在对应 0.2.0-rc.2,本地测试和打包后的官方 CLI/Web/MCP 验收已于 2026-10-08 通过。包版本尚未提升,也未重新发布。参见当前兼容性证据和已发布版本证据。连接成功后,ChatGPT 应看到 工具数量 = 23。

为什么需要它

普通的 ChatGPT + 本地智能体工作流,手动拼接的部分太多:

Think in ChatGPT
↓
copy prompt to DSH
↓
wait / inspect logs
↓
copy result back
↓
review in ChatGPT
↓
repeat

有了桥接之后:

ChatGPT Web
↓ create / continue / supervise / approve
Secure MCP tunnel
↓
dsh-chatgpt-bridge
↓
DeepSeek Harness
↓
local workspace + tools + agent runtime

你留在 ChatGPT 里,DSH 仍然是执行引擎。

在 ChatGPT 里能做什么

- 创建并查看原生 DSH 会话;
- 发送后续指令,不用在应用之间复制上下文;
- 启动、查看、更新并等待 Goal;
- 当 DSH 策略要求时,通过桥接审批 DSH 操作;
- 列出已注册的工作区,检查运行时健康状况;
- 继续沿用 DSH 自己的沙箱、审批和工作区边界;
- 在 DSH Web 设置界面里管理受支持的隧道运行时。

实际配置

DSH Web ChatGPT Bridge settings running in a real installation

截图来自真实的 DSH Web 安装,敏感值已打码。

快速开始

环境要求

- Node.js 22+
- DeepSeek Harness 0.1.7-rc.2(dsh 在 PATH 上)
- 一个 DSH Web 配置档/运行时
- 能使用当前受支持的 MCP/自定义应用连接流程的 ChatGPT 访问权限

1. 安装插件

把 v0.6.0 安装到匹配的 DSH 0.1.7-rc.2 宿主:

dsh plugin --profile web add dsh-chatgpt-bridge@0.6.0

如果要从审阅过的源码检出安装:

npm ci
npm run typecheck
npm run build
npm test
npm run test:release
pnpm dlx @deepseek-ai/dsh@0.2.0-rc.2 plugin --profile web add "file:$PWD"
把源码安装到真实配置档,不在发布验证范围内。升级 DSH 前先备份配置档:V3 会话迁移由 DSH 负责。只跑 npm install dsh-chatgpt-bridge 还不够:插件必须加进 DSH 配置档 bundle。已发布的 v0.5.1 仍绑定较旧的 DSH 0.1.1-rc.2 宿主。

2. 启动 DSH Web

dsh web

让 DSH Web 和 bridge 跑在同一个 web 配置档/运行时里,这样 ChatGPT 创建的会话才会实时出现在 UI 中。

默认本地端点:

| 服务 | 端点 |
| DSH Web | http://127.0.0.1:3080 |
| Bridge MCP | http://127.0.0.1:3456/mcp |

3. 读取 bridge token

Windows PowerShell:

Get-Content "$HOME\.dsh\chatgpt-bridge.token"

macOS / Linux:

cat ~/.dsh/chatgpt-bridge.token

把这个 token 当密码看待。不要提交、不要发帖、不要粘到公开聊天里。

你也可以自己设置 DSH_CHATGPT_BRIDGE_TOKEN,bridge 会直接用它,不再生成文件。

4. 连接 ChatGPT

ChatGPT Web 无法直接访问纯 localhost 的 MCP 端点。用 OpenAI 目前支持的安全 MCP/隧道连接机制,转发到:

http://127.0.0.1:3456/mcp

连接流程需要凭据时,用 bridge token 作为 MCP bearer 凭据。

bridge 坚持 localhost 优先的设计:只绑定 127.0.0.1,绝不暴露公网接口,也绝不自己托管隧道。

5. 刷新工具并验证

连接完成后,在 ChatGPT 里刷新/重新扫描 MCP 工具,跑一次只读检查:

请使用已连接的 DSH App,只做只读检查:
1. 调用 dsh_health
2. 调用 dsh_list_workspaces
3. 不修改任何文件
4. 返回 bridge version、health 和 workspace 名称

健康的首次检查应该长这样:

bridge version = 0.6.0
tool count = 23

如果 health 正常、版本对得上、注册的工作区也出现了,控制链路就通了。

第一个有用的工作流

一个实用的模式是:

ChatGPT: define the task and constraints
↓
Bridge: create / start a DSH Goal
↓
DSH: execute inside its registered workspace
↓
Bridge: wait, inspect status, surface approvals
↓
ChatGPT: review the result and decide what happens next

想安全地跑第一次,先从一个只读 Goal 开始:

使用 DSH App 创建一个只读检查目标:
- workspace 使用 dsh_list_workspaces 查到的已注册工作区
- goal:只读检查项目
- constraints:read_only=true
- 列出项目结构并总结 README
- 等待目标结束后只汇报结果,不修改任何文件

安全模型

这是控制桥,不是远程 shell 的替代品。

- MCP 服务器默认绑定 loopback。
- 只绑定 127.0.0.1,绝不暴露公网接口,也绝不自己托管隧道。
- DSH 自己的沙箱、审批和工作区规则仍由 DSH 负责。
- bridge 只操作 DSH 里已注册的工作区。
- token 和隧道/运行时密钥存放在仓库之外,绝不应提交。
- Write/action 工具会执行真实操作。请根据你开放的工作区,设置合适的审批策略。
- Tunnel/runtime 管理在进程归属和生命周期不明确时会 fail closed。

如果你只需要检查,请使用只读提示词,并让 DSH 约束保持只读。

这个项目不是什么

- 它不是 ChatGPT API 代理。
- 它不会让 DSH 把你的 ChatGPT 订阅当作模型服务商。
- 它不会把任意工作区上传到 ChatGPT。
- 它不会绕过 DSH 审批或沙箱。
- 它不会修改 DeepSeek Harness 核心。

故障排查

ChatGPT 连不上

127.0.0.1 只存在于你的机器上。确认你使用的安全隧道/MCP 连接转发到了 bridge 端点,并且 bridge token 与正在运行的 DSH 配置档一致。

401 Unauthorized

从当前生效的 DSH home/profile 重新读取 token,并确认连接器发送了匹配的 bearer 凭据。

没有工作区出现

bridge 只列出已注册的 DSH 工作区。请先在 DSH 中注册项目;bridge 有意不自动注册任意文件系统路径。

会话存在,但在 DSH Web 中不是实时状态

让 bridge 和 DSH Web 运行在同一个 web profile/runtime 中。不同的 runtime 可能会持久化会话,但不会提供相同的实时 UI 行为。

工具列表看起来是旧的

按需重启/升级插件,然后在 ChatGPT 侧刷新/重新扫描 MCP 工具。

隧道始终不启动(Tunnel: stopped、tunnel-health-url-timeout)

查看 ~/.dsh/chatgpt-bridge/logs/manager.ndjson 中的 tunnel-client 启动日志行。常见原因是 tunnel-client 二进制文件用错了:每个 GitHub release 都提供两种版本,精简 runtime 构建不接受本插件传入的参数。

| 资产 | 二进制文件 | 能否配合本插件使用 |
| tunnel-client-v<version>-<os>-<arch>.zip | tunnel-client | 可以——用这个 |
| tunnel-client-runtime-v<version>-<os>-<arch>.zip | tunnel-client-runtime | 不行——会拒绝 --admin-ui.log-buffer-events |

使用 runtime 构建时的症状:

warn unknown flag: --admin-ui.log-buffer-events
warn tunnel-client exited code=1 signal=null
warn runtime mutation failed: tunnel-client did not report a health URL in time

启动错误现在还会带上子进程的退出状态和最后一行 stderr,所以这个问题会直接显示在 UI 中,而不会看起来像网络问题。安装完整的 client 二进制文件(插件查找的是名为 tunnel-client 的文件;不要把 runtime 构建改名来蒙混过关),把 Tunnel executable path 指向它,然后重新启动。

顺便也检查一下其他常见原因:Tunnel ID / Runtime API Key 未配置,以及——在无法直接访问 api.openai.com 的网络上——Enable proxy 没有打开。

项目状态

这是一个活跃维护的独立 DSH 插件。兼容版本跟随 DeepSeek Harness 的变化,同时保留桥接层的 MCP/工具语义与安全边界。

当前源码版本:

dsh-chatgpt-bridge@0.6.0

兼容性:v0.6.0 → DSH 0.1.7-rc.2。对应发布提交在 Node 22 和 24 上通过了 Ubuntu 与 Windows CI,覆盖打包安装,以及无模型的官方 DSH 命令行/Web/MCP 集成。浏览器 UI、真实模型调用、ChatGPT 与隧道端到端流程在这一版本仍未验证。更早发布的 v0.5.1 包面向 DSH 0.1.1-rc.2。

分发与生态收录:

- npm
- M8ven
- dshbase
- DSHarness

第三方目录的标签只代表这些目录自己的检查结果,不是安全审计,也不构成背书。

开发

桥接层是独立的 DSH 插件,不改动 DSH 核心。开发重点:

- MCP 工具/schema 兼容性;
- 目标/会话生命周期可靠性;
- 原生设置与隧道运行时管理;
- 进程归属安全;
- 在受支持的 DSH 版本上做回归与兼容性测试。

发布新版本前,先运行 npm run typecheck、npm run build、npm test 和 npm run test:release。最后一条命令会在临时目录里安装真实的 tarball 和指定版本的 DSH 宿主。

许可证

MIT。见 LICENSE。

非官方社区项目。与 OpenAI 或 DeepSeek 无隶属关系,也未获其背书。
预览分享卡片长什么样 ↓jiezeng2004-design/dsh-chatgpt-bridge
分享 · DeepSeek Harness Hub
jiezeng2004-design/dsh-chatgpt-bridge

让 ChatGPT 驱动你本地的 DSH 智能体。

回到顶部