Back to home

chenaptx

deepseek-harness-mac

No description

Stars
0
Language
Swift
Created
Aug 14, 2026
Updated
Aug 14, 2026

Introduction

DeepSeek Harness Mac (deepseek-harness-mac)

A tiny native macOS shell for DeepSeek Harness — 132KB vs Electron's 142MB+. 极轻量 macOS 原生壳:Swift + WKWebView,复用你本地的 dsh server,零捆绑。

DeepSeek Harness 官方通过命令行启动本地 Web UI(npx @deepseek-ai/dsh webhttp://127.0.0.1:3080)。 本项目给它套一个 macOS 原生轻壳:双击即用,自动管理本地 server,窗口即官方 Web UI。

下载(解压即用,无需自己打包)

👉 DeepSeek Harness Mac v0.1.0

  • 下载 DeepSeek-Harness-Mac-0.1.0.zip(仅 28KB)
  • 解压后双击 DeepSeek Harness.app 即用
  • 前置:本机装有 Node.js ≥ 22(首次启动会自动通过缓存包 / npx 拉起 dsh server,之后秒开)

为什么轻(对比)

Electron 壳(社区版)本版(Swift 原生)
安装包142–193 MB~132 KB
渲染捆绑整个 Chromium系统 WebKit(WKWebView)
Node runtime捆绑复用你已有的 Node
技术栈Electron (JS)Swift + AppKit + WebKit

不捆绑任何东西:渲染用 macOS 自带的 WebKit,server 用你本地的 Node 跑官方 dsh 包。磁盘占用小 1000 倍

特性

  • 复用本地 dsh:若 3080 端口已有 server 在跑(你手动启动的),直接连;没有则自动用本地缓存包拉起(零网络),最后才 npx 在线
  • 双击即用:双击 .app 即开,无需命令行
  • 退出弹框:关闭窗口时选择「关闭 server 并退出 / 保留 server 仅退出 / 取消」,外部 server 永不误杀
  • server 日志~/.dsh-desktop/dsh.log
  • 卡顿兜底:菜单栏 File → Open in Browser(⌘O)一键切 Chrome
  • 复制粘贴可用:WKWebView 的剪贴板通道在 macOS 有已知平台限制(右键可用、⌘C/⌘V 失效)——本壳通过 WKWebView 子类拦截 ⌘V + JS 直写 textarea 解决(支持 React 受控组件)

构建

xcrun swiftc -O dsh-desktop.swift -o dsh-desktop \
  -framework Cocoa -framework WebKit

# 打成 .app
mkdir -p "DeepSeek Harness.app/Contents/MacOS"
cp dsh-desktop "DeepSeek Harness.app/Contents/MacOS/dsh-desktop"
# 手写 Info.plist(见源码注释),然后:
codesign --force --sign - "DeepSeek Harness.app"

架构

DeepSeek Harness.app (Swift, ~130KB)
 ├─ 检查 :3080 是否已有 dsh server → 有则直接连
 ├─ 无 → spawn: 本地缓存包(node) → 兜底 npx 在线
 ├─ WKWebView 加载 http://127.0.0.1:3080(官方 Web UI,零改动)
 └─ 退出弹框:server 去留选择(自己起的才可能被杀)

复用 server 是行业标准做法(Hermes Desktop / Codex app-server / OpenClaw Companion 同款架构)。

已知限制

  • 无托盘驻留(关窗即退,可加)
  • 粘贴为 JS 方案:支持文本;图片粘贴未处理
  • 未打 dmg / 未公证(本地 ad-hoc 签名,自己用没问题;分发需开发者证书)

相关

  • DeepSeek Harness 官方(MIT)
  • 社区 Electron 版(对比参考):RZX00/deepseek-harness-desktop、anywhere-labs/deepseek-harness-desktop