DSH Plugins Marketplace

DSH Plugins

Plugins

/

dsh-wsl-fetch

d

dsh-wsl-fetch

Manifest valid

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

Compatibility

| Field | Value | |-------|-------| | Plugin | dsh-wsl-fetch 0.1.1 | | Minimum dsh | ≥ 0.1.2 (web UI one-shot ?token= on Windows relay :3081) | | Latest verified | See dsh-wsl-kit Compatibility (currently 0.1.5-rc.1) — single source of truth for the suite | | Kit set | daily (also in github / full; fetch+net also in llm) | | Cloud Flash | Use model id deepseek-flash (V4.1 Flash) in ~/.dsh/settings.yaml / llm-deepseek — not configured by this plugin | | Agent Teams | Upstream 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

| Key | Default | Meaning | |-----|---------|---------| | timeoutMs | 30000 | Fetch deadline | | maxRedirects | 5 | Same-site redirects (www ↔ apex allowed) | | retries | 2 | Extra attempts after transient proxy/network failure | | retryDelayMs | 400 | Base delay between retries (× attempt) | | maxResponseBytes | 5000000 | Body byte cap | | maxBodyChars | 100000 | Decoded char cap | | userAgent | product UA | Request 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

Similar plugins

dsh-net-tools

by izwarm195

dsh-net-tools: reliable outbound networking for sandboxed DSH agents — net_fetch (proxy CONNECT-tunnel HTTP fetch) and net_proxy_status (proxy diagnostics).

Tools & CapabilitiesManifest valid

3

MIT

JavaScript

Aug 17, 2026

dsh plugin --profile web add dsh-net-tools

Expose the DSH Web GUI over IPv6 or IPv4 from WSL2 through a reverse proxy (Lucky): /wan up sets up the socat relay, Windows portproxy, firewall, and trusted-host fence, with a Settings card plus comm

Tools & CapabilitiesManifest valid

0

dsh plugin --profile web add dsh-wsl-expose

Per-execution HTTP/SOCKS5 proxy routing for Agent fetches, LLM providers, and shell commands, with settings-backed hot reload, approval-gated controls, and credential-safe status.

Tools & CapabilitiesManifest valid

0

dsh plugin --profile web add dsh-proxy-routing

by smanx

HTTP + WebSocket 反向代理:把局域网端口转发到本地 DSH 服务

Development & InfrastructureModels & ProvidersManifest valid

20

JavaScript

Sep 5, 2026

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

by Yurzi

Configurable non-public address allowlists for DeepSeek Harness web_fetch

Manifest valid

4

297/wk

MIT

TypeScript

Sep 11, 2026

dsh plugin --profile web add dsh-web-fetch-enhanced

by mafeis

Route agent network requests through a local HTTP/CONNECT/SOCKS5 proxy.

Tools & CapabilitiesManifest valid

11

MIT

JavaScript

Sep 15, 2026

dsh plugin --profile web add dsh-net-proxy