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

macOS 桌面壳 DouBeeTwT/dsh-ui

DeepSeek Harness
DouBeeTwT70 天前有提交已提供中文文档扫描:未发现敏感能力

把网页界面封装成原生 Mac 应用,免开终端

28/100
综合分
2
GitHub 星标
—
npm 周下载
—/5
用户评分

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

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add DouBeeTwT/dsh-ui
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么[目录]—
dsh 原生插件 · ui
暂无时间戳·判据 →
装得上吗[实装验证]—
本站尚未做安装检查
L4 · 真实安装等级说明 →
数据截至 2026/10/02·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/05·判据 →
还在维护吗[仓库]—
更新放缓:最近一次提交在 70 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

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

验证判据与等级说明 →

可信度证据

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

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

发起外部网络请求
查看扫描证据(共 2 处,展示前 2 条)
  • 发起网络请求
    plugin/proxy/lib/bridge.js:70
    const forward = upstream.transport.request(
  • 发起网络请求
    plugin/proxy/lib/index.js:352
    const res = await fetch(url, { method: 'GET', headers })
扫描于 2026/11/5(0 天前) · 范围 全包扫描 · 来源 GitHub 仓库

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

社区实装还没有人打卡 · 装过的第一个就是你
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 封装网页为原生应用
  • 免开终端

README

由 DeepSeek 最新模型翻译生成
DSH — macOS 桌面封装 把 DeepSeek Harness 的 Web 界面(dsh web)封装成一个原生 macOS App,后端由 App 以静默子进程方式启动——完全不需要 Terminal;退出 App 时,该后端进程也会同步停止。 ┌──────────────────────────────┐ │ DSH.app (Swift + WKWebView)│ ← 原生窗口,内嵌浏览器视图 │ http://127.0.0.1:3080 │ └──────────────────────────────┘ ▲ ┌──────────────────────────┐ │ HTTP │ App-owned child process │ └──────────────────────────│ dsh web --port 3080 │ └──────────────────────────┘ (随 App 启动 / 退出) 特性 - 原生 macOS App:Swift + WKWebView,几十 KB 的二进制,无 Electron 冗余。 - 生命周期同步:打开 App 时静默启动 dsh web,退出 App 时同步停止(关闭窗口只隐藏到菜单栏,后端继续运行); App 运行期间如果后端意外退出会自动恢复。
展开完整文档(README 剩余 1 节)
DSH — macOS 桌面封装

把 DeepSeek Harness 的 Web 界面(dsh web)封装成一个原生 macOS App,后端由 App 以静默子进程方式启动——完全不需要 Terminal;退出 App 时,该后端进程也会同步停止。

┌──────────────────────────────┐
│ DSH.app (Swift + WKWebView)│ ← 原生窗口,内嵌浏览器视图 │ http://127.0.0.1:3080 │ └──────────────────────────────┘ ▲ ┌──────────────────────────┐ │ HTTP │ App-owned child process │ └──────────────────────────│ dsh web --port 3080 │ └──────────────────────────┘ (随 App 启动 / 退出)

特性

- 原生 macOS App:Swift + WKWebView,几十 KB 的二进制,无 Electron 冗余。
- 生命周期同步:打开 App 时静默启动 dsh web,退出 App 时同步停止(关闭窗口只隐藏到菜单栏,后端继续运行); App 运行期间如果后端意外退出会自动恢复。
- 单实例保护:重复打开 App 只会激活已有窗口,避免多个窗口争用同一个后端。
- 无需终端:dsh 和对应的 Node 可自动解析(兼容 nvm / npx / brew), stdout/stderr 统一写入日志。
- 端口冲突保护:如果 3080 已有 DSH 实例在跑,代理脚本会安静等待而不是冲突崩溃。
- 菜单栏控制:启动 / 重启 / 停止后端、在系统浏览器打开、查看后端日志。
- 系统托盘图标:右上角菜单栏常驻小图标;点击窗口关闭按钮只隐藏窗口、不退出,点击图标可重新打开窗口,或通过「退出 DSH」彻底退出并停止后端。
- 外部链接分流:界面里点击的站外链接自动用系统浏览器打开。

下载与安装

本项目只发布源码,不提供 DMG。App 会在使用者自己的 Mac 上编译并安装,不需要 Apple 开发者账号。

使用 Git 克隆(推荐)

git clone https://github.com/DouBeeTwT/dsh-ui.git
cd dsh-ui
bash install.command

下载源码 ZIP

在 GitHub 页面点击 Code → Download ZIP,解压后打开 Terminal,进入源码目录并运行:

bash install.command

也可以在 Finder 中双击 install.command。如果 macOS 首次阻止脚本运行,请右键该文件并选择“打开”,或使用上面的 Terminal 命令。

依赖自动检测与补全

用户拿到源码后不需要手动安装任何东西——安装脚本会先检测并自动补全所有依赖(每项都会先征求同意,输入 y 继续,n 跳过):

1. macOS(必需,仅支持 macOS);
2. Xcode Command Line Tools:用于编译 App,缺少时自动触发 xcode-select --install 并等待安装完成;
3. Homebrew:用于安装 Node.js,缺少时自动安装(未安装也不阻塞,Node.js 会改用官方安装包);
4. Node.js + npm:缺少时优先用 brew install node,否则下载 Node.js LTS 官方安装包自动安装;
5. dsh(@deepseek-ai/dsh):缺少时通过 npm install -g 自动安装,需要管理员权限时会自动改用 sudo。

之后才进入编译与安装步骤:

1. 在本机编译 App,安装到 /Applications/DSH.app(覆盖已存在的旧版本);
2. 安装内置插件(模型用量统计、角色信息、代理),并自动回填安装前的历史用量;
3. 启动 DSH。

常用选项

bash install.command # 交互式:逐项询问是否安装缺失依赖 bash install.command --yes # 全自动:缺失的依赖全部自动安装,不询问 bash install.command --check # 只检测依赖是否齐全,不做任何安装 bash scripts/bootstrap.sh # 只做依赖检测与补全,不编译 App

只构建,不安装

bash DSHApp/build.sh
open build/DSH.app

状态自检

查看依赖 + 插件是否齐全(只检测不安装) bash install.command --check 例:✔ Xcode Command Line Tools ✔ Homebrew ✔ Node.js + npm (v22.x.x) ✔ dsh ... ✔ token-usage(用量统计):已安装 ✔ user-info(角色信息):已安装 ✔ proxy(代理):已安装

查看 App 运行状态 build/DSH.app/Contents/MacOS/DSH --check 例:server_up=true owned_process=false legacy_agent=false dsh=/.../bin/dsh ...

内置插件

仓库自带三个 DSH 插件,由 install.command 自动安装:

| 插件 | 目录 | 功能 |
| 模型用量统计 | plugin/token_usage/ | token 消耗、费用与趋势统计 |
| 角色信息 | plugin/user_info/ | 侧边栏用户卡片(HP/MP/XP 属性与等级) |
| 代理 | plugin/proxy/ | UA 改写反向代理规则管理 |

三个插件均以软链方式安装:源码软链到 dsh 的扁平回退目录(~/.dsh/profiles/node_modules/),并注册进 dsh profile(token-usage 与 proxy 走 bundle 组合,user-info 走 profile patch)。整个安装过程不经过
pnpm 等包管理器——不写 file: 依赖、无需执行 pnpm install,dsh 直接
通过软链解析本仓库源码并生成前后端 entry;插件依赖同样由安装脚本以软链方式指向运行中的 dsh 部署,自动维护。

安装是覆盖式、幂等的,可安全重复执行(覆盖 App 前会先退出正在运行的 DSH)。因此更新插件只需 git pull 后重启 DSH.app 即生效,无需重新安装。需要手动管理时,三个插件的 sync.sh 用法一致:

bash plugin/token_usage/sync.sh --install # 全新安装/覆盖(幂等) bash plugin/token_usage/sync.sh --verify # 校验安装与代码契约 bash plugin/token_usage/sync.sh --dump # 查看安装状态 bash plugin/token_usage/sync.sh --uninstall # 卸载

模型用量统计(token-usage)

在界面中展示模型用量:token 消耗、费用、每日/每周趋势与缓存命中统计,模型价格可在插件设置中自定义。数据文件:~/.dsh/usage-stats.json。

历史用量自动回填:安装时扫描 DSH 会话日志(~/.dsh/sessions//session.jsonl.zstd)生成回填文件,插件首次启动时自动合并进统计(去重),因此插件安装之前的用量也会出现在图表里,无需手动补数据。需要时可用 sync.sh --backfill 重新生成。

角色信息(user-info)

在侧边栏渲染一张用户卡片:头像、昵称与 HP / MP / XP 三条属性进度条,属性随模型用量的积累自动升级(Lv.60 起称号为「编程斗尊」);卡片每分钟自动刷新,昵称与头像可在卡片上自定义。数据文件:~/.dsh/user-info.json。

代理(proxy)

在设置页最下方的「代理」分类中管理反向代理规则:把指定上游站点代理到本地端口,并可按规则改写 User-Agent;每条规则可单独开关、测试连通性。
代理进程运行在 DSH 后端内,随 App 启停。规则文件:~/.dsh/proxy-rules.json。

卸载

bash scripts/uninstall.sh

卸载会一并移除 App、全部内置插件(软链与组合行)以及遗留的 LaunchAgent; ~/.dsh 下的会话与统计数据、日志文件会保留。

工作原理

- App 启动时解析 dsh 及其配套的 Node 路径,直接创建无窗口子进程并运行
dsh web --port 3080,等健康检查通过后加载界面。
- App 只会停止自己创建的子进程;如果 3080 已经由用户手动启动的 DSH 占用, App 会复用它但不会在退出时误杀该外部进程。
- 点击窗口关闭按钮只会隐藏窗口(App 与后端继续在后台运行);点击右上角菜单栏的 DSH 图标可重新打开窗口,点击图标菜单里的「退出 DSH」才会完全退出并同步停止 App 创建的后端。
- 日志:~/Library/Logs/dsh-web.log。

开发

bash DSHApp/build.sh # 编译到 build/DSH.app(ad-hoc 签名)
bash DSHApp/build.sh && open build/DSH.app

要求:macOS 12+、Node.js/npm、Xcode Command Line Tools(xcode-select --install)。
这些依赖都可以由 install.command 自动检测并安装(详见上文“依赖自动检测与补全”)。

编译结果会匹配当前 Mac 的处理器架构,因此 Apple Silicon 和 Intel Mac 都可以各自在本机生成适用版本。
预览分享卡片长什么样 ↓DouBeeTwT/dsh-ui
分享 · DeepSeek Harness Hub
DouBeeTwT/dsh-ui

把网页界面封装成原生 Mac 应用,免开终端

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部