dsh-rex-context:在 Rex 終端裏爲 DSH 注入實時 terminal 上下文

前言

在 Rex 終端裏跑 DeepSeek Harness(DSH)時,agent 需要知道當前 session、pane、以及本機 rex 命令能做什麼。Rex 給 Claude / Codex 等 harness 的做法是「skill + SessionStart hook」:啓動時往 system prompt 裏塞一段說明。DSH 沒有 SessionStart hook 機制,若在 shell 裏再掛一層 hook,往往多一個調用點,還和 dsh-tui 已有的狀態上報疊在一起。

dsh-rex-context 由維護者 soimy 發佈,歸類爲客戶端插件。它把 Rex 側 SessionStart 那條邏輯搬到 DSH 插件模型裏:在 dsh-tui 啓動階段註冊一段 system prompt(rex-terminal,order 70),內容不是寫死的,而是每次從本機 rex CLI 現取,Rex 升級後措辭會跟着變。不在 Rex 裏啓動 DSH 時,插件不註冊任何段,對普通終端零干擾。

這是什麼

一句話:dsh-rex-context 是在 Rex 環境內啓動 DSH 時,自動注入「你在 Rex 裏、當前 session/pane、怎麼用 rex」的 system prompt 段;文本隨 rex __internal session-start 輸出更新。

DSH 生態主張「一切皆插件」;SkillHub 等目錄站是社區索引,與 DeepSeek / 幻方無官方從屬關係。安裝插件前建議自行查看源碼與許可證——插件以當前 dsh 進程權限運行。

核心功能

觸發條件

僅在檢測到 Rex 環境變量(如 REX_SESSION / REX_BLOCK)且從 Rex 終端內啓動 dsh 時生效。普通 shell 裏沒有 REX_* → 不註冊 system prompt 段。

啓動時執行的命令

插件在啓動階段調用與 Rex 給 claude/codex 裝的 SessionStart hook 相同的 CLI:

rex __internal session-start --agent dsh-tui --feature-session-naming=false --autostart=false

輸出註冊爲 system prompt 段 rex-terminal(order 70)。典型內容包括:

  • 當前 REX_SERVER / REX_SESSION / REX_BLOCK,以及用 -s / -b 選中它們的用法;
  • rex whoami --json 等自檢命令;
  • rex 能力說明(開 session、tab、分 pane、跑命令、讀輸出、跨機器 rex -S HOST);
  • rex skill 入口(rex skill show)。

失敗與回退

情況 結果
不在 Rex 裏(無 REX_*) 不註冊任何段
在 Rex 裏,rex CLI 可用 用 CLI 實時輸出
rex 不在 PATH / 超過 3s / __internal 變動 回退內置靜態文本

--feature-session-naming=false:不替 agent 改 Rex session 名,多個 harness 共用同一 session 時可避免互相改名。若要與 claude/codex 行爲完全一致,可去掉該 flag(需改插件側調用,見倉庫實現)。

--autostart=false:只連接已在運行的 Rex server,不會因爲組裝 prompt 而拉起新 server。

爲什麼不用 hook

README 說明:Rex 的 idle/working/blocked/done/error 狀態來自 OSC 7501,dsh-tui 已在發;本插件不負責狀態上報,再包 hook 只會多一個更差的來源。用「啓動時註冊 system prompt 段」等價於 SessionStart,且少一個 shell 調用點。

安裝與啓用

面向 dsh-tui profile,官方 README 給出的安裝方式如下。

本地目錄(開發,軟鏈,改完重啓 dsh-tui 即生效):

dsh plugin --profile dsh-tui add /path/to/dsh-rex-context

從 GitHub 安裝:

dsh plugin --profile dsh-tui add github:soimy/dsh-rex-context

裝完後重啓 dsh-tui。system prompt 在進程啓動時組裝,已有會話不會熱更新。

運行環境要求(package.json):Node >=22。

驗證與自檢

在不帶 Rex 的普通終端裏,可在插件目錄執行:

node index.js

預期打印 dsh-rex-context self-check ok(不訪問 rex)。自檢覆蓋:無 Rex env 不註冊、有 env 註冊唯一一段、CLI 失敗時回退靜態文本。

在 Rex 內重啓 dsh-tui 後,可在會話裏觀察 system prompt 是否出現 rex-terminal 段及與當前 session 一致的說明。

適用場景與注意

適合誰:日常在 Rex 終端裏用 dsh-tui 做 agent 開發,希望模型默認知道 Rex 上下文和 rex 命令,又不想維護一份會過期的靜態 prompt。

邊界(README 已寫明):

  • rex __internal session-start 是 Rex 私有命令,隨版本可能改名或挪位置;失效時插件靜默回退靜態文本,不會讓 dsh 起不來。
  • 插件只在 dsh 啓動時讀一次 env;Rex 中途重啓或換 session 需要重啓 dsh-tui。
  • 資料中記載的測試環境:Rex 0.1.0 (build 1853),rex CLI 0.0.1793890641-gaf0c20;你本機版本不同以實際行爲爲準。

結尾

dsh-rex-context 把 Rex 的 SessionStart 語義用 DSH 插件方式實現:Rex 內啓動即有 live-fetched 的 terminal 上下文,Rex 外則無操作。需要安裝命令、行爲表與邊界說明時,以倉庫 README 爲準。

  • 目錄頁:https://www.skillhub.cn/plugins/soimy/dsh-rex-context
  • GitHub:https://github.com/soimy/dsh-rex-context
羽毛球分组比赛记分
小程序二维码

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

小夜