DSH desktop / web client LLM requests are issued by the host Node process and use Node’s global fetch (undici). By default, this interface does not read system proxy settings and does not recognize the HTTPS_PROXY environment variable. When the API endpoint is blocked by Cloudflare based on IP, or must be accessed through a proxy, this plugin injects a ProxyAgent inside the process so that all requests are sent out through the proxy you specify, without enabling TUN mode.

Plugin Overview

dsh-proxy is a plugin that injects a custom HTTP proxy into DeepSeek Harness, maintained by BuLongY. It solves the problem that DSH does not read system proxy settings or proxy environment variables by default, and intercepts global fetch traffic to enable proxy-based routing.

Core Features

  • Inject a custom HTTP proxy: Installs a custom proxy interceptor inside the host process.
  • Route all fetch traffic: Including LLM requests, model discovery, plugin marketplace, web search, and all other global network requests.
  • Support mainstream proxy tools: Supports proxy services such as Clash, mihomo, and v2ray.
  • No TUN mode required: Proxying is implemented only through port forwarding and does not rely on network card virtualization.
  • Flexible configuration: Supports configuring host, port, and noProxy (bypass list).
  • Independent of the system proxy: Does not read proxy configuration from Windows settings or environment variables.

Installation and Enablement

Run the following command in the command line to install it:

dsh plugin --profile desktop add github:BuLongY/dsh-proxy

After installation is complete, restart DSH Desktop to enable the plugin. By default, the plugin enables the proxy address 127.0.0.1:7890 (Clash mixed port).

Configuration and Usage

After installation, configure it in DSH under Settings → Plugins → Plugin Settings → dsh-proxy.

Main configuration options:
* enabled: Master switch. Turning it off restores direct connections.
* host: Proxy server address, default 127.0.0.1.
* port: Proxy server port, default 7890.
* noProxy: Bypass list, default includes localhost, 127.0.0.1, ::1, and [::1].

Configuration changes take effect immediately after saving; no need to restart DSH.

Verification steps:
1. Ensure Clash / mihomo is running and the mixed port is 7890.
2. Open the API provider settings page for an endpoint that requires a proxy.
3. Click Fetch Available Models.
4. If the model list loads successfully, the proxy injection succeeded.

Notes

  • Only HTTP proxy is supported: SOCKS5 is not supported. Use the mixed port (HTTP proxy port) of Clash/mihomo.
  • Does not read system settings: The plugin does not rely on Windows system proxy settings and does not read environment variables such as HTTPS_PROXY.
  • Global traffic: All global fetch traffic (including plugin marketplace access) will go through the proxy.
  • Development platform: Main development and testing platform is Windows 10/11, requiring Node.js >= 20.
  • Compatibility: Does not conflict with Clash TUN mode; both can be enabled at the same time.

dsh-proxy replaces the Node.js global dispatcher to provide DSH with another solution for network access restrictions, especially suitable for scenarios where DeepSeek Harness must be used in specific network environments.