DeepSeek Harness Plugin Hub

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

探索

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

社区

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

相关链接

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

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

Plugin Loopback Trust — DeepSeek Harness 插件(DSH Plugin)
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins
P

dsh-plugin-loopback-trust

Plugin Loopback Trust

在反向代理后恢复 dsh web 中由 Host 持久化的设置:将页面连接标记为拥有主机,从而使设置/模型页面能够在非回环主机名下正常工作。· 反代部署下恢复 dsh 设置页的 host 持久化。

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

npx -y @deepseek-ai/dsh plugin --profile web add github:6mt/dsh-plugin-loopback-trust#838ddf0d79fb977be896c6cb5dcd0bba68015832
README兼容性版本

兼容性与来源证明

Plugin Loopback Trust 以 dsh-plugin-loopback-trust 发布,当前版本为 0.1.1。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

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

版本

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

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

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

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

认领这个 Plugin →
报告问题

README

dsh-plugin-loopback-trust

English | 中文

Restore Host-persisted settings in DeepSeek Harness (dsh) web when it is reached through a reverse proxy.

The problem

dsh 0.1.7 deliberately gates the Settings pages (especially the Models page) on a loopback check: settings persistence is only offered to pages opened on 127.0.0.1 / localhost / ::1.

// dsh-client-ui-settings
const persistence = ctx.remote.$host.isLoopback ? "host" : "memory";

isLoopback is derived from the browser hostname. When dsh listens on 127.0.0.1:3080 behind nginx (or any reverse proxy) and you open the UI through a domain name, the page is classified as non-privileged: settings silently degrade to in-memory mode and the Models page reports "settings are unavailable in this browser".

What this plugin does

It marks the page's connection as host-owning — the same fact the official desktop shell asserts — so the settings pages keep Host persistence on non-loopback origins. Chat and everything else were never affected and stay byte-identical: the plugin changes exactly one boolean in the client's connection state.

  • Sits in the boot prefetch tier and runs before any client plugin applies
  • Never clobbers a real (desktop) transport; does nothing on loopback pages
  • Zero dependencies, no host-side code, ~60 lines of client JavaScript
  • Requires dsh 0.1.7 – 0.2.x (engines.dsh: ">=0.1.7 <0.3"; verified against 0.1.7 and 0.2.0-rc.2)

Install

dsh plugin --profile web add 6mt/dsh-plugin-loopback-trust

Restart dsh web (a new bundle must boot), then hard-refresh the browser page. The plugin takes effect on every page load; nothing shows up in the UI.

How it works

dsh-client-connection's client entry reads globalThis.__DSH_TRANSPORT__ at plugin start; a transport with ownsHost: true makes connection.isLoopback === true. Bundle scripts in the immediate prefetch tier execute strictly before any plugin applies, so a top-level assignment lands before that read:

globalThis.__DSH_TRANSPORT__ = { ownsHost: true };

The fake transport is inert everywhere else: rpc/fetch/openStream undefined falls back to globalThis.fetch (identical to a plain browser page), and every streamBaseUrl reader optional-chains to document.baseURI / window.location.origin. A fallback in the plugin's apply also patches the live connection.isLoopback property and invalidates api-gateway's cached $host snapshot if ordering ever drifts.

The server-side /api Host fence is not touched. See Security notes.

Verify

  1. Open Settings → Models through your domain: it loads, no "settings are unavailable" banner.
  2. Change a setting, reload the page: the change persisted.
  3. The browser console shows no [loopback-trust] could not patch warning.

Security notes

The loopback gate is intentional: settings writes (model providers, API keys) are restricted to pages the host can bind to loopback. Installing this plugin declares "this origin is trusted" for your deployment:

  • Make sure your reverse proxy enforces whatever access control you expect in front of the domain — dsh's /api Host fence still applies its own rules unchanged.
  • Do not expose the domain to untrusted networks without protection.
  • If a future dsh release makes --trusted-host cover the client-side classification too, prefer that and uninstall this plugin.

This plugin does not exfiltrate anything, has no telemetry, and contains no host-side code — the entire payload is client.js, which you can audit in one sitting.

Compatibility

Hook points are dsh-0.1.7 internals (__DSH_TRANSPORT__.ownsHost semantics, prefetch-tier timing, the $host cache) with no compatibility promise. The package declares engines.dsh: ">=0.1.7 <0.2" so incompatible hosts refuse to install rather than break silently. On breakage the symptom is loud (the settings page returns to its unavailable state) — check dsh-client-connection in your installed version and adjust client.js accordingly.

Uninstall

dsh plugin --profile web remove dsh-plugin-loopback-trust

License

MIT