AI Agent Hub
Back to plugins
🧰

dsh-provider-proxy

Web Tools Updated 2026.08.29

Run the following command in DeepSeek Harness:

dsh plugin install stayhpjinng/dsh-provider-proxy

Paste the following prompt into your AI chat to install this plugin:

Run dsh plugin install stayhpjinng/dsh-provider-proxy in your terminal to install; the source is available at https://github.com/stayhpjinng/dsh-provider-proxy , and after restarting dsh web the Provider Proxy panel will appear under Settings.

About this plugin

In a DSH workflow that fans out to multiple LLM providers, flipping on HTTP_PROXY together with NODE_USE_ENV_PROXY=1 is often too blunt an instrument: every outbound request is forced through the same proxy channel even though you may only need one or two upstreams proxied. dsh-provider-proxy narrows the granularity to the DSH provider-route level. Only the providers you explicitly mark route their traffic through an HTTP or HTTPS forward proxy; all other providers keep the normal network path, and this holds true even when requests arrive concurrently.

Managing the proxy is handled through the Settings UI. After restarting dsh web, navigate to Settings and then Provider Proxy. Each available provider gets its own on/off switch, a proxy URL field, an optional proxy-authorization environment variable, and save/reset controls. Toggling a switch off takes effect for new requests immediately while in-flight streams finish on the dispatcher they started with. No YAML edits or process restarts are needed. Authentication credentials are passed via a separate environment variable, and credentials embedded directly in the proxy URL are rejected to prevent them leaking into profile dumps. The middleware also wraps the llm.discoverModels() path, so the model-list fetch honours the selected provider proxy as well.

This plugin is a good fit when you run several LLM upstreams simultaneously and only some of them must traverse a corporate firewall or egress proxy while others sit on a private network or need no proxy at all. It also helps if you want to decouple proxy policy from process-wide environment variables and control it per route. Keep in mind that it is built on Undici ProxyAgent and supports HTTP and HTTPS forward proxies only; SOCKS and PAC URLs are not covered. It also targets provider implementations that rely on globalThis.fetch, so SDKs that open raw sockets bypassing Fetch are outside its scope.

Use Cases

  • Route only selected provider traffic through a proxy while others stay direct in concurrent multi-provider calls
  • Meet corporate egress-proxy requirements for specific LLM upstreams without affecting other in-process requests
  • Avoid the blanket behaviour of a process-wide HTTP_PROXY env var by scoping the proxy to individual provider routes

Best For

  • DSH developers juggling multiple LLM upstreams with per-provider network policies
  • Engineers and ops staff running DSH behind corporate firewalls or restricted egress
  • Tech leads who want to decouple proxy settings from global env vars and control them per provider route