Tools & Capabilities

dsh-plugin-net-access

gumiho12345/dsh-plugin-net-access · ★ 5

gumiho12345

DSH permission-mode patch that adds Net Access, restoring sandboxed HTTPS while retaining workspace-write file protection.

License
NOASSERTION
Added
2026-08-23
Maintenance
active
Install kind
github

No manifest check is available; listing does not imply compatibility or security review.

安装

dsh plugin --profile web add github:gumiho12345/dsh-plugin-net-access

GitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试

For install and environment setup, plus plugin development tutorials, see DSH community docs ↗

README

Source README · body: en · Read Chinese README

Table of contents
  1. What it does
  2. How it works
  3. Install
  4. Verify
  5. Known limitations
  6. Uninstall
  7. License

license: MIT GitHub stars npm version

简体中文 | English

A permission-mode patch for DSH: adds a Net Access mode that keeps the workspace-write file protection while restoring HTTPS inside the sandbox.

DSH's Windows sandbox (workspace-write) blocks Schannel-based HTTPS requests (error 0x8009030E), so the built-in curl and Invoke-WebRequest don't work inside it. Net Access keeps the exact same file-write protection as workspace-write and makes HTTPS work again in the sandbox. Windows only; not pinned to a DSH version — the patches adapt by structural anchors.

What it does

  • curl.exe works with HTTPS inside the sandbox
  • File-write protection identical to workspace-write: writes outside the workspace are denied
  • A new Net Access option in the permission selector
  • python / node HTTPS is unaffected

How it works

The sandbox token stays exactly the same as workspace-write; the runner just prepends an OpenSSL-based curl to PATH so HTTPS no longer goes through the blocked Schannel. Full technical write-up: docs/findings-zh.md.

Install

Option 1: via npm

npx @deepseek-ai/dsh plugin --profile web add dsh-plugin-net-access
. "$env:USERPROFILE\.dsh\profiles\web\node_modules\dsh-plugin-net-access\setup.ps1"

Option 2: download from GitHub and run

.\setup.ps1

setup.ps1 does three things: patches the engine by structural anchors (not pinned to a DSH version), registers the permission preset, and downloads the OpenSSL curl toolbox from curl.se into %USERPROFILE%\.dsh\netaccess-tools\bin\.

A full DSH restart is required for the plugin to load: stop the 3080 listener (Ctrl+C in its terminal, or netstat -ano | findstr 3080 + taskkill /F /PID <pid>), then run npx @deepseek-ai/dsh web again. Refreshing the browser alone will not load the new plugin. After the restart, refresh the page and pick Net Access in the permission selector (bottom-left).

After a DSH upgrade: just re-run setup.ps1 — no need to wait for a plugin update, because the patches adapt by structural anchors instead of a version pin. If a future DSH restructure moves an anchor, the installer aborts with a clear error (nothing gets corrupted); update the plugin then.

Verify

curl.exe -sS https://example.com
# HTTP 200

Set-Content "$env:USERPROFILE\Desktop\t.txt" x
# access denied

Known limitations

  • The built-in curl and Invoke-WebRequest cannot use HTTPS: use the bundled curl.exe, python or node.
  • git over HTTPS needs git config --global http.sslBackend openssl first.
  • C:\Users\Public stays writable (same as workspace-write).
  • WMI is unavailable (same as workspace-write).

Uninstall

.\uninstall.ps1

License

MIT. Files under patches/ come from the @deepseek-ai/dsh-* packages (MIT, Copyright (c) 2026 DeepSeek); keep their copyright notice when redistributing.


If you find this useful, a ⭐ Star would be appreciated.