DeepSeek Harness Plugin Hub

Publish and manage complete Harness Profiles. Discover Plugins for your next setup.

Explore

PluginsPresetsDocsNews

Community

Publish a pluginContactReport an issue

Resources

Plugin Hub on GitHubDeepSeek HarnessSystem statusPrivacy notice
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

Independent and unofficial. Not affiliated with, authorized by, or endorsed by DeepSeek.

Proxy — DSH Plugin for DeepSeek Harness
DeepSeek Harness Plugin Hub
ProfilesPluginsCategoriesNewsDocsSign inManage Profiles
ProfilesPluginsCategoriesNewsDocsSign in
← Plugins

@copylee/dsh-proxy

Proxy

DeepSeek Harness proxy plugin: Configure a global HTTP(S) proxy in settings, or configure a proxy/direct connection separately for an individual LLM provider

The plugin will be installed here. Keep web if you are unsure.

npx -y @deepseek-ai/dsh plugin --profile web add @copylee/dsh-proxy@0.4.5
READMECompatibilityVersions
The Network proxy page in Settings: a global proxy, and per-provider rows set to Direct or Use proxy

Compatibility and provenance

Proxy is published as @copylee/dsh-proxy and currently resolves to version 0.4.5. The Hub verifies its manifest and preserves the exact installation source for reproducible installs.

DSH compatibility
*
Runtime surfaces
web
Release source
npm
Registry updated
10/7/2026

Versions

0.4.5stable
10/7/2026
0.4.4stable
10/6/2026
0.4.2stable
10/3/2026
Show 3 more versionsCollapse versions
0.4.1stable
10/1/2026
0.4.0stable
9/30/2026
0.3.1stable
9/26/2026

Related plugins

Loading related plugins…

Latest
0.4.5
DSH
*
HMR
Process restart
Tree shaking
Safe tree shaking not declared
Unpacked size
84.1 kB
Files
8
Surface
web
License
MIT
Source
npm
GitHub
★ 3
Weekly downloads
0
Last push
10/7/2026
View source ↗
README badge

Click the badge to copy Markdown for your README.

Do you maintain this Plugin?Claim benefit · Priority security scan

Verify the GitHub repository declared in package.json to manage this listing. After you claim it, Hub will prioritize a security scan of the current version and publish the result when it passes.

Claim this Plugin →
Report an issue

Related plugins

More verified plugins in models-usage.

Whale Widgetdsh-whale-widgetDeepSeek balance whale widget in the bottom-right corner of the DSH Web interface: balance/today’s usage/peak-off-peak pricing, customizable bubble click sequence (text/balance/today/peak-off-peak/image/random phrases and parallel weighted selection), per-line styles and fonts, floating quick editinUsage@linxin666/dsh-usageUsage statistics plugin for the dsh web GUI: per-provider balance and coding-plan quota detection plus a live token usage ledger, with a compact price glance card above the sidebar's Settings rowClient Ui Model Capabilities@linxin666/dsh-client-ui-model-capabilitiesPer-model capability declarations (image input and reasoning efforts) for custom pi-ai providers, edited in place on the Models settings cards; writes the official llm-pi-ai settings namespace, no DSH source changes.Codex Subscriptiondsh-codex-subscriptionUse ChatGPT and Codex subscriptions in DeepSeek Harness with OAuth, quota, safe resets, web search, images, and Fast mode

README

@copylee/dsh-proxy

English | 中文

A network proxy plugin for DeepSeek Harness (dsh):

  • Global proxy: enter http://127.0.0.1:7890 under Settings → Network proxy, and model requests, web search, web fetch, HTTP MCP, and commands the agent runs all go through it.
  • Per-provider proxy: give one model provider its own proxy or force it direct. For example, Anthropic through http://127.0.0.1:7890 and DeepSeek direct.
  • Applies on save: no dsh restart needed.

Precedence: provider setting > global proxy > HTTP(S)_PROXY from launch.

Install

dsh plugin --profile web add @copylee/dsh-proxy

Restart dsh web, and a Network proxy page appears in Settings.

Keep the @copylee/ scope. The unscoped dsh-proxy and dsh-network-proxy packages on npm belong to other people and are unrelated.

You can also install straight from GitHub. Built output is committed, so no build script or allowBuilds entry is needed:

dsh plugin --profile web add github:copylee711/dsh-proxy

Use

Open Settings → Network proxy:

The Network proxy page in Settings: a global proxy, and per-provider rows set to Direct or Use proxy

AreaWhat it does
Global proxyTick Enabled and enter the proxy URL. Hosts that bypass the proxy takes one host per line and matches subdomains too. localhost / 127.0.0.1 are always direct.
Per-provider proxyLists configured model providers. Each can be Follow global, Use proxy, or Direct. Add a provider not in the list by typing its id below it (e.g. deepseek-official, anthropic, openai, or a custom Provider ID from the Models page).

Save applies to the next request, including Fetch available models on the Models page.

System proxy

The global selector offers Off (use launch settings), System proxy (auto-detect), and Manual proxy. Each provider can also select its own system proxy, overriding the global route. Menus follow dsh-free-search's floating cards, hover highlights, and selection checkmarks, with Arrow, Home/End, Enter, Esc, and Tab keyboard support.

Detection tries valid HTTP(S) values from HTTPS_PROXY / https_proxy, HTTP_PROXY / http_proxy, and ALL_PROXY / all_proxy in that order, then Windows current-user Internet Settings or macOS scutil. Linux uses environment variables. A launch environment snapshot prevents the plugin's own installed proxy from feeding back into detection. OS settings are checked every 30 seconds; the settings page also offers Detect again. SOCKS, PAC, and WPAD are not supported. When detection finds no usable proxy, the global layer restores launch settings and provider overrides fall back to the global route with a warning. Status and logs mask proxy credentials.

global:
  enabled: true
  mode: system
  noProxy: []
providers:
  openai:
    enabled: true
    mode: system

Existing configurations without mode continue using their manual proxy. The global proxy remains disabled by default.

Accent colour

The bottom of the page offers an accent colour (terracotta, blue or black) for the primary button and focus rings. The choice is shared with the other copylee plugins: changing it in any one of them recolours all of them.

Configuration file

The same settings live in $DSH_HOME/profiles/<profile>/cordis.patch.yml (the Web UI profile is web):

- id: dsh-proxy
  config:
    global:
      enabled: true
      url: http://127.0.0.1:7890
      noProxy: [internal.example.com]
    providers:
      anthropic:
        mode: proxy
        url: http://127.0.0.1:7890
      deepseek-official:
        mode: direct
FieldMeaning
global.enabledTurn the global proxy on. Default false, which keeps the launch environment's proxy.
global.urlGlobal proxy URL.
global.noProxyHosts reached directly while the global proxy is on.
providers.<id>.enabledUse this provider's own setting. Default true; false follows the global route.
providers.<id>.modeproxy (use url) or direct (bypass every proxy, the global one included).
providers.<id>.urlThis provider's proxy URL.

Proxy URLs may be http:// or https://. A bare 127.0.0.1:7890 becomes http://127.0.0.1:7890. Credentials go in the URL: http://user:password@host:port.

How it works

  • Global proxy installs through dsh's own @deepseek-ai/dsh-http-proxy, the package the launcher uses for HTTP(S)_PROXY. Loopback bypass, NO_PROXY matching, web_fetch routing, and the proxy environment of spawned tools therefore behave exactly as upstream. Turning it off restores the launch policy.
  • Per-provider proxy hooks the llm/stream middleware. A provider's model call runs in one async context. The plugin puts that provider's undici ProxyAgent (or a direct Agent) in an AsyncLocalStorage, and fetch uses it inside that context. Other requests are untouched, and concurrent calls to different providers don't interfere.
  • Both sections are Cordis volatile fields. Saving in Settings fires loader/volatile-update, and the plugin switches routes in place without reloading.

Limits

  • HTTP(S) proxies only; SOCKS5 is not supported. The "mixed port" of Clash, v2rayN, and similar apps (e.g. 7890) also speaks HTTP, so use that port.
  • Per-provider routes cover that provider's model requests only (including model discovery). Web search, web fetch, and other traffic use the global route.
  • Credentials are stored in plain text. A username and password in the URL are saved in the profile's cordis.patch.yml. The global proxy URL also reaches commands the agent runs through their environment.
  • Telemetry stays direct. It uses Node's http module, as it does in upstream dsh.

Develop

npm install
npm run typecheck
npm test        # global / per-provider / direct routing against local fake proxies
npm run build   # regenerates lib/ and client/ (commit them)

Try it in a local dsh: dsh plugin --profile web add /path/to/dsh-proxy.

License

MIT