利用 PWA 自己封装 DeepSeek Harness 桌面 App (MacOS),无需 Electron/Tauri,内存占用少

Podcast 2026-08-16 14:22 1

我个人很不喜欢各种 Electron 封装的 App,也包括 Tauri,主要是内存占用大。


DeepSeek Harness 的 Web 页面其实支持 PWA,可以点地址栏右边的图标变成独立窗口的 PWA App,但是下次点击这个 PWA App 图标时,后端的服务并不会自动打开。


有没有办法打开 PWA 就自动拉起 dsh 后端服务,关闭后自动关掉 dsh 后端呢?

有的,利用 macOS 自带的 Automator 程序可以实现,以下是方法:




  1. 首先在终端执行一次 npx @deepseek-ai/dsh web 并在 Chrome 打开 http://127.0.0.1:3080/ 一次 DeepSeek Harness 的 Web 页面,点击地址栏右边的 安装图标(或点击右上角三点 → 保存并分享 → 安装页面为 App)。这个 PWA 会安装在路径 /Users/你的用户名/Applications/Chrome Apps.localized/DeepSeek Harness.app




  2. 好了,可以终止掉 npx @deepseek-ai/dsh web




  3. 在 Mac 上打开 自动操作 (Automator) 软件(通过聚焦搜索 Spotlight 即可找到)。




  4. 新建文稿,选择 应用程序 (Application)




  5. 在左侧搜索栏输入 shell,双击或拖拽 运行 Shell 脚本 (Run Shell Script) 到右侧工作区。




  6. 将传递输入(Pass input)改为 作为自变量 (as arguments)




  7. 在文本框中输入以下脚本(请更改"你的用户名):




# 这里要为 Shell 注入 Node/Npm 环境变量路径,比如用 homebrew 装的 node 的话,就写 export PATH="/usr/local/bin:/opt/homebrew/bin:$PATH"
# 因为我是用 mise 管理的 node,所以以下这句就行
eval "$(/opt/homebrew/bin/mise activate zsh)"

# DeepSeek Harness 服务端口
PORT=3080

npx @deepseek-ai/dsh web > /dev/null 2>&1 &

echo $!

# 循环等待服务启动完成
while ! nc -z 127.0.0.1 ${PORT}; do
sleep 0.5
done

open "/Users/你的用户名/Applications/Chrome Apps.localized/DeepSeek Harness.app"

sleep 1

# 检测是否有监听 dsh 端口的 Chrome 进程
while [ $(lsof -i :${PORT} | grep "Google" | grep -v "CLOSE_WAIT" | awk 'END {print NR}') -gt 0 ]; do
sleep 2
done

# 当检测到窗口关闭后,通过端口号精准杀死占用端口的进程
lsof -t -i :${PORT} | xargs kill -9 > /dev/null 2>&1




  1. 点击 Automator 菜单栏的 文件 → 存储,将其命名为 “打开 DeepSeek Harness”(或者任何名字),文件格式选择 应用程序,保存到 应用程序 (Applications) 文件夹中。




  2. 想要更改这个 App 图标的话,只需要准备一张图标的 png 图



    ,右键点击刚刚保存的 打开 DeepSeek Harness.app,将 png 拖到弹窗的图标中即可更改




  3. 打开访达,将打开 DeepSeek Harness.app 直接拖到底部的 Dock 栏




(btw: 点击这个 App 图标打开时菜单栏会有一个 Automator 的旋转齿轮^-^图标)


使用这种 PWA 比起 Electron/Tauri 封装的桌面 App 动辄几百 M 的内存占用,少了很多,因为是复用已打开的 Chrome 浏览器内核(你平时总不会不打开浏览器常驻吧?):


另外,我很喜欢的 Pi Agent 的 GUI https://github.com/agegr/pi-web,也支持 PWA,也可以用这种方式做成 App 图标一键打开。

最新回复 (1)
  • Boss_zhou 08-16 16:05
    1

    mark一下,后面玩的时候,借鉴下大佬的操作。

* 帖子来源Linux.do
返回