前言¶
DSH 理念是「一切皆插件」,開發者可以通過插件擴展功能。在日常使用 dsh-TUI 進行交互時,有時需要在固定時間週期觸發特定提示詞或執行操作。dsh-tui-cron 插件解決了這一需求,它基於 cron 表達式管理任務,在指定時間將提示詞作爲後續用戶消息注入當前會話。
是什麼¶
dsh-tui-cron 是一個適用於 dsh-TUI 的社區插件,由 FUSU123fusu 維護。它允許用戶通過標準的 cron 語法保存提示詞,並在任務觸發時將其作爲 follow-up user message 發送至當前會話隊列,正在進行的輪次不會被中斷。
核心功能¶
- 定時調度:支持 Vixie cron 標準語法(分、時、日、月、周)。
- 消息注入:將保存的提示詞作爲後續用戶消息注入會話。
- TUI 面板管理:提供可視化面板,支持選擇任務、啓用/停用、刪除任務。
- 數據持久化:使用 JSON 格式將配置存儲在
~/.dsh-tui/cron.json。
安裝與啓用¶
該插件暫未發佈至 npm,需從源碼打包安裝。操作步驟如下:
git clone https://github.com/FUSU123fusu/dsh-tui-cron.git
cd dsh-tui-cron
npm pack
dsh plugin --profile <你的profile> add file:dsh-tui-cron-0.1.0.tgz
典型用法¶
安裝並啓用插件後,在 dsh-TUI 交互界面中使用以下命令:
/cron # 打開任務面板
/cron add 0 9 * * 1-5 提醒我整理今天的站會要點
/cron rm <id> # 刪除任務(支持精確 id 或唯一前綴)
/cron on <id> # 啓用任務
/cron off <id> # 停用任務
在 TUI 面板中,使用 ↑ / ↓ 鍵選擇任務,空格 鍵切換啓用/停用狀態,d 鍵刪除(需在 3 秒內按兩次確認),Esc 鍵退出。
適用場景與注意¶
- 進程生命週期限制:調度器僅存活於當前 dsh profile 進程中。啓動時計算下次觸發時間,TUI 不在線期間錯過的時點不會補跑。要確保任務觸發,必須保持 dsh-TUI 進程持續運行。
- 會話檢查:如果到點時還沒有任何頂層會話(agent)創建過,本次觸發會跳過並寫入 warn 日誌。
- 環境依賴:需要 Node.js 版本
^22.19 || >=24,並依賴@deepseek-ai/dsh-llm 0.1.0-rc.6。 - 存儲位置:配置文件存儲在
~/.dsh-tui/cron.json。
總結¶
dsh-tui-cron 爲 DSH 用戶提供了一個輕量級的定時任務解決方案。通過 cron 語法和 TUI 面板,開發者可以方便地實現自動化提示詞觸發,適合需要定時提醒或週期性檢查的場景。