TBChaos/dsh-remote-desks ↗★ 0

dsh-remote-desks

把本机 / WSL / 远端 DSH 的 WebUI 镜像进桌面版 DSH,并在同一界面里启动、停止这些实例。

Package
dsh-remote-desks
Compatibility
Unverified
Harness peer range
^0.2.0-rc.1
Cordis peer range
~4.0.4
Version
0.1.0
License
MIT
Last updated
Sep 30, 2026

Install

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:TBChaos/dsh-remote-desks

配置

- id: remote-desks
  name: dsh-remote-desks
  config:
    instances:
      - id: wsl-ubuntu
        kind: wsl
        distro: Ubuntu-24.04
        user: you
        cwd: /home/you/project
        # 慢速远端可以调大等就绪行的上限(毫秒,默认 90000)
        # readyTimeoutMs: 180000
      - id: local-dev
        kind: local
        label: 本机
        # 吸附(默认,桌面版内置运行时):不拉进程,打开应用就是运行中。
        # attach: true   # 任何宿主都吸附
        # attach: false  # 永不吸附,用下面这份 profile 自己拉一个独立进程
        profile: mirror-local-dev
        cwd: D:\work\demo
      - id: build-server
        kind: ssh
        host: 10.0.0.8
        username: deploy
        auth:
          method: privateKey
          privateKeyPath: C:\Users\you\.ssh\id_ed25519
    switcher:
      enabled: true
      corner: top-center
      offsetX: 56
    layout:
      mode: immersive          # immersive 统一界面(默认)| manage 管理界面
      collapseSidebar: false   # true = 进统一界面时顺手把官方侧栏收成窄条

密码与口令不写进配置,只写凭据名(passwordCredential / passphraseCredential), 值放在 DSH 凭据库里。

形态与吸附有关的几个字段

字段默认说明
layout.modeimmersive面板默认形态:统一界面(镜像铺满)/ 管理界面。用户在面板上点过之后以用户为准(记在本地)
layout.collapseSidebarfalse进统一界面时是否顺手把官方侧栏收成窄条(浮条上的「全窗口」随时可以手动切)
switcher.*见上窗口角上下拉框的开关、贴角与偏移;offsetY 留空 = 跟官方 --dsh-frame-overlay-top

实例字段里与吸附有关的两个

字段默认说明
attach留空 = 自动local 实例是否吸附宿主自身:留空时桌面版内置运行时自动吸附,其它宿主照旧拉进程;true 强制吸附;false 强制不吸附
kind必填只有 local 参与吸附(wsl / ssh 上的 DSH 不可能"就是宿主自己");虚拟机走 ssh / wsl,不需要新 kind
label同 id下拉框里的关键字:括注会被去掉(本机(内置运行时) → 本机),没写类型词就补一个(虚拟机 Ubuntu → SSH · 虚拟机 Ubuntu)

两个镜像相关的配置项

mirror:
  host: 127.0.0.1          # 只允许回环
  portRange: [19500, 19510] # 端点在这个范围内找空位;全占满则退回系统分配
  openMode: auto            # 容器偏好,见下表

openMode 决定镜像用哪种容器承载,四种取值都真的生效(不是解析完就放着):

取值行为真机验证
auto(默认)直接内嵌框架,不再先试桌面原生视图(那条路要申请租约、等放行,失败还要等看门狗超时——用户实测就是"渲染时间过长")✅ 浏览器里实测走 iframe,且第一屏立刻开始加载
webview强制桌面原生视图(官方 webview lease,独立分区、不与应用共享 DOM);挂不上 / 没导航 / 渲染不出来都会自动降级成内嵌框架并写明原因✅ 实测按预期降级并给出说明
iframe同 auto 的内嵌框架(显式写法)✅ 实测 iframe + 镜像 UI 渲染
browser不做内嵌,交给系统浏览器打开✅ 实测面板不再内嵌、给出说明
rightbar实验性:先把主区切回对话(右栏是会话作用域的,本面板占着主区时工作面根本没挂载),再尝试把镜像开进官方右栏浏览器标签;失败会退回内嵌框架并说明原因⚠️ 标签能建起来,但右栏不一定真的打开;且 ui-sidebar-browser 在 Web profile 默认禁用。故不承诺

面板上会写明当前用的是哪种容器,方便对着现象排查。