获取带认证令牌的 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
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 16 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
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 社区插件注册表 — 发现更多插件预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
NingYuanLee/dsh-gui-auth-url
获取带认证令牌的 GUI 地址,供浏览器自动化直接打开
相关插件 · 市场 / 管理
插件精选列表awesome-dsh-plugin/awesome-dsh-plugin
DeepSeek Harness(dsh)插件精选列表
★ 22,225未汉化DSH
73.6
新词雷达zhuyansen/new-term-radar
new-term-radar新词雷达
★ 2,049已汉化MCP
72.8
插件生态导航0xsline/awesome-deepseek-harness
安装 贡献指南 DeepSeek Docs 公开插件目录 Issues
★ 1,188已汉化DSH
72.6
技能注册中心iflytek/skillhub
企业级开源智能体技能注册中心——发布、发现并管理组织内可复用的技能包。
★ 5,370已汉化DSH
71.9
插件市场目录imsai-sh/awesome-deepseek-harness-plugins
面向 DeepSeek Harnessdsh生态的社区插件目录,共收录 13941 个插件含 PR 收录与…
★ 355已汉化DSH
71.8
插件精选清单Anil-matcha/awesome-dsh-plugin
DeepSeek Harnessdsh精选指南——DeepSeek…
★ 1,013已汉化DSH
71.7
这是你的仓库?认领条目