前言¶
下面介绍 dshworks/dsh-crew。它解决的问题是:不只是让 dsh 把任务交给 Claude Code 或 Codex,再拿回一个结果,而是在 dsh 旁边打开真实终端窗格,让人能看到进程正在做什么,也能随时输入、中断或广播消息。对 dsh agent 来说,它也提供一组工具,用于安排这些“成员”入座、发送任务、读取当前屏幕,并在需要时关闭进程。
这是什么¶
dsh-crew 是 dshworks 发布的 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_list、crew_seat、crew_send、crew_peek、crew_dismiss。 crew_send会等待 pane settle,并返回新增行或 delta,而不是整个 viewport。- 支持
run_in_background,并与 harness job 集成,包括job_output和job_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