• Podcast

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

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

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

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

    - 首先在终端执行一次 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

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

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

    - 新建文稿,选择 应用程序 (Application)。

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

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

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

    这里要为 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
    ``- 点击 Automator 菜单栏的 **文件 → 存储**,将其命名为 “打开 DeepSeek Harness”(或者任何名字),文件格式选择 **应用程序**,保存到 应用程序 (Applications)` 文件夹中。

    图片

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

    图片

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

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

    图片

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

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

    图片

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

    主楼
  • Boss_zhou

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

    #1

发表回复

登录后回复