dsh-desktop-launcher 使用指南
为 dsh Web GUI 增加桌面一键启动图标(Windows/macOS/Linux)与右上角浮动关机按钮,并把这两项能力纳入设置面板与系统提示词。
本文为派生内容(基于 wiki / faq / compatibility_json 自动组装),非 AI 即时创作。
本文由本站基于该插件已收录的字段自动派生(wiki / faq / compatibility_json / readme),非 AI 即时创作。每节末尾标源字段。
快速上手
dsh-desktop-launcher
— 源: plugin_wiki.wiki_content
安装与验证
dsh plugin --profile web add @linxin666/dsh-desktop-launcher
复制以上命令在 DSH Web Profile 内运行。安装完成后在「插件列表」启用即可。
— 源: plugins.install
关键要点
- Web 终端:xterm.js 远程终端,实时输出,窗口大小自适应;
- 文件传输:SFTP 上传 / 下载,有进度条,能浏览远程目录;
- 端口转发:本地隧道直连远程内网服务(数据库、API、管理后台),只监听 127.0.0.1;
- 集群执行:一条命令并发跑多台主机,按别名 / 环境 / 标签过滤;
- Agent 直连:Agent 和面板共用同一份主机配置,对话里说一句「连一下 xxx 看看状态」,智能体就去执行远程命令。
— 源: plugin_wiki.readme_zh (fallback readme_raw)
常见问题
装好之后桌面上没有图标怎么办?
插件不会自动创建图标。打开「设置 → 插件配置 → Web UI 插件」里的 dsh-desktop-launcher 卡片,点「创建桌面图标」按钮,host 才会把启动脚本写到 ~/.dsh/desktop-launcher/、把图标放到桌面。流程见 packages/dsh-desktop-launcher/README.zh.md:11-12、packages/dsh-desktop-launcher/src/routes.ts:197-217。
双击图标启动后多久才算"完成"?
启动器先探测 GUI 端口(默认 http://127.0.0.1:3080),已经在响应就直接打开浏览器;否则后台启动 dsh web,最多轮询 30 秒等就绪,再开浏览器。30 秒是写死的固定值,初次启动特别慢可能超时。逻辑在 packages/dsh-desktop-launcher/src/core/launcher.ts:24-27(默认 URL)、packages/dsh-desktop-launcher/README.zh.md:13-15。
浮动开关按钮按下后会发生什么?
按钮点击后默认先弹确认框(可由 confirmShutdown 设置关闭),确认后浏览器 POST 到 /api/dsh-desktop-launcher/shutdown,host 先回 200 响应、约 80ms 后再调用 ctx.appExit(缺失时回退 process.exit(0))让 dsh web 进程优雅退出。实现见 packages/dsh-desktop-launcher/src/shutdown-routes.ts:14(EXIT_DELAY_MS=80)、packages/dsh-desktop-launcher/src/index.ts:98-105。
局域网里别人能调到这两个接口吗?
不能。create 和 shutdown 两个路由都走 loopback 围栏:socket 必须命中 IPv4 127/8 / ::1 / IPv4-mapped ::ffff:127/8,并校验同源 Host 头与 sec-fetch-site/origin,非本机请求直接 403。围栏在 packages/dsh-desktop-launcher/src/shutdown-routes.ts:11-16、packages/dsh-desktop-launcher/src/routes.ts:202-204。
我把 dsh 装到了非 PATH 路径,怎么启动?
在设置卡片里把 dshCommand 改成绝对路径(例如 /usr/local/bin/dsh 或 C:\Users\you\scoop\apps\dsh\current\dsh.exe),再点「创建桌面图标」重新生成启动脚本。launcher 不会自动改图标目标,修改 dshCommand / url / profile 后必须重新创建才能生效。说明在 packages/dsh-desktop-launcher/README.zh.md:16-17、packages/dsh-desktop-launcher/src/core/launcher.ts:35-47。
Linux 桌面图标显示但点了不启动怎么办?
GNOME 拒绝未标记为 trusted 的 .desktop 文件。插件会尝试用 gio 把 metadata::trusted 标成 true;没有 gio 的桌面环境图标仍会出现,但需要手动"允许启动"一次。逻辑与限制在 packages/dsh-desktop-launcher/src/routes.ts:183-188、packages/dsh-desktop-launcher/README.zh.md:57-58。
浮动按钮关掉能省点资源吗?关闭后还能用桌面图标吗?
关闭 enabled 总开关会让浮动按钮消失、create/shutdown 路由不再注册,但已经生成在桌面上的图标与 ~/.dsh/desktop-launcher/ 下的脚本不会被删除,依然可以用。开关在 packages/dsh-desktop-launcher/src/index.ts:124-148。
关机按钮会丢失当前会话吗?
会。关机走 ctx.appExit 终止 dsh web 进程,未保存的会话、正在跑的 Agent 任务、以及 Web 终端里的 SSH 会一并中断。这与官方 DSH 退出语义一致,不是独立 bug。提示词在 packages/dsh-desktop-launcher/src/index.ts:81。
— 源: plugin_wiki.faq_json
兼容性
- DSH: 未声明(package.json 无 dsh.engines;devDependencies 锁到 @deepseek-ai/dsh-* ^0.1.0-rc.8 系列,详见 packages/dsh-desktop-launcher/package.json:58-67)
- Node: ^22.19.0 || >=24.0.0(packages/dsh-desktop-launcher/package.json:6-8)
— 源: plugin_wiki.compatibility_json
踩坑提醒
安装前请审阅上游仓库;本指南基于已收录字段自动派生,可能滞后于最新版本。如发现与官方文档冲突,请以上游为准。
— 来源:通用规则