DeepSeek Harness Plugin Hub

Publish and manage complete Harness Profiles. Discover Plugins for your next setup.

Explore

PluginsPresetsDocsNews

Community

Publish a pluginContactReport an issue

Resources

Plugin Hub on GitHubDeepSeek HarnessSystem statusPrivacy notice
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

Independent and unofficial. Not affiliated with, authorized by, or endorsed by DeepSeek.

Lan — DSH Plugin for DeepSeek Harness
← Plugins
L

dsh-lan

Lan

Expose dsh web, which only listens on 127.0.0.1, to the local network with mobile support — one package, usable once a phone connects.

The plugin will be installed here. Keep web if you are unsure.

npx -y @deepseek-ai/dsh plugin --profile web add github:xiazhi88/dsh-lan#021903e3c15d8d37127521843e765911259d7b43
READMECompatibilityVersions

Compatibility and provenance

Lan is published as dsh-lan and currently resolves to version 1.0.0. The Hub verifies its manifest and preserves the exact installation source for reproducible installs.

DSH compatibility
*
Runtime surfaces
any
Release source
github
Registry updated
9/15/2026

Versions

1.0.0stable
9/15/2026

Related plugins

Loading related plugins…

Latest
1.0.0
DSH
*
HMR
Process restart
Tree shaking
Safe tree shaking not declared
Unpacked size
Unavailable
Files
Unavailable
Surface
any
License
MIT
Source
github
Weekly downloads
0
View source ↗
README badge

Click the badge to copy Markdown for your README.

Do you maintain this Plugin?Claim benefit · Priority security scan

Verify the GitHub repository declared in package.json to manage this listing. After you claim it, Hub will prioritize a security scan of the current version and publish the result when it passes.

Claim this Plugin →
Report an issue
DeepSeek Harness Plugin Hub
ProfilesPluginsCategoriesNewsDocsSign inManage Profiles
ProfilesPluginsCategoriesNewsDocsSign in

Related plugins

More verified plugins in integrations-communication.

Remote Web Ui@linxin666/dsh-remote-web-uiScan-to-pair remote access for the dsh web GUI that shares one official interface: a QR beside the settings button pairs phones and PCs into the same Web GUI (a portrait-touch adaptation layer for phones, full desktop on PCs) through one-time tokens and rIm@xmanrui/dsh-im把十一种 IM 渠道和公网 AI Office 接入本机 DeepSeek Harness。 Connect eleven IM channels and a public AI Office to a local DeepSeek Harness.DSCODE@toddzheng024/dscode-bundleA complete DeepSeek coding agent with persistent shell, Ultra collaboration and automatic permission review.Acp App@deepseek-ai/dsh-acp-appThe dsh ACP profile bundle: automation-only JSON-RPC stdio and process lifecycle over dsh-base

README

dsh-lan

把只监听 127.0.0.1 的 dsh web 暴露到局域网,供手机客户端连接。

一个包、一个插件、一件小事。不做移动端 CSS、不做公网隧道、不管访问密码 —— 界面怎么呈现、要不要通知,那是客户端自己的事。

为什么需要它

dsh web 有三道限制,手机端一条都绕不过去:

限制说明
只绑 loopbackdsh web 固定监听 127.0.0.1。官方明确禁了 --host 0.0.0.0:"it would expose remote code execution to the network"
/api 有 Host/Origin 栅栏只认 loopback(127/8、localhost、::1)或 --trusted-host 白名单,且 Origin 必须与 Host 同源
会话 cookie 绑定 authoritycookie 名是 dsh-auth-<authority 的 hash>,校验时比对签发时的 authority

所以手机即使能连上 3080,也会被栅栏 401。本插件把入站请求的 Host/Origin 统一改写成 127.0.0.1:<dshPort> 再转发 —— 栅栏永远看到 loopback,cookie 的 authority 也始终一致。

另外它还补两件小事:

  • 首屏注入一次 launch token:token 每次 dsh web 启动都会变,不带就永远拿不到会话 cookie
  • 注入两个 polyfill:crypto.randomUUID 在 http://<IP>(非安全上下文)里原生不可用, 而 DSH 连接层拿它生成 RPC id;AbortSignal.any 在旧 WebView 上缺失会让发送消息直接失败

安装

一个包,装完就能用:

# 从 GitHub 安装
dsh plugin --profile web add github:xiazhi88/dsh-lan -w
# 然后重启 dsh web

已发布到 npm 之后可以简写成 dsh plugin --profile web add dsh-lan -w。

dsh plugin add 会把声明了 dsh.bundle 的包自动加进 profile 的 bundles, 所以你不用手改配置文件。

装上后它自动挂两件事:

网络桥(本包)把只监听 127.0.0.1 的 dsh web 暴露到局域网
移动端适配dsh-web-mobile(MIT,独立维护)—— 抽屉布局、移动端 CSS、触控优化

第二条是依赖,不是 vendored 代码:dsh-web-mobile 在 npm 上独立迭代,本包只是把它一起挂进来。 dsh plugin add 会把声明了 dsh.bundle 的包自动加进 profiles/*/package.json 的 bundles, 而 profile 的模块回退会为整个依赖闭包建链接 —— 所以装一个包,两行插件都到位。

它在宽屏 / 非触摸设备上不会激活(自己的媒体查询带 pointer: coarse), 所以桌面浏览器通过局域网访问不受影响。

重启后终端会打印局域网地址:

dsh-lan: 局域网地址 http://192.168.1.100:3081  (上游 127.0.0.1:3080)

手机连同一 WiFi,把地址填进客户端即可。

配置(可选)

在 profile 的 cordis.patch.yml 里:

- id: dsh-lan
  config:
    port: 3081        # 对外端口,默认 3081
    bind: 0.0.0.0     # 对外绑定地址

端口被占用时(比如 dsh-pocket 还在跑)插件只会打一条警告,不影响 dsh web 本身。

自描述端点

GET http://<你的IP>:3081/__dsh_lan__/info
→ {"name":"dsh-lan","port":3081,"addresses":["http://192.168.1.100:3081"]}

客户端可以据此做地址自动发现。该端点不转发、不需要认证(只回本机地址,不含敏感信息)。

安全

它把能执行任意代码的 DSH 暴露到了局域网。 请确认:

  • 只在可信网络里开(家里 / 自己的 WiFi)
  • 不要把地址或端口转发到公网
  • 需要公网访问时,用带认证的隧道,别直接暴露这个端口

插件本身不做认证 —— 如果需要访问密码,那是另一个层面的需求,请用 dsh-pocket 或自己的反向代理。

移动端 UI 是从哪来的

DSH 核心是纯桌面 Web UI —— max-width: 1023px 这个断点在核心里一次都没出现。 抽屉布局、移动端 CSS、触控优化全部来自 dsh-web-mobile(MIT,作者 mexiaosqwq)。

本包把它作为依赖一起挂上(见上方 cordis.patch.yml 的第二行),所以用户装一个包就够。 它是独立维护的上游项目,不是本仓库的代码,出问题请先看 上游 issues。

移动端适配生效强制宽屏
角落切换按钮、无侧栏、输入框满宽DSH 原生桌面布局

与 dsh-pocket 的关系

两者定位不同,可以并存:

dsh-landsh-pocket
定位只做局域网转发,给客户端用完整的手机访问方案
公网隧道✗✓(cloudflared)
访问密码✗✓
二维码 / 设置页✗✓
移动端 UI 适配✗(DSH 核心也没有)✓(移植自 MIT 的 dsh-web-mobile)
依赖无qrcode 等

需要扫码、公网、密码就用 dsh-pocket;只需要「让手机连得上」就用本插件。

许可

MIT