description: "dsh 的浏览器 GUI:交互式聊天、模型与设置管理、会话历史,供运行 dsh web 表层的用户使用。"
English | 中文
运行 dsh --profile web,打开提供聊天、模型与设置管理以及会话历史的交互式浏览器 GUI。它使用与其他 dsh 表层相同的模型访问、工具与安全默认值。启动时会打印带认证信息的 URL,通常还会在默认浏览器中打开;SSH 会话和 --no-open 会保留该 URL,供你手动打开。你可以更改端口并允许额外主机,但不能绑定所有网络接口。需要在浏览器中交互式工作时选择本包;一次性的命令行任务应使用 dsh-headless。
启动 GUI、打开浏览器,然后开始与 agent(智能体)对话。flag 用于微调本次调用。
dsh --profile web
dsh --profile web --no-open --port 8080
启动后你会看到 dsh web: 行,其根 URL 携带新的进程 token。除非 --no-open 或 SSH 会话抑制,否则默认浏览器会打开该 URL、取得签名 cookie,再重定向到不含认证参数的根页面。页面加载且你可以与 agent 对话,就说明成功了。两种可预期的失败:前端未构建时,启动会以构建提示停止(checkout 中运行 pnpm run build);浏览器无法打开时,stderr 会打印不含凭据的诊断,但服务器会继续运行——请自行打开已打印的启动 URL。
大多数用户不需要设置这些;命令行 flag 会提供给下面四个设置——--host、--port 与 --trusted-host 来自本次调用,--no-open 仅对本次调用关闭浏览器交接:
| 字段 | 默认值 | 含义 |
|---|---|---|
openBrowser |
true |
启动后用默认浏览器打开;SSH 启动会抑制它 |
printUrl |
true |
启动时打印 dsh web: URL 行 |
surfaceContext |
true |
给 agent 提供 GUI 定位上下文,并把 DSH_WEB_URL 暴露给其 shell 命令 |
trustedHosts |
[] |
允许从网络访问 GUI 的额外主机 |
生成的配置目录是每个受支持字段及其 JSDoc 的穷尽式真源。
默认情况下 GUI 只接受本机的连接。绑定所有网络接口的部署也会允许 LAN 内的浏览器访问,此时打印的 URL 会附带一个 LAN 地址;--trusted-host 在两种情况下都能添加额外主机。Host 与 Origin 检查控制可达性,token 交换则认证每个 Host API 方法与 WebSocket 流。LAN 地址只在启动时采样一次,因此之后的网络变化不会被感知——重启 GUI 以重新公告。
通过 SSH 启动 dsh --profile web 时,URL 行仍会打印,但不会为你打开浏览器:本地转发地址由 SSH 客户端或编辑器持有。请在自己的机器上打开转发后的 URL;打印出的 URL 指向远端宿主机 loopback 端点。
每个浏览器会话都从随发行版交付的 preset(默认 standard)组合自己的 agent,而不是共享一套进程级工具集。你可以更改默认 preset,或在 $DSH_HOME/.agent-presets 下添加自己的 preset。
当你想深入了解共享核心、浏览器重载流水线或已构建的前端时,阅读以下页面。
当 surfaceContext 为 true 时,harness:source 段落标明磁盘上的 Harness 实现,但不会声称它就是工作目录;全局段落 app:web-surface(first-party 顺序 10100,位于可复用指令之后)则向模型说明 GUI:规范的本地 URL、「this page」指代什么、更新约定(重载接收端始终开启;无刷新重载还需要 pnpm run dev:web watcher),以及不要启动替代服务器的指令。DSH_WEB_URL 还会连同描述出现在受管 bash 环境中,每次调用时从运行中的服务器解析。当它为 false 时,这两个段落和该变量都不会注册。
每个会话一行源码说明和一段提示词,外加两行受管环境变量;每个进程内保持恒定。
源码与 Web 段落位于第一方可复用指令之后。工具与配置一致时,不同 checkout 路径或本地端口不会改变前置前缀;不保证提供方复用缓存。
这些限制告诉你在不常见的环境下会遇到什么——源码 checkout、SSH 会话或严格网络。它们是当前包约束,不是通用的浏览器对比或任务积压。
pnpm run build;dist 缺失时启动会以构建提示停止,且没有从源码直接服务的回退路径。BROWSER 覆盖只能来自环境——被发现的 .env 不能设置 BROWSER;只有继承值能为自动交接选择可执行文件。--host 0.0.0.0 会在启动时被拒绝;请使用默认 loopback 主机。