前言¶
用 DeepSeek Harness(dsh)幹活時,prompt 都是在會話裏輸入的,不經過 shell。想回溯“這個問題當時我是怎麼問的”“那段調優提示詞的原文是什麼”,只能一條條翻會話記錄。如果你平時已經用 atuin 管理 shell 歷史,一個自然的想法是:這些 prompt 也能進同一個歷史庫,用 atuin search 和 Ctrl-R 直接搜。
dsh-atuin 做的就是這件事。下面介紹它的原理、安裝和配置。
這是什麼¶
dsh-atuin 是一個 DSH 插件,由 RealAlexantuereAI 維護——更正:作者是 RealAlexandreAI,當前版本 0.1.1,MIT 許可證。它把你在 dsh web 界面中輸入的每條 prompt 追加進 atuin 的 shell 歷史,之後可以用 atuin search 和 shell 集成(Ctrl-R)搜索。
它是 pi-atuin 的移植版。dsh 沒有終端 UI,這個插件就是 dsh 與 atuin 之間的橋接。
工作原理¶
插件監聽 session/event → user/message 事件,對每條用戶輸入執行兩條 atuin 命令:
atuin history start -- "<prompt>"
atuin history end --exit 0 <ID>
start 啓動一條歷史記錄並返回 ID,end 以退出碼 0 結束這條記錄。
兩點值得注意:
- 只記錄你自己輸入的 prompt,回覆、工具調用、文件內容一律不記錄。
- 缺少 atuin 或 daemon 沒在運行時,插件靜默跳過,會話永遠不會因此中斷。
安裝與啓用¶
先確認本機裝好 atuin,並且 daemon 在運行(標準 atuin 安裝的一部分)。然後在 dsh 中執行:
dsh plugin --profile web add dsh-atuin
--profile web 表示安裝到 web profile。
配置¶
插件提供四個配置項,示例寫法如下:
- id: atuin
name: dsh-atuin
config:
# atuin_bin: /opt/homebrew/bin/atuin
# deny: "^/clear$,password"
# max_len: 2000
# session_match: "project-x"
| 配置項 | 作用 |
|---|---|
atuin_bin |
atuin 二進制路徑,默認取 PATH 上的 atuin |
deny |
逗號分隔的正則,匹配的 prompt 不記錄,例如上例會屏蔽以 /clear 開頭的輸入和含 password 的輸入 |
max_len |
長 prompt 的截斷長度,默認 2000,設爲 0 關閉截斷 |
session_match |
逗號分隔的正則,只記錄標題匹配的會話,留空表示全部記錄 |
隱私與數據存放¶
- 只記錄你輸入的 prompt;回覆、工具調用、文件內容從不寫入。
deny可以屏蔽敏感 prompt,比如包含密碼、密鑰的輸入。- 條目保存在本地 atuin 數據庫
~/.local/share/atuin/history.db,數據不離開本機。
開發與測試¶
如果要改代碼或自己構建,倉庫提供了標準流程:
npm install
npm run typecheck
npm test # 覆蓋文本提取、deny 規則、截斷
npm run build
針對真實 atuin 數據庫做實測(需要 daemon 在運行):
node --import tsx tests/real/real-atuin.mjs
適用場景與注意事項¶
適合同時使用 dsh(web profile)和 atuin 的開發者:想把散落在 dsh 會話裏的 prompt 沉澱進一個可搜索的本地歷史庫,方便複用和回溯。使用前注意以下幾點:
- 插件以當前 dsh 進程的權限運行。安裝任何第三方插件前,建議先讀一遍源碼和許可證(本插件爲 MIT)。
- 插件包要求 Node.js >= 20.0.0(package.json 的 engines 字段)。
- 依賴標準 atuin 安裝和運行中的 daemon。atuin 缺失或 daemon 停止時插件會靜默跳過——不報錯,但也不會有記錄,排查時先確認 daemon 狀態。
- 默認
max_len: 2000會截斷長 prompt,需要完整原文就把值調大或設爲0。
結尾¶
dsh-atuin 解決的問題很具體:讓 dsh 裏的 prompt 和 shell 命令共用同一份 atuin 歷史,搜索、複用都在熟悉的 atuin search 和 Ctrl-R 裏完成。實現剋制,隱私邊界清楚,壞環境下也不影響會話本身。
- GitHub:https://github.com/RealAlexandreAI/dsh-atuin
- 社區插件目錄:https://www.skillhub.cn/plugins/RealAlexandreAI/dsh-atuin
最後提醒:社區目錄是獨立站點,與 DeepSeek、幻方無官方從屬關係。DSH 的理念是「一切皆插件」,dsh-atuin 是這個思路下一個小而完整的例子。