dsh-system-proxy: A plugin that enables DeepSeek Harness to reuse Windows system proxy

Introduction

Running DeepSeek Harness (DSH) on Windows, if a proxy is required, there are two common approaches: enabling TUN mode on the proxy software to take over the machine’s routing, or manually setting the HTTP_PROXY / HTTPS_PROXY environment variables before starting DSH. The former involves setting up a virtual network card and modifying routing, while the latter easily misses child processes and requires repeating configuration in every terminal.

The bozheng-li/dsh-system-proxy introduced below follows a third path: it reads the WinINET system proxy already configured by the current Windows user, allowing internal model requests, plugin installation, and development tools in DSH to share this network path, without requiring TUN mode, and without needing to manually enter IP addresses and ports.

What is it

dsh-system-proxy is a DSH plugin maintained by Bozheng-Li. It addresses a singular problem: allowing DSH running in Electron to directly reuse the Windows system proxy while keeping the system network from being taken over.

The current version of the plugin is 0.1.1, with 1 GitHub star, an MIT license, and the corresponding npm package dsh-system-proxy available in the directory. Its execution workflow can be summarized as:

Windows WinINET ──> System Proxy ──> DSH / undici / child processes
                             │
                             └── TUN: not required

In other words, when DSH starts, the plugin reads the current user’s WinINET settings and injects proxy rules into the Node.js/undici request path and DSH-derived child processes.

Core Capabilities

The capabilities listed in the README are three items, recorded here verbatim:

  1. Automatically reads the current user’s Windows HTTP proxy without needing to pre-fill address and port.
  2. Does not modify routing, does not create virtual network cards, does not open listening ports, effectively avoiding control of the system network.
  3. Model requests, Web Search, HTTP MCP, pnpm, and git share the same proxy path, and installation tools are also effective.

The coverage has boundaries, clearly stated in the README: the plugin covers Node.js/undici requests and DSH-derived child processes; traffic for login and updates handled by Electron itself is not guaranteed to be covered.

Installation and Activation

The plugin has requirements for the host version and operating system: DSH versions prior to 0.3.0, specifically 0.2.1-rc.2 to 0.3.0; Windows 10/11; Node.js requires >=22.19.0.

The simplest installation method is to enter the package name in DSH’s “Plugins → Add Plugin”:

dsh-system-proxy@0.1.1

After installation, DSH must be fully exited and reopened; otherwise, the plugin will not take over requests on the next startup.

If you are accustomed to using the command line, you can use the following method. The prerequisite is that dsh is in your PATH:

dsh plugin --profile desktop add dsh-system-proxy

When the CLI included with the desktop version is not in PATH, you can call its full path directly:

& "D:\deepseek-harness\resources\runtime\cli\bin\dsh.cmd" `
  plugin --profile desktop add dsh-system-proxy

You can also install directly from GitHub:

dsh plugin --profile desktop add "github:Bozheng-Li/dsh-system-proxy"

The activation steps are three in order:

  1. Open the system proxy in the proxy software.
  2. Keep TUN mode off.
  3. Restart DSH.

When the plugin starts, it reads the current user’s WinINET settings in Windows, and by default, no IP address or port needs to be filled in.

Typical Usage

In most scenarios, no extra configuration is needed, as the plugin’s defaults are sufficient:

mode: auto
useWindowsBypass: true

mode: auto indicates following the Windows system proxy, and useWindowsBypass being true means merging Windows’s bypass list.

If you wish to always use a specific proxy address, add the following to %USERPROFILE%\.dsh\profiles\desktop\cordis.patch.yml:

- id: system-proxy
  config:
    mode: manual
    proxyUrl: http://127.0.0.1:7897

Configuration items and priority are as recorded in the README:

Config Description
mode: auto Follow Windows system proxy, default
mode: manual Always use proxyUrl
mode: off Do not apply plugin proxy
useWindowsBypass Merge Windows bypass list, default true

Priority from high to low is: explicit HTTP_PROXY / HTTPS_PROXY environment variables → plugin config → Windows system proxy.

Two limitations to note: PAC/WPAD is not supported; SOCKS proxy requires entering the HTTP or mixed port provided by the proxy software.

Verification and Troubleshooting

After the plugin activates, this line will appear in the startup log:

dsh-system-proxy: using http://127.0.0.1:7897 from Windows system proxy

To confirm if the Windows-side settings and proxy port are normal, you can execute:

Get-ItemProperty `
  'HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings' |
  Select-Object ProxyEnable, ProxyServer

Test-NetConnection 127.0.0.1 -Port 7897

If the plugin is not working, the README suggests checking in order: system proxy is on, port is listening, DSH has been fully exited and restarted, current profile is desktop, and it is not overridden by explicit proxy environment variables.

Uninstall command:

dsh plugin --profile desktop remove dsh-system-proxy

After execution, DSH also needs to be restarted.

Applicable Scenarios and Notes

The suitable scenarios are quite clear: users who have already configured a system proxy on Windows and want all outbound requests inside DSH (model calls, Web Search, HTTP MCP, pnpm, git) to go through the same chain, while not wanting to enable TUN mode.

A few points to note:

  1. The plugin covers Node.js/undici requests and DSH-derived child processes; traffic for login and updates handled by Electron itself is not guaranteed to be covered.
  2. The plugin runs with the permissions of the current DSH process; it is recommended to check the source code and license before installing. The plugin is under the MIT license and the repository is public.
  3. The conditional coverage scope is limited: it only supports Windows 10/11, and requires DSH versions between 0.2.1-rc.2 and 0.3.0.
  4. The project currently has 1 star and is a very new plugin; you need to track subsequent compatibility changes yourself.

Conclusion

The value of dsh-system-proxy lies in simplifying “making DSH use a proxy” into one installation and three enabling steps, at the cost of not taking over the system network and only covering internal DSH request paths. If you only want to reuse the existing Windows system proxy and don’t want to touch routing, this plugin is currently a relatively direct approach.

Directory Page: https://www.skillhub.cn/plugins/Bozheng-Li/dsh-system-proxy

Repository: https://github.com/Bozheng-Li/dsh-system-proxy

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye