piaohua/dsh-schedule-command ↗★ 0
dsh-schedule-command
Human-facing /schedule slash command for managing session-local scheduled tasks in DeepSeek Harness
安装
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:piaohua/dsh-schedule-command说明文档
阅读完整 README ↗或使用本地目录(开发调试)
dsh plugin --profile web add /path/to/dsh-schedule-command
安装后,`dsh plugin` 会自动将插件加入 profile 的 bundle 栈。**重启 DSH 后生效。**
> **注意**: 安装本插件会同时挂载 `@deepseek-ai/dsh-schedule` 运行时(这是 dsh 核心能力,但默认没有任何 bundle 挂载它)。没有该运行时,`/schedule` 只会写入无效的日志记录,定时任务永远不会真正触发。
## 使用方式
### 创建定时任务
/schedule 30分钟后提醒我喝水 /schedule 每天早上9点生成项目晨报 /schedule 2小时后检查构建状态 /schedule tomorrow 3pm review PR comments /schedule every 2 hours check disk usage /schedule 每个工作日上午9:00,为这个项目生成一份简明的晨间简报
### 管理定时任务
/schedule list # 列出所有活跃定时任务 /schedule delete schedule-1 # 删除指定任务 /schedule clear # 删除所有任务 /schedule # 显示帮助信息
## 支持的时间格式
| 模式 | 示例 | 映射规则 |
|------|------|---------|
| X分钟后/小时后/秒后 | `30分钟后提醒我` | `after_seconds` |
| in X minutes/hours | `in 2 hours check status` | `after_seconds` |
| 每X分钟/小时/天 | `每2小时检查一次` | `every_seconds` |
| every X minutes/hours/days | `every 30 minutes sync` | `every_seconds` |
| 每天/每小时 | `每天生成报告` | `every_seconds: 86400` |
| 明天/今天 HH:MM | `明天下午3点开会` | `at` (绝对时间) |
| tomorrow/today HH:MM | `tomorrow 9am standup` | `at` (绝对时间) |
| 每个工作日 | `每个工作日9:00晨报` | `every_seconds: 86400` + 工作日约束标注 |
> **注意**: 底层 `dsh-schedule` v1 仅支持固定间隔(`every_seconds`),不支持 Cron 表达式。"每个工作日"等日历规则会降级为 24 小时间隔,并在提示词中标注约束条件,由模型在执行时自行判断是否跳过。
## 会话标识
含活跃定时任务的会话自动获得 `⏰` 标题前缀;在全新会话中直接创建任务时,插件还会自动生成形如 `⏰ 定时任务:监控当前机器的运行情况…` 的标题,并主动开启一次对话,确保会话有内容、有标题、在工作区可见:
⏰ 定时任务:监控当前机器的运行情况并进行分析总结。
所有定时任务被清除后,前缀自动移除;之后重新创建任务,前缀会再次恢复。
## 跨平台唤醒建议
定时任务仅在会话保持活跃时准时触发。如果电脑进入睡眠状态,任务会在恢复后变为 overdue 并补发(周期任务仅补发最新一次)。
| 平台 | 建议 |
|------|------|
| **Linux** | 服务器通常不睡眠,无需额外配置 |
| **macOS** | 使用 `sudo pmset schedule wake "MM/DD/YYYY HH:MM:SS"` 设置定时唤醒 |
| **Windows** | 在任务计划程序中勾选"唤醒计算机以运行此任务" |
## 已知限制
- **仅会话本地交付**: 提醒只在原会话 live 时触发;冷会话不会收到外部通知
- **固定间隔**: 不支持 Cron 表达式或复杂日历规则
- **最新一次追赶**: 逾期的周期任务只补发最新一次,不回放积压
- **自然语言解析**: 基于正则匹配,复杂表达可能降级为默认规则
## 开发
```bash
pnpm install
pnpm build # 编译 TypeScript → lib/
pnpm clean # 清理构建产物
许可证
MIT
使用方式
创建定时任务
/schedule 30分钟后提醒我喝水
/schedule 每天早上9点生成项目晨报
/schedule 2小时后检查构建状态
/schedule tomorrow 3pm review PR comments
/schedule every 2 hours check disk usage
/schedule 每个工作日上午9:00,为这个项目生成一份简明的晨间简报
管理定时任务
/schedule list # 列出所有活跃定时任务
/schedule delete schedule-1 # 删除指定任务
/schedule clear # 删除所有任务
/schedule # 显示帮助信息