dsh-plugin-codex-control:从 CLI/Codex 桥接 DeepSeek Harness GUI 会话

前言

在 DeepSeek Harness(DSH)里做智能体开发,多数操作发生在桌面或 Web Host 的 GUI 会话中:新建对话、看进度、审批权限、在界面里停掉长任务。若你同时在 Codex 或终端里编排步骤,常见做法是再开一套 headless 运行时,或手工在 GUI 里重复同一套操作。两者会话割裂,状态和权限也不在同一处。

下面介绍维护者 rixodx 发布的客户端类插件 dsh-plugin-codex-control(Harness Control 本机桥接):在 Host 保持运行的前提下,用本地 CLI 向正在运行的 DSH 提交普通 GUI 会话任务,查询进度并取消,而不单独拉起 headless runtime。插件在 SkillHub 目录 归类为客户端;当前 GitHub 星标为 0。社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。

这是什么

Harness Control Bridge(Harness 控制桥接)通过本机文件队列连接「已运行的 DeepSeek Harness 桌面/Web Host」。你可以创建或续接普通 GUI 对话,查看消息与运行状态,等待输出,并从 Codex 或终端取消任务。插件调用宿主现有的 sessionController、workspaceRegistry 和 pluginManager 服务,不修改目标会话的模型或权限策略;权限审批与待回答问题仍需在 Harness 原界面处理。

当前 Release v1.0.2,许可证 MIT。兼容范围在 README 中限定为已在真实桌面验证的 Harness 0.2.2-rc.1,其他版本尚未验证。需要 Node.js 24.9+。

核心功能

依据 README 与 package.json,可核实的能力包括:

  1. 连通性检查:ping、plugin-status(期望出现 installed: true、enabled: true)。
  2. 工作区与会话:列举工作区(workspaces)、会话列表(list),按绝对路径创建工作区会话(create),向指定 SESSION_ID 发送提示(prompt,支持 --file 读 UTF-8 文件)。
  3. 状态与输出:查询会话状态(state)、事件流(events)、带超时的等待(wait,最长 45 秒,可用 state.cursor 作为 AFTER_SEQ 排除旧输出)。
  4. 取消任务:cancel SESSION_ID;等待超时不会自动取消已入队任务。
  5. 本机队列桥接:使用 <Harness home>/cli-bridge-v1/{incoming,processing,outgoing},无监听端口、无遥测;请求最大 64 KiB、有效期两分钟。

CLI 发出的消息带 [CLI] 前缀;新会话不会强制切换 GUI 当前查看的对话。accepted 仅表示入队成功。

安装与启用

在 DSH Desktop 的插件管理器中安装 GitHub Release 包,或在目录市场收录后搜索 dsh-plugin-codex-control。Web profile 可使用下列命令(资料原文):

dsh plugin --profile web add https://github.com/rixodx/dsh-plugin-codex-control/releases/download/v1.0.2/dsh-plugin-codex-control-1.0.2.tgz

自定义 profile 时将 web 换成宿主实际名称;桌面端建议用应用自带插件管理器,避免装到错误的 Web profile。也支持源码方式:

dsh plugin --profile web add github:rixodx/dsh-plugin-codex-control

插件无构建脚本、无第三方运行依赖。热加载关闭时需正常重启宿主。安装前请自行查阅 GitHub 仓库 源码与 MIT 许可证;插件以当前 DSH 进程权限运行,队列目录应仅本机当前用户可访问。

若你曾通过作者私有技能库中的 Harness Control 技能安装过旧桥接,README 要求先用该技能的 setup.mjs --uninstall 移除受管理安装,再通过市场安装本插件,避免同一 profile 重复加载两个 bundle。本包不安装 Codex 技能文件。

非默认 Harness home 时,可在宿主 profile 配置补丁中覆盖队列路径,例如:

- id: harness-control-bridge-v1
  config:
    bridgeDirectory: /absolute/harness-home/cli-bridge-v1

CLI 侧用 --home 或环境变量 DSH_HOME(默认 ~/.dsh)与队列对齐;每个队列只服务一个运行中的 Host。

典型用法

Host 必须保持运行。将 Release 包解压到任意目录,在包含 cli.mjs 的目录执行(安装包 bin 名为 harness-control,直接 node cli.mjs 不依赖 PATH 中的 bin):

node cli.mjs ping
node cli.mjs plugin-status
node cli.mjs workspaces
node cli.mjs list
node cli.mjs create --cwd /absolute/workspace/path "桥接测试"
node cli.mjs prompt SESSION_ID "只计算 17 乘 23,不使用工具或修改文件。"
node cli.mjs state SESSION_ID
node cli.mjs wait SESSION_ID 30000
node cli.mjs events SESSION_ID
node cli.mjs cancel SESSION_ID

将工作区路径换成本机绝对路径(Windows 例如 D:/projects/demo),SESSION_ID 换为 list 等命令返回的实际 ID。非默认 home 时:

node cli.mjs --home /absolute/harness-home ping

Codex 可直接运行上述 CLI,也可继续使用从同一桥接代码提取的技能;代码来源为 rixodx-codex-skill 中的 assets/harness-bridge(源提交 7983118a1b858620629826014452f893d90657b7),原私有技能库不是安装本插件的前提。

经过上面的步骤,你应能在 GUI 同一会话中看到桥接提交的内容与结果;CLI 超时或宿主崩溃后执行结果可能未知,应按输出中的 requestId 检查队列与会话,避免盲目重复有副作用的任务。

适用场景与注意

适合:需要在 Codex 或 shell 脚本中驱动已在运行的 Harness GUI,统一查看进度并在必要时取消,且接受在 GUI 内处理审批与权限的场景。

限制与验证(README 原文):已在 Windows 上对 Harness 0.2.2-rc.1 做包管理器安装与 Web 实例连接验证;macOS/Linux GUI 尚未实测。仓库提供 npm test 与 npm pack --dry-run,GitHub Actions 在 Windows/Linux 上跑隔离测试。队列记录不会自动清理,停用 Host 后可自行归档。

结尾

dsh-plugin-codex-control 把 Codex/终端与正在运行的 DeepSeek Harness 绑在同一套 GUI 会话与权限模型上,用本机文件队列完成提交、查询与取消,适合「GUI 为主、CLI 编排为辅」的工作流。

  • 目录页:https://www.skillhub.cn/plugins/rixodx/dsh-plugin-codex-control
  • GitHub:https://github.com/rixodx/dsh-plugin-codex-control
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye