dshbase

插件目录 / Developer / dsh-plugin-remote-access

dsh-plugin-remote-access

已验证 · 实测可装 xiaosenho

✓ 持续维护 2 位贡献者 基于 11 个官方 DSH 包

查看 GitHub ↗ ← 返回插件目录

0Stars
0Forks
0未关闭 issue
—语言
2026-08-21最近推送
跨平台平台

功能简介

dsh远程访问插件,支持局域网和公网隧道连接

✅
我们的评价
可用 — 实测通过,早期项目

dsh远程访问插件,支持局域网和公网隧道连接 实测能干净安装、正常启动。早期项目,但功能可用。

「已验证」表示我们的自动化 CI 在干净 profile 里实际执行了 dsh plugin add 并启动成功——仅此而已。功能描述与版本兼容性均为作者声明。这不是安全审计,也不代表对第三方代码的背书。

README

DSH Remote Access

English | 中文

@xiaosenho/dsh-plugin-remote-access is an installable bundle for the DeepSeek Harness Web profile. It adds a Remote Access settings section, starts LAN access or an frpc tunnel on demand, and produces authenticated links for controlling the full Web UI from another computer, tablet, or phone.

Install

Install from npm:

dsh plugin --profile web add @xiaosenho/dsh-plugin-remote-access

Install a local checkout:

dsh plugin --profile web add ./dsh-plugin-remote-access

Pin a commit when installing from a Git repository:

dsh plugin --profile web add github:xiaosenho/dsh-plugin-remote-access#<commit>

A Git install runs this package's prepare build. pnpm initially refuses an unapproved dependency build; follow the dsh diagnostic, allow the package in the Web profile's pnpm-workspace.yaml, then repeat the install:

allowBuilds:
  '@xiaosenho/dsh-plugin-remote-access': true

This permission lets the dependency execute build code on the host. Install only trusted source and pin a commit. An npm release or tarball containing lib/ needs no Git prepare permission.

LAN access

  1. Start dsh --profile web and open Settings > Remote access.
  2. Select LAN, choose the local port, save, and enable the connection.
  3. Copy the displayed link and open it on another device in the same LAN.

The token in the link is an access credential. The first request exchanges it for an HttpOnly, SameSite=Strict cookie and removes the token from the address bar. Disabling, re-enabling, or changing an active configuration revokes the old link.

Tunnel access

The host must provide an frpc executable compatible with the server's frps version. In Settings, enter its absolute path or use the file button to select the local executable. The plugin resolves frpc from PATH by default; frpcPath in the Web profile remains the deployment fallback and the other process limits are configured there:

- id: remote-access
  config:
    listenPort: 3081
    frpcPath: /opt/homebrew/bin/frpc
    processGraceMs: 3000
    frpcStartupTimeoutMs: 500
    frpcOutputMaxBytes: 32768
    requestMaxBytes: 16384

Select Tunnel in Settings and provide:

  • frpc client: the local executable path, selected with the host's native file chooser or entered manually.
  • Server address: the frps control hostname or IP.
  • Server port: frps.bindPort, commonly 7000.
  • server.token: the same token configured as [auth].token on the server.
  • Public endpoint: choose Domain or IP + port.
  • Domain: choose HTTP or HTTPS and enter the authority users open, such as https://dsh.example.com.
  • IP + port: enter the public frps IP and the dedicated remotePort, such as 203.0.113.10:18080.

Domain mode creates an HTTP-type frpc proxy with customDomains. Public HTTP can use frps.vhostHTTPPort directly. For public HTTPS, terminate TLS at a server-side reverse proxy or load balancer and forward to the frps HTTP vhost; this plugin does not present the local Web UI as a TLS origin. IP + port mode creates an frp TCP proxy and sets remotePort, so users open http://<public-ip>:<remote-port> without DNS. The frps allowPorts policy must permit that port. Direct IP mode is HTTP-only; use Domain mode with a trusted certificate for HTTPS.

The plugin also installs a browser-side crypto.randomUUID() compatibility method when an HTTP origin provides crypto.getRandomValues() but not randomUUID(). This keeps Harness workspace RPC calls usable on ordinary LAN HTTP pages without changing the DeepSeek Harness repository.

Security model

  • The primary Web server stays on loopback. A separate authenticated proxy listens on all interfaces for LAN mode and loopback only for tunnel mode.
  • HTTP and WebSocket requests without a valid cookie receive 401 at the authenticated proxy.
  • server.token is a secret Harness setting. It is written only to a 0600 TOML file in a random private directory and never appears in argv, browser responses, or access links.
  • The control API accepts only a loopback socket, loopback Host, and same-origin browser context. Remote browsers reach it only through the authenticated proxy, which rewrites the upstream request to loopback.
  • The native frpc file chooser is host-only. An authenticated remote browser can edit a path manually but cannot open a dialog on the host desktop.
  • Treat each access link as a bearer credential. Do not post it in chat, tickets, or logs. Disable and re-enable remote access if a link may have leaked.

Develop

pnpm install
pnpm run typecheck
pnpm run test
pnpm run build

pnpm pack creates a prebuilt archive installable with dsh plugin --profile web add ./xiaosenho-dsh-plugin-remote-access-0.1.3.tgz.

安装

🧩 让 Agent 自动装(推荐)

装一次目录插件,之后本站所有插件都能让 DeepSeek Harness 自动找、自动装:

dsh plugin add dshbase-catalog

然后对 agent 说「帮我装 dsh-plugin-remote-access」,它会在目录里找到并自动安装。文档:dshbase-catalog · 已验证场景包。

该插件是 GitHub 源码(未发 npm)——直接从仓库装:

Web profile:

dsh plugin --profile web add github:xiaosenho/dsh-plugin-remote-access

Headless(CLI)profile:

dsh plugin --profile headless add github:xiaosenho/dsh-plugin-remote-access

实测报告

验证通过:从 GitHub 源码完成 L1 安装 + L2 加载 + L3 运行(dsh 0.1.0-rc.6)。

安全:尚未扫描——我们的每日静态扫描将很快覆盖它。

分享徽章

Developer 里更多

浏览全部 7819 个插件 →