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
羽毛球分组比赛记分
小程序二维码

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

小夜