TommyFang2077/dsh-easy-desktop
官方 DeepSeek Harness(dsh)原生桌面壳:Tauri 2 把官方 WebUI 变成原生桌面窗口,保留会话/工作区/插件/技能。内置 SenseVoice 离线语音输入、插件市场、视觉模型配置;锚定模式解决 DeepSeek 思考模式问题
项目介绍Project Overview
dsh-easy-desktop 是官方 DeepSeek Harness 的第三方 Tauri 2 桌面壳,基于系统 WebView 运行官方 WebUI,保留会话、工作区、插件与技能。内置离线语音(SenseVoice 首次需下载约 245 MB)、插件市场与可视化视觉模型配置(ModLens),并提供锚定预设与原生窗口。适用于希望摆脱浏览器、获得桌面集成的用户。注意 macOS 安装包未公证,首次打开需手动放行。
dsh-easy-desktop is a third-party Tauri 2 desktop shell for the official DeepSeek Harness, running the upstream WebUI inside a native window via the system WebView while preserving sessions, workspaces, plugins, and skills. It adds built-in offline voice input via SenseVoice, an in-app plugin marketplace, visual model configuration through ModLens, and an anchored preset. Use it when you want a native desktop experience instead of a browser tab. Note that the first voice use downloads roughly 245 MB on demand, and macOS builds are not notarized.
请帮我了解并安装插件:【dsh-easy-desktop】【https://github.com/TommyFang2077/dsh-easy-desktop】
把上面这条消息直接发给当前会话里的 DSH,让它帮你了解并安装。安装命令不一定准确,发给 DSH 更稳。Send this message to DSH in your current session. CLI install commands may not be accurate across systems — DSH will figure it out for you.
或使用命令行安装(适合开发者)Or use CLI install (for developers)
命令行安装CLI Install
dsh plugin --profile web add github:TommyFang2077/dsh-easy-desktop
把 TommyFang2077/dsh-easy-desktop 加入你的 DSH 配置(web profile)即可启用。
READMEREADME
DeepSeek Harness Desktop
官方 DeepSeek Harness(dsh)的原生桌面壳
离线语音输入 · 内置插件市场 · 可视化配置视觉模型
下载 · 大陆镜像 · 核心体验 · 三十秒上手 · 从源码运行
dsh 原本运行在浏览器标签页中;本项目用 Tauri 2 和系统 WebView 把官方 WebUI 变成原生桌面窗口。会话、工作区、插件和技能全部保留,dsh 更新后界面也会随之更新,不需要重新打包前端。
这是作者维护的第三方壳,不包含 DeepSeek Harness 源码。重点补齐官方 WebUI 在桌面端缺少的输入和扩展体验:直接说话、直接安装插件、直接配置视觉模型。
核心体验
内置语音:SenseVoice 本机离线听写
对话框旁直接提供麦克风按钮;按 Ctrl+E(macOS 为 ⌘E)即可开始或结束听写,也可切换为按住说话。默认引擎是本机离线 SenseVoiceSmall,支持中文、粤语、英语、日语和韩语,识别结果直接写入当前输入框。
模型和 sherpa-onnx WASM 运行时不塞进安装包。首次点击麦克风时会明确提示下载约 245 MB,底部状态条持续显示下载与校验进度;安装完成后保存在系统缓存目录,录音不离开本机。需要云端识别时,也可切换到 OpenAI 兼容的 /v1/audio/transcriptions 接口。

内置插件市场:发现、安装和更新社区插件
无需记包名或离开应用。在 设置 → Plugin Market 中可以浏览目录、搜索分类、查看已安装插件,并直接安装、更新、备份或恢复社区插件。ModLens 等默认组件也能从这里正常更新;桌面启动不会再把用户更新的版本降回内置基线。

视觉模型配置:给 DeepSeek 带上眼睛
纯文本 DeepSeek 配合视觉桥后,可以直接粘贴截图识别内容。引擎配置在 设置 → 插件 → 插件配置 → 视觉引擎(ModLens):支持 OpenAI 兼容接口、Gemini API、Anthropic API、Antigravity CLI 和 Claude Code 登录,只展示当前引擎需要的字段,密钥保存在本机 ~/.modlens/config.json 中,相关外链由系统浏览器打开。

锚定模式与原生窗口
内置的锚定式标准预设首轮使用 Minimal 工具表固定执行轨迹,从第二轮起恢复完整 Standard 工具目录。Project2 / DeepSeek V4 Pro 同配置 Ability 为 98 / 99,相对官方 Standard 的 91 约 +8% / +9%。这是社区实验预设,不代表所有任务都会提升。
36px 薄标题栏保留更多对话空间;左侧 ••• 菜单可重新启动 dsh 或在浏览器中打开。关闭窗口会停止对应的 dsh web 进程,凭据、权限和会话仍保存在 ~/.dsh。

三十秒上手
从 GitHub Releases 下载对应平台的安装包;中国大陆网络可改用 Gitea 发行版镜像。壳会在启动时从该镜像检查自身更新,下载完成后先校验 Tauri 签名再安装;超过镜像网关限制的 Linux AppImage 仍使用 GitHub 下载地址。
| 平台 | 产物 | 运行时要求 |
|---|---|---|
| Windows | NSIS .exe / .msi |
WebView2(安装器可引导下载) |
| macOS | Apple Silicon / Intel .dmg |
未公证,首次打开需在「隐私与安全性」允许 |
| Linux | .deb / .rpm |
WebKitGTK 4.1 |
| Linux Flatpak | .flatpak |
零依赖:自带 Node.js 24 与官方 dsh |
所有原生安装包都自带匹配平台的官方 Node.js 24、npm 和 dsh 内核,首次启动无需下载 Node.js 或 npm。壳会在启动时把更新资源部署到可写数据目录;检测到 npm 时每天检查并把新版官方内核安装到该目录。也可以设置 DSH_DESKTOP_DSH_BIN 指定其他 dsh 可执行文件。
Windows 启动失败时,启动页会显示最后的服务输出;同时壳会在系统数据目录下保留 dsh-desktop/logs/dsh-desktop.log 和 dsh-desktop/diagnostics/startup.jsonl。后者只记录 Node.js、dsh 与捆绑件的部署、启动和退出阶段;若上次进程未正常退出,下次启动会记录 previous-run-interrupted。提交 issue 前请先检查日志内容。
功能一览
| 能力 | 说明 |
|---|---|
| 离线语音 | 对话框麦克风、Ctrl+E / ⌘E 快捷键、SenseVoice 模型按需下载、本机识别 |
| 插件市场 | 在设置内浏览、搜索、安装、更新、备份和恢复社区插件 |
| 视觉模型 | 粘贴图片直接识别;用表单配置五类视觉引擎,不必手改 JSON |
| 官方 WebUI | 会话、工作区、插件和技能原样保留;dsh 更新后界面同步更新 |
| 锚定预设 | Project2 / DeepSeek V4 Pro 相对官方 Standard 约 +8% |
| 原生生命周期 | 随机本地端口启动 dsh web;关闭窗口停止服务;崩溃可一键重启 |
内置能力与数据位置
| 组件 | 当前基线 | 用途 | 本地位置 |
|---|---|---|---|
| DeepSeek Harness | 0.1.0-rc.7 |
所有安装包内置官方 WebUI;检测到 npm 时在线更新 | ~/.local/share/dsh-desktop/dsh-prefix(平台对应数据目录) |
| Node.js runtime | 24.19.0 |
原生安装包内置 Node.js/npm,供官方 dsh 启动和更新使用 | ~/.local/share/dsh-desktop/node-runtime(平台对应数据目录) |
| 离线语音 | dsh-desktop-voice 0.4.0 |
麦克风、快捷键、SenseVoice / OpenAI 兼容听写 | 配置 ~/.config/dsh-desktop/voice.json;模型在系统缓存目录 |
| 插件市场 | dshmarket 1.11.3 |
社区插件的发现、安装和更新 | ~/.dsh/profiles/web |
| 视觉桥 | ModLens 3.16.6 |
让纯文本模型读取粘贴的图片;可从市场更新;引擎配置在「设置 → 插件」 | ~/.dsh/profiles/web;配置 ~/.modlens/config.json |
| 锚定预设 | ffb845c5480a |
锚定式标准与零工具锚定式标准 | ~/.dsh/.agent-presets/ |
应用启动时会同步桌面自带组件,但会保留用户从市场更新到更新版本的 ModLens 和市场。捆绑版本固定在 Makefile 中。
dsh 的查找顺序:DSH_DESKTOP_DSH_BIN → --dsh → 桌面更新目录(首次从安装包复制) → Flatpak 内置路径 → 宿主机常见路径 → PATH → npx。原生安装包启动的 dsh、市场和语音运行时优先使用内置 Node.js/npm;npm 包默认通过 https://registry.npmmirror.com 获取,已有 npm_config_registry / NPM_CONFIG_REGISTRY 会保留,也可用 DSH_DESKTOP_NPM_REGISTRY 显式覆盖。设置 DSH_DESKTOP_NO_UPDATE=1 或传入 --no-update 可关闭 dsh 在线更新,但不会禁用安装包内的内核。
安全与边界
- WebUI 只监听随机的
127.0.0.1端口。 - 语音模型按需下载;SenseVoice 识别在本机执行。
- API 密钥只写入本机配置,不进入仓库或远端服务。
- 卸载桌面壳不会删除
~/.dsh中的会话、权限和工作区设置。
从源码运行
开发依赖:Rust stable、系统 WebView。
- Linux:GTK 3 + WebKitGTK 4.1(Fedora:
gtk3-devel webkit2gtk4.1-devel;Debian/Ubuntu:libgtk-3-dev libwebkit2gtk-4.1-dev) - macOS:WKWebView(Xcode Command Line Tools)
- Windows:WebView2
git clone https://github.com/TommyFang2077/dsh-easy-desktop.git
cd dsh-easy-desktop
make vendor-native # 官方 dsh + ModLens + 市场 + 锚定预设(Tauri 打包资源)
make run # 普通模式(跳过更新,便于开发)
make dev # 开 WebView 检查器和调试日志
cargo run -p dsh-desktop -- --cwd ~/your-project
make test
make install 把二进制装到 ~/.local/bin/dsh-desktop,应用菜单里会出现 DeepSeek Harness。
本地打原生包(先 make vendor-native):
cargo tauri build --bundles deb,rpm # Linux
cargo tauri build --bundles nsis,msi # Windows
cargo tauri build --bundles app,dmg # macOS
发布:推送 v* 标签(如 git tag v0.1.5 && git push origin v0.1.5)。Release 工作流自动测试、打包 Windows / macOS / deb / rpm / Flatpak,发布 GitHub Release,并发布相同安装包和更新 feed 到 Gitea。Gitea pull mirror 收到标签后也会自动等待 GitHub 安装包完成、创建对应的 Gitea Release;必要时可在 Gitea Actions 手动运行,或在具备 GITEA_TOKEN 的环境执行 make gitea-publish RELEASE_TAG=v0.1.5。
Flatpak
Flatpak 额外内置 Node.js 24,因此不依赖宿主机 Node.js。
flatpak remote-add --user --if-not-exists flathub \
https://dl.flathub.org/repo/flathub.flatpakrepo
flatpak install --user -y flathub org.gnome.Sdk//50 org.flatpak.Builder \
org.freedesktop.Sdk.Extension.rust-stable//25.08 \
org.freedesktop.Sdk.Extension.node24//25.08
make vendor
make flatpak-build
make flatpak-install
make flatpak-run
make flatpak-bundle
清单:flatpak/io.github.tommyfang.DshDesktop.yml。权限:网络、宿主文件系统、Wayland/X11、下载目录。
项目结构
dsh-desktop/
├── ui/ # 启动页 + 注入到 WebUI 的标题栏
├── src-tauri/ # Tauri 窗口、命令、deb/rpm/nsis/dmg
├── crates/dsh-core/ # 启动 / 更新 / ModLens / 预设 / 剪贴板
├── plugins/dsh-desktop-voice/ # 设置 → 语音输入 + 对话框麦克风
├── data/ # .desktop、图标、AppStream
├── flatpak/
├── docs/screenshots/ # README 截图
├── docs/licenses/ # 第三方许可证副本
├── vendor/ # make vendor 生成(git 忽略)
├── scripts/vendor-native.sh
├── scripts/localize_preset.py
└── .github/workflows/ # 测试 + 多平台发布
反馈
自用项目,会持续更新。bug、想法、打包问题都欢迎开 issue。
上游项目与许可证
引用与许可证集中列在这里,正文只介绍用户能直接使用的能力。完整版权说明见 THIRD_PARTY.md,许可证副本见 docs/licenses/。
| 组件 | 上游 / 固定版本 | 许可证 |
|---|---|---|
| DeepSeek Harness | deepseek-ai/deepseek-harness · 0.1.0-rc.7 |
MIT |
| ModLens | liustack/modlens · 3.16.6 |
MIT |
| dshmarket | dsh-market/dsh-market · 1.11.3 |
MIT |
| SenseVoiceSmall ONNX | FunAudioLLM/SenseVoice · 按需下载 | MIT |
| sherpa-onnx WASM | k2-fsa/sherpa-onnx · 1.13.5 · 按需下载 |
Apache-2.0(许可证随运行时包提供) |
| Anchored Standard | xiaobright/dsh-anchored-standard · ffb845c5480a |
MIT · NOTICE |
图标与商标
应用图标使用 Icons8 上的 DeepSeek 图标。DeepSeek 名称与鲸鱼标志归 DeepSeek 所有。本项目是独立第三方桌面壳,与 DeepSeek、ModLens、Anchored Standard 的作者均无从属关系。
License
本仓库源码为 MIT,Copyright © 2026 TommyFang2077。
运行时还会用到上游 MIT 组件,版权仍归原作者,详见 THIRD_PARTY.md。
yu-wenchao/deepseek-harness-desktop-Install
AKS1st/dock-files
freestylefly/awesome-gpt-image-2
Sanqi-normal/dsh-webui-market-plugin
bruc3van/dsh-desktop
LAN-TINA-WS/dsh-gui-customization