dsh-web-ui
zhu1090093659
Plugin and skin collection for DeepSeek Harness (DSH) Web UI - task board, git graph, right-side panel, remote mobile UI, pet, live token stats, and skin center.
PROJECT TOPICS
PROJECT README
A minimal, local-first desktop shell for DeepSeek Harness.
DeepSeek Harness Desktop 将 DeepSeek Harness Web 体验封装为独立桌面应用:自动探测本机服务、一键启动、退出时清理——无需手动操作 CLI 或管理端口。
本项目专注于桌面宿主能力,不 fork、不修改、不注入,也不重新实现 Harness UI。模型、会话、设置、插件和 Agent 能力均由本机安装的官方 @deepseek-ai/dsh 提供。
[!IMPORTANT] 本项目是非官方社区封装,早期版本。安装包未签名、未公证(macOS 首次打开需在「系统设置 → 隐私与安全性」中允许)。Windows 版本尚未在真机验证,暂未发布。
| 平台 | 架构 | 安装包 | 下载 |
|---|---|---|---|
| macOS | Apple Silicon | DMG | 下载 arm64 版本 |
| Windows | x64 | — | 未验证、未发布(见已知限制) |
全部当前和历史安装包可在 GitHub Releases 查看。
DeepSeek Harness 已经提供完整的 Agent Runtime 和 Web UI。本项目不重复实现这些能力,而是补充桌面应用所需的宿主层:
dsh web,使用随机回环端口contextIsolation,禁用 Node.js 集成使用流程(打开应用 → 一键启动 → 进入界面):
| 步骤 | 界面 | 说明 |
|---|---|---|
| 1. 检测 | ![]() |
打开应用,未检测到本机服务:显示「一键启动服务」按钮 |
| 2. 启动 | ![]() |
点击后启动 dsh web(随机回环端口),显示进度 |
| 3. 就绪 | ![]() |
✓ 服务已就绪,即将打开 GUI |
| 4. 进入 | ![]() |
进入完整的 DeepSeek Harness 界面 |
异常场景:
| 界面 | 说明 |
|---|---|
![]() |
启动失败:错误详情 +「重试启动」+「重新检测」 |
![]() |
未找到 dsh:配置指引 +「重新检测」 |
安装包为本地未签名构建。首次启动:
前置要求:本机已安装可用的 dsh(或通过环境变量 DSH_BIN 指定路径)。
| 场景 | 行为 |
|---|---|
本机已有 dsh web 实例(默认 3080) |
自动连接,不重复启动 |
| 没有实例、已装 dsh | 自动启动,或点击「一键启动服务」 |
| 启动失败 | 页面显示错误详情 +「重试启动」+「重新检测」 |
| 未找到 dsh | 页面给出配置指引 +「重新检测」 |
| 服务运行中意外退出 | 回到启动器页面,可重试 |
常用配置(环境变量):
| 变量 | 默认 | 说明 |
|---|---|---|
DSH_BIN |
— | 指定 dsh 可执行文件路径 |
DSH_SHELL_PORT |
3080 |
探测端口:连接已运行实例时用 |
DSH_SHELL_AUTO_START |
1 |
设 0 则不自动启动,只显示「一键启动服务」按钮 |
完整变量表见开发者文档。
DeepSeek Harness Desktop
├── Electron Main
│ ├── 探测已有实例(127.0.0.1:3080)
│ ├── 一键启动 / 自动启动 dsh web
│ ├── 子进程生命周期与退出清理
│ └── 随机回环端口与就绪检测
│
├── dsh web 子进程(本机已安装的 @deepseek-ai/dsh)
│ └── http://127.0.0.1:<random-port>
│
└── Sandboxed BrowserWindow
└── DeepSeek Harness Web UI
127.0.0.1(源码显式拒绝 --host 0.0.0.0,安全红线)contextIsolation 与 Chromium sandboxtaskkill /T 杀进程树)| 平台 | 构建 | 打包后启动 | Web UI |
|---|---|---|---|
| macOS Apple Silicon | DMG 通过 | 通过 | HTTP 200 |
| Windows x64 | ZIP 交叉构建通过 | 未验证 | 未验证 |
| Linux | 未支持 | — | — |
dsh欢迎协作!无论是修复 bug、补充功能、完善文档,还是帮我们在 Windows / Linux 真机上做验证(目前仅 macOS 验证过)。
请通过 GitHub Issues 反馈,或直接提交 Pull Request。
桌面封装采用 MIT License。应用图标使用上游 DeepSeek Harness Web favicon 中的鲸鱼图案。
本项目与 DeepSeek 不存在隶属或官方合作关系。DeepSeek Harness 及相关名称的权利归其各自所有者所有。
开发者指引见 docs/DEVELOPMENT.md。
DeepSeek Harness Desktop packages the DeepSeek Harness Web experience as a standalone desktop app: it probes for a local server, starts it with one click, and cleans up on exit — no manual CLI or port management needed.
This project focuses on desktop hosting. It does not fork, modify, inject into, or reimplement the Harness UI. Models, sessions, settings, plugins, and agent capabilities remain provided by the official @deepseek-ai/dsh installed on your machine.
[!IMPORTANT] This is an unofficial community wrapper and an early-stage project. The installers are unsigned and not notarized (macOS requires approval in System Settings on first launch). Windows is not yet verified on real hardware and is not released.
| Platform | Architecture | Package | Download |
|---|---|---|---|
| macOS | Apple Silicon | DMG | Download for Apple Silicon |
| Windows | x64 | — | Not verified, not released (see Known limitations) |
All current and historical packages are on the GitHub Releases page.
DeepSeek Harness already provides the complete agent runtime and Web UI. This project supplies the host capabilities required for a desktop product:
dsh web automatically (or with one click) on a random loopback port when none is runningcontextIsolation, Node.js integration disabledThe user flow (open the app → one-click start → enter the UI):
| Step | Screen | Notes |
|---|---|---|
| 1. Detect | ![]() |
No local server found — "Start server" button |
| 2. Start | ![]() |
Starts dsh web on a random loopback port, shows progress |
| 3. Ready | ![]() |
✓ Server ready, opening the GUI |
| 4. Enter | ![]() |
Full DeepSeek Harness interface |
Edge cases:
| Screen | Notes |
|---|---|
![]() |
Start failure — error details + "Retry start" + "Re-detect" |
![]() |
dsh not found — setup guidance + "Re-detect" |
The installer is a locally built, unsigned binary. On first launch:
Prerequisite: a usable dsh must be installed locally (or pointed to via the DSH_BIN environment variable).
| Scenario | Behavior |
|---|---|
A dsh web instance is already running (default port 3080) |
Auto-connects, no duplicate server |
No instance, dsh installed |
Auto-starts, or press "Start server" |
| Start failure | Error details + "Retry start" + "Re-detect" on the page |
dsh not found |
Setup guidance + "Re-detect" on the page |
| Server exits unexpectedly | Back to the boot screen, can retry |
Common configuration (environment variables):
| Variable | Default | Purpose |
|---|---|---|
DSH_BIN |
— | Path to the dsh executable |
DSH_SHELL_PORT |
3080 |
Probe port used to connect to a running instance |
DSH_SHELL_AUTO_START |
1 |
Set 0 to disable auto-start and only show the "Start server" button |
See the developer docs for the full variable list.
DeepSeek Harness Desktop
├── Electron Main
│ ├── Probe for an existing instance (127.0.0.1:3080)
│ ├── One-click / auto start of dsh web
│ ├── Child-process lifecycle and exit cleanup
│ └── Random loopback port and readiness checks
│
├── dsh web child process (locally installed @deepseek-ai/dsh)
│ └── http://127.0.0.1:<random-port>
│
└── Sandboxed BrowserWindow
└── DeepSeek Harness Web UI
127.0.0.1 (the source explicitly rejects --host 0.0.0.0, a security red line)contextIsolation and the Chromium sandbox are enabledtaskkill /T process-tree kill on Windows)| Platform | Packaging | Packaged startup | Web UI |
|---|---|---|---|
| macOS Apple Silicon | DMG passed | Passed | HTTP 200 |
| Windows x64 | ZIP cross-build passed | Not verified | Not verified |
| Linux | Not supported | — | — |
dsh installation is requiredContributions are welcome! Whether it is fixing bugs, adding features, improving docs, or helping us verify on real Windows / Linux machines (currently only macOS is verified).
Please open a GitHub Issue or submit a pull request directly.
The desktop wrapper is available under the MIT License. The application icon uses the whale artwork from the upstream DeepSeek Harness Web favicon.
This project is not affiliated with or endorsed by DeepSeek. DeepSeek Harness and related names belong to their respective owners.
Developer guide: docs/DEVELOPMENT.md.
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: desktop-app、electron-builder、webview。