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.

Remote Dsh — DSH Plugin for DeepSeek Harness
← Plugins
R

dsh-remote-dsh

Remote Dsh

DeepSeek Harness plugin: a sidebar tab that takes over the whole page with another DSH instance's Web GUI, plus a remote session-state badge on the rail row. 在侧边栏顶部加一个「远程」标签,整页切到另一台主机上的 DSH。

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

npx -y @deepseek-ai/dsh plugin --profile web add github:hutao562/dsh-remote-dsh#1891eb56dfa84a0527fd5e64fdd114be87ad3284
READMECompatibilityVersions

Compatibility and provenance

Remote Dsh is published as dsh-remote-dsh and currently resolves to version 0.1.1. The Hub verifies its manifest and preserves the exact installation source for reproducible installs.

DSH compatibility
*
Runtime surfaces
web
Release source
github
Registry updated
9/20/2026

Versions

0.1.2stable
9/11/2026
0.1.1stable
9/11/2026
0.1.0stable
9/10/2026

Related plugins

Loading related plugins…

Latest
0.1.1
DSH
*
HMR
Process restart
Tree shaking
Safe tree shaking not declared
Unpacked size
Unavailable
Files
Unavailable
Surface
web
License
MIT
Source
github
GitHub
★ 0
Weekly downloads
65
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 ui-customization.

Better Sidebardsh-better-sidebarDSH web plugin: a VSCode-like right sidebar (explorer / editor / terminal / git / browser), isolated per conversation session. Exposes a service for other plugins to register sidebar tabs and file viewers.Codex Ui@michengai/dsh-codex-uiDSH Codex UI — 为 DeepSeek Harness Web 提供 Codex 风格侧栏、工作区会话树、全局搜索和轮次导航 · A Codex-style sidebar, workspace session tree, global search, and turn navigation for DSH WebDafeiyudsh-dafeiyuA desktop-native BigFish companion driven by DeepSeek Harness session events.Web App@deepseek-ai/dsh-web-appThe dsh browser-surface bundle: the web patch layer over dsh-base plus the runtime glue plugin (frontend dist serving, web-surface prompt, bash runtime variables, URL line)

README

dsh-remote-dsh

A DeepSeek Harness (DSH) plugin. It adds a 「远程」 row at the top of the sidebar; clicking it turns the whole page into another host's DSH Web GUI. The row also carries a session-state dot for that remote — blue while it is running something, green when activity arrived since you last looked.

┌────────────┬──────────────────────────────────┐
│ DSH        │                                  │
│ 🌐 远程 ●1  │                                  │
│ + 新会话   │      另一台主机上的 DSH           │
│ 会话列表…   │      (整个页面都是它)             │
└────────────┴──────────────────────────────────┘

装

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

然后重启一次 DSH。 想跟 main 分支的话,换成 github:hutao562/dsh-remote-dsh 也一样。

用

  1. 在另一台主机上装好 DSH 并跑 dsh web(它会打印带 ?token= 的 URL)。
  2. 把它映射到本机的回环端口:
    ssh -L 3081:127.0.0.1:3080 you@remote-host
    
  3. 侧边栏点「远程」→「+ 添加」→ 地址填 http://127.0.0.1:3081。
  4. 点「⚙」展开设置行,把远程 dsh web 打印的 token 粘进去 →「配对」。

之后只要 cookie 没过期(默认 30 天)就直接进。cookie 能扛远程重启;但 token 是每进程生成的,重新配对要用当前这次的。

一条硬规则:必须是本地回环端口

远程 DSH 的会话 cookie 是 HttpOnly; SameSite=Strict,跨 site 的 iframe 连它的 index.html 都取不到,直接 401:

远程在浏览器里的地址结果
http://127.0.0.1:<端口>(ssh -L,或 frpc stcp / xtcp + visitor)✅ 可用
https://remote.example.com(frps http/tcp 公网域名)❌ 401
http://100.x.y.z:3080(Tailscale IP 直连)❌ 403 + 401

即使用 FRP,也要用 stcp/xtcp + frpc visitor 模式映射成本地回环端口。 这样被控端一行配置都不用改。

原因、推论,以及确实需要公网域名时的做法 → docs/why-loopback.md

rail 上的状态点

颜色含义何时消失
琥珀远端有会话卡在等你回答(批准 / 提问 / 计划评审)在那边答完
蓝远端正跑着东西(含子代理)跑完
绿自你上次打开远程视图之后,有会话跑完了一轮打开远程即清零
红读不到(该远端没装 peer)恢复后

配色和形状都取自远端侧边栏自己那套状态点 —— 蓝色就是会话列表里那个 8 格追逐动画,不是另画一个圆点。

展开时,状态是行最右端的计数胶囊(点 + 数字),和会话行的时间戳在同一条竖线上;侧边栏收起成 rail 时没有文字的位置,点就挂在图标右上角,计数留给 tooltip。

琥珀是唯一一个"看一眼不会消失"的状态 —— 它是阻塞,不是通知。点进远程视图就能看到那边弹出的批准框或提问,答完即灭。

绿点按会话计数:一个会话即便既被提示过、又刚跑完,也只算一个。

要让状态点工作,被控端也要装本插件并以 peer 角色运行。它只发布匿名计数(没有会话 id、标题或内容),而且不需要任何凭据 —— 这是它相比"本地保存 token"的关键优势。

角色配置、为什么不比时钟、以及唯一一处围栏放宽的范围 → docs/peer-status-badge.md

被控端还要做的配置

被远程访问的机器很容易被 DSH 判定成"本机工作站",于是几处面向它自己桌面的功能会打开:文件夹对话框弹在它的屏幕上、Open In 在它那边启动程序、每次启动在它桌面弹一个浏览器……这些都得在被控端关掉,否则你只会对着白屏和 401 猜。

一份可直接抄的清单(五组配置,附原因和验证方法)→ docs/remote-host-setup.md

文件

lib/index.jsNode 半面:主机注册表、/api/remote-dsh 路由、回环围栏、存活探测
lib/client.js浏览器半面:手写 __ModuleLoader__ bundle,注册三个官方 slot
cordis.patch.ymlbundle 层插入行(走 dsh plugin add 时生效)
docs/上面链接的深度说明
.verify/host-pending.mjsNode 半面自检:pending 的记账与归因
.verify/client-smoke.mjs浏览器半面冒烟测试

没有构建步骤 —— lib/ 就是源码,改完即生效。

开发

npm install
npm test          # 112 项断言
npm run test:host   # 只跑 Node 半面:waterfall 记账、resolve / reject / 同步抛出、子代理归因
npm run test:client # 只跑浏览器半面:module loader 契约 + 真 React 渲染 + jsdom 真实点击

想在源码目录里改并让本机 DSH 立刻加载(首次插入即热加载,不需要重启)→ docs/implementation.md

已知限制

  • 琥珀色只在被控端装了 v4 以上的 peer 时才出现。 旧版 peer 不上报 pending,不会因此变红,但也不会有琥珀。
  • 接管时会盖住本地侧边栏,返回靠顶栏按钮;焦点进了 iframe 之后 Esc 会失效。
  • 改 lib/index.js 需要重启 DSH;lib/client.js 的改动刷新页面即可。
  • 只做"用起来",没做 agent 集成 —— 没有把远程主机暴露成模型工具。

其余取舍与实现细节 → docs/implementation.md