前言¶
本地使用 DSH(DeepSeek Harness)的 Web UI 时,每次启动都需要一个 launch-token,浏览器访问 http://127.0.0.1:3080/ 时需要携带该 token 才能通过授权检查,/api 请求也会因未携带 token 返回 401。这个 token 是当前进程与 harness API 之间唯一的检查机制。如果开发环境在同一台机器上,这个限制会带来额外开销。
下面介绍 dsh-authless 插件,它移除了这一检查,让本地 Web UI 和 API 调用不再需要 token。
这是什么¶
dsh-authless 是一个 DSH 插件,由维护者 zerodegress 发布。它通过修改连接服务的 browserAuth 字段,让所有授权检查都返回通过,从而跳过 launch-token 验证。页面无需 cookie 即可打开,/api 请求和 WebSocket 升级也不需要携带 token。
安装后,dsh --profile web 打印的 URL 不再附带 token 参数,打开页面即可访问。卸载时,插件的修改会被移除,恢复主机原有的授权逻辑。
核心功能¶
插件在连接服务的 browserAuth 字段中放入自己的 owner,并在每次授权检查时返回通过,让已经到达连接服务的请求被正常处理。它不改变主机自身的授权逻辑,只处理 token gate 部分。
插件会先检查请求来源是否属于允许的范围(loopback、监听器绑定的地址,或通过 --trusted-host 声明的地址)。对于来自其他来源的请求,它不干预,保持 403 响应。
安装与启用¶
插件已发布到 npm,包名为 dsh-authless。需要 dsh 版本 0.2.1-rc.2 或更新。
dsh plugin --profile web add dsh-authless
dsh --profile web
执行后,dsh 会打印一个 URL,直接在浏览器打开即可,无需携带 cookie 或 token。
卸载时:
dsh plugin --profile web remove dsh-authless
典型用法¶
在本地开发环境中,如果只运行一个 dsh 进程且不希望每次访问 Web UI 都要复制粘贴 token,可以安装此插件。
启动命令保持不变:
dsh --profile web
浏览器访问打印的 URL,页面和 API 调用均无需额外认证。插件会添加一行 id: authless,不影响主机自身的其他配置覆盖。
适用场景与注意¶
该插件以当前 dsh 进程的权限运行。任何能访问该端口的本地进程都可以使用 harness API,包括其他本地用户。建议只在单用户机器上使用。
反向代理或局域网客户端需要通过 --trusted-host 声明授权,否则响应保持 403。插件不会修改 --host 0.0.0.0 的限制。
插件依赖 @deepseek-ai/dsh-client-connection 0.2.1-rc.2。如果连接服务没有 browserAuth 字段,插件会记录一条警告并保留 token gate。在安装前,建议查看源码与许可证(MIT)。
短结尾¶
dsh-authless 通过移除 launch-token 检查简化了本地 DSH Web UI 的使用流程。适合在单用户开发环境中快速启用,但需注意权限和适用限制。
- 目录页:https://www.skillhub.cn/plugins/zerodegress/dsh-authless
- GitHub:https://github.com/zerodegress/dsh-authless