dsh(DeepSeek Harness)的系统托盘启动器:通过菜单栏控制 dsh --profile web 的启动、停止、重启与热重载,并可在内置浏览器或系统浏览器中打开 dsh 界面。
- 启动 / 停止 / 重启 dsh:菜单栏一键控制 dsh web 服务
- 热重载:不重启进程,热重载 dsh 配置(需 dsh 支持)
- 打开 dsh 界面:可在内置浏览器或系统浏览器中打开(菜单“内置浏览器打开”勾选切换)
- 开机自启:勾选“开机自启 dsh”后,登录时自动启动 dsh(默认关闭)
- 崩溃自愈:dsh 进程异常退出后会自动拉起(macOS 由 launchd 托管,Linux 由 systemd user service 托管)
- 状态显示:菜单栏实时显示 dsh 运行状态(运行中 / 已停止)
- 查看日志:菜单“查看日志”直接打开 dsh 日志文件
- 退出托盘:退出托盘不影响已运行的 dsh
| 平台 | 架构 | 安装包 |
|---|---|---|
| macOS | arm64 | .dmg |
| Linux (Debian/Ubuntu) | x86_64 | .deb |
- 从 GitHub Releases 下载
dsh-launcher_<version>_aarch64.dmg - 打开 dmg,将
dsh-launcher.app拖入/Applications - 首次启动时,若 dsh 未运行会自动拉起;之后可通过菜单栏控制
sudo apt install ./dsh-launcher_<version>_amd64.deb安装后可从应用菜单启动 DSH启动器,或执行 dsh-launcher。
启动后菜单栏出现 DSH 鲸鱼图标,点击展开菜单:
| 菜单项 | 作用 |
|---|---|
| 状态行 | 显示 dsh 运行状态 |
| 打开 dsh 界面 | 打开 dsh Web 界面(默认系统浏览器) |
| 内置浏览器打开 | 勾选后改用内置浏览器打开界面 |
| 重启 dsh | 重启 dsh 服务 |
| 热重载 dsh(控制面) | 热重载 dsh 配置 |
| 停止 dsh / 启动 dsh | 停止 / 启动 dsh 服务 |
| 开机自启 dsh | 登录时自动启动 dsh(默认关) |
| 查看日志 | 打开 dsh 日志文件 |
| 退出托盘 | 退出托盘(dsh 继续运行) |
- dsh:需已安装且可通过 shell 找到(支持 nvm / Volta / Homebrew /
~/.local/bin等常见安装位置) - Node.js:dsh 运行所需,与 dsh 同版本目录解析
- Linux:systemd(用户级服务),
libwebkit2gtk-4.1、libgtk-3、libappindicator3(deb 已声明依赖)
| 内容 | 路径 |
|---|---|
| 托盘配置 | ~/Library/Application Support/dsh-launcher/config.json |
| 托盘日志 | ~/Library/Logs/dsh-launcher.log |
| dsh 日志 | ~/Library/Logs/dsh-web.log |
| LaunchAgent | ~/Library/LaunchAgents/com.dsh-launcher.web.plist |
| 内容 | 路径 |
|---|---|
| 托盘配置 | ~/.config/dsh-launcher/config.json |
| 托盘日志 | ~/.local/state/dsh-launcher/dsh-launcher.log |
| dsh 日志 | ~/.local/state/dsh-launcher/dsh-web.log |
| systemd unit | ~/.config/systemd/user/dsh-launcher-web.service |
遵循 XDG 规范:
XDG_CONFIG_HOME/XDG_STATE_HOME被设置时优先使用对应目录。
# 依赖安装
pnpm install
# debug 启动(需在 src-tauri 目录)
cd src-tauri && cargo run
# 正式打包(macOS)
pnpm tauri build --bundles app # 仅 .app
pnpm tauri build --bundles dmg # .app + dmg
# 正式打包(Linux x86_64 deb,需在 Linux 环境或 CI 中执行)
pnpm tauri build --bundles deb --target x86_64-unknown-linux-gnu产物路径:
src-tauri/target/release/bundle/macos/dsh-launcher.app
src-tauri/target/release/bundle/dmg/dsh-launcher_<version>_aarch64.dmg
src-tauri/target/x86_64-unknown-linux-gnu/release/bundle/deb/dsh-launcher_<version>_amd64.deb
仓库内置 build-deb workflow:
- 手动触发(
workflow_dispatch)或在v*tag 推送时自动触发 - 自动执行 Linux
cargo check+ 构建 x86_64 deb,并上传构建产物 - 打 tag 时额外把 deb 附到 GitHub Release
launchctl bootout gui/$(id -u)/com.dsh-launcher.web
rm ~/Library/LaunchAgents/com.dsh-launcher.web.plist
rm -rf ~/Library/Application\ Support/dsh-launchersystemctl --user disable --now dsh-launcher-web.service
rm ~/.config/systemd/user/dsh-launcher-web.service
systemctl --user daemon-reload
rm -rf ~/.config/dsh-launcher ~/.local/state/dsh-launcher
sudo apt remove dsh-launcher