dsh-remote-access-web#remote-access-web
by wikkd
DSH Web GUI 反向隧道:通过 frp 把 `dsh --profile web` 发布到公网地址,目录选择器改用应用内浏览器,手机或远程机器可直接打开并管理工作区。
Reverse tunnel for the DSH Web GUI: exposes a `dsh --profile web` deployment at a public frp URL and switches the directory picker to the in-app browser, so a phone or remote machine can open and manage the workspace.
安装
dsh plugin --profile web add github:wikkd/dsh-remote-access-web#path:/packages/bundle/remote-access-webGitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试
安装与环境配置指引、插件开发教程见 DSH 中文社区文档 ↗
安装即在你的机器上以你的权限运行第三方代码——它可读写文件、使用凭据、访问网络,DSH 的工具审批不会为插件代码加沙箱。「检测到 manifest」仅代表发现 dsh.bundle / dsh.plugin 清单,不构成兼容性或安全审查;安装前请审阅源码,不熟悉的插件先在不含密钥的环境试用。
README
English | 中文
dsh 浏览器 surface 的远程访问 bundle。cordis.patch.yml 叠加在官方 dsh-web-app 表层之上:它插入 @froststarinquire/dsh-remote-access host 行,由该插件管理一条出站反向隧道,使远程设备能访问 harness web 服务。隧道后端由 provider 配置决定;随附的驱动是 frp provider(provider: 'frp'),运行一个兼容 frpc 的客户端。浏览器 surface(含手机抽屉布局与 remote-auth 配对门禁)由 dsh-web-app 承载;本 bundle 只负责隧道管理,并说明把隧道准入 /api browser-trust 围栏的启动契约。
host 插件改编自 DeepSeek Harness 源码里的 @deepseek-ai/dsh-remote-access(MIT),本仓库以 @froststarinquire scope 发布。
profile 在 dsh.profile.bundles 里把本 bundle 放在 dsh-web-app 之后。因为 bundle patch 替换整行的 config,插入的行全部从部署环境(DSH_REMOTE_ACCESS_*)读取,绝不写死字面量。未配置的安装保持惰性:插件的 provider 默认为 none,所以一个还没有隧道凭据就添加本 bundle 的 profile 不会启动任何子进程。
本 patch 还会把目录选择器固定为应用内 -browse 交互。通过反向隧道时原生 OS 对话框不可用,dsh-web-app 的自适应选择器会让远程操作者无法添加工作区。本 bundle 禁用它,改挂 dsh-host-directory-picker-browse 及其 dsh-client-ui-directory-picker-browse 表层。
配置
该行遵循部署环境变量(全部可选;provider 默认为 none):
| 环境变量 | 含义 |
|---|---|
DSH_REMOTE_ACCESS_PROVIDER |
隧道后端;frp 通过兼容 frpc 的客户端挂载隧道,缺省保持 schema 默认 none(惰性)。该字段为部署可配置,便于后续接入其它后端 |
DSH_REMOTE_ACCESS_FRPC_PATH |
frpc(或兼容程序)的绝对路径;provider 为 frp 时必填 |
DSH_REMOTE_ACCESS_FRP_ARGS |
传给 -f 的 frp 快速启动值,即 <访问密钥>:<隧道ID> |
DSH_REMOTE_ACCESS_CWD |
隧道子进程的工作目录;缺省为进程 cwd |
DSH_REMOTE_ACCESS_PUBLIC_URL |
隧道就绪后对用户展示的公网 URL;插件的 trustedAuthority() 会将其规范化为信任围栏所需的权威值 |
当 provider 为 frp 但 frpcPath/frpArgs 缺失时,所属插件会响亮拒绝激活,而非静默地在没有隧道的情况下运行。
隧道的连接地址由你自己提供——插件从不内置默认端点。请用上方环境变量设置你自有提供方的公网主机(DSH_REMOTE_ACCESS_PUBLIC_URL)与启动凭据(DSH_REMOTE_ACCESS_FRP_ARGS);不设置时,安装保持惰性。
启动契约
隧道的公网权威值必须在启动时进入 /api browser-trust 围栏——围栏只在 dsh-web-app 提供 webRuntime 时采样一次,运行期插件无法事后补挂。请把 <your-tunnel-host:port> 换成你自己的隧道权威值,以可信 host 启动(并按需开启远程 facade):
dsh --profile web \
--trusted-host <your-tunnel-host:port> \
--allow-remote-privileged \
--remote-auth
--allow-remote-privileged 让 loopback 锁定的方法(settings、credentials、原生对话框)也接受该可信权威值;--remote-auth 在非 loopback 的 /api 上强制配对会话门禁。部分隧道服务商(包括典型的 frp 边缘)只支持 HTTPS(对 http:// 返回 501),因此手机应通过 https:// 公网 URL 访问。
Known Limitations and Deferred Work
- 本 bundle 不对远程 surface 做认证——
--remote-auth在dsh-web-app中启用配对门禁;若不启用,隧道会把 harness 暴露给任何能访问公网权威值的人。只应在你信任的隧道上运行。 - 信任围栏是启动时快照——隧道权威值必须通过启动时的
--trusted-host传入;本 bundle 无法在启动后从运行时补加。
同类插件
查看全部 →
k8e
k8e.sh — 开源 Agentic AI 沙箱矩阵

hol-guard
开源AI代理防病毒:运行时拦截风险工具、秘密访问、提示注入、恶意软件包、MCP服务器、插件和技能。

anolisa
ANOLISA(Agentic Nexus Operating Layer & Interface System Architecture):具备运行时、安全性、可观测性和 Tokenless 响应压缩能力的 Agentic OS,可降低 Token 使用量与成本。

mobius
首个自我演进的开源 Agent OS:连接你的团队、AI agent、设备与算力

deepseek-harness-desktop
DeepSeek Harness Tauri 桌面版 | Only 5mb installer, zero environment setup. Windows / macOS / Linux.

open-managed-agents
开源Claude管理代理API实现和自托管Claude标签式代理运行时。即插即用;在Cloudflare Workers/Durable Objects或Node.js上运行。Apache 2.0。