Introduction

DeepSeek Harness (DSH) executes agent loops, tool calls, workspace approvals, and sandbox policies locally or in a self-hosted runtime. During daily development, you often already have ChatGPT open in your browser but need to switch to the DSH Web or terminal to start new sessions, track progress, or handle approvals. Without a unified entry point across both systems, it’s even harder for remote colleagues to “see” what the local DSH is doing.

The dsh-chatgpt-bridge introduced below is an MCP bridging pathway: it allows ChatGPT Web to invoke the local DSH via the official Model Context Protocol within a controlled tunnel, enabling the creation, viewing, continuation, and supervision of agent sessions. The control direction is ChatGPT Web → Secure MCP Tunnel → Bridge Plugin → DSH; it does not enable DSH to call ChatGPT, nor does it route DSH model requests to ChatGPT.

What This Is

dsh-chatgpt-bridge is continuously maintained as an independent DSH plugin by maintainer jiezeng2004-design. The current publicly released version is 0.4.1 (same name on npm), and the README indicates end-to-end verification on DSH 0.1.1-rc.1. The license is MIT.

The plugin only handles the connection: conversation logs, agent loops, tools, skills, sub-agents, workflows, approvals, sandbox, and workspace security models remain handled by the DSH core without requiring modifications to the core DSH code. In community directories like SkillHub, it is categorized as a “workflow” type plugin.

Core Features

MCP Tool Surface

The bridge exposes 15 tools via MCP. After establishing the connection, the tool list should be scanned or refreshed on the ChatGPT side; the README requires that the list includes the 15th tool dsh_update_goal. If missing, the connector should be rescanned.

Tools explicitly mentioned in the documentation include:

  • Read-only checks: dsh_health, dsh_list_workspaces
  • Sessions and messages: dsh_send_message
  • Goal supervision: dsh_start_goal, dsh_wait_goal, dsh_update_goal
  • Approval: dsh_approve

These include write and action tools, not limited to read-only MCP operations. The bridge will drive real DSH agents, modifying files within registered DSH workspaces according to approval and sandbox policies. You should understand this permission boundary before installation.

Native Settings and Tunnel Runtime (v0.4.0)

The Settings → ChatGPT Bridge page in DSH Web provides a graphical interface to manage the OpenAI tunnel: configure the tunnel, save the Runtime API key, start/stop/restart the plugin’s built-in tunnel-client, view real-time status, run layered diagnostics, and view anonymized logs.

The runtime configuration is located at $DSH_HOME/chatgpt-bridge/runtime-config.json; secrets are stored in $DSH_HOME/chatgpt-bridge/secrets/, and generated profiles are referenced only via file:. The management API is a loopback path /_dsh/chatgpt-bridge/* on the DSH Web server, with CSRF checks for Host/Origin/Content-Type.

Local Endpoints

When running both DSH Web and the bridge in the same web profile/runtime, the default endpoints are:

Purpose URL
DSH Web http://127.0.0.1:3080
Bridge MCP http://127.0.0.1:3456/mcp

The bridge binds to 127.0.0.1, does not expose public interfaces on its own, and does not create its own tunnels; ChatGPT Web needs to forward remote MCP client requests to the local loopback via mechanisms currently supported by OpenAI, such as the Secure MCP Tunnel.

Installation and Enabling

Environment Requirements

  1. Node.js >= 22, available in PATH.
  2. An available DSH installation (dsh in PATH); the README examples also show using pnpm dlx @deepseek-ai/dsh@0.1.1-rc.1 to replace dsh in each command.
  3. Use of the web profile is recommended: DSH Web and the bridge should run in the same web profile/runtime so that sessions created in ChatGPT are visible in real-time in DSH Web.
  4. The availability of MCP and write actions on the ChatGPT side depends on your current OpenAI plan and workspace; please consult the official OpenAI documentation before installation.

Installing the Plugin

It is recommended to install from the published npm package into the web profile:

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

Running npm install dsh-chatgpt-bridge alone is insufficient: the plugin must be added to the DSH profile bundle, which dsh plugin ... add accomplishes.

Starting the Runtime

dsh web

Start DSH Web and the bridge in the same web profile/runtime.

Reading the Authentication Token

On first startup, the bridge generates a token and writes it to $DSH_HOME/chatgpt-bridge.token. On macOS / Linux, read it with:

cat ~/.dsh/chatgpt-bridge.token

Do not commit this token to GitHub or paste it into public chats; it authorizes MCP access to your DSH runtime. You can also set the environment variable DSH_CHATGPT_BRIDGE_TOKEN manually, and the bridge will preferentially use that value.

Connecting to ChatGPT

ChatGPT Web cannot directly access the local http://127.0.0.1:3456/mcp. If the bridge is running locally, requests must be forwarded to the loopback via the Secure MCP Tunnel currently supported by OpenAI; use the token from step 3 as the MCP Authorization Bearer in the connector. stdio transport is not a fast path for ChatGPT Web; other MCP clients can refer to the Advanced section in the README.

After connecting, scan/refresh the MCP tools to confirm that all 15 tools (including dsh_update_goal) are present.

Typical Usage

Read-only Verification

Provide the following prompt to a ChatGPT instance connected via MCP to verify the bridge and DSH health:

Please use the connected DSH App for read-only checks only:
1. Call dsh_health
2. Call dsh_list_workspaces
3. Do not modify any files
4. Return the bridge version, health status, and workspace names

The expected result example from the README:

health = ok
bridge version = 0.4.1

Goal Supervision (Read-only Constraint)

After confirming the workspace name, you can use the Goal workflow for structured read-only checks:

Use dsh_start_goal to create a read-only check goal (using the workspace name found via dsh_list_workspaces), with the goal description "Read-only project check", a plan to list the project structure and summarize the README, and constraints using {"read_only": true}. Then repeatedly call dsh_wait_goal until terminal, and finally report only the health, goal revision, and summary without modifying any files.

The Goal Control Plane introduced in v0.3.0 and the native settings capabilities of v0.4.0 are still retained in 0.4.1.

Applicable Scenarios and Notes

Who is it for?

  • Those already running DSH locally or in a self-hosted environment who wish to unify initiating and supervising agent tasks within ChatGPT Web.
  • Remote colleagues who need to view DSH session progress and handle approvals via ChatGPT (protected by tunnel and token) without directly logging into the DSH machine.
  • Those who wish to maintain DSH’s existing security model, adding only an MCP bridge rather than modifying the DSH core.

Notes

  • The plugin runs with the permissions of the current dsh process; write tools can modify files within registered workspaces. Before installation, review the source code and MIT license, and understand the DSH approval and sandbox policies.
  • The bridge does not replace DSH’s model backend; model requests are still determined by DSH’s own configuration.
  • Directories like SkillHub, dshbase, DSHarness are community ecosystem listings without official affiliation with DeepSeek / High-Flyer; directory labels do not imply security audits or user-scale endorsements.
  • The GitHub repository currently has about 11 stars; the maintainers continuously track DSH upstream compatibility and release regression-tested versions.

Links

  • SkillHub directory page: https://www.skillhub.cn/plugins/jiezeng2004-design/dsh-chatgpt-bridge
  • GitHub repository: https://github.com/jiezeng2004-design/dsh-chatgpt-bridge
  • npm package: https://www.npmjs.com/package/dsh-chatgpt-bridge

After completing the above steps, you can establish a controlled MCP channel between ChatGPT Web and the local DSH: the session remains a native DSH session, the security boundaries are still handled by DSH, adding only an entry point from the browser side for creating and supervising agent workflows.