# dsh-wsl-net > **Install set:** part of [dsh-wsl-kit](https://github.com/173787247/dsh-wsl-kit). Prefer `KIT_SET=daily` | `llm` | `github` | `full` (see kit README). Fault tree: [TROUBLESHOOTING.md](https://github.com/173787247/dsh-wsl-kit/blob/master/docs/TROUBLESHOOTING.md). DeepSeek Harness **tool** plugin: `net_doctor` diagnoses why HTTPS works in the Windows browser but fails from the WSL agent—and returns **copy-paste fix scripts**. Pairs with [dsh-wsl-env](https://github.com/173787247/dsh-wsl-env). Part of **[dsh-wsl-kit](https://github.com/173787247/dsh-wsl-kit)**. [中文说明 → README.zh.md](./README.zh.md) --- ## Why Clash / V2Ray often runs on Windows with `HTTP_PROXY=http://127.0.0.1:…`. Node **24** `fetch` ignores proxy env vars unless `NODE_USE_ENV_PROXY=1`. The browser can look fine while the agent cannot reach DeepSeek or npm. ## What it does - Reports `HTTP_PROXY` / `HTTPS_PROXY` / `ALL_PROXY` / `NO_PROXY` (userinfo redacted), `NODE_USE_ENV_PROXY`, optional npm registry - Also inspects the **running `dsh web` process** env (`dshWeb`) so you can tell tool-process vs host-process proxy flags apart - TCP-probes the configured proxy port (`proxyListen`) - Probes DeepSeek API and the npm registry (HTTP status < 500 counts as reachable, including 401) - Returns `advice` plus `fix.steps` / `fix.scripts` (reuses current proxy when set; otherwise a `127.0.0.1:7890` template you must edit) - Optionally injects `NODE_USE_ENV_PROXY=1` and lowercase `http_proxy` aliases into bash/npm **child** processes (`injectChildProxy`) Does **not** print API keys, change Clash ports, or invent a proxy URL when none is configured. ## Install ```sh dsh plugin --profile web add github:173787247/dsh-wsl-net ``` Restart `dsh web`. In a new session, Tools should list `net_doctor`. Example ask: “Check whether DeepSeek API and npm are reachable.” Child injection check: ```sh node -e "console.log(process.env.NODE_USE_ENV_PROXY, process.env.http_proxy || process.env.HTTP_PROXY)" ``` Expect `1` and your proxy URL when a child bash/npm is wrapped. ## Tool parameters | Arg | Values | Meaning | |-----|--------|---------| | `target` | `all` (default), `env`, `deepseek`, `npm` | What to check | ## Config ```yaml - id: dsh-wsl-net name: dsh-wsl-net config: timeoutMs: 20000 probeTimeoutMs: 5000 injectChildProxy: true ``` | Key | Default | Meaning | |-----|---------|---------| | `timeoutMs` | `20000` | Tool timeout | | `probeTimeoutMs` | `5000` | Per-probe timeout | | `injectChildProxy` | `true` | Wrap `subprocess.spawn` / `spawnTerminal` | ## Changelog (short) - **0.3.0** — `fix` copy-paste scripts - **0.2.x** — child proxy injection; redact proxy userinfo; `ALL_PROXY` ## Test ```sh npm test ``` ## License MIT