dsh-plugin
DayuanJiang/next-ai-draw-iodsh 的 draw.io 绘图插件:通过 next-ai-drawio MCP 服务器作图,点回复里的链接在右侧栏打开实时预览,可以手动修改图,AI 的每次修改都是可以恢复的版本。需 Node.js 18+,首次使用由 npx 下载 MCP 服务器。
让沙箱里的 agent 通过你的本地代理联网:net_fetch 抓取网页,net_proxy_status 查看代理状态。
Give DSH your magic: plug sandboxed agents into your local HTTP proxy and fetch blocked sites, docs and APIs in one shot.
简体中文 · English
This project is developed and maintained entirely by AI: all code, tests and docs are generated by an AI (a DeepSeek Harness coding agent); humans only review, accept and publish the results.
When DSH runs commands inside its file sandbox (workspace-write), Windows
schannel-based TLS (curl, PowerShell) cannot acquire credentials, so every
HTTPS request fails with SEC_E_NO_CREDENTIALS. Node.js ships its own TLS
stack and is unaffected — but the sandboxed shell still can't reach the
network reliably, and the user's local proxy (e.g. 127.0.0.1:7897) is only
used if every tool remembers to pass it.
Tools run in the DSH Host process (Node.js), outside the file sandbox, so TLS works. The bundle:
net_fetch — fetch an HTTP(S) URL through the user's proxy via a manual
CONNECT tunnel (no schannel, no dependencies). Follows redirects, enforces
timeouts / size caps / SSRF guards, returns text or a truncated body.net_proxy_status — report which proxy (if any) DSH processes will use:
user-level env vars, current-process env, and the Windows system proxy.Proxy discovery order: explicit proxy argument → HTTPS_PROXY / HTTP_PROXY
env → Windows system proxy (registry Internet Settings).
dsh plugin --profile web add <this-package>
# or: dsh plugin --profile desktop add <this-package>
Reload/restart DSH, then the tools are available to the agent.
Fetch a page through the proxy:
net_fetch(url: "https://github.com/")
→ [200] https://github.com/ (via proxy) 1212ms …
Diagnose proxy configuration:
net_proxy_status(checkReachability: true)
→ effective: http://127.0.0.1:7897
proxy reachable: true
probe: [204] https://www.gstatic.com/generate_204 ok=true
In action: the agent chaining net_fetch calls while thinking (screenshot):
npm test
# inside the sandbox, where spawning test subprocesses is blocked, run in-process:
node --test --test-isolation=none test/fetch.test.js
http: / https:allowPrivate: true opts in)