前言¶
DeepSeek Harness(DSH)的生态理念是「一切皆插件」。在本地开发环境中,管理多个开发项目通常意味着打开多个终端窗口或使用复杂的脚本组合。dsh-project-manager 插件通过在 DSH Web 界面右下角提供一个悬浮窗口,将项目启动、停止、日志查看和热重载等操作集中在一个可拖拽的 UI 中,减少对系统原生窗口的依赖。
是什么¶
这是一个由 br1nosense 维护的客户端插件,用于在 DSH Web 界面内直接管理本地开发项目。它解决了多项目切换繁琐的问题,提供了可视化的进程控制、文件变更自动重启和日志查看功能。
核心功能¶
该插件包含以下核心能力:
- 悬浮窗口:窗口默认显示在 DSH Web 界面右下角的
shell.overlay区域。支持通过标题栏拖拽移动位置,通过右上角按钮折叠/展开。窗口的位置、折叠状态及尺寸变化会被记录在浏览器的localStorage中,刷新页面后保持一致。 - 项目列表:列出所有已添加的项目。每个项目卡片显示状态徽标(如运行中、停止中、失败)、进程 ID (PID)、工作目录和启动命令。
- 进程控制:提供启动、停止、重启操作。在 Windows 系统下,停止操作会使用
taskkill /T命令杀整棵进程树,确保子进程被正确清理。 - 添加项目:支持配置以下参数:项目名称、工作目录、启动命令、附加参数、自动启动选项、热重载开关、热重载文件后缀白名单以及附加环境变量。
- 热重载:使用
fs.watch递归监听项目目录。文件变更会根据后缀白名单进行过滤,并在去抖(Debounce)500ms 后自动重启进程。 - 日志查看:stdout 和 stderr 按行写入内存环形缓冲区(默认上限 2000 行),并持久化保存到
logs/<id>.log文件。悬浮窗内提供日志查看器,支持增量轮询和自动滚动。
安装与启用¶
安装过程通过 PowerShell 脚本完成。建议从 GitHub 克隆仓库进行安装。
git clone https://github.com/br1nosense/dsh-project-manager.git
cd dsh-project-manager
powershell -ExecutionPolicy Bypass -File .\install.ps1
安装完成后,重启 DSH Web 或等待 dsh-client-hmr 自动热更新。验证插件是否生效,可以在终端执行:
dsh --profile web --dump-config
在输出中应能找到 id: project-manager 的配置项。
典型用法¶
安装并启用插件后,右下角会出现悬浮窗口。
- 添加项目:在悬浮窗中配置项目信息(工作目录、启动命令等),或通过 API 发送 POST 请求添加。
- 控制进程:点击项目卡片上的“启动”、“停止”或“重启”按钮。
- 查看日志:展开日志查看器,实时监控输出,或通过 API 获取增量日志。
配置与维护¶
- 配置持久化:项目列表和配置保存在
~/.dsh/settings.yaml的project-manager段中。 - 热更新:客户端代码修改后,
dsh-client-hmr会自动更新,无需重启 DSH Web。 - PeerDependencies 修复:若直接克隆仓库安装,可能会遇到 PeerDependencies 解析问题。Node ESM 会从插件目录向上查找依赖,可能找不到 DSH 核心包。需要在插件工作区根目录(插件目录的父目录)的
node_modules\@deepseek-ai\下创建 Junction(目录联接),指向 DSH 安装目录下的同名包(schemastery、cordis、dsh-settings)。
适用场景¶
该插件适合需要在本地同时维护多个开发环境(如前后端分离项目、微服务架构)的开发者。特别是使用 Windows 系统且习惯通过浏览器管理任务的开发者,可以通过此插件替代多开终端。
结语¶
dsh-project-manager 提供了一套轻量级的项目管理方案,通过 Web 界面和本地进程控制相结合,优化了本地开发的工作流。对于需要频繁启动、停止和监控本地服务的场景,该插件能显著提升操作效率。