← 返回列表
未验证
把命令行服务装进托盘窗口,一键启动看护进程
尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/8/23 · 已提供中文文档
DeepSeek Harness 的原生桌面窗口。一个 Tauri 封装,而非分支。
综合分
28.3
GitHub 分
28.3
用户评分
—
★ Stars
1
周下载量
—
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add kkaktus463/dsh-desktop该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/16(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动
README
DSH Desktop 基于 Tauri 的 DeepSeek Harness 轻量桌面外壳:一个窗口、一个托盘图标,以及对服务 进程的看护。harness 本身是官方版本 —— 这是外壳,不是分支。 功能 启动时先检查端口。如果 harness 已在运行,应用直接连接过去,退出时不会动它;如果 端口空闲,应用会自行启动 harness,并在退出时结束整个进程树。 关闭窗口只是把它收进托盘,harness 继续运行。通过托盘菜单退出;双击托盘图标可以 重新打开窗口。 两种构建 | 版本 | 适用对象 | 内容 | |---|---|---| | lite | 机器上已有 Node 或 harness | 仅应用本体,约 2 MB | | full | 不想安装任何东西 | 应用 + Node + harness,约 46 MB | 完整版自带 Node 和 harness 软件包,因此无需 Node、无需 npm、无需联网即可运行。 轻量版依赖机器上已有的 harness,按下方的来源顺序查找。 为完整版准备运行时(下载 Node 和软件包): npm run fetch-runtime src-tauri/runtime/ 不纳入版本库 —— 该脚本会完整重建它。 从源码运行 npm install npm run dev 构建 npm run build # 轻量版 npm run build:full # 含内置运行时 npm run build:both # 两者,分别放入 dist/lite 和 dist/full 两种构建写入同一个 target/release/bundle 目录,后者会覆盖前者,因此 build:both 会依次构建并把结果收集到 dist/。 单次构建产生两个文件: | 内容 | 位置 | |---|---| | 安装包 | src-tauri/target/release/bundle/nsis/DSH Desktop_0.1.0_x64-setup.exe | | 免安装 exe | src-tauri/target/release/dsh-desktop.exe | 免安装版无需安装,但需要 WebView2 运行时 —— Windows 10 和 11 均已自带。安装包在 缺失时会自动获取。 应用未签名,因此首次运行时 SmartScreen 会发出警告。对未签名程序而言这是正常现 象,只有购买代码签名证书才能消除。 语言 界面和所有消息支持中文、英文和俄文。语言取自系统区域设置;无法识别时回退到英文。 覆盖方式: set DSH_LANG=zh 接受 ru、en、zh。文案集中在 src-tauri/src/i18n.rs 以及 ui/index.html 内的词表中。 图标 源文件为 assets/icon.png。替换后重新生成整套图标: npx tauri icon assets/icon.png 配置 环境变量: | 变量 | 含义 | |---|---| | DSH_PORT | harness 端口,默认 3080。 | | DSH_REPO | 本地源码目录 —— 在其中运行 pnpm dsh web。 | | DSH_COMMAND | 完整的启动命令,优先于其他所有来源。 | | DSH_LANG | 界面语言:ru、en、zh。 | 未设置变量时,应用会自动查找来源,由快到慢: 0. 内置运行时 —— 仅完整版; 1. PATH 中的 dsh —— 全局安装; 2. 常见位置中的 deepseek-harness 目录(桌面、主目录、Documents、 projects、src),通过根 package.json 识别; 3. npx -y @deepseek-ai/dsh web —— 从 npm 下载。 最后一种方式是为完全没有 harness 的机器准备的。如果应用提示正在下载,而你确实 已经有 harness,说明它不在搜索范围内 —— 请用 DSH_REPO 指明路径。 端口冲突 当端口被 harness 以外的程序占用时,应用既不会崩溃,也不会只丢出一句错误:它会查出 占用端口的程序(名称和进程号),挑选第一个空闲端口,并给出选择 —— 在该端口启动 harness,或直接打开已经在响应的页面。所选端口会被记住,因此只会询问一次。 应用绝不会结束他人的进程。它无法区分被遗忘的旧进程和你正需要的服务器,而判断错误 的代价是丢失工作成果。 端口已打开但尚未响应不算冲突:应用最多等待十秒,因为 harness 会先接受连接,之后 才提供第一个页面。 启动耗时 内置运行时、本地源码目录和自定义命令都从磁盘启动,限时两分钟。npx 方式首次使用 时可能需要下载软件包,限时十分钟;启动画面会说明正在下载,而不是看起来卡住。 诊断 harness 的输出写入 %LOCALAPPDATA%\dsh-desktop\harness.log。GUI 进程没有控制台, 如果没有这个文件,启动失败的原因将无处可查。每次启动都会重写该文件。 同时只运行一个实例:再次启动会唤起已打开的窗口。 结构 src-tauri/src/main.rs 窗口、托盘、退出处理、冲突界面 src-tauri/src/server.rs 来源选择、启动与停止 harness src-tauri/src/platform.rs Windows、macOS、Linux 之间的所有差异 src-tauri/src/i18n.rs 消息词表 src-tauri/src/settings.rs 跨次启动保留的内容 ui/index.html 启动画面与冲突界面 启动画面立即显示,harness 在独立线程中启动,就绪后窗口跳转到其地址。就绪的判断标准 是真实的 HTTP 响应,而不仅仅是端口已打开。若启动失败,启动画面会显示错误内容、 所用命令以及日志路径。 平台 所有系统调用都集中在 src-tauri/src/platform.rs:外壳、进程树终止、监听表读取和 数据目录都按 #[cfg] 区分。代码可在 Windows、macOS 和 Linux 上构建,但目前仅在 Windows 上实际验证过。 每种安装包格式只能在对应系统上生成:Windows 生成 .exe,macOS 生成 .dmg, Linux 生成 .deb 和 .AppImage。Tauri 的交叉构建并不实用,因此 .github/workflows/release.yml 会在相应的 GitHub runner 上构建这三种格式,并收集 到草稿版本中。触发方式为 v* 标签或手动运行。 限制 这里没有插件市场,也没有自动更新 —— 它是外壳,不是分支。密钥和设置仍然保存在 dsh 原本的位置:~/.dsh。 通过任务管理器强制结束应用会让 harness 继续运行:此时任何退出处理都来不及执行。 许可证 MIT,© 2026 kkaktus463。可以自由使用、修改和分发,包括商业用途;唯一的条件是随附 许可证文本。 完整版会分发并非本项目所有的软件,各部分保留各自的许可证: - Node.js —— 其许可证与二进制文件放在一起:runtime/LICENSE.node.txt; - harness 软件包及其依赖 —— 许可证文件位于 node_modules 内,随代码一同打包; - DeepSeek Harness 本身 采用 MIT 许可证,本项目未对其进行修改。 轻量版不含上述任何内容 —— 它只是外壳本身。
同作者(kkaktus463)的其他插件
扫码进群