DSH Plugins Marketplace

DSH Plugins

Plugins

/

Tools & Capabilities

/

dsh-wsl-fetch

1

dsh-wsl-fetch

Manifest valid★ 1

Registers a wsl-proxy ctx.web fetch provider so official web_fetch uses undici ProxyAgent through HTTP(S)_PROXY instead of connecting from WSL to a DNS-pinned public IP (the official path that produce

hasBundlePatch

dsh-wsl-fetch

Kit: dsh-wsl-kit. Use KIT_SET=daily or llm (both install this plugin).

Version / Works-with one-liner: see Compatibility below (kept in sync with dsh-wsl-kit).

DeepSeek Harness plugin: make official web_fetch use the Windows HTTP proxy from WSL.

中文说明 → README.zh.md

Where it sits

Sends the official web_fetch through the Windows HTTP proxy. dsh-wsl-net only diagnoses; this plugin does the fetch.

flowchart LR
  agent["web_fetch"] --> fetch["dsh-wsl-fetch"] --> proxy["Windows HTTP proxy"] --> web["HTTPS"]

Suite diagram and version snapshot: dsh-wsl-kit. This plugin is 0.1.2 (daily; also in llm). Do not copy that matrix into this README.

Compatibility

FieldValue
Plugindsh-wsl-fetch 0.1.2
Minimum dsh≥ 0.1.2 (web UI one-shot ?token= on Windows relay :3081)
Latest verifiedSee dsh-wsl-kit Compatibility (currently 0.1.5-rc.1) — single source of truth for the suite
Kit setdaily (also in github / full; fetch+net also in llm)
Cloud FlashUse model id deepseek-flash (V4.1 Flash) in ~/.dsh/settings.yaml / llm-deepseek — not configured by this plugin
Agent TeamsUpstream experimental; not required here

Suite floor versions: kit check-plugin-versions.sh. Fault tree: TROUBLESHOOTING.md.

Scope: in-process official web_fetch via undici ProxyAgent. Requires HTTP(S)_PROXY. Cloudflare 403/1010 through Clash needs a DIRECT rule — outside this plugin.

Why

Official dsh-web-fetch-http resolves DNS in WSL, then connects directly to that public IP with a custom undici Agent. That bypasses NODE_USE_ENV_PROXY. DeepSeek API can work (global fetch + proxy) while Mattermost/docs web_fetch fails with TypeError: fetch failed.

dsh-wsl-net only injects proxy env into child bash/npm. It cannot fix in-process web_fetch.

This plugin registers fetch provider wsl-proxy and, when HTTPS_PROXY / HTTP_PROXY is set, selects it so web_fetch uses undici ProxyAgent.

Private/localhost URLs stay blocked.

Install

dsh plugin --profile web add github:173787247/dsh-wsl-fetch

Or via kit: KIT_SET=daily bash install.sh (includes this plugin).

Local checkout:

dsh plugin --profile web add /path/to/dsh-wsl-fetch

Restart with kit restart-dsh-web.sh (NODE_USE_ENV_PROXY=1 + proxy env). Open a new session.

Awesome listing: awesome-dsh-plugin entry (#4736 merged).

Config

- id: dsh-wsl-fetch
  name: dsh-wsl-fetch
  config:
    timeoutMs: 30000
    maxRedirects: 5
    retries: 2
    retryDelayMs: 400
KeyDefaultMeaning
timeoutMs30000Fetch deadline
maxRedirects5Same-site redirects (www ↔ apex allowed)
retries2Extra attempts after transient proxy/network failure
retryDelayMs400Base delay between retries (× attempt)
maxResponseBytes5000000Body byte cap
maxBodyChars100000Decoded char cap
userAgentproduct UARequest User-Agent

If HTTP(S)_PROXY is missing, the plugin stays registered but unavailable; official http remains selected.

What success / failure look like

  • Log: [dsh-wsl-fetch] web_fetch via proxy (...:port) provider=wsl-proxy → provider is active.
  • Red fetch UI with that log line → per-URL proxy/TLS/site failure (retry another source). Not “plugin missing”.
  • Cloudflare 403 / 1010 through Clash → site WAF; add Clash DIRECT for that host. This plugin cannot override WAF.

Test

npm test
# live proxy path (same as dsh web_fetch)
bash scripts/stress.sh

Changelog

See CHANGELOG.md.

License

MIT

Comments

Loading…

Similar plugins

dsh-web-fetch-fakeip

by kaminn

A fake-ip-aware ctx.web fetch provider that takes over the stock http provider id: a hostname is accepted when every DNS answer is a placeholder inside the proxy's fake-ip block (198.18.0.0/15 by defa

Tools & CapabilitiesManifest valid

★ 4

MIT

JavaScript

Oct 3, 2026

dsh plugin --profile web add dsh-web-fetch-fakeip

by yanglaofish

Routes model requests, web fetches/searches and spawned tools through the Windows system proxy or a custom address — idempotent kernel (reads never rebuild the dispatcher), header one-click toggle, pe

Tools & CapabilitiesManifest valid

★ 8

↓ 511/wk

MIT

JavaScript

Oct 27, 2026

dsh plugin --profile web add @yanglaofish/dsh-proxy-pro

by Bai-Ziyi

Pre-launch and runtime HTTP proxy control for DeepSeek Harness: writes the user-level .env so the launcher and the first requests are proxied, then keeps it in sync from a Plugins-page switch.

Tools & CapabilitiesTerminal & ClientsManifest valid

★ 0

MIT

JavaScript

Oct 19, 2026

dsh plugin --profile web add dsh-proxy-control

by guhanfei-ai

Wraps globalThis.fetch to route chosen domains through one or more named HTTP/SOCKS proxies (exact host or *.suffix rules, per-card enable), with global direct rules that override every proxy; unmatch

Models & ProvidersManifest valid

★ 0

JavaScript

Oct 23, 2026

dsh plugin --profile web add dsh-model-http-proxy

by Ye-Yu-Mo

DeepSeek Harness (dsh) 全局 HTTP 代理插件:undici setGlobalDispatcher + EnvHttpProxyAgent,配置化、热切换、可观测

Tools & CapabilitiesManifest valid

★ 5

MIT

JavaScript

Aug 17, 2026

dsh plugin --profile web add dsh-llm-proxy

by stayhpjinng

Provider-scoped HTTP/HTTPS forward proxy for DeepSeek Harness: configure independent proxy URLs and enable/disable switches per LLM provider, with environment-variable references for proxy credentials

Development & InfrastructureManifest valid

★ 0

MIT

JavaScript

Aug 29, 2026

dsh plugin --profile web add dsh-provider-proxy