DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins
P

dsh-port-token

Port Token

用于 dsh Web GUI 右下角的徽章,点击一次显示此实例的监听端口和远程访问令牌,再次点击收起。

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add github:CAOGGL/dsh-port-token#2cd1ccbf1b83607162eb4c4009320475366b5dce
README兼容性版本

兼容性与来源证明

Port Token 以 dsh-port-token 发布,当前版本为 0.1.0。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
github
Registry 更新时间
2026/10/24

版本

0.1.0stable
2026/10/24

相关插件

正在加载相关插件…

最新版
0.1.0
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
web
许可证
MIT
发布源
github
GitHub
★ 0
周下载
0
最近提交
2026/10/24
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题

相关插件

继续浏览 security-access 分类下经过校验的插件。

Cc Safety Netcc-safety-net编码代理 CLI 钩子——阻止破坏性命令和访问机密文件Pocketdsh-pocket把 DeepSeek Harness 装进你的口袋:一个包、一个设置页,手机扫码即同步访问电脑上的 DSH(局域网 + 公网,实时同屏)。Codex Subscriptiondsh-codex-subscription在 DeepSeek Harness 中通过 OAuth 使用 ChatGPT 和 Codex 订阅,支持配额、安全重置、网络搜索、图像和快速模式,并可通过 ChatGPT 移动应用(Beta)控制 DSHXdpooldsh-xdpool将你拥有的所有免费额度汇聚为一个 DSH 模型池:合并所有本地登录的 WorkBuddy 账户并自动故障转移,通过二维码/网页登录 13 个供应商,汇总 76 个供应商的免费层额度,此外还提供用量仪表盘、模型路由和本地 OpenAI 兼容网关

README

dsh-port-token

English · 中文说明见下

A DeepSeek Harness (dsh) Web GUI plugin: one key badge in the bottom-right corner of the page shows the port this instance is listening on and the token a remote client needs — the exact ?token= from the dsh web: http://127.0.0.1:<port>/?token=… line printed at startup. Click it and the key rotates into a cross while the panel opens; click again, press Esc, or click anywhere beside it to collapse.

  • Host half serves GET /dsh-port-token/info, admitted by the same browser-session check and Host/Origin fence as /api (ctx.connection.admit), reading ctx.webServer.port and ctx.connection.authenticatedUrl().
  • Browser half registers into the shell's shell.overlay slot; React comes from the platform module table, so there is no bundler and no build step.
  • Built and verified against dsh 0.2.0-rc.2 (the runtime bundled by DeepSeek Harness Desktop 0.2.0).

Install: add the package to a profile, drop the row into that profile's cordis.patch.yml, and restart — or run install.ps1. The details are in the Chinese section below.


中文说明

DeepSeek Harness(dsh)Web 界面插件:在页面右下角加一个小钥匙按钮,点一下弹出本实例的 监听端口和远程连接令牌(也就是 dsh web 启动时打印的那行 URL 里的 ?token=)。

点开的瞬间钥匙会原地旋转、缩放成叉号——叉号就是关闭按钮,所以面板里没有第二个 ×。 再点一次、按 Esc、或者点面板旁边的空白处都会收起,叉号再转回钥匙。

收起                                    展开
                          (🔑)      ┌──────────────────────────────┐
                                    │ 本次启动                     │
                                    │ 端口                         │
                                    │ ┌──────────┐ ┌──────┐        │
                                    │ │ 19387    │ │ 复制 │        │
                                    │ └──────────┘ └──────┘        │
                                    │ 远程令牌                     │
                                    │ ┌──────────────────┐ ┌────┐  │
                                    │ │ 3fQ9xLmNpR…       │ │复制│  │
                                    │ └──────────────────┘ └────┘  │
                                    │ 连接地址                     │
                                    │ ┌──────────────────────────┐ │
                                    │ │ http://127.0.0.1:19387/… │ │
                                    │ └──────────────────────────┘ │
                                    │ 令牌等同登录凭据,请勿分享…  │
                                    └──────────────────────────────┘
                                                              (✕)

图标切换是纯 CSS 过渡(两层 SVG 叠在同一 20×20 盒子里,旋转 ±60° + 缩放 + 淡出/淡入, 叉号延迟 40ms 进),面板本身是一次 160ms 的淡入上浮;系统开了「减少动态效果」时两者都关掉。

它为什么需要两个半边

  • dsh web 启动时会打印 dsh web: http://127.0.0.1:19387/?token=…,页面用这个令牌换取 HttpOnly Cookie 后就被重定向到干净 URL,页面里再也拿不到令牌。所以令牌只能由主进程提供。
  • 端口同理:--port 0 时端口是 OS 分配的,只有主进程知道真实值。

于是本插件拆成两半,由同一行 Cordis 插件挂载:

半边文件职责
Hostlib/index.js从 ctx.webServer.port 取监听端口、ctx.connection.authenticatedUrl() 取令牌,在 GET /dsh-port-token/info 返回 JSON
Browserlib/client.js把按钮注册进 shell 的 shell.overlay 槽位,点击时 fetch 上面的路由并渲染面板;钥匙⇄叉号的形变和「点空白关闭」都在这一半

安全边界

  • /dsh-port-token/info 用 ctx.connection.admit(req) 走和 /api 完全一样的 Host/Origin 信任栅栏 + 浏览器会话校验。没有 Cookie 的请求拿到 401,跨站来源拿到 403, 所以能读到这个 JSON 的人,本来就能操作这个 Harness。
  • 响应带 cache-control: no-store,不进任何缓存。
  • 面板里也直接写上「令牌等同登录凭据,请勿分享给他人」。
  • 只接受 GET,其余方法返回 405。

安装

本机(desktop profile)已经装好:%DSH_HOME%\profiles\desktop\node_modules\dsh-port-token 是指向本目录的目录联接,cordis.patch.yml 末尾追加了一行 - insert: … port-token。 重启 DeepSeek Harness 桌面端后按钮就会出现在右下角。其他环境两种方式:

A. 官方命令(会在 profile 里登记依赖)

dsh plugin --profile desktop add link:C:\path\to\dsh-port-token-plugin

然后把这一行加进 %DSH_HOME%\profiles\<profile>\cordis.patch.yml:

- insert:
    - id: port-token
      name: "dsh-port-token"

B. 仓库自带脚本(只建目录联接 + 改 patch 层,不动 package.json)

# 安装(默认 desktop profile)
.\install.ps1
# 换 profile
.\install.ps1 -Profile web
# 卸载
.\install.ps1 -Remove

脚本做的事:node_modules/dsh-port-token → 本目录的目录联接,加上 patch 层里的那一行。 改完 需要重启 DeepSeek Harness 桌面端(patch 层只在启动时组合,不做热加载)。

卸载

.\install.ps1 -Remove

然后重启。手工等价操作:删掉 node_modules\dsh-port-token 联接,并从 cordis.patch.yml 删掉 id: port-token 那一行。

兼容性

在 DeepSeek Harness 桌面端 0.2.0(内置 dsh 0.2.0-rc.2) 上对着真实运行时代码验证过:

  • 宿主侧 API:ctx.webServer.register({ kind: 'exact', path, handler })、ctx.webServer.port、 ctx.connection.admit()、ctx.connection.authenticatedUrl()。
  • 浏览器侧 API:ctx.slots.inject() / ctx.slots.register()(shell.overlay 是 dsh-client-ui-layout 声明的 list 槽位,AppFrame 把它渲染成 position:absolute; inset:0 的覆盖层)、ctx.locale.register() / ctx.locale.bind()。
  • 浏览器半边只用平台种子表里的 react,没有构建步骤,也不需要声明 dsh.client.external。

会话 Cookie 变化、端口变化都不需要改代码:每次展开都会重新读一次主进程。

校验

node tools/verify-host.mjs     # 路由契约:200/401/403/405/500、no-store、随 fiber 释放
node tools/verify-browser.mjs  # 注册、槽位、四种渲染状态、复制、Esc、失败重试