Preface

The DSH plugin system attaches web-side capabilities to the web profile. At runtime, the agent may itself initiate web_search, web_fetch, or call external APIs. If you want these requests to uniformly go through a local proxy, rather than modifying external tools, system environment variables, or call parameters individually, dsh-net-proxy provides a direct entry point: fill in the proxy address once in the DSH settings, and let the fetch calls within the agent process use that proxy.

What This Is

dsh-net-proxy is a DeepSeek Harness (DSH) network proxy plugin, with the repository at https://github.com/mafeis/dsh-net-proxy, licensed under MIT. The current version verified in the available materials is 0.2.5.

It wraps the global fetch in the agent process, allowing network requests initiated by the agent itself (web_search / web_fetch / external APIs) to go through the HTTP / HTTPS-CONNECT / SOCKS5 proxy you configure. Configuration is persisted, takes effect automatically once the plugin is enabled, and a visual settings page is provided.

Core Features

  • Routes web_search, web_fetch, and external API requests initiated by the agent through the proxy.
  • The server-side wraps the global fetch in the agent process, with hand-written forwarding logic, introducing no third-party proxy dependencies.
  • Configuration is stored in $DSH_HOME/net-proxy.json.
  • The settings page reads and writes configuration via the same-origin route /_dsh/net-proxy, with changes taking effect immediately without requiring a restart.
  • NO_PROXY excludes local loopback addresses by default, preventing local requests from being proxied.
  • Provides a visual settings page for enabling the proxy, entering the address, and authentication information.

Installation and Enablement

First, install the plugin:

dsh plugin --profile web add github:mafeis/dsh-net-proxy

After installation, restart dsh web to make the plugin available:

dsh web

Then navigate to Settings → Network Proxy, enable the proxy, and fill in the proxy address, for example:

127.0.0.1:7890

If you prefer not to use the installation command, you can also manually add the following to cordis.patch.yml in the profile:

- insert:
  - id: net-proxy
    name: 'dsh-net-proxy'

Configuration Fields

Configuration is saved in net-proxy.json, and the settings page reads and writes this same configuration. Default values are as follows:

Field Default Value Description
enabled false Whether the proxy is enabled
protocol http http (including CONNECT tunneling) or socks5
host 127.0.0.1 Proxy host
port 7890 Proxy port
username empty Optional authentication username
password empty Optional authentication password
noProxy ["127.0.0.1","localhost","::1"] Addresses matched here are connected directly, bypassing the proxy

A sample configuration close to the defaults is as follows:

{
  "enabled": false,
  "protocol": "http",
  "host": "127.0.0.1",
  "port": 7890,
  "username": "",
  "password": "",
  "noProxy": [
    "127.0.0.1",
    "localhost",
    "::1"
  ]
}

Typical Usage

  1. Install the plugin and restart dsh web:
dsh plugin --profile web add github:mafeis/dsh-net-proxy
  1. Open Settings → Network Proxy and turn on enabled.

  2. Select the protocol based on your local proxy type:

  • HTTP / HTTPS-CONNECT: select http.
  • SOCKS5: select socks5.
  1. Fill in the proxy address. For example, when the local proxy is running on port 7890, you can fill in:
host: 127.0.0.1
port: 7890
  1. If the proxy requires authentication, fill in the username and password.

  2. After saving, network requests subsequently initiated by the agent will use the proxy according to the current configuration; after modifying the configuration again, there is no need to restart dsh web.

Dependencies and Runtime Constraints

This plugin is designed for the DSH web client. In package.json, the platform is web, and the client injects the following modules:

react
react/jsx-runtime
@deepseek-ai/dsh-client-ui-primitives

peerDependencies specifies the following version ranges:

@deepseek-ai/dsh-client-ui-primitives >=0.0.1-rc.1 <0.2.0
@deepseek-ai/schemastery >=0.0.1-rc.1 <0.2.0

Applicable Scenarios and Considerations

Suitable for the following situations:

  • You want requests initiated by the DSH agent itself to uniformly go through a local proxy.
  • You need to maintain the proxy address in the DSH settings page rather than modifying external scripts.
  • Your local proxy supports HTTP CONNECT or SOCKS5.
  • You want to retain direct connections for local loopback addresses by default, without forwarding 127.0.0.1, localhost, or ::1 to the proxy.

Points to note before use:

  • This plugin wraps the global fetch within the agent process and runs with the permissions of the current dsh process.
  • Before installation, review the source code, dependencies, and the MIT license to ensure the proxy configuration aligns with your egress policy.
  • It targets network requests initiated by the agent itself and is not equivalent to a system-level global proxy.

Conclusion

dsh-net-proxy solves a very specific problem: within the DSH web profile, it allows the agent’s own web_search, web_fetch, and external API requests to go through a specified proxy, with persistent configuration managed via the settings page.

GitHub repository:

https://github.com/mafeis/dsh-net-proxy

A catalog page link was not provided in the currently verified materials; you can search for the plugin name dsh-net-proxy in the community catalog.