dsh-tui-cron: DSH 的定时任务调度插件

前言

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 面板,开发者可以方便地实现自动化提示词触发,适合需要定时提醒或周期性检查的场景。

羽毛球分组比赛记分
小程序二维码

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

小夜