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
INSTALL REFERENCE
dsh plugin --profile web add github:ZichengGurrr/dsh-window
该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。
PROJECT README
把 DeepSeek Harness 的 Web UI 装进 Windows 原生独立窗口(WebView2,即 Edge 内核)的极简启动器。
简体中文 | English
⚠️ 非官方社区项目,与 DeepSeek 公司无隶属关系。"DeepSeek" 商标归其所有者所有。
方式一:DSH 插件(推荐给 DSH 用户)
dsh plugin --profile web add dsh-window
插件自动从 GitHub Releases 安装应用并创建桌面快捷方式「DeepSeek Harness Window」;对话里说"打开桌面应用"即可通过 desktop_launch 工具拉起。详见 plugin/README.md。
方式二:便携版(零门槛,任何人)
DeepSeek-Harness-Window-portable-v*-win-x64.zipDeepSeek Harness Window.exe首次运行 Windows SmartScreen 可能拦截(exe 未签名):点「更多信息 → 仍要运行」即可。
方式三:精简版(已有 Node 环境)
DeepSeek-Harness-Window-v*-win-x64.zip 并解压(4 个文件)%LOCALAPPDATA%\Programs\nodejs、npm install -g @deepseek-ai/dshDeepSeek Harness Window.exeDeepSeek Harness Window.exe --install,卸载用 --uninstall一条命令装齐「Windows 桌面窗口 + DeepEye 视觉(GLM-4V-Flash)+ 语音输入按钮」:
dsh plugin --profile web add github:ZichengGurrr/dsh-window#path:/kit
GLM 视觉需在 ~/.dsh/.env 配置 DEEPEYE_API_KEY(智谱开放平台)。详见 kit/README.md。
| 精简版 slim | 便携版 portable | |
|---|---|---|
| 大小 | ~256KB | ~180MB |
| 适合 | 开发者、已有 Node 环境的人 | 任何人,解压双击即用 |
| 前提 | 已装 Node + npm i -g @deepseek-ai/dsh |
无 |
| 文件名 | DeepSeek-Harness-Window-v*-win-x64.zip |
...-portable-v*-win-x64.zip |
| dsh-window | dsh-desktop-windowos | DeepSeek Harness Desktop | |
|---|---|---|---|
| 安装 | dsh plugin add dsh-window / zip |
插件 / 单 exe | 官网安装包 |
| 体积 | 256KB(精简)/ 180MB(便携) | 约 4.5MB | 安装包 |
| 需要 Node | 精简版需要;便携版不需要 | 需要 | 不需要 |
| 技术栈 | C# + WebView2(系统自带 csc 即可编译) | Tauri v2 + React | Electron |
| 托盘 / 任务完成通知 | 托盘有(closeToTray);通知计划中 |
有 | 有 |
DeepSeek Harness 的图形界面本质是一个本地网页(默认 http://127.0.0.1:3080)。本程序负责起服务(dsh --profile web --host 127.0.0.1 --port 3080),并把"打开浏览器标签页"这一步换成内嵌的 WebView2 窗口。便携版把运行环境(Node、DSH 包、Git)放在程序目录的 runtime\ 下,优先使用,找不到再回退到系统安装。
在 exe 同目录放一个 dsh-window.config.json(可省略,全部有默认值):
{
"host": "127.0.0.1",
"port": 3080,
"waitTimeoutMs": 30000,
"killServerOnClose": true,
"permissionMode": "danger-full-access",
"closeToTray": true,
"checkUpdates": true,
"updateRepo": "ZichengGurrr/dsh-window",
"logFile": true
}
| 字段 | 默认 | 说明 |
|---|---|---|
host / port |
127.0.0.1 / 3080 |
服务地址;改端口即可与其它实例共存 |
waitTimeoutMs |
30000 |
等待服务就绪的超时 |
killServerOnClose |
true |
服务由本程序启动时,关窗是否一并停止 |
permissionMode |
danger-full-access |
传给服务的 DSH 权限模式(也可在 Web UI 里改) |
closeToTray |
false |
点关闭按钮最小化到托盘(托盘菜单:显示主窗口 / 退出) |
checkUpdates |
true |
启动后检查 GitHub Release 新版本,有新版时页面右下角提示 |
updateRepo |
ZichengGurrr/dsh-window |
更新检查的仓库 |
logFile |
false |
写日志到 %LOCALAPPDATA%\DeepSeekHarnessWindow\launcher.log |
| 参数 | 作用 |
|---|---|
| (无) | 确保服务在线,然后打开窗口 |
--check |
只检查运行环境,不启动任何东西 |
--no-window |
只确保服务在线,不打开窗口 |
--install |
一键安装:拷贝到 %LOCALAPPDATA%\Programs\dsh-window,创建桌面/开始菜单快捷方式和卸载项 |
--uninstall |
卸载:移除快捷方式、注册表卸载项与安装目录 |
依赖:Windows + PowerShell + .NET Framework 4.x(自带 csc.exe)。构建脚本自动下载 WebView2 SDK(NuGet)。
.\build.ps1 # 精简版
.\build.ps1 -Portable # 精简版 + 便携版(自动下载 Node/MinGit、npm 安装 DSH)
.\build.ps1 -Version 1.1.0 -IconPath .\my-icon.ico
.\build.ps1 -Portable -DshVersion 0.1.0-rc.6 -NpmRegistry https://registry.npmmirror.com
产物:dist\(精简版目录)、dist-portable\(便携版目录)及仓库根目录下的 zip。
图标是可选的。仓库内不带任何 DeepSeek 官方 logo 素材,请勿在公开分发中使用官方鲸鱼 logo,除非你确认有权使用。
便携版为什么这么大?
Node.js 运行时 + 完整 @deepseek-ai/dsh 包 + MinGit。这是"解压即用"的代价;不需要零安装体验就用精简版。
和直接开浏览器有什么区别?
服务完全一样,会话数据完全共用(~/.dsh)。区别只在窗口形态:独立窗口、独立任务栏图标、关窗即停。
关掉窗口后还能用浏览器访问吗?
如果服务本来就在外面跑着(比如命令行 dsh web),关窗不影响;服务是这个程序起的且 killServerOnClose 为 true,会一起停。
为什么不是单文件 exe? WebView2 需要 3 个运行库文件随 exe 分发(含一个原生 DLL)。4 个文件放一个文件夹,体感与单文件无异。
Windows 弹 SmartScreen 警告? exe 未做代码签名,首次运行会被拦:点「更多信息 → 仍要运行」。签名在 Roadmap 中。
dsh plugin add dsh-window,含 desktop_launch 工具与自动安装/升级)closeToTray,点关闭按钮隐藏到托盘)checkUpdates)--install / --uninstall,开始菜单 + 桌面快捷方式 + 控制面板卸载项)@deepseek-ai/dshMIT(见 LICENSE)
A minimal launcher that puts the DeepSeek Harness Web UI into a native standalone Windows window (WebView2 / Edge engine).
⚠️ Community project, not affiliated with DeepSeek. The "DeepSeek" trademark belongs to its owners.
Option A: DSH plugin (recommended for DSH users)
dsh plugin --profile web add dsh-window
The plugin auto-installs the app from GitHub Releases and creates the desktop shortcut "DeepSeek Harness Window"; say "open the desktop app" in chat to launch it via the desktop_launch tool. See plugin/README.md.
Option B: portable build (anyone, zero prerequisites)
DeepSeek-Harness-Window-portable-v*-win-x64.zip from ReleasesDeepSeek Harness Window.exeFirst run may hit SmartScreen (the exe is unsigned): click "More info → Run anyway".
Option C: slim build (Node environment already present)
DeepSeek-Harness-Window-v*-win-x64.zip (4 files)%LOCALAPPDATA%\Programs\nodejs, npm install -g @deepseek-ai/dshDeepSeek Harness Window.exeDeepSeek Harness Window.exe --install; remove with --uninstallOne command installs the Windows desktop window, DeepEye vision (GLM-4V-Flash), and the voice-input mic button:
dsh plugin --profile web add github:ZichengGurrr/dsh-window#path:/kit
Set DEEPEYE_API_KEY in ~/.dsh/.env (Zhipu open platform) for vision. See kit/README.md.
| slim | portable | |
|---|---|---|
| Size | ~256KB | ~180MB |
| For | developers with Node already set up | anyone, unzip and double-click |
| Prerequisites | Node + npm i -g @deepseek-ai/dsh |
none |
| File | DeepSeek-Harness-Window-v*-win-x64.zip |
...-portable-v*-win-x64.zip |
The DeepSeek Harness GUI is a local web page (default http://127.0.0.1:3080). This app starts the service (dsh --profile web --host 127.0.0.1 --port 3080) and replaces the "open a browser tab" step with an embedded WebView2 window. The portable build keeps the runtime (Node, the DSH package, Git) under runtime\ and falls back to the system install when missing.
Drop a dsh-window.config.json next to the exe (all keys optional):
{
"host": "127.0.0.1",
"port": 3080,
"waitTimeoutMs": 30000,
"killServerOnClose": true,
"permissionMode": "danger-full-access",
"closeToTray": true,
"checkUpdates": true,
"updateRepo": "ZichengGurrr/dsh-window",
"logFile": true
}
| Key | Default | Meaning |
|---|---|---|
host / port |
127.0.0.1 / 3080 |
Service address; change the port to coexist with other instances |
waitTimeoutMs |
30000 |
Service readiness timeout |
killServerOnClose |
true |
Stop the service on window close when this app started it |
permissionMode |
danger-full-access |
DSH permission mode passed to the service (changeable in the Web UI) |
closeToTray |
false |
Minimize to tray on close (tray menu: show window / quit) |
checkUpdates |
true |
Check GitHub Releases on startup and show an in-page banner when a new version exists |
updateRepo |
ZichengGurrr/dsh-window |
Repository used for the update check |
logFile |
false |
Write logs to %LOCALAPPDATA%\DeepSeekHarnessWindow\launcher.log |
| Argument | Effect |
|---|---|
| (none) | Ensure the service is online, then open the window |
--check |
Only check the runtime environment, start nothing |
--no-window |
Only ensure the service is online, open no window |
--install |
One-click install: copies to %LOCALAPPDATA%\Programs\dsh-window, creates desktop/start-menu shortcuts and an uninstall entry |
--uninstall |
Uninstall: removes shortcuts, the registry entry, and the install directory |
Prerequisites: Windows + PowerShell + .NET Framework 4.x (bundled csc.exe). The build script downloads the WebView2 SDK (NuGet) automatically.
.\build.ps1 # slim build
.\build.ps1 -Portable # slim + portable (downloads Node/MinGit, npm-installs DSH)
.\build.ps1 -Version 1.1.0 -IconPath .\my-icon.ico
.\build.ps1 -Portable -DshVersion 0.1.0-rc.6 -NpmRegistry https://registry.npmmirror.com
Output: dist\ (slim), dist-portable\ (portable), and zips in the repo root.
The icon is optional. This repo ships no DeepSeek logo assets; do not use the official whale logo in public distribution unless you are sure you have the rights.
Why is the portable build so big?
Node.js runtime + the full @deepseek-ai/dsh package + MinGit. That is the price of unzip-and-go; use the slim build when you already have Node.
How is this different from opening a browser?
The service is identical and sessions are fully shared (~/.dsh). The difference is window chrome only: standalone window, own taskbar icon, close-to-stop.
Can I still use the browser after closing the window?
Yes, when the service was already running externally (e.g. dsh web in a terminal). When this app started the service and killServerOnClose is true, closing the window stops it.
Why not a single-file exe? WebView2 needs 3 runtime files shipped beside the exe (including a native DLL). Four files in one folder feel the same as a single file.
Windows shows a SmartScreen warning? The exe is not code-signed yet, so the first run is blocked: click "More info → Run anyway". Signing is on the roadmap.
dsh plugin add dsh-window, desktop_launch tool, auto-install/upgrade)closeToTray, X button hides to tray)checkUpdates)--install / --uninstall, start-menu + desktop shortcuts, control-panel entry)@deepseek-ai/dshMIT (see LICENSE)
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: webview2。