dsh-3301

DSH PLUGIN会话与消息

仓库 aztech-lab/dsh-3301

会话与消息 未标注验证等级 安全审查:未标注 可信度:未标注 可安装插件

为 DeepSeek Harness 提供带密码保护的局域网反向代理入口,让手机等设备安全访问本机 DSH Web GUI。

一句话选型结论

按资料字段整理

dsh-3301 是会话与消息类的 DSH 可安装插件,未做沙盒验证,暂无安全审查结论,列出 5 项功能,没有现成安装命令,需要按仓库 README 接入。验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么;涉及密钥或系统权限的,建议先在隔离环境试装。

分类会话与消息 收录类型可安装插件 验证等级未标注验证等级 安全审查未标注
验证等级 UNKNOWN 未标注验证等级
GitHub 星标 0 复刻 0 · 未关闭 issue 0
最近更新 2026-09-13 创建于 2026-09-13
README 10.7 KB 正文体量,越大说明说明书写得越细

安装

可安装插件
在 DSH 里执行,装完用 dsh plugin list 确认已挂上;标了 L4 / L5 的命令已在沙盒里真实跑通
  1. 1
    确认版本与运行环境

    仓库没有标注兼容版本与 Node.js 要求,先确认你的 DSH 版本能装,再继续。

  2. 2
    执行安装命令

    在 DSH 里执行上面的命令;多包仓库要注意区分具体子包名,别装错包。

  3. 3
    确认已挂载

    用 dsh plugin list 查看列表里是否出现这个插件,出现即挂载成功。

  4. 4
    试跑并检查权限

    加载后跑一个最小用例,确认它能正常工作;同时看它申请了哪些文件、命令或网络权限。

兼容 DSH 版本未标注版本不匹配时安装会报错
Node.js 要求未标注来自仓库 package.json 的 engines 字段
前置依赖无需要同时安装的同级依赖
npm 包名未发布到 npm可用 npm view 查看包信息

能做什么

5 项功能
字段来自项目仓库与公开索引,中文说明由本站标注

dsh-3301:为 DeepSeek Harness 提供带密码的局域网访问入口

  • 局域网反向代理入口
  • 密码保护与 scrypt 校验
  • HTTP 与 WebSocket 转发
  • 签名会话 Cookie 登录
  • 随 DSH 进程启停

上游标签

dsh-plugin

验证等级与安全审查

未标注验证等级
自动化流程结论,不是人工审核
验证等级未标注验证等级上游未给出验证结论,安装前请自行确认
安全审查未标注静态分析结论,未标注不代表已通过审查
仓库健康度未标注按仓库活跃度与最近更新时间给出
可信度未标注综合仓库活跃度与验证结果

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 列出了 5 项功能,能直接看出它解决什么问题。

先想清楚的地方

  • 安全审查还没结论,装之前先看仓库改了什么、要什么权限。
  • 没有现成安装命令,要按仓库 README 手动接入。
  • 验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么。

更适合

  • 需要在会话与消息场景里给 DSH 补能力的人。
  • 能接受在本地装依赖、愿意自己确认权限的人。

不太适合

  • 只使用 DSH 官方内置能力、不接受第三方插件的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
插件验证等级安全审查星标兼容版本安装命令
dsh-3301当前 未做沙盒验证 未标注 0 未标注 无
dsh-desktop L3 · 安装规范通过 低风险 3.0 万 未标注 无
openpets L4 · 沙盒安装通过 低风险 1,274 未标注 有
deeptide L4 · 沙盒安装通过 低风险 1,104 0.1.1-rc.2 有
jingyun-dsh L3 · 安装规范通过 低风险 1,004 未标注 有
study-mate 未做沙盒验证 未标注 856 未标注 无

仓库档案

会话与消息
字段来自项目仓库与公开索引,中文说明由本站标注
作者 / 维护方aztech-lab仓库 dsh-3301 · 默认分支 main
分类会话与消息remote
收录类型可安装插件声明了 dsh.bundle、可用 dsh plugin add 安装的条目
开发语言JavaScript仓库主语言
许可证MIT商用或二次分发前请确认条款原文
星标 / 复刻 / issue0 / 0 / 0收录时的数值,非实时
创建 / 更新2026-09-13 · 2026-09-13最后推送 2026-09-13
本站收录2026-09-17首次进入本站目录的时间

README 全文

10.7 KB
作者原文,中文版优先;只做安全转义,不改内容

dsh-3301

> Formerly published as dsh-proxy; the project and package are now dsh-3301.

Proxies your DeepSeek Harness (DSH) port to http://:3301 with added security, so you can access DSH from anywhere on the LAN — including your phone.

> ~~⚠️ DSH 1.1 only. DeepSeek Harness 1.2 added a local token verification
> that breaks this reverse-proxy approach (the proxy can no longer pass through
> to the GUI). This project targets DSH 1.1. If you're on 1.2+, a different
> access method is required.~~
>
> ✅ Updated: that limitation is solved. The project now also ships as a DSH plugin
> (identity dsh-3301) that works on current DSH — see
> Plugin form below. The standalone proxy remains supported.

English · 中文

Password-protected reverse proxy (HTTP + WebSocket) — and now also a DSH plugin (dsh-3301) — in front of a
DSH Web GUI.

DSH stays bound to 127.0.0.1 (loopback only, safe). This proxy binds to
0.0.0.0 so a phone on the LAN can reach it — behind a password. The plugin form starts with no password: set one, or leave the entry open. The plugin form starts with no password: set one, or leave the entry open. The plugin form starts with no password: set one, or leave the entry open.

> Zero-install dependencies — the standalone CLI is pure Node built-ins and the plugin reuses packages DSH already ships. Cross-platform (macOS / Linux /
> Windows × x86 / ARM) — verified on Windows; macOS/Linux follow from the platform branches in the code, but have not been tested on real hardware yet.

For agents (TL;DR)

A password-protected reverse proxy in front of DSH. DSH stays loopback-only;
this binds 0.0.0.0:3301 and forwards HTTP + WebSocket to it. Auth is a
signed cookie (30-day session), optional HTTPS, rate-limited. To run:
DSH_PROXY_PASS= node lib/cli.js. To stop on macOS:
launchctl bootout gui/$(id -u)/com.dsh.lan-proxy. See below for details.

> Plugin form — preferred on current DSH: node tools/deploy.mjs dsh-3301 (or
> dsh plugin --profile web add dsh-3301), restart DSH, then open http://:3301.
> There is no default password, and the settings card lives at
> Settings → Plugins → Plugin configuration → dsh-3301. Details below.

Plugin form (dsh-3301)

The standalone proxy below still works, but the supported way to run this on current DSH is as a
plugin, and the package/plugin identity is dsh-3301 (the npm name dsh-proxy is taken by
an unrelated LLM-gateway plugin).

  • DSH itself stays bound to 127.0.0.1 — it never listens on the LAN.
  • The plugin opens the LAN entry (0.0.0.0:3301 by default) inside the DSH process: no
    separate daemon, no scheduled task, it starts and stops with DSH.
  • No default password. Until one is set the entry does not authenticate at all; leaving the
    password field empty when saving clears it again.
  • The password is stored only as a salted scrypt verifier in $DSH_HOME/dsh-3301/auth.json —
    no plaintext is written — and changing or clearing it is loopback-only.
  • Login is a form (the password crosses the wire once per login, unlike Basic) with per-IP
    failure lockout and a signed session cookie (30 days by default).
  • The session comes from the official ctx.connection.authenticatedUrl() API — the plugin no longer
    reads your credential file — and the client bootstrap is injected with
    ctx.webServer.tapIndex(), i.e. before compression, so no HTML rewriting.

> ⚠️ Until you set a password, anyone who can reach port 3301 gets into DSH. Set one before
> exposing the machine: Settings → Plugins → Plugin configuration → dsh-3301, or
> http://127.0.0.1:3301/__gate/setup from the host itself.

# Today: clone and deploy (there is deliberately no npm package yet — see the note below)
git clone https://github.com/Aztech-Lab/dsh-3301
cd dsh-3301
node tools/deploy.mjs dsh-3301

> The first line people reach for — dsh plugin --profile web add dsh-3301 — needs an npm package,
> and none is published (by choice: the repository is the install source, and it has no build step).
> Use the clone-and-deploy path above until that changes.

> The deploy target is your DSH profile ($DSH_HOME/profiles/), which normally lives
> outside this repository. If the write is refused (EACCES: permission denied), grant that
> directory write access, or run the command as the user that owns $DSH_HOME.

Restart DSH afterwards, then open Settings → Plugins → Plugin configuration → dsh-3301:

Field Meaning
Enabled turning it off releases the listening port
Bind host 0.0.0.0 (LAN reachable) / 127.0.0.1 (host only)
Port default 3301
Username login name on the gate form, default dsh
Session lifetime session-cookie validity, default 30 days
Failure limit / lockout per-IP lockout after repeated failed logins
Inject client bootstrap adds __DSH_TRANSPORT__.ownsHost so a LAN page keeps host-backed settings
Password write-only input: empty = clear; changing it requires the current password

For first-run setup you can also open http://127.0.0.1:3301/__gate/setup on the host, and
http://127.0.0.1:3301/__gate/health reports the entry's state without authentication.

The card follows the shipped DSH plugin cards; its styling uses the declarations and theme
variables of DSH's own dsh-client-ui-settings-plugins package (BSD-3-Clause). All implementation
code here is original.

> The standalone CLI (node lib/cli.js, DSH_PROXY_* environment variables) is unchanged and still
> supported for running a proxy outside DSH.

Why

> This section describes the standalone CLI form; the plugin form above differs in auth (form login + scrypt) and needs no TLS of its own.

  • DSH stays loopback-only — never exposed directly.
  • Cookie-session auth — avoids the repeated Basic-Auth re-prompt that breaks
    WebSocket/SSE-heavy apps. First request passes Basic Auth, then a signed
    session cookie is issued; later requests (incl. WebSocket upgrades) are
    accepted by the cookie. The session cookie persists 30 days (Max-Age), so
    you don't re-authenticate on every browser restart. The proxy appends its
    cookie to DSH's own Set-Cookie (e.g. language prefs) instead of overwriting
    it, so DSH settings persist.
  • HTTPS (optional) — a self-signed cert encrypts the password/session on
    the wire.
  • Rate limiting — locks out an IP after too many failed logins.
  • Zero-install dependencies — the CLI is pure Node built-ins; the plugin reuses packages DSH already ships.

Run (standalone CLI)

> Running it as a DSH plugin is the path above.

DSH_PROXY_PASS=yourpassword node lib/cli.js
# or after installing the bin
DSH_PROXY_PASS=yourpassword dsh-3301

Then open http://:3301 from any device on the LAN.

Env (standalone CLI only — the plugin is configured from its settings card)

var default meaning
DSH_PROXY_PORT 3301 listen port
DSH_PROXY_HOST 0.0.0.0 listen host
DSH_PROXY_USER dsh basic-auth username
DSH_PROXY_PASS (required) basic-auth password
DSH_UPSTREAM 127.0.0.1:3080 upstream DSH host:port
DSH_PROXY_SECRET_FILE os.tmpdir()/dsh-3301-secret session-signing secret file
DSH_PROXY_CERT /tmp/dsh-3301-cert.pem HTTPS cert (enables TLS if present)
DSH_PROXY_KEY /tmp/dsh-3301-key.pem HTTPS key

HTTPS (recommended, standalone CLI only)

> The plugin's 3301 entry is plain HTTP — put TLS or a tunnel in front of it if the network is untrusted.

Generate a self-signed cert once, then the proxy serves HTTPS:

openssl req -x509 -newkey rsa:2048 -nodes \
-keyout /tmp/dsh-3301-key.pem -out /tmp/dsh-3301-cert.pem \
-days 365 -subj "/CN=dsh-3301"

Browsers will show a one-time self-signed warning — accept it once. The
password and session are then encrypted on the wire.

macOS launchd (auto-start, standalone CLI only)

> The plugin starts and stops with DSH, so no launchd entry is needed.

See com.dsh.lan-proxy.plist (template). Load it with:

launchctl bootstrap gui/$(id -u) /path/to/com.dsh.lan-proxy.plist

Manual stop / start

# stop (turn the proxy off)
launchctl bootout gui/$(id -u)/com.dsh.lan-proxy

# start again
launchctl bootstrap gui/$(id -u) /path/to/Library/LaunchAgents/com.dsh.lan-proxy.plist

# check status
launchctl list | grep dsh.lan-proxy

Security notes & risks

What's hardened:
- DSH stays loopback-only (never exposed directly).
- Auth is a HMAC-SHA256 signed cookie with constant-time comparison and
HttpOnly — tamper-proof and resistant to timing attacks.
- Rate limiting (5 failures → 5 min lockout) is on by default.
- HTTPS (when enabled) encrypts the password and session on the wire.

Known risks / things to be aware of:
- Weak / plaintext password — the default example uses a short numeric
password stored in plaintext in the launchd plist. Anyone who can read the
plist (or the process env) sees it. Use a strong, random password and
keep it out of plaintext config where possible.
- Self-signed cert — browsers show a one-time warning. The encryption is
real (RSA 2048), but the cert isn't from a trusted CA, so a MITM on first
connect is theoretically possible if the user blindly accepts without
verifying the fingerprint.
- LAN exposure — the proxy binds to 0.0.0.0; anyone on the LAN can
attempt access. The password is the only gate. On an untrusted network this
is not sufficient.
- No per-IP allowlist — access is password-only. If you need stricter
control, put this behind a VPN (e.g. Tailscale) or add an IP allowlist.

Recommended deployment:
1. Use a strong password (≥12 chars, mixed).
2. Enable HTTPS (self-signed is fine for a trusted LAN).
3. Put it behind a VPN (Tailscale/WireGuard) if the LAN isn't trusted.
4. Keep the password out of plaintext config (use a secret file with 0600
perms, or an env from a secure source).

Contributing

Contributions are welcome! Ideas that would help:

  • IP allowlist / per-user access control.
  • OAuth2 / SSO login (replace the password with an existing account).
  • Proper TLS via mkcert or Let's Encrypt.
  • Brute-force hardening (exponential backoff, persistent lockout state).
  • Tests and CI.
  • Better docs / translations.

Open an issue or PR — see the GitHub repo.

Acknowledgement

This work is conducted by Aztech Labs with DeepSeek Harness (Deepseek-V4.1-Flash).

License

MIT

常见问题

7 问
答案由本站依据条目字段整理,不引用上游原文
dsh-3301 怎么安装?

本站没有抓到该条目的安装命令,请到仓库主页确认安装方式;这类条目多数是生态应用或尚未发布安装包的项目。

dsh-3301 的验证等级是什么意思?

未标注验证等级。上游未给出验证结论,安装前请自行确认

dsh-3301 安全吗?

未标注。

dsh-3301 装之前要先确认什么?

先看它会读写哪些文件、执行哪些命令、连接哪些网络地址;验证等级只说明装得上、跑得起来,不等于安全。涉及密钥或系统权限的,建议先在隔离环境试装。

dsh-3301 用的是什么许可证?

上游标注为 MIT。商用或二次分发前请到仓库确认许可证原文。

dsh-3301 有哪些功能?

局域网反向代理入口、密码保护与 scrypt 校验、HTTP 与 WebSocket 转发、签名会话 Cookie 登录、随 DSH 进程启停。

这条记录的数据可靠吗?

本站按仓库名去重后合并整理,字段以作者仓库与 npm 元数据为准;安装命令、仓库地址与 README 保持原文,带 L4 / L5 标记的安装命令已在隔离沙盒里真实跑通。

会话与消息
按星标排序,可作替代方案

dsh-desktop

dsh-desktop

为 DeepSeek Harness (DSH) 插件生态打造的现代化桌面端解决方案。万物皆「插件」,桌面本身也是「插件」。

L3 · 安装规范通过 3.0 万 星

openpets

openpets

L4 · 沙盒安装通过 1,274 星

deeptide

deeptide

L4 · 沙盒安装通过 1,104 星

jingyun-dsh

jingyun-dsh

井云 DSH 客户端插件,为 DeepSeek Harness 注入会员登录、订阅支付、算力管控与应用市场,让智能体和技能快速变成可交易商品

L3 · 安装规范通过 1,004 星

study-mate

study-mate

StudyMate 是 DSH 的「学习模式」预设与技能包,为数学、计算机科目定制学习路线、讲解课件与练习评估,跨科目共享记忆。

未标注验证等级 856 星

插件的元信息来自作者仓库;分类、验证等级与安全结论的中文说明为中文整理,最近核验 —。