在智能體開發中,瀏覽器 Harness 與終端控制台之間常存在割裂。開發者需要頻繁切換上下文,手動查詢 tmux 會話狀態,或遺忘哪些工作會話已被凍結。dsh-wo-tmux 插件將 tmux 工作流直接集成到 DeepSeek Harness 的工作區概覽中,解決狀態可見與快速接入的問題。
插件簡介¶
dsh-wo-tmux 是 DeepSeek Harness (DSH) 的一個客戶端插件,由 joao-paulo-santos 維護。它提供 tmux 工作區概覽,支持會話狀態(實時、凍結、冷存儲)顯示及一鍵終端附加功能,幫助開發者在不離開瀏覽器的情況下管理終端會話。
核心功能¶
-
會話狀態膠囊
在工作區概覽的會話頭部顯示狀態膠囊,直觀展示會話的當前狀態。點擊膠囊即可打開或附加終端,根據狀態自動執行解凍或恢復操作。 -
Workspace Overview 子標籤頁
在 Workspace Overview 中提供 Tmux 子標籤頁,分爲兩個視圖:- Session:顯示當前工作區會話的詳細狀態(名稱、狀態芯片、解析方式、客戶端數、窗口數)。
- All sessions:列出機器上的所有會話,按狀態分組,支持從全局視圖對會話進行管理。
-
會話操作
根據會話狀態提供不同的操作選項:- 實時會話:打開控制台、凍結、快照到冷存儲。
- 凍結會話:解凍、恢復、清理快照。
- 冷存儲會話:恢復、清理快照。
- 所有操作均需確認,防止誤操作。
-
鏈接與分組
支持將工作區固定到自定義會話名稱,實現分組顯示。這對於同名項目(如兩個項目都叫api)非常有用,可通過顯式鏈接避免衝突。 -
持久化鏈接
工作區與會話的鏈接關係持久化存儲在~/.dsh/settings/wo-tmux.json,重啓後依然有效。 -
會話解析優先級
插件通過以下優先級將工作區解析爲會話:- 顯式鏈接(Link Store)
- 基名匹配(Workspace Basename)
- 無匹配(需手動創建或鏈接)
安裝與啓用¶
安裝前需確保已安裝 DeepSeek Harness (DSH),並擁有一個配置文件(示例中使用 web profile)。系統需在 PATH 中包含 tmux 和 tmux-fridge。
- 創建插件目錄並克隆依賴:
mkdir -p ~/dsh-plugins && cd ~/dsh-plugins
git clone https://github.com/joao-paulo-santos/dsh-workspace-overview.git
git clone https://github.com/joao-paulo-santos/dsh-wo-tmux.git
- 從 Harness 檢出目錄執行插件安裝:
pnpm dsh plugin --profile web add ~/dsh-plugins/dsh-workspace-overview
pnpm dsh plugin --profile web add ~/dsh-plugins/dsh-wo-tmux
- 驗證配置:
pnpm dsh --profile web --dump-config
重啓 Harness 後,在 Workspace Overview 中即可看到 Tmux 子標籤頁,且在關聯的會話頭部會顯示狀態膠囊。
典型用法¶
- 凍結工作流:使用
tmux-fridge凍結當前正在進行的長時間運行的工作會話,保持系統資源佔用最小化。 - 快速接入:點擊工作區概覽中的狀態膠囊,直接在瀏覽器中打開真實的終端窗口並附加到會話,無需手動輸入
tmux attach。 - 解決衝突:將兩個同名項目的工作區分別鏈接到不同的自定義會話名稱,並在 Workspace Overview 中清晰區分。
適用場景與注意事項¶
適用場景¶
- 使用 tmux-fridge 管理會話凍結與恢復的開發者。
- 需要在瀏覽器 Harness 與終端之間頻繁切換的智能體開發者。
- 需要統一管理多臺機器上 tmux 會話狀態的用戶。
注意事項¶
- 依賴項:必須安裝
dsh-workspace-overview插件,否則客戶端功能將無法生效。 - 終端模擬器:插件依賴終端模擬器。創建會話時通過
$TERMINAL環境變量指定,若未指定則探測kitty、alacritty、wezterm等常用模擬器。 - 環境變量:可通過
TMUX_FRIDGE_BIN環境變量指定tmux-fridge二進制文件的路徑。 - 真實終端:插件不嵌入瀏覽器終端,而是生成真實的終端窗口。每次點擊僅打開一個終端窗口。
- 場景限制:名稱檢測目前僅覆蓋一對一場景(一個工作區一個會話),多對多場景未覆蓋。
總結¶
dsh-wo-tmux 通過將 tmux 的會話狀態管理能力引入 DSH 的工作區概覽,實現了瀏覽器操作與終端控制的無縫銜接。它通過狀態膠囊和子標籤頁提供了清晰的可視化界面,並通過標準化的操作流程簡化了會話的凍結、恢復與管理。