前言¶
下面介紹 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