前言¶
DeepSeek Harness (DSH) 提供了 Web 界面用于调试和开发智能体。在 macOS 上,通常需要手动在终端输入 dsh web 来启动服务,并自行管理进程的启动、停止和日志查看。dsh-start 将这些操作封装为统一的命令行工具,并提供生成 Dock-able 应用程序的能力,以减少重复劳动。
插件介绍¶
dsh-start 是 DeepSeek Harness (DSH) Web 在 macOS 上的启动器插件。它提供了一套终端脚本(支持启动、停止、状态查询、后台运行)以及一个可生成 DSH.app 的构建脚本。该插件由用户 zhengjy01 维护,旨在简化 DSH Web 的运维流程。
核心功能¶
- 一个命令,四种模式:支持前台运行(可见日志,Ctrl+C 停止)、后台守护进程运行(日志输出到文件)、停止服务、查询服务状态。
- 重复启动保护:检测默认端口 3080 是否已被占用。如果服务已运行,直接打开浏览器,避免启动多个实例。
- 自动打开浏览器:服务启动并就绪后,自动打开
http://127.0.0.1:3080。 - Normal-app feel:通过
--build-app命令生成~/Applications/DSH.app。该应用具有 Dock 图标,双击启动,Cmd+Q 停止(带确认对话框),且再次点击 Dock 图标会检查服务状态并打开浏览器。 - 权限安全设计:为了避免 macOS 沙盒或 TCC 导致的
EPERM权限错误,构建的 App 实际上是委托给 Terminal 执行命令,而非直接调用dsh。
安装与启用¶
安装该插件需要系统已安装 Node.js,且版本不低于 18。
npm install -g dsh-start
典型用法¶
安装后,可以使用以下命令操作 DSH 服务。
- 前台启动:在当前终端运行,日志实时可见,Ctrl+C 可停止。
dsh-start
- 后台启动:服务在后台运行,日志保存至
~/.dsh/web.log。
dsh-start -d
- 停止服务:根据端口自动查找并终止进程。
dsh-start stop
- 查看状态:检查服务是否运行以及访问地址。
dsh-start status
- 构建 Dock 应用:生成
~/Applications/DSH.app。
dsh-start --build-app
(构建脚本依赖 Python3 和 Pillow 来生成图标。)
适用场景与注意¶
- 适用场景:macOS 用户希望将 DSH Web 像普通软件一样管理,或者需要频繁启动/停止服务并希望自动打开浏览器的情况。
- 权限问题:首次启动
DSH.app时,macOS 可能会提示“DSH 想要控制 Terminal”,需点击“允许”。 - 会话数据:重启后,侧边栏的会话列表可能显示为空。实际上会话数据保存在
~/.dsh/sessions中,若 App 启动的服务崩溃,从终端重新启动即可恢复。 - 错误处理:如果出现
EPERM: operation not permitted,请使用dsh-start --build-app重新生成应用,或直接在终端使用命令行启动。
结语¶
dsh-start 通过脚本化和应用化,解决了 DSH Web 在 macOS 上的基础运维痛点。对于习惯使用终端或需要快速启停的开发者,它提供了必要的便利。