Introduction¶
DeepSeek Harness (DSH) developers often need to control network traffic routing when debugging or deploying agents, such as accessing specific LLM providers through a proxy or connecting directly to internal network addresses. The dsh-proxy plugin provides a centralized network proxy configuration solution, supporting global proxies and per-provider routing.
Core Features¶
- Global proxy configuration: Supports configuring an HTTP(S) global proxy and allows specifying hosts that bypass the proxy via a
noProxylist. - Per-provider routing: Allows setting proxy or direct mode individually for a single model provider (e.g.,
deepseek-official,anthropic,openai). - Immediate effect: After changing and saving settings, they are applied without restarting DSH and take effect for the next round of requests.
- Priority logic: Follows the priority order
provider setting > global proxy > launch environment. - System proxy detection: Supports automatic proxy detection from environment variables (e.g.,
HTTP_PROXY) or system settings.
Installation¶
Run the following command in the terminal to install the plugin:
dsh plugin --profile web add @copylee/dsh-proxy
After installation, restart dsh web. You can find the Network proxy page in Settings.
Usage¶
Go to Settings → Network proxy:
- Global proxy: Check Enabled and enter the proxy URL (e.g.,
http://127.0.0.1:7890). In Hosts that bypass the proxy, enter host names (subdomain matching is supported).localhostand127.0.0.1bypass the proxy by default. - Per-provider proxy: In the list, check the required provider IDs (e.g.,
deepseek-official,anthropic) and select Use proxy or Direct. - Save: Click the save button. The settings take effect for the next request.
Configuration File¶
The plugin configuration is stored in the Web Profile’s cordis.patch.yml file, typically located at $DSH_HOME/profiles/web/cordis.patch.yml.
- id: dsh-proxy
config:
global:
enabled: true
url: http://127.0.0.1:7890
noProxy: [internal.example.com]
providers:
anthropic:
enabled: true
mode: proxy
url: http://127.0.0.1:7890
deepseek-official:
mode: direct
Field descriptions:
* global.enabled: Enables the global proxy.
* global.url: The global proxy URL.
* global.noProxy: The list of hosts that bypass the global proxy.
* providers.<id>.enabled: Enables the independent configuration for this provider.
* providers.<id>.mode: proxy (use proxy) or direct (direct connection).
* providers.<id>.url: The proxy URL for this provider.
Notes¶
- Protocol limitations: Only HTTP(S) proxies are supported; SOCKS5 is not supported. The HTTP port of tools such as Clash (e.g., 7890) can be used.
- Scope: Please use the
@copylee/scope. An unscoped package with the same name belongs to someone else. - Credential security: The username and password are stored in plain text in
cordis.patch.yml. - Routing scope: Per-provider proxy settings only affect model requests and model discovery. Network requests such as Web search and Web Fetch still use global routing.
- Telemetry remains direct: The plugin’s telemetry traffic remains direct and does not go through a proxy.
Ecosystem Context¶
The DSH philosophy is “everything is a plugin.” This plugin is maintained by community developer copylee711, hosted on GitHub, and licensed under the MIT license.