dsh-remote-desktop
界面增强 活跃维护

dsh-remote-desktop

sincerity711/dsh-remote-desktop

双插件捆绑工具,一端运行于本地DSH页面,另一端部署于远程服务器,可直接操作远程DeepSeek Harness的网页会话,无需跳转多页面即可完成远程会话管控,交互流畅。

0
Stars 标星
0
Forks 分支
0
Watchers 关注
0
Open Issues
JavaScript
主要语言
MIT
开源协议
444 KB
仓库大小
1 个月前
最后推送
一键安装扩展 / 插件指令
dsh plugin --profile web add github:sincerity711/dsh-remote-desktop
git clone https://github.com/sincerity711/dsh-remote-desktop.git
git clone git@github.com:sincerity711/dsh-remote-desktop.git
README.md main

dsh-remote-desktop

Operate remote DeepSeek Harness web sessions from one local DSH web page.

dsh-remote-desktop is a two-plugin bundle:

  • dsh-remote-desktop runs in the local DSH web profile. It discovers SSH hosts, opens tunnels, proxies remote DSH APIs, and replaces the local workspace sidebar with a unified local/remote workspace browser.
  • dsh-remote-desktop-companion runs in each remote DSH web profile. It validates iframe control messages from the local page, opens requested remote sessions, and hides the embedded remote sidebar.

The result is a project-first sidebar where local workspaces and connected remote workspaces appear in one list. Remote projects show a compact host marker such as win-wsl or xsn, and remote sessions open inside an isolated iframe.

Features

  • Unified local + remote workspace sidebar for DSH Web.
  • SSH-based host discovery from concrete Host entries in ~/.ssh/config.
  • Per-host loopback tunnel and browser proxy.
  • Remote session open, new session, rename, fork, archive, search, and workspace mutations routed to the owning host.
  • Add remote workspace flow with a remote directory picker starting at the SSH user's home.
  • Source-aware Ungrouped buckets, including per-host Archive all sessions.
  • Official Settings integration for Remote Desktop host management.

Feature screenshots

All screenshots below are synthetic and use anonymized host, user, workspace, and session names.

Unified local + remote sidebar

Unified local and remote DSH sidebar

Remote workspace directory picker

Remote workspace directory picker

Remote Desktop settings

Remote Desktop settings host list

Install

Install the local controller into the local DSH web profile:

dsh plugin --profile web add dsh-remote-desktop

Install the companion into every remote DSH web profile that should be controlled from the local page:

dsh plugin --profile web add dsh-remote-desktop-companion

Before npm publication, clone this repository and install the package directories explicitly:

git clone https://github.com/sincerity711/dsh-remote-desktop.git

dsh plugin --profile web add /path/to/dsh-remote-desktop/packages/local
# On each remote host/profile:
dsh plugin --profile web add /path/to/dsh-remote-desktop/packages/companion

From a DeepSeek Harness source checkout, replace dsh with the checkout wrapper, for example pnpm dsh.

Remote host setup

  1. Start DSH Web on the remote machine, bound to remote loopback.
  2. Install dsh-remote-desktop-companion in that remote web profile.
  3. Add a concrete SSH Host alias on the local machine.
  4. Open local DSH Web, go to Settings → Remote Desktop, and connect the host.

Minimal remote command:

DSH_HOME=$HOME/.dsh-remote-desktop \
  dsh --profile web \
  --host 127.0.0.1 \
  --port 30800 \
  --trusted-host 127.0.0.1:30800

Minimal local SSH config:

Host win-wsl
  HostName win-wsl
  User your-user

See Remote server setup for the full setup checklist.

Architecture reference

  • Architecture — package roles, SSH/proxy lifecycle, remote APIs, iframe bridge, sidebar projection, Add workspace flow, and fork inventory.
  • Acceptance standard — P0/P1/P2 validation scope and isolated test-home rules.

Community plugin discovery

This repository is prepared for the current DeepSeek Harness community plugin discovery flow. Add these GitHub topics to the public repository:

dsh-plugin
deepseek-harness
dsh
remote-desktop
remote-workspace

The publishable packages also carry matching npm keywords.

Development

npm run check

For local acceptance on macOS, use Apple container:

npm run acceptance:container:up
npm run acceptance:container:p0
npm run acceptance:container:p1

Start a retained canary system for manual play with local and remote seeded sessions:

ollama pull minicpm-v4.6:1b
npm run acceptance:container:canary

The canary requires the host Ollama service and configures minicpm-v4.6:1b as the routable default model for the local DSH instance and both remote DSH instances. Its isolated processes also receive DSH_RD_OLLAMA_API_KEY=ollama-canary-dummy-key, because the OpenAI-compatible client requires a credential even when the local Ollama endpoint does not validate it. Set DSH_RD_OLLAMA_MODEL, DSH_RD_OLLAMA_BASE_URL, or DSH_RD_OLLAMA_API_KEY to override these canary values.

The Apple container remotes stay running until explicitly stopped:

npm run acceptance:container:down
npm run acceptance:container:clean

External SSH-host acceptance remains available when intentionally validating a real remote host:

npm run acceptance:p0
npm run acceptance:p1