Bundle
dsh-wsl-net
Diagnose WSL/Windows proxy, Node 24 fetch, dsh web process env, proxy TCP listen, DeepSeek/npm/ModelScope reachability.
- Source
- 173787247
- stars
- 2 stars
- License
- MIT
- Updated
- Updated 22 hours ago
Readme
# 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
Install
dsh plugin --profile web add github:173787247/dsh-wsl-net
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install dsh-wsl-net from the hub
- This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.