🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

GUI 认证链接 NingYuanLee/dsh-gui-auth-url

DeepSeek Harness
NingYuanLee16 天前有提交已提供中文文档扫描:含敏感能力

获取带认证令牌的 GUI 地址,供浏览器自动化直接打开

30/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/19 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add NingYuanLee/dsh-gui-auth-url
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · market
装得上吗
本站已在 dsh 0.2.1-rc.5 下真实安装成功
非静态推断
L5 · 运行时冒烟等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 16 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件发起外部网络请求
查看扫描证据(共 41 处,展示前 24 条)
  • 写入本地文件
    src/isolated-web.js:267
    void writeFile(join(home, MARKER_FILENAME), marker, 'utf8').catch(() => {});
  • 发起网络请求
    src/isolated-web.js:283
    const response = await fetch(`http://127.0.0.1:${String(value)}/`, {
  • 读取本地文件
    src/isolated-web.js:340
    const entries = await readdir(instanceRoot.root, { withFileTypes: true }).catch(() => []);
  • 读取本地文件
    src/isolated-web.js:349
    hostMarker = JSON.parse(await readFile(join(home, MARKER_FILENAME), 'utf8'));
  • 读取本地文件
    src/isolated-web.js:391
    const legacyEntries = await readdir(legacyRoot, { withFileTypes: true }).catch(() => []);
  • 读取本地文件
    src/isolated-web.js:397
    hostMarker = JSON.parse(await readFile(join(home, MARKER_FILENAME), 'utf8'));
  • 删除本地文件递归
    src/isolated-web.js:416
    if (options.removeHome === undefined) await rm(home, { recursive: true, force: true, maxRetries: 3 });
  • 写入本地文件
    src/instance-home.js:145
    await mkdir(home, { recursive: true });
  • 读取本地文件
    src/instance-home.js:147
    const homeStat = await lstat(home).catch(() => undefined);
  • 读取本地文件
    src/instance-home.js:150
    let current = await realpath(home);
  • 写入本地文件
    src/instance-home.js:155
    await mkdir(literal).catch((error) => {
  • 读取本地文件
    src/instance-home.js:159
    const stat = await lstat(literal).catch(() => undefined);
  • 读取本地文件
    src/instance-home.js:170
    const real = await realpath(literal);
  • 写入本地文件
    src/instance-home.js:190
    await mkdir(root).catch((error) => {
  • 读取本地文件
    src/instance-home.js:193
    const stat = await lstat(root);
  • 读取本地文件
    src/instance-home.js:196
    return { root, realRoot: await realpath(root) };
  • 写入本地文件
    src/instance-home.js:244
    await mkdir(home);
  • 写入本地文件
    src/instance-home.js:271
    await mkdir(records, { recursive: true });
  • 写入本地文件
    src/instance-home.js:276
    await writeFile(ownerRecordPath(instanceRoot.root, home), JSON.stringify(marker), { encoding: 'utf8', flag: 'wx' });
  • 删除本地文件
    src/instance-home.js:281
    await rmdir(home).catch(() => {});
  • 删除本地文件递归
    src/instance-home.js:400
    await rm(literal, { recursive: true, force: true, maxRetries: 3 });
  • 删除本地文件
    src/instance-home.js:401
    await rm(ownerRecordPath(instanceRoot.root, literal), { force: true }).catch(() => {});
  • 删除本地文件递归
    src/instance-home.js:426
    await rm(literal, { recursive: true, force: true, maxRetries: 3 });
  • 删除本地文件
    src/instance-home.js:427
    await rm(ownerRecordPath(instanceRoot.root, literal), { force: true }).catch(() => {});
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-tools
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

README

由 DeepSeek 最新模型翻译生成
dsh-gui-auth-url DeepSeek Harness 的第三方社区插件。不是 DeepSeek 官方产品。MIT 协议。 把运行中的 DeepSeek Harness Web GUI 的已认证 URL 暴露成智能体工具,浏览器自动化和脚本就能直接打开 GUI,不用再撞上 401 dsh web authentication required。 问题 dsh --profile web 每个进程随机生成一个启动 token,只打印一次: dsh web: http://127.0.0.1:3080/?token=... GET /?token=... 校验 token,设置一个绑定 host:port 的签名 cookie,然后重定向到 /。直接打开裸地址会返回: 401 dsh web authentication required; reopen the URL printed by dsh web. 桌面版在随机端口上启动自己的 Host 进程,从不打印这一行。所以外部浏览器或自动化工具打开 http://127.0.0.1:<port>/ 时,永远拿到 401。目前也没有 --no-browser-auth 开关。
展开完整文档(README 剩余 1 节)
dsh-gui-auth-url

DeepSeek Harness 的第三方社区插件。不是 DeepSeek 官方产品。MIT 协议。

把运行中的 DeepSeek Harness Web GUI 的已认证 URL 暴露成智能体工具,浏览器自动化和脚本就能直接打开 GUI,不用再撞上 401 dsh web authentication required。

问题

dsh --profile web 每个进程随机生成一个启动 token,只打印一次:

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

GET /?token=... 校验 token,设置一个绑定 host:port 的签名 cookie,然后重定向到 /。直接打开裸地址会返回:

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

桌面版在随机端口上启动自己的 Host 进程,从不打印这一行。所以外部浏览器或自动化工具打开 http://127.0.0.1:<port>/ 时,永远拿到 401。目前也没有 --no-browser-auth 开关。

工作原理

插件跑在 Host 进程里,调用官方公开 API connection.authenticatedUrl(baseUrl)——dsh web 打印 URL 用的也是这个调用——再把结果作为工具结果返回。

插件从不读取 $DSH_HOME/.credentials.yaml 里的 cookie 签名密钥,也不自己签发 cookie,所以拿到的 URL 是真正绑定当前进程的第一方会话。

Base URL 的解析顺序:优先 webApp.getAdvertisedUrl()(会遵循 --public-url 和挂载点),其次 webServer.getOrigin(),最后是协议加回环端口。每次调用都重新读取实时值,所以桌面版的随机端口和重启后的 token 都不需要缓存。

安装

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

包内声明了 dsh.bundle.patch,所以 dsh plugin add 会自动把 bundle 写进配置档的 dsh.profile.bundles。重启 DeepSeek Harness,工具就出现了。

想用本地检出:

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

npm 还没发布,目前只有 GitHub 这一个渠道。

从旧名 dsh-gui-session(0.1.x)升级:包名、Cordis row id 和工具名都变了,需要重装一次:

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

用法

插件注册一个工具 gui_auth_url,不带参数。它返回:

{
"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
}

模型看到的是 url 文本;其余字段供程序化调用方使用。把 URL 交给 navigate_page、curl 或任意 HTTP 客户端,即可进入 GUI。

典型用法:调试 DeepSeek Harness 自身时,让智能体用 chrome-devtools-mcp 打开实时 GUI,真实验证布局、交互和 RPC,而不是对着代码猜。

安全

- 返回的 URL 里含有本进程的启动 token。它等同于已登录会话的凭证,只在 Host 进程存活期间有效。
- 不要写进日志、不要提交、不要粘贴到聊天里。需要时再调用一次工具重新生成;重启后旧 token 失效。
- 插件不读 .credentials.yaml,也不签发 cookie;它的权限边界与终端里的 dsh web 完全一致。
- 它与 Discussion #8678 无关(那个讨论讲的是在沙箱内读取签名密钥来伪造 cookie):本插件从不碰那个密钥。

兼容性

| 项目 | 值 |
| dsh | >=0.2.1-rc.2 <0.3.0-0 |
| Node | >=22.19.0 |
| 验证环境 | dsh 0.2.1-rc.2,Windows x64,desktop 与 web 配置档 |
| Web 组合 | 需要 connection 服务;没有 Web GUI 的配置档会报出明确错误 |

显示元数据(locale/.json 加上导出的 ./icon)让 Plugins 页面和 Settings 显示正常的标题、描述和图标,而不是原始包 id。插件不需要构建步骤:直接发布纯 ESM JavaScript。

故障排查

安装后工具不出现。 检查配置档的 package.json,确认 dsh.profile.bundles 里列了 dsh-gui-auth-url。dsh plugin add 通常会写入,但安装失败时可能只留下依赖:

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

重启 DeepSeek Harness,然后用 dsh --profile <name> --dump-config 确认,找 gui-auth-url 那一行。

版本不匹配导致安装被拒。 DSH 在安装时检查 engines.dsh(或 dsh peer 范围)。如果宿主版本超出声明范围,先授予精确版本豁免,重新安装,等有兼容版本后再撤销:

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
Windows 上出现 EPERM: rename ... node_modules\dsh-gui-auth-url_tmp_。 先停掉正在使用该配置档的 DSH 进程,删掉残留的 node_modules\dsh-gui-auth-url 目录,再重试。进程在运行时会锁住这个目录。

「This profile serves no Web GUI」。 只有当配置档挂载了 webApp 或 webServer,并且挂载了 connection 时,插件才会返回 URL。无头风格的配置档没有可打开的 GUI。

开发

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

插件只注册一个工具;ctx.tools.register 返回的 disposer 归 Cordis 所有,所以卸载或热重载插件时,这个工具会被干净地移除。

相关链接

- Discussion #5932 — 本地脚本访问 Web UI 时返回 401
- Discussion #5828 — 请求增加 --no-browser-auth,未采纳
- Discussion #9085 — Desktop 无法获取有效会话
- 官方连接契约
- DeepSeek Harness 社区插件注册表 — 发现更多插件
预览分享卡片长什么样 ↓NingYuanLee/dsh-gui-auth-url
分享 · DeepSeek Harness Hub
NingYuanLee/dsh-gui-auth-url

获取带认证令牌的 GUI 地址,供浏览器自动化直接打开

这是你的仓库?认领条目

回到顶部