dsh-crew:在 dsh Web UI 中并排运行 Claude Code 和 Codex 终端窗格

前言

下面介绍 dshworks/dsh-crew。它解决的问题是:不只是让 dsh 把任务交给 Claude Code 或 Codex,再拿回一个结果,而是在 dsh 旁边打开真实终端窗格,让人能看到进程正在做什么,也能随时输入、中断或广播消息。对 dsh agent 来说,它也提供一组工具,用于安排这些“成员”入座、发送任务、读取当前屏幕,并在需要时关闭进程。

这是什么

dsh-crewdshworks 发布的 DSH 插件,采用 MIT 许可证。它把 Claude Code 和 Codex 作为 live terminal panes 放在 dsh 的 Web UI 中,提供座位栏、真实 PTY 流式画面,以及供 dsh agent 使用的 crew_* 工具。

核心功能

  • 在 Web UI 中把 Claude Code 和 Codex 作为 live terminal panes 放到 dsh 旁边。
  • 通过 seat bar 入座成员;不可用成员会被禁用,并给出原因。
  • 每个成员使用 real PTY 运行在 session 的 workspace 中,并流式输出到对应 pane。
  • 人类可以向任意 pane 输入、用 Ctrl-C 中断,或向所有 live panes 广播一条消息。
  • 提供工具:crew_listcrew_seatcrew_sendcrew_peekcrew_dismiss
  • crew_send 会等待 pane settle,并返回新增行或 delta,而不是整个 viewport。
  • 支持 run_in_background,并与 harness job 集成,包括 job_outputjob_kill
  • 使用 headless terminal emulator,使 crew_peek 返回当前可见的 screen grid。
  • 可以用 tools: false 关闭工具,split view 仍然可用。

安装与启用

dsh plugin 会转发到 pnpm,因此先确认 pnpm 在 PATH 中。安装插件的命令如下:

dsh plugin --profile web add @dshworks/dsh-crew

安装后,用 Web profile 启动 dsh:

dsh --profile web

之后,在 Web UI 中可以看到 split view:一边是 dsh,另一边是已入座的 Claude Code 或 Codex 终端 pane。

典型用法

下面按 dsh agent 调用工具的顺序说明。

先查看可入座和已入座的成员:

crew_list

然后让一个成员入座。例如入座 Claude Code:

crew_seat(agent: "claude")

这个调用会启动一个 pane,并返回 pane id 和第一屏内容。

向已入座成员发送任务:

crew_send(pane: "…", message: "…")

crew_send 会输入消息、按 Enter,并等待 pane quiet。返回结果是新增行或 delta,而不是完整 viewport。

如果只想看当前屏幕,调用:

crew_peek(pane: "…")

它返回 pane 当前可见的屏幕网格,也就是人现在看到的那一屏。

如果需要后台执行,可以使用:

crew_send(pane: "…", message: "…", run_in_background: true)

这会返回一个 job id;完成时会以 notice 形式到达。相关 job 可以使用 job_output 读取输出,也可以使用 job_kill 停止。

关闭某个成员进程:

crew_dismiss(pane: "…")

如果只想保留 split view,不想让 agent 调用工具,可以设置:

tools: false

此时 split view 仍然可用,成员只由人操作。

如果不需要 run_in_background 参数,可以设置:

enableRunInBackground: false

行为边界

  • 插件不会自动回答产品信任提示。如果第一屏是 dialog,工具会把情况交给调用者处理。
  • 可以用 crew_send 回答 dialog;空消息会按 Enter。等 composer 出现后,再发送正式任务。
  • run_in_background 需要 ctx.jobs,以及调用 agent 能访问的 job controller。缺少这些条件时,工具会说明情况,而不是直接抛错。
  • crew_send 等待 pane settle 后返回新增内容,而不是把整屏内容重新塞给模型。

适用场景与注意

适合以下场景:

  • 需要人工观看 Claude Code 或 Codex 的执行过程。
  • 需要在 agent 工作过程中随时输入、中断或广播消息。
  • 希望 dsh agent 能把任务交给其他 CLI 成员,并读取它们当前屏幕。
  • 只想做人机分屏操作,不需要 agent 调用工具。

注意:

  • 该插件会运行本地 CLI,并允许读取和发送终端内容,因此应在可信主机、可信目录中使用。
  • 安装前应检查源码、依赖和 MIT 许可证,确认符合本地安全要求。
  • 使用 dsh plugin 安装前,需要保证 pnpm 在 PATH 中。

链接

  • 插件目录页:https://www.skillhub.cn/plugins/dshworks/dsh-crew
  • GitHub:https://github.com/dshworks/dsh-crew
羽毛球分组比赛记分
小程序二维码

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

Xiaoye