在 DeepSeek Harness (DSH) 的插件化架构中,插件是扩展能力的核心。开发者经常面临的一个痛点是:在 Session 中打开项目后,需要切换到终端或手动输入启动命令才能运行项目,这会打断当前的上下文。dsh-run-environment 旨在解决这一问题,它是一个客户端插件,允许你直接在 Session 头部运行当前打开项目的命令,无需离开当前对话。
插件定位¶
dsh-run-environment 是一个 DeepSeek Harness 插件,由 albertgranados 维护。它的核心定位是基于检测而非配置。插件通过适配器模型识别项目环境(目前支持 Node.js 的 package.json),并在 Session 头部提供运行控制。它不需要手动编写 manifest 或配置路径,支持通过自定义命令运行任何环境。
核心功能¶
自动检测与适配器¶
插件采用适配器模型进行环境检测。只要项目存在 package.json 且包含 scripts,插件即可识别,无需额外配置。未来可通过适配器扩展支持其他环境(如 Makefile 等)。检测到的命令会按来源分组显示在菜单中。
命令管理与展示¶
- 重命名与定制:你可以重命名命令、添加描述,并自定义图标。对于检测到的命令,这些操作仅修改展示,不改变原始脚本。
- 智能排序与默认值:默认情况下,播放按钮会优先运行
dev脚本,其次是start,最后是 manifest 中定义的第一个脚本。你也可以通过菜单将任意命令设为默认。 - 交互管理:支持隐藏/显示命令(隐藏的命令会沉底,可恢复)以及拖拽排序。顺序会按项目记忆。
运行与停止控制¶
- 进程组终止:运行命令会启动一个进程组。停止时,插件会终止整个进程组(例如从
npm到sh再到具体的 dev server),而不仅仅是父进程。 - 状态反馈:运行中的命令行会显示绿色的状态点。如果命令失败,该行会变为红色,并在工具提示中显示最后的输出行。
- 集成控制台:运行命令会自动在 Harness 的 Sidebar 打开一个对应的 Tab,用于流式输出日志。每个命令拥有独立的 Tab,再次运行会聚焦到已有 Tab。
技术特性¶
插件具有零运行时依赖。Host 端仅使用 Node.js 内置模块和 Harness 自身的包,Browser 端由 Harness 直接提供。这使得安装过程非常简单,无需构建步骤。
安装与启用¶
在终端中执行以下命令进行安装:
dsh plugin --profile web add github:albertgranados/dsh-run-environment
安装完成后,需要重启 Harness 并刷新浏览器页面以使插件生效。
典型用法¶
- 运行检测到的脚本:在 Session 头部点击播放按钮,默认会运行
dev脚本。 - 执行自定义命令:在菜单中添加自定义命令(如
docker compose up -d或python manage.py runserver),点击即可在项目目录下执行。 - 管理命令列表:通过菜单设置默认命令、编辑名称和图标,或隐藏不需要的命令。
注意事项¶
- 环境要求:需要 Node.js 版本大于等于 20。
- 依赖项:插件依赖 Peer Dependencies,包括
@deepseek-ai/cordis、@deepseek-ai/dsh-home-paths和@deepseek-ai/schemastery。 - 权限与安全:插件以当前 DSH 进程的权限运行,安装前建议检查源码。
dsh-run-environment 通过适配器模型和零依赖设计,简化了在 Harness 中运行项目流程。它将开发环境的启动过程直接集成到对话界面中,适合需要频繁切换项目和查看日志的开发者。