dsh-chatgpt-bridge
通过 MCP 让 ChatGPT Web 创建、查看、继续和监督 DeepSeek Harness Agent 会话与 Goal,同时保留 DSH 原生的审批、沙箱与工作区安全模型。
安装
dsh plugin --profile web add dsh-chatgpt-bridge
沙箱测试结果
| 阶段 | 结果 |
|---|---|
| 1 安装 | ✗ |
| 2 列装 | — |
| 3 挂载 | — |
| 4 启动 | — |
dsh: initialized profile web at /home/node/.dsh/profiles/web四阶段在隔离沙箱里跑:安装(有网)→ 列装 → 挂载 → 启动(后三步断网)。
README
dsh-chatgpt-bridge

Let ChatGPT drive your local DSH agents.
在 ChatGPT 里创建任务、继续会话、监督 Goal、处理审批并检查结果,不用在 ChatGPT 和 DSH 之间反复复制 Prompt。
dsh-chatgpt-bridge connects ChatGPT Web → secure MCP tunnel → DeepSeek Harness (DSH). ChatGPT becomes the control surface; DSH keeps the agent loop, tools, skills, subagents, workflows, sandbox, approvals and workspace security model.
The bridge connects the two sides. It does not replace DSH, modify DSH core, or route DSH model traffic through ChatGPT.
Version 0.6.0 targets DSH 0.1.7-rc.2 exactly (the official npm latest at verification, itself a release candidate). Other DSH channels are outside this version's tested range. After a successful connection, ChatGPT should see tool count = 23. See the [compatibility evidence](docs/dsh-compatibility-2026-09-28.md).
Why this exists
A normal ChatGPT + local-agent workflow has too much manual glue:
Think in ChatGPT
↓
copy prompt to DSH
↓
wait / inspect logs
↓
copy result back
↓
review in ChatGPT
↓
repeat
With the bridge:
ChatGPT Web ↓ create / continue / supervise / approve Secure MCP tunnel ↓ dsh-chatgpt-bridge ↓ DeepSeek Harness ↓ local workspace + tools + agent runtime
You stay in ChatGPT while DSH remains the execution engine.
What you can do from ChatGPT
- create and inspect native DSH sessions;
- send follow-up instructions without copying context between apps;
- start, inspect, update and wait on Goals;
- approve DSH actions through the bridge when your DSH policy requires it;
- list registered workspaces and inspect runtime health;
- keep using DSH's own sandbox, approval and workspace boundaries;
- manage the supported tunnel runtime from the DSH Web settings UI.
Real setup
The screenshot is from a real DSH Web installation with sensitive values masked.
Quick start
Requirements
- Node.js 22+
- DeepSeek Harness
0.1.7-rc.2(dshonPATH) - a DSH Web profile/runtime
- ChatGPT access that can use the currently supported MCP/custom-app connection flow
1. Install the plugin
Install v0.6.0 into the matching DSH 0.1.7-rc.2 host:
dsh plugin --profile web add dsh-chatgpt-bridge@0.6.0
To install from a reviewed source checkout instead:
npm ci npm run typecheck npm run build npm test npm run test:release pnpm dlx @deepseek-ai/dsh@0.1.7-rc.2 plugin --profile web add "file:$PWD"
Source installation into a real profile was not part of release verification. Back up the profile before upgrading DSH: DSH owns V3 session migration. npm install dsh-chatgpt-bridge alone is not enough: the plugin must be added to a DSH profile bundle. Published v0.5.1 remains tied to the older DSH 0.1.1-rc.2 host.
2. Start DSH Web
dsh web
Keep DSH Web and the bridge in the same web profile/runtime so ChatGPT-created sessions appear live in the UI.
Default local endpoints:
Service · Endpoint
DSH Web · http://127.0.0.1:3080
Bridge MCP · http://127.0.0.1:3456/mcp
3. Read the bridge token
Windows PowerShell:
Get-Content "$HOME\.dsh\chatgpt-bridge.token"
macOS / Linux:
cat ~/.dsh/chatgpt-bridge.token
Treat this token like a password. Do not commit it, post it, or paste it into public chats.
Alternatively, set DSH_CHATGPT_BRIDGE_TOKEN yourself and the bridge uses it instead of generating a file.
4. Connect ChatGPT
ChatGPT Web cannot reach a plain localhost MCP endpoint directly. Use the secure MCP/tunnel connection mechanism currently supported by OpenAI and forward it to:
http://127.0.0.1:3456/mcp
Use the bridge token as the MCP bearer credential where the connection flow requires it.
The bridge keeps a localhost-first design: it binds 127.0.0.1, never exposes a public interface, and never self-hosts a tunnel.
5. Refresh tools and verify
After connecting, refresh/rescan the MCP tools in ChatGPT and run a read-only check:
请使用已连接的 DSH App,只做只读检查: 1. 调用 dsh_health 2. 调用 dsh_list_workspaces 3. 不修改任何文件 4. 返回 bridge version、health 和 workspace 名称
A healthy first check should look like:
bridge version = 0.6.0 tool count = 23
If health is OK, the version matches, and your registered workspace appears, the control path is ready.
First useful workflow
A practical pattern is:
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
For a safe first run, start with a read-only Goal:
使用 DSH App 创建一个只读检查目标: - workspace 使用 dsh_list_workspaces 查到的已注册工作区 - goal:只读检查项目 - constraints:read_only=true - 列出项目结构并总结 README - 等待目标结束后只汇报结果,不修改任何文件
Security model
This is a control bridge, not a remote shell replacement.
- The MCP server binds to loopback by default.
- It binds
127.0.0.1, never exposes a public interface, and never self-hosts a tunnel. - DSH remains responsible for its own sandbox, approvals and workspace rules.
- The bridge only works with workspaces already registered in DSH.
- Tokens and tunnel/runtime secrets are stored outside the repository and should never be committed.
- Write/action tools are real actions. Keep approval policies appropriate for the workspace you expose.
- Tunnel/runtime management is designed to fail closed around process ownership and lifecycle ambiguity.
If you only need inspection, use read-only prompts and keep DSH constraints read-only.
What this project is not
- It is not a Ch
…(truncated)
以上内容来自 npm 上的 README,我们只做格式化,不改内容。
版本
npm 上共发布:8,最后更新 2026-09-29