deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
INSTALL REFERENCE
dsh plugin --profile web add github:bruc3van/dsh-desktop
该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。
PROJECT README
中文 | English
第三方 DSH 桌面客户端。使用官方 Web UI,支持后台运行、系统通知、运行时切换和内置安全市场。
DSH Desktop 是独立的 DeepSeek Harness(dsh)Electron 客户端。窗口直接加载官方 Web UI;桌面端负责运行时启动与连接、托盘、通知、更新和安全控制。
[!IMPORTANT] 这是社区维护的非官方项目。 本项目不是 DeepSeek 官方产品,也不代表 DeepSeek。
DeepSeek、DeepSeek Harness、dsh及相关名称和标识归各自权利人所有。
安装包内置固定版本的官方 @deepseek-ai/dsh 运行时,启动客户端和使用内置运行时无需另行安装 Node.js、pnpm 或 dsh CLI。具体任务或插件仍可能需要额外工具。桌面客户端和官方运行时使用不同版本号,连接设置会同时显示这两个版本。

~/.dsh,或使用桌面端独立数据环境。从 GitHub Releases 下载对应系统的安装包。发布版已经包含官方 dsh 运行时,首次启动不会执行 npm 安装。
| 你的设备 | 选择的安装包 |
|---|---|
| macOS,Apple Silicon(Apple M 系列) | mac-arm64.dmg |
| macOS,Intel | mac-x64.dmg |
| Windows,Intel/AMD 64 位 | win-x64.exe |
| Linux,Intel/AMD 64 位 | linux-x86_64.AppImage |
| Ubuntu 24.04,Intel/AMD 64 位安装版 | linux-amd64.deb |
表中列出文件名后缀,实际文件名还包含客户端版本号。各版本覆盖的平台以该 Release 的下载资产为准。Linux 构建目标包括 x64 AppImage 和 DEB;DEB 以 Ubuntu 24.04 为支持基线,暂不提供 ARM64 或 RPM 包。
macOS/Windows 安装包尚未完成正式开发者签名认证,首次打开时系统可能拦截。
首次打开被系统拦截时
macOS:将应用拖入“应用程序”并打开。然后前往“系统设置 → 隐私与安全性”,点击“仍要打开”。
如果系统提示“已损坏,无法打开”,并且没有“仍要打开”按钮,可在终端执行:
xattr -dr com.apple.quarantine "/Applications/DSH Desktop.app"
Windows:在 Microsoft Defender SmartScreen 中点击“更多信息”,再点击“仍要运行”。
Ubuntu 24.04 安装版(DEB):下载 linux-amd64.deb 结尾的包,在下载目录执行 sudo apt install ./实际文件名.deb,然后从应用菜单打开 DSH Desktop,或运行 dsh-desktop。安装会设置菜单、图标及限定应用路径的 AppArmor 策略,不需要 FUSE。升级前请使用“退出”结束客户端,再执行同一安装命令;sudo apt remove dsh-desktop 卸载应用并保留用户设置及会话数据。
AppImage 便携版:
下载文件名以 linux-x86_64.AppImage 结尾的包。
将文件放到 ~/Applications/(目录不存在时先创建),保留原文件名。
在文件属性中允许执行,然后双击打开。也可用以下命令赋予执行权限:
chmod +x ~/Applications/dsh-desktop-*-linux-x86_64.AppImage
缺少 FUSE 2 时,Ubuntu 24.04 可安装 libfuse2t64;也可在启动 AppImage 时加上 --appimage-extract-and-run 解压运行。若双击后没有窗口,请从终端运行该文件查看错误;遇到用户命名空间或 Chromium 沙箱限制时,按Linux 安装与系统要求配置 AppArmor。客户端要求保留渲染器沙箱。
当前验证环境为 WSL 中的 Ubuntu 24.04,已检查 X11 和 WSLg Wayland。其他发行版及完整原生 GNOME/KDE 桌面仍需独立验证;AppImage 格式不代表所有 Linux 系统均已验证兼容。托盘、系统通知和中文输入法的实际表现取决于桌面环境。
[!TIP] 全新数据目录可能默认显示英文。可在 Settings → General → Language 中切换语言。
| 模式 | 行为 |
|---|---|
| 智能模式(默认) | 按顺序尝试:正在运行的官方实例 → PATH 上的 dsh → npx 缓存 → 内置运行时。 |
| 自定义 | 连接指定的 Web UI 地址,不启动本地运行时。 |
智能模式只使用本机已有的运行时,不下载或安装 Node.js。连接设置可关闭任一来源,但至少保留一种。独立数据环境不复用共享环境中已运行的实例,需保留本机已安装、npx 缓存或内置运行时之一。来源选择先暂存,点击“应用并重新连接”后生效;也可撤销未应用的更改。
客户端启动本地服务时,自动尝试 3080、13080,再使用系统分配的端口。也可以设置固定端口。固定端口被占用时不会自动换端口。
共享数据环境下,如果客户端检测到官方实例仍在运行,但当前设置不允许复用,会拒绝另起进程,也不会结束用户启动的进程。请先在终端停止该实例,或切换到独立数据环境。
可从托盘菜单、macOS/Linux 应用菜单或主窗口快捷键打开“桌面设置”:macOS 使用 Cmd+,,Windows/Linux 使用 Ctrl+,。

连接状态说明:
| 状态 | 含义 |
|---|---|
| 本机已运行 | 复用用户启动的实例 |
| 客户端启动·客户端内置 | 使用安装包内置运行时 |
| 客户端启动·npx 缓存 | 使用 npx 缓存运行时 |
| 客户端启动·本机已安装 | 使用 PATH 上的 dsh |
| 自定义地址 | 连接指定地址,不启动运行时 |
客户端启动的 Web UI 使用本机回环地址。自定义地址可连接自行维护的 Web UI,认证和网络可达性需由该部署保证;地址按协议、主机和端口保存,不保留路径、查询参数或片段。跨机器连接的部署方式请参照所用版本的官方文档。
运行时选择、端口和认证细节见开发指南。
| 数据 | 默认位置 | 管理方 |
|---|---|---|
| 共享环境的会话、凭据、模型配置和插件 | ~/.dsh |
官方 dsh |
| 桌面端设置、命令 shim 和更新下载 | ~/.bruc3van-dsh-desktop |
桌面客户端 |
| 独立环境的会话、凭据、模型配置和插件 | ~/.bruc3van-dsh-desktop/dsh |
官方 dsh |
设置中的“数据环境”可以在共享环境和桌面端独立环境之间切换,重启后生效。切换不会复制原环境中的会话或插件。
旧版 ~/.dsh-desktop 会在新目录不存在时迁移到 ~/.bruc3van-dsh-desktop。移动失败时会复制数据并保留旧目录。
主要安全措施:
dsh web CLI 启动服务,通过 Web UI 的 /api 接口交互;内置市场接入还会调用运行时的配置加载模块并调整插件配置。Windows 安装版支持系统通知。Linux 使用 Chromium 通知。当前 macOS 包没有正式签名,因此系统通知会降级为 Dock 角标、Dock 弹跳和应用内提醒。
使用本客户端仍需遵守 DeepSeek、模型提供方和所连接服务的条款与隐私政策。API Key、模型请求、费用、生成内容以及 Agent 对本机文件和命令的操作由用户和对应服务负责。
Ctrl+Q 结束客户端。dsh web。DSH_HOME 重复启动运行时。无法安全接管或停止旧进程时,会拒绝启动新进程;这些检查不能阻止用户从其他终端或工具启动额外实例。发布版启动后会检查 GitHub Releases,12 小时内不重复自动检查。也可从设置、托盘菜单或 macOS/Linux 应用菜单手动检查。更新窗口显示下载、校验和后续操作;下载失败可重试,关闭窗口后下载可以继续。
macOS 可在应用目录可写时自动替换并重启应用。更新失败时会尝试恢复旧应用。更新会中断客户端管理的本地任务,请选择合适的时间执行。
Linux 更新会按当前安装格式下载并校验 DEB 或 AppImage,然后打开文件位置;DEB 请在退出客户端后用 sudo apt install ./实际文件名.deb 安装新版,AppImage 则手动替换原文件;下载期间任务继续运行。请通过“DSH Desktop → 退出”或 Ctrl+Q 退出客户端,再按安装格式完成更新并重新打开。关闭主窗口仅隐藏窗口,不能代替退出。已校验的下载在客户端重启后仍可复用。
~/.bruc3van-dsh-desktop/bin 生成 node、dsh 和 pnpm 命令入口,并将该目录追加到运行时及其 Agent 命令的 PATH。已有 PATH 中的用户工具优先;客户端不修改系统 PATH。node 使用 Electron 自带的 Node.js 执行能力,pnpm 随安装包提供;客户端未内置 npm 和 npx。如需使用这两个命令,请另行安装包含 npm/npx 的完整 Node.js 发行版,并确保命令在客户端启动的运行时 PATH 中可用。dsh 入口支持插件管理、版本查询和配置导出,会拒绝再次启动 dsh web 等运行时实例。ELECTRON_RUN_AS_NODE 设置,避免普通 Agent shell 命令误用 Electron 的 Node 模式。旧包名为 dsh-desktop-safe-market。客户端管理的旧副本会自动迁移;用户自行安装的旧包保留,需要先停用旧包再安装新包。旧版目录开关不会自动迁入,升级后请在市场页面重新启用。以下截图来自较早版本,功能以文字说明为准。
safer-dsh-market 0.9.1 随安装包离线发布,内置 DSH 为 0.2.0-rc.2。桌面设置中的“启动时接入内置安全市场”默认开启,在客户端启动且依赖兼容的运行时中接入插件,无需在线安装。复用已经运行的本机实例或连接自定义地址时,不改动其插件配置。
市场页面内的“启用安全市场”控制联网读取插件目录,默认关闭,与桌面设置中的接入开关相互独立。用户启用后会保存该选择,并缓存上一次成功获取的数据。关闭桌面设置中的接入开关后,下次由客户端启动运行时时会移除客户端拥有的市场副本及登记;尚未转为客户端管理的用户安装不受该开关管理。
客户端启动本地运行时时,若内置市场版本高于 Web 配置中已启用的普通安装版或官方仓库的 GitHub release tag 安装版,会离线升级并转为客户端管理,同时移除旧的依赖固定和 pnpm 锁文件入口。相同或更高版本、其他自定义来源(如 file/link/git)、无法识别的版本或锁文件会保留;连接已有服务时不会替换。迁移后的市场随客户端更新,也受客户端的内置市场开关管理。
依赖预检以本次启动的运行时为准:旧共享目录中自动链接的可选依赖,如果本次运行时不提供,不会阻止内置市场加载。必需依赖和用户显式安装的依赖仍会检查兼容性。
客户端设置中的“启动时接入内置安全市场”控制下次启动的行为,旁边单独显示本地安装和登记状态,不代表当前会话已加载。市场自卸载后,当前会话可能仍保留界面;开关开启时,下次客户端启动本地服务会尝试恢复内置副本,关闭时不会恢复。未清理的用户安装会显示提示,不会被当作已恢复。
从开始页打开「安全市场」,可在右侧浏览插件目录,按名称或分类筛选,并查看已安装插件。


市场目录来自 awesome-dsh-plugin:
dsh-plugin 标签的仓库。点击“安装”后,市场通过宿主官方插件管理器直接安装。安装后可选择 AI 审查已安装版本;审查不构成安全保证。
收录不代表安全背书。安装前仍需查看审查结果。
已安装插件可以查看版本、启用、停用或卸载。已安装但未加载的插件也会显示。

市场与当前运行时不兼容时,客户端会停止接入市场,不影响其他插件。更完整的配置、目录协议和限制见安全市场仓库。
Q:这是浏览器套壳吗?
窗口加载官方 Web UI,但客户端还负责运行时管理、连接、托盘、通知、权限控制和更新。项目不维护另一套产品界面。设计说明见架构文档。
Q:与直接在浏览器访问 Web UI 有什么区别?
浏览器方式通常需要用户安装 Node.js、启动 dsh web 并保持终端运行。桌面客户端内置运行时,可在后台管理服务,并提供托盘、通知、连接设置和应用内更新。
Q:如何使用最新的官方 dsh?
可更新 PATH 上的官方 dsh 或 npx 缓存运行时,并在智能模式中启用对应来源;也可复用已更新的本机实例,或通过自定义地址连接自行维护的 Web UI。智能模式按来源顺序选择,不会比较所有来源后自动选最新版。内置运行时固定为客户端发布时的版本,通过客户端更新升级。
Q:安全市场会自动安装插件吗?
市场通过官方插件管理器执行用户选择的安装操作,AI 审查是安装后的可选操作。
欢迎扫码加入项目微信交流群,一起讨论 DSH Desktop 的使用与改进。二维码有效期以图片中的提示为准。
MIT 许可证只适用于本仓库维护的代码和素材。官方 @deepseek-ai/dsh 及其他第三方依赖使用各自许可证。“DSH”仅用于说明兼容对象,不表示官方关系。
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。