在 DeepSeek Harness (DSH) 中使用內置側邊欄終端時,長日誌或錯誤堆棧往往佔據大量篇幅。手動從終端複製文本粘貼到聊天框不僅效率低下,還會在對話歷史中擠佔大量上下文空間,干擾對核心問題的聚焦。
dsh-terminal-context 是一個插件,它將終端中的選中文本自動轉換爲聊天輸入框中的 @file 引用,通過本地捕獲文件的方式,保持對話流的整潔。
插件信息¶
- 名稱:
dsh-terminal-context - 定位:客戶端插件
- 維護者:ZHOU-ZHIZHEN
- 許可證:MIT
安裝與啓用¶
DSH 目前沒有集中的插件市場,所有插件通過內置插件管理器安裝。
如果你使用的是 DSH Web 或通過命令行管理配置文件,請在終端執行以下命令:
dsh plugin --profile web add github:ZHOU-ZHIZHEN/dsh-terminal-context
對於使用桌面端 Electron 應用程序的用戶,請通過圖形界面操作:
1. 打開 DeepSeek Harness Desktop。
2. 點擊左側邊欄的 Plugins 圖標。
3. 點擊右上角的 Add Plugin。
4. 在輸入框中輸入:github:ZHOU-ZHIZHEN/dsh-terminal-context。
5. 點擊安裝並重啓應用。
注意:桌面配置文件(profile “desktop”)僅由 Electron 應用程序管理,無法通過 CLI 命令直接操作。
核心功能¶
該插件主要實現以下能力:
- 引用轉換:將終端中的高亮文本保存爲本地文件,並在聊天輸入框中生成對應的
@file引用組件。 - 插入方式:
- 按鈕插入:在編輯器輸入框上方會出現 “Add to context” 按鈕,點擊即可插入。
- 快捷鍵插入:按下
Ctrl+L(Mac:Cmd+L)。
- 自動清理:保存文件時,自動修剪行尾空格和首尾空白行,去除終端渲染產生的不可見字符。
- 文件存儲:選中文本會以時間戳命名,保存到
<workspace>/.dsh/term-captures/目錄下。 - 降級模式:當結構化注入失敗時,支持純文本降級模式。
典型用法¶
操作流程與常規打字習慣自然集成:
- 選擇文本:在 DSH 側邊欄終端中,使用鼠標或鍵盤高亮所需的日誌或代碼片段。
- 切換焦點:點擊聊天輸入框,將焦點移至編輯器。
- 插入引用:
- 點擊編輯器上方出現的 “Add to context” 按鈕。
- 或者在終端選中狀態保持時,直接按下
Ctrl+L(Mac:Cmd+L)。
工作機制¶
插件通過以下技術手段實現功能:
- 插槽橋接與注入:註冊無頭 UI 組件到
conversation.input.dock插槽,並通過依賴注入@deepseek-ai/dsh-client-ui-conversation獲取輸入上下文。 - HTTP 接口:提供
/capture(捕獲內容)、/sweep(清理過時文件)、/diag(診斷日誌)接口。 - 選擇提取:當瀏覽器原生選擇(
window.getSelection())因鼠標釋放而摺疊時,插件會檢查 xterm 的.xterm-selection層,通過幾何重建提取完整行內容,避免因字符列精度導致的截斷。
注意事項¶
- 快捷鍵行爲:當終端中沒有有效選擇時,
Ctrl+L不會佔用快捷鍵,允許終端使用原生快捷鍵(如clear)。只有在有選擇且有效時,快捷鍵纔會觸發插入。 - 按鈕狀態:一旦選中文本消失(灰色高亮不再存在),編輯器上方的按鈕會自動隱藏,防止發送過時內容。
- 命令 ID:插入操作的命令 ID 爲
dsh-terminal-context.add,可在設置中重新綁定快捷鍵。 - 環境依賴:插件依賴 Node.js >= 20。
總結¶
dsh-terminal-context 解決了終端輸出與對話輸入割裂的問題。通過將長文本轉化爲輕量級的本地文件引用,它幫助開發者保持聊天上下文的純淨,同時保留了獲取完整日誌的能力。
- GitHub 倉庫:ZHOU-ZHIZHEN/dsh-terminal-context
- 插件目錄:SkillHub 插件頁