🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

品牌桌面客户端 JochenYang/dsh-app

DeepSeek Harnessv0.0.1
JochenYang4 天前有提交已提供中文文档扫描:未发现敏感能力

DeepSeek Harnessdsh的品牌桌面客户端,由社区开发者维护。

37.5/100
综合分
8
GitHub 星标
38
npm 周下载
—/5
用户评分

数据截至 2026/10/31 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add dsh-app
npm 源 · dsh-app 的发布者账号已校验与本仓库一致

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · desktop
装得上吗
本站已在 dsh 0.2.1-rc.5 下真实安装成功
非静态推断
L5 · 运行时冒烟等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 4 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过
展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✓npm 包dsh-app @ 0.0.1
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/11/1 08:20:01

安全扫描自动 · 静态分析源码
v2.7.0
🟢 扫描:未发现敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。

扫描于 2026/11/2(1 天前) · 范围 全包扫描 · 来源 npm 发布包

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-agent@deepseek-ai/dsh-api-remotes@deepseek-ai/dsh-api-settings-controller@deepseek-ai/dsh-client-connection@deepseek-ai/dsh-client-modules@deepseek-ai/dsh-client-store@deepseek-ai/dsh-client-ui-conversation@deepseek-ai/dsh-client-ui-renderer@deepseek-ai/dsh-client-ui-session@deepseek-ai/dsh-client-ui-settings@deepseek-ai/dsh-client-ui-slots
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 社区维护桌面客户端
  • 支持三大操作系统

社区维护的 DeepSeek Harness 品牌桌面客户端,支持 Windows / macOS / Linux

v0.18.02026-10-30
· 🚀 DSH APP v0.18.0 更新说明 / Release Notes 🇨🇳 中文 · 跟随内核线 0.2.1-rc.5:三十八个内核包逐个解包比对,三十五个与 rc.4 逐字节相同,改动只在 client-ui-chat 的思考内容展示(新增 rawText、text 改为展示用文本,我们不注册该槽)与 client-modules、client-ui-sidebar 各一行的构建戳,因此这一步只是依赖换线,没有源码适配。 🇬🇧 English · Follow the 0.2.1-rc.5 kernel line: unpacking all thirty-eight kernel packages, thirty-five are byte-identical to rc.4 and the only edits are client-ui-chat's reasoning display (a new rawText, text now display-ready — a slot this suite does not register) plus one build stamp each in client-modules and client-ui-sidebar, so this step is a dependency move with no source adaptation. --- 安装包见下方 Release 附件(Windows / macOS / Linux)。 Installers are attached below (Windows / macOS / Linux).
v0.17.92026-10-28
· 🚀 DSH APP v0.17.9 更新说明 / Release Notes 🇨🇳 中文 · 跟随内核线 0.2.1-rc.4:三十八个内核包逐个解包比对,三十五个与 rc.3 逐字节相同,只有 client-modules、client-ui-conversation、client-ui-sidebar 三个的 lib/ 有改动,都不触及本仓使用的工具、提示词与会话接口,因此这一步只是依赖换线,没有源码适配。 · 构建:kernel-line.mjs --resolve 与其他构建入口现在共用同一个内核版本解析规则(先读 package-lock.json),发版文档同步说明「只改套件时内核不随 npm next 漂移」。 · 插件市场默认目录源换成 jsDelivr 上的 format-1 索引(dsh-plugin-catalog/index.json,约 610 KB 压缩传输),一次请求即可打开面板;原来走腾讯镜像的 metadata + tarball 两跳退为可手动添加的源,仍是完整目录。新增该索引格式的解析与契约测试。 · 套件工具描述瘦身:swarm 的参数说明不再重述代码自己会报的错(组合规则、重复条目、provider 能力),codegraph_find 的匹配与「稍后再问」说明交给参数说明和结果里的 note;行为与 schema 未变,只减字。 🇬🇧 English · Follow the 0.2.1-rc.4 kernel line: unpacking all thirty-eight kernel packages, thirty-five are byte-identical to rc.3 and only client-modules, client-ui-conversation and client-ui-sidebar carry lib/ edits — none touching the tool, prompt or session interfaces this repository uses, so this step is a dependency move with no source adaptation. · Build: kernel-line.mjs --resolve and the other build entry points now share one kernel-version rule (the committed package-lock.json first), and the release docs state that a suite-only release keeps the pinned kernel instead of following npm next. · Market catalog now opens from the format-1 index on jsDelivr (dsh-plugin-catalog/index.json, ~610 KB compressed) in a single request; the Tencent-mirror metadata + tarball transport is no longer a preset source but stays addable and remains the complete directory. Adds the parser and contract coverage for the index format. · Suite tool descriptions trimmed: swarm's parameter prose no longer restates what the code already throws (composition rules, duplicate entries, provider capabilities), and codegraph_find leaves matching and "ask again in a moment" to its parameter description and the result's own note; behaviour and schemas unchanged, words removed only. --- 安装包见下方 Release 附件(Windows / macOS / Linux)。 Installers are attached below (Windows / macOS / Linux).
v0.17.82026-10-27
· 🚀 DSH APP v0.17.8 更新说明 / Release Notes 🇨🇳 中文 · 代码图谱:未提交的开发修改在任意工具结果后被增量索引,索引期间的新修改会补跑一次;概览与三个工具的文本不再夸大完整性与关系语义。 · 启动页优化品牌与进度信息层级、点阵鲸鱼清晰度及小窗口步骤布局,同时保留启动、暂停和失败恢复行为。 · 构建:运行时构建改从仓库提交的 package-lock.json 取内核版本,不再跟随 npm next;并为套件插件声明的每个内核 peer 写入精确版本覆盖,避免范围 peer 把更新的内核拉进同一棵树。 · 构建:克隆上游源码时,分支不存在会回退到同名 git tag,两者都缺失时给出可操作的错误,而不是让六个平台都死在 clone 上。 🇬🇧 English · Code graph: uncommitted edits are indexed incrementally after any tool result, a change made during a pass buys a compensating one, and the overview and tool text no longer overstate completeness or relation semantics. · Startup: refine brand and progress hierarchy, whale clarity, and small-window steps while preserving boot, pause, and failure recovery. · Build: the runtime build takes the kernel version from the committed package-lock.json instead of following npm next, and pins every kernel peer the suite declares, so a range peer can no longer pull a newer kernel into the same tree. · Build: cloning the upstream source falls back to a same-named git tag when the branch is missing, and fails with an actionable message when neither ref exists instead of dying in git clone on all six platforms. --- 安装包见下方 Release 附件(Windows / macOS / Linux)。 Installers are attached below (Windows / macOS / Linux).
数据来自仓库的 GitHub Release,可能与插件实际版本不一致。

README

由 DeepSeek 最新模型翻译生成
DSH APP DeepSeek Harness(dsh)的品牌桌面客户端,由社区开发者维护。 Windows / macOS / Linux,面向公开发布。 简体中文 · English 外壳自带一份版本化的 dsh 运行时(更新/回滚自管理),在沙箱窗口渲染官方 dsh Web UI;品牌功能以 dsh 插件套件实现,不 fork 上游。分层、内核运行时布局、更新与回滚机制、打包等架构设计见 docs/ARCHITECTURE.md。 封装客户端功能 DSH APP 是 self-contained、no-fork 的封装客户端:内核自托管(userData/kernel/,原子激活 + 回滚),功能全部以 dsh 插件套件(plugins/)叠加在上游 kernel 上,上游发布只是一个普通内核更新。 当前插件能力: | 功能 | 插件 | 实现位置 | | 会话侧边栏(原生视图):Git 页——按目录分组的变更列表、统一 diff 双行号、暂存/还原/提交、仓库文件列表、Git 图谱(点提交查看标题/正文/文件统计)。
展开完整文档(README 剩余 1 节)
DSH APP

DeepSeek Harness(dsh)的品牌桌面客户端,由社区开发者维护。
Windows / macOS / Linux,面向公开发布。

简体中文 · English

外壳自带一份版本化的 dsh 运行时(更新/回滚自管理),在沙箱窗口渲染官方 dsh Web UI;品牌功能以 dsh 插件套件实现,不 fork 上游。分层、内核运行时布局、更新与回滚机制、打包等架构设计见 docs/ARCHITECTURE.md。

封装客户端功能

DSH APP 是 self-contained、no-fork 的封装客户端:内核自托管(userData/kernel/,原子激活 + 回滚),功能全部以 dsh 插件套件(plugins/)叠加在上游 kernel 上,上游发布只是一个普通内核更新。
当前插件能力:

| 功能 | 插件 | 实现位置 |
| 会话侧边栏(原生视图):Git 页——按目录分组的变更列表、统一 diff 双行号、暂存/还原/提交、仓库文件列表、Git 图谱(点提交查看标题/正文/文件统计)。文件树页已退役:上游侧边栏原生提供工作区文件管理 | @dsh-app/plugin-sidebar(host + client 双面) | plugins/plugin-sidebar/src/client/git-tab.tsx |
| 模型高级设置页:llm-pi-ai 模型级编辑器与整表管理(推理强度、输入模态、兼容开关);声明推理强度自动填充兼容开关(supportsDeveloperRole false + maxTokensField,仅增量、不覆盖用户显式设置);目录外模型的伴生路由迁移;models.dev 表单预填(直连失败自动回退 gh-proxy 镜像) | @dsh-app/plugin-client-ui | plugins/plugin-client-ui/src/client/models-advanced/ |
| 品牌主题与中英双语 UI:--dsw-alias- 令牌覆盖 | @dsh-app/plugin-client-ui | plugins/plugin-client-ui/src/client.ts:58 |
| 品牌鲸鱼背景:空闲静态帧、悬停时指针散开(指针离开即暂停渲染循环,滚动不卡顿);主题感知对比度(亮色增强可读性、暗色低透明度水印);悬停悬浮于输入框上方、活跃时放大并居中于会话列 | @dsh-app/plugin-client-ui | plugins/plugin-client-ui/src/client/whale-background.ts |
| 跨会话记忆:memory_save/memory_recall/memory_forget 工具 + 系统提示注入(预算内最新优先),全局与项目记忆按会话 cwd 路由;设置页开关;后台提炼在会话静默 60 秒后直调模型回填要点(每次调用的 token 与耗时记录在案),策展清扫按冷却窗口与文件变更检测触发(同样直调模型) | @dsh-app/plugin-memory | plugins/plugin-memory/src/{tools,routes,distiller,curator}.ts |
| 批量子代理编排:独立子任务并行派发给可继续的子代理,自适应并发门控(失败收缩、连续成功增长)、保留会话的逐项自动重试、按子代理标识恢复;swarm 工具 + /swarm 命令 | @dsh-app/plugin-swarm | plugins/plugin-swarm/src/orchestrator.ts |
| 用量统计:余额卡(官方 deepseek providers、CNY 闲时/高峰双档计价、密钥不出主机)、每日使用热度图与趋势图;余额 5 分钟 TTL 缓存(single-flight,挂载静默刷新、点击卡片强制重查) | @dsh-app/plugin-usage | plugins/plugin-usage/src/client/usage-section.tsx |
| 会话归档管理:按项目工作目录分组(可折叠、键盘支持)、两步删除确认;删除经 resolveCurrentLog 物理移除会话日志目录(迁移前格式的会话回退到按后端布局定位),归档记录保留为可见性栅栏、由面板「清理」回收 | @dsh-app/plugin-archives | plugins/plugin-archives/src/client/archives-section.tsx |
| 交付审阅:文件改动卡片、单栏差异悬停预览 | @dsh-app/plugin-sidebar(host+client) | plugins/plugin-sidebar/src/index.ts |
| MCP 服务器管理:设置页增删改查、动态挂载/卸载,服务器工具以原生 mcp__<server>__<tool> 注册;读取时掩码密钥值 | @dsh-app/plugin-mcp(双面) | plugins/plugin-mcp/src/client/mcp-section.tsx |
| 外部 hooks 桥:对 Claude Code / Codex 的 hooks.json 做设置页增删改查,挂载为生效的 hook 实例(拦截提示词、工具与轮次) | @dsh-app/plugin-hooks(双面) | plugins/plugin-hooks/src/client/hooks-section.tsx |
| Office 文档转换:office_to_pdf 工具把 docx / xlsx / pptx / pdf 源文件转成 PDF;转换引擎(LibreOffice)按需从诊断页安装,不在运行时里;字体缺失逐族上报。Word / Excel / PowerPoint 的生成走官方 Office 技能(python-docx / python-pptx / openpyxl,经 load_workspace_dependencies 运行),PPT 另有模板化路径、PDF 另有读写与中文字体子集 | @dsh-app/plugin-ppt / plugin-pdf(host 工具 + 双面技能预填) | plugins/plugin-{ppt,pdf}/src/ |
| 网络搜索:web_search / web_fetch 以 provider 形式接入(品牌引擎链 anysearch / Bing / Parallel / Exa / SearXNG,一键自检),host 侧只发稳定错误码 | @dsh-app/plugin-websearch(双面) | plugins/plugin-websearch/src/ |
| 插件市场:设置页浏览 / 安装 / 卸载第三方 dsh 插件(走内核 CLI 安装进当前 profile,pnpm 策略由市场处理) | @dsh-app/plugin-market(双面) | plugins/plugin-market/src/ |
| 预设包:设置页面板导入 / 导出品牌与上游配置组合 | @dsh-app/plugin-presets(双面) | plugins/plugin-presets/src/ |
| 品牌桥:应用信息、诊断事实源与桌面动作路由(host 半边仍在脚手架阶段) | @dsh-app/plugin-brand(host) | plugins/plugin-brand/src/routes.ts |
| 工作台容器:侧边栏顶部一个「工作台」入口(排在「插件」之上)+ 一个整页容器,领域工作台向两个 root 作用域扩展座位注册卡片即可接入——workbench.item(卡片宫格)与 workbench.view(域自己的页面);卡片有两种入口形态,面板型在容器内换视图,会话型把所选目录打开为工作区并回到会话。目前只有入口、容器与座位,尚无任何真实领域工作台接入 | @dsh-app/plugin-workbench(client) | plugins/plugin-workbench/src/client.ts |

套件接线(每次 server 启动自动完成,src/main/brand-suite.ts):

1. 模块解析:套件插件链接进共享回落目录 $DSH_HOME/profiles/node_modules/@dsh-app/(Windows 为 junction)——该目录从任何 profile 都能解析到,且不会被任何 profile 的 pnpm 清理;开发源是仓库 plugins/,生产源是激活内核里的 app/node_modules/@dsh-app/*。
2. 套件自有 profile:内核以 --profile dsh-app 启动,你在终端里的 dsh / dsh web 仍用 web。
首次运行会在后台建好新 profile 并把你手写的 patch 层(禁用行、MCP 行)带过去; 第三方包不搬——插件市场(或内核 CLI)在新 profile 里重新安装它们,因为市场才懂 pnpm 的发布冷静期策略、构建脚本放行和失效规格这些事(搬整棵树的两种做法都实测过并被否决:复制会被 Windows 的 .pnpm 符号链接权限卡住,按 lockfile 重装会撞 ERR_PNPM_MINIMUM_RELEASE_AGE_VIOLATION)。
建好并落 marker 后下次启动才切换;失败则继续用 web 启动并在下次重试。生效的 profile 通过 DSH_APP_PROFILE 传给内核,所以插件市场与预设总是装到应用真正读取的那个 profile。
3. 加载器覆盖:plugins/dsh-app.patch.yml 拷入 userData,经命令行 --patch 注入(应用在官方 bundle 层之后,last write wins,无需改上游 profile 模板)。

每一环都优雅降级:内核缺少套件插件(例如回滚目标)时原样启动、无阻塞。

下载与安装(用户)

从 Releases 下载对应平台的安装包;中国大陆网络也可改用 ModelScope 镜像,见下方「中国大陆网络适配」。

当前版本未做代码签名。 本项目是社区维护的免费项目,没有购买签名证书,因此两个平台各自会弹一次系统安全提示。这是预期行为,按下面步骤操作即可完成安装——不影响功能与后续更新。

- Windows:双击安装包后若出现「Windows 已保护你的电脑」(SmartScreen)→ 点「更多信息」→ 「仍要运行」,然后按向导走完。
- macOS:双击 dmg 若提示「无法验证开发者」或「已损坏,无法打开」→ 打开 系统设置 → 隐私与安全性,在「安全性」一栏点「仍要打开」,再确认一次。
macOS Sequoia(15)起已移除「右键 → 打开」的绕过方式,必须走系统设置这一步。

装好之后,除了双击启动,还可以把一个文件夹交给它:

- Windows:dsh-app.exe "D:\某个项目",或把文件夹直接拖到 exe / 桌面快捷方式上。
- macOS:open -a "DSH APP" /path/to/project。

它会把这个文件夹登记成工作区并直接开一个会话(会话的 cwd 就是它)。若应用已经在运行,再次这么启动只会聚焦现有窗口并把新文件夹开成工作区——不会起第二个窗口。路径不存在时会弹一张说明卡,而不是静默无反应。

快速开始(开发)

需要 Node.js 22+ 与 pnpm。开发内核 = 本地的 deepseek-harness checkout。

前置(一次性):

1. 本仓库旁有 deepseek-harness checkout(../deepseek-harness),并且已装好依赖、构建过 web 前端:
cd ../deepseek-harness
pnpm install
pnpm run build:web

2. 安装外壳依赖bash
cd ../dsh-app
npm install

启动(注意:Windows PowerShell 不支持 VAR=1 cmd 语法): powershell

PowerShell

$env:DSH_APP_DEV="1"; npm start
bat
:: cmd
set DSH_APP_DEV=1 && npm start

开发模式下,外壳用本地 checkout 顶替内核:走同一个 desktop host 子进程(entry 取 apps/desktop-host/lib/index.js,allowLinkedProfile 让链接式 profile 得以启动),不下载、不产生内核产物。dev 与生产都不绑端口,窗口都加载 dsh-app://app。

指定其他 checkout powershell $env:DSH_APP_DEV="1"; $env:DSH_APP_DEV_RUNTIME="D:/codes/DSH-APP/deepseek-harness"; npm start

开发环境的已知差异

| 项目 | 开发模式 | 生产模式 |
| 内核来源 | 本地 checkout(desktop host 子进程) | userData/kernel/ 预装运行时(直连 node 二进制) |
| 启动速度 | 秒级,不需要镜像 | 通常秒级;rc 线要把运行时镜像进 profile,首启与被插件市场改动过之后会多花十几秒重建(实测 14–17 秒),之后按标记跳过;Windows 安装器在安装阶段已预解包内核,首启不付解包代价 |
| 更新检查 | 跳过(钉在 checkout) | 每 6h 自动 + 托盘手动 |

内核更新系统

应用自带版本化内核(userData/kernel/),不依赖系统是否安装过 dsh。更新链路:解析 npm registry 的 dist-tag 版本 → 按「ModelScope 镜像 → 官方 → 公共代理」的候选链下载运行时产物(每个候选用官方 sidecar 的 sha512 校验)→ 原子激活(旧版保留为 previous)→ 连续启动失败 2 次自动回退上一版。
内核运行时布局与更新流程详见 ARCHITECTURE.md §4–5。

内置运行时漂移检测:升级安装时,如果新安装包内置的运行时与磁盘上已 adopt 的版本戳(<dsh 版本>+<套件版本>,记录在 current.json 的 bundledStamp)不一致(例如套件新增了插件),启动时会自动重新解压并激活内置运行时——不会静默沿用旧内容导致插件缺失;在线更新过更新的内核也不会被降级覆盖(版本戳相等即跳过,打包产物不逐字节可复现,所以比较的是版本戳而非 sha512)。

应用(外壳)更新

Windows 使用自定义链路;macOS / Linux 使用 electron-updater。

1. 检测:github.com/<owner>/<repo>/releases/latest/download/latest.yml(镜像回退)
2. 下载:按架构选择安装包,ModelScope 镜像优先、官方直链次之、ghfast.top / gh-proxy.com 再回退
3. 校验:sha512 与 latest.yml 比对,镜像永远替换不了内容
4. 安装:可视化安装向导——点击「立即安装」后关闭应用、打开与首次安装相同的 NSIS 向导(安装进度全程可见),完成后自动启动应用,安装包自动删除(取消安装也会删除)

中国大陆网络适配(不挂梯子也能更新)

两条更新链路都有回退链,默认开箱即用:

| 链路 | 官方源 | 回退 | 覆盖方式 |
| 版本解析 | registry.npmjs.org | registry.npmmirror.com | DSH_APP_NPM_REGISTRIES(逗号分隔)或 NPM_CONFIG_REGISTRY |
| 产物下载 | github.com Release | ModelScope 镜像(modelscope.cn,字节优先)、ghfast.top、gh-proxy.com(依次回退) | DSH_APP_GITHUB_MIRRORS(逗号分隔前缀;置空 = 关闭镜像) |

安全模型:sha512 元数据(latest.yml / sidecar / manifest)优先从官方 GitHub 获取;大文件下载 ModelScope 镜像优先、官方次之、公共代理兜退,且每个下载候选(镜像 + 官方 + 每个代理)都用同一份可信 sha512 校验——镜像被劫持也换不掉内容。内核运行时与外壳安装包走同一条字节链:下载发生在外壳进程,不经代理注入,所以挂不挂梯子都优先走国内可达的镜像。

连通性自检(在目标网络环境跑一遍): powershell
node scripts/probe-mirror.mjs

桌面化适配

外壳通过运行时注入为 Web UI 补桌面体验,harness 源码零改动:窗口拖拽、原生窗口按钮让位、顶栏配色实时同步、中英双语 UI。品牌功能(侧边栏、模型页等)通过上面的插件套件以 --patch 覆盖与 slot 注入实现,同等零上游改动。注入实现细节见 ARCHITECTURE.md §2。

另一个桌面侧的接缝是启动文件夹:把文件夹作为启动参数交给外壳后,它经页面上一个全局函数(window.__dshAppOpenWorkspace,由套件插件安装、外壳用 executeJavaScript 调用)把它开成工作区;内核没有该插件时(回滚目标、安全模式)静默跳过,启动照常。实现见 src/main/workspace-launch.ts。

构建分发 sh
npm run dist:win # NSIS 安装器(x64 + arm64)
npm run dist:mac # dmg + zip(x64 + arm64,公证走环境变量)
npm run dist:linux # AppImage + deb(x64 + arm64)

应用图标:resources/icon.png 当前为占位品牌图标,发布前请替换为正式图标;
npm run icon:gen 生成占位图标,npm run icon:build 由它裁剪多尺寸 PNG + ICO(需 Pillow)。
内核运行时产物由 scripts/build-runtime.mjs 构建(每个 platform/arch 一份), CI 工作流发布到 GitHub Releases: sh
node scripts/build-runtime.mjs win32 x64 0.1.0-rc.8
预览分享卡片长什么样 ↓JochenYang/dsh-app
分享 · DeepSeek Harness Hub
JochenYang/dsh-app

DeepSeek Harnessdsh的品牌桌面客户端,由社区开发者维护。

回到顶部