DeepSeek Harness Plugin Hub

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

探索

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

社区

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

相关链接

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

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

Gui Auth Url — DeepSeek Harness 插件(DSH Plugin)
← Plugins

dsh-gui-auth-url

Gui Auth Url

将正在运行的 DeepSeek Harness Web GUI 的已认证 URL 暴露为代理工具,使浏览器自动化能够打开该 GUI,而不会因 401 错误而失败。

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

npx -y @deepseek-ai/dsh plugin --profile web add dsh-gui-auth-url@0.2.2
README兼容性版本

兼容性与来源证明

Gui Auth Url 以 dsh-gui-auth-url 发布,当前版本为 0.2.2。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
any
发布来源
npm
Registry 更新时间
2026/10/19

版本

0.2.2stable
2026/10/19
0.2.1stable
2026/10/18
0.2.0stable
2026/10/18

相关插件

正在加载相关插件…

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

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

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

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

认领这个 Plugin →
报告问题
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录

相关插件

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

Cc Safety Netcc-safety-net编码代理 CLI 钩子——阻止破坏性命令和访问机密文件Doctor@linxin666/dsh-doctorDSH 配置档案的事务性救援模式,配备受监督的启动器、隔离的恢复容器、确定性修复、健康监控以及本地 Web 恢复控制台Pocketdsh-pocket把 DeepSeek Harness 装进你的口袋:一个包、一个设置页,手机扫码即同步访问电脑上的 DSH(局域网 + 公网,实时同屏)。Codex Subscriptiondsh-codex-subscription在 DeepSeek Harness 中通过 OAuth 使用 ChatGPT 和 Codex 订阅,支持配额、安全重置、网络搜索、图像和快速模式,并可通过 ChatGPT 移动应用(Beta)控制 DSH

README

dsh-gui-auth-url

Third-party community plugin for DeepSeek Harness. Not an official DeepSeek product. MIT licensed.

English | 中文 | Español | Português | हिन्दी

Expose the running DeepSeek Harness Web GUI's authenticated URL as an agent tool, so browser automation and scripts can open the GUI instead of hitting 401 dsh web authentication required.

The problem

dsh --profile web mints a random launch token per process and prints it once:

dsh web: http://127.0.0.1:3080/?token=...

GET /?token=... verifies the token, sets a signed cookie bound to host:port, and redirects to /. Opening the bare address returns:

401 dsh web authentication required; reopen the URL printed by dsh web.

The Desktop edition starts its own Host process on a random port and never prints that line, so any external browser or automation tool opening http://127.0.0.1:<port>/ always gets 401. There is no --no-browser-auth switch today.

How it works

The plugin runs inside the Host process and asks the official public API connection.authenticatedUrl(baseUrl) — the same call dsh web uses to build the URL it prints — then returns the result as a tool result.

It never reads the cookie-signing secret in $DSH_HOME/.credentials.yaml and never mints a cookie itself, so the URL is a genuine first-party session bound to this process.

Base URL resolution prefers webApp.getAdvertisedUrl() (respects --public-url and mounts), then webServer.getOrigin(), then protocol plus loopback port. Every call re-reads the live value, so random Desktop ports and restarted tokens need no cache. The token is attached only when that base is absolute http or https, has no username or password, and — unless the plugin config sets allowPublic: true — names a loopback host (127.0.0.0/8, localhost, or ::1). The returned URL must be that same origin and carry exactly one token. An unacceptable base is refused before authenticatedUrl is called, and the error text never includes the URL.

Install

dsh plugin --profile web add github:NingYuanLee/dsh-gui-auth-url

The package declares dsh.bundle.patch, so dsh plugin add writes the bundle into the profile's dsh.profile.bundles automatically. Restart DeepSeek Harness and the tool appears.

Local checkout instead:

git clone https://github.com/NingYuanLee/dsh-gui-auth-url.git
dsh plugin --profile web add ./dsh-gui-auth-url

The package is published on npm as dsh-gui-auth-url. GitHub is the source repository.

Upgrading from the old name dsh-gui-session (0.1.x): the package name, Cordis row id and tool name all changed, so reinstall once:

dsh plugin --profile <name> remove dsh-gui-session
dsh plugin --profile <name> add github:NingYuanLee/dsh-gui-auth-url

Usage

The plugin registers one tool, gui_auth_url, with no parameters. It returns:

{
  "url": "http://127.0.0.1:3080/?token=...",
  "origin": "http://127.0.0.1:3080",
  "protocol": "http:",
  "host": "127.0.0.1",
  "port": "3080",
  "secure": false
}

The model sees the url text; the other fields are available to programmatic callers. Hand the URL to navigate_page, curl, or any HTTP client to enter the GUI.

Typical use: while debugging DeepSeek Harness itself, let the agent open the live GUI with chrome-devtools-mcp and verify layout, interaction and RPC for real instead of guessing from code.

Security

  • The returned URL contains this process's launch token. It is a credential equivalent to a signed-in session and only works while the Host process is alive.
  • Do not write it to logs, commit it, or paste it into chats. Regenerate by calling the tool again; a restart invalidates it.
  • A successful call still places the token in the session transcript and in later model requests. "Do not write it to logs" does not stop the host from storing the tool result. That is a wider audience than the one line dsh web prints in a terminal.
  • The plugin does not read .credentials.yaml and does not mint cookies.
  • Non-loopback URLs (--public-url, a LAN address, or 0.0.0.0) are refused unless the plugin config is exactly allowPublic: true. That flag trusts the advertised host.
  • It is unrelated to Discussion #8678 (reading the signing secret inside a sandbox to forge cookies): this plugin never touches that secret.

Compatibility

ItemValue
dsh>=0.2.1-rc.2 <0.3.0-0
Node>=22.19.0
Verified ondsh 0.2.1-rc.2, Windows x64, desktop and web profiles
Web combinationneeds the connection service; a profile without a Web GUI reports a clear error

Display metadata (locale/*.json plus the exported ./icon) makes the Plugins page and Settings show a proper title, description and artwork instead of the raw package id. The plugin does not require a build step: it ships plain ESM JavaScript.

Troubleshooting

The tool does not appear after install. Check that the profile's package.json lists dsh-gui-auth-url in dsh.profile.bundles. dsh plugin add normally writes it, but a failed install can leave only the dependency:

{
  "dsh": { "profile": { "bundles": ["@deepseek-ai/dsh-base", "@deepseek-ai/dsh-web-app", "dsh-gui-auth-url"] } }
}

Restart DeepSeek Harness, then confirm with dsh --profile <name> --dump-config and look for the gui-auth-url row.

Installation rejected because of a version mismatch. DSH checks engines.dsh (or dsh peer ranges) at install time. If your host is outside the declared range, grant the exact-version exemption, reinstall, and revoke it once a compatible release exists:

dsh plugin --profile <profile> version-exemptions
dsh plugin --profile <profile> allow-version dsh-gui-auth-url@0.2.1 --dsh-version <runtime> --accept-risk
dsh plugin --profile <profile> revoke-version dsh-gui-auth-url@0.2.1

EPERM: rename ... node_modules\dsh-gui-auth-url_tmp_* on Windows. Stop the DSH process using that profile, delete the stale node_modules\dsh-gui-auth-url directory, and retry. A running process locks the directory.

"This profile serves no Web GUI". The plugin only returns a URL when the profile mounts webApp or webServer plus connection. Headless-style profiles have no GUI to open.

"refusing to attach the launch token to a non-loopback host". The advertised URL is not loopback. The token is not returned. To allow that host, set this entry in the profile patch. A later patch replaces the whole config object, so keep any other keys you need in that same object:

- id: gui-auth-url
  config:
    allowPublic: true

Leave allowPublic unset on a Desktop loopback profile. The flag trusts whatever webApp.getAdvertisedUrl() returns.

Development

node --test test/*.test.js          # unit + manifest compliance tests
node --check src/index.js && node --check src/auth-url.js
npm run check:pack                  # verifies the published tarball contents
src/auth-url.js    pure helpers: base URL resolution + Host session call (unit-tested)
src/index.js       Cordis plugin entry: registers the gui_auth_url tool
locale/            display metadata (en, zh, es, pt, hi)
test/              node:test suites, including packaging invariants
scripts/           tarball check used by prepublishOnly and CI

The plugin only registers a tool; ctx.tools.register returns the disposer that Cordis owns, so unloading or hot-reloading the plugin removes it cleanly.

Related

  • Discussion #5932 — local scripts hitting 401 on the Web UI
  • Discussion #5828 — request for --no-browser-auth, not adopted
  • Discussion #9085 — Desktop cannot obtain a valid session
  • Official connection contract
  • DeepSeek Harness community plugin registry — discover more plugins