Bundle
chicheng-cron
dsh 定时任务插件:在左侧栏“新会话”下方提供“定时任务”入口,支持 cron 定时执行 shell / python / nodejs 脚本、skills 与自定义 agent 任务,可对接 chicheng-push 与 messaging-core 推送通知、成功后自动归档会话,移动端适配
- Source
- 534119219
- stars
- 8 stars
- License
- MIT
- Updated
- Updated 4 hours ago
Readme
# chicheng-cron
DeepSeek Harness(dsh web)的定时任务插件:在左侧栏 **「新会话」下方**提供 **「定时任务」** 入口,用 cron 表达式定时执行 Shell / Python / Node 脚本、Skill 或任意 Agent 任务,并支持推送通知、会话整理与移动端适配。
## 功能
- **侧栏入口**:位于「新会话」按钮正下方,展开/收缩态与原生控件一致(rail 18px 图标)
- **任务类型**
- Shell 脚本(Windows `cmd.exe` / 其他平台 `/bin/sh`)
- Python 脚本(自动探测 `python` / `py` / `python3`)
- Node.js 脚本(当前 Node 运行时)
- Skill(自动注入已安装 skill 的完整说明给 Agent 执行)
- 交给 Agent(自由提示词,由 headless dsh Agent 完成任意任务)
- **调度**:标准 5/6 字段 cron(`*/n`、`a-b`、列表、月份/星期缩写)、`@hourly`–`@yearly`、`@every <n>s|m|h|d`;本地时间计算,重启后自动恢复
- **推送通知**:对接 [chicheng-push](https://github.com/534119219/chicheng-push)(Server酱/PushPlus/Bark/钉钉/企微/Telegram/飞书/Webhook 等渠道)与 messaging-core 消息平台(任意已连接机器人的会话);标题/内容模板支持 `{name} {type} {status} {exitCode} {duration} {time} {output}` 占位符,内容留空自动附带运行输出
- **会话整理**:Agent/Skill 运行会话可自动归入侧栏「定时任务」工作区;可开启「成功后自动归档会话」,完成后对话从侧栏隐藏(日志保留)
- **执行历史**:状态、退出码、耗时、推送结果、归档标记;输出弹窗查看
- **移动端适配**:窄屏单页导航(列表 ↔ 编辑)、执行历史默认收起、16px 输入防 iOS 缩放、安全区适配
## 截图
<table>
<tr>
<td align="center">
<img src="assets/sidebar-entry.png" width="240" alt="侧栏入口(展开 / 收缩态)"><br>
<sub>侧栏入口(展开 / 收缩态)</sub>
</td>
<td align="center">
<img src="assets/settings-1.png" width="240" alt="任务与推送设置 1"><br>
<sub>任务与推送设置 1</sub>
</td>
<td align="center">
<img src="assets/settings-2.png" width="240" alt="任务与推送设置 2"><br>
<sub>任务与推送设置 2</sub>
</td>
</tr>
<tr>
<td colspan="3" align="center">
<img src="assets/output-popup.png" width="240" alt="执行历史与输出弹窗"><br>
<sub>执行历史与输出弹窗</sub>
</td>
</tr>
</table>
## 安装
```sh
dsh plugin --profile web add github:534119219/chicheng-cron
```
安装后重启 `dsh web`,左侧栏「新会话」下方出现「定时任务」按钮。
> 从源码开发时提示:`dsh plugin add` 会把 `file:` 依赖物化成目录快照,改源码后可用仓库内 `scripts/relink-dev.ps1` 恢复 junction 指向源码。
## 使用
1. 点击侧栏「定时任务」→ 新建任务
2. 选择类型并填写:名称、cron 表达式(实时预览下次执行时间)、脚本/提示词、工作目录、超时
3. 可选:
- **完成后推送通知**:选择渠道(chicheng-push 或 messaging-core 会话)、推送标题/内容(留空用默认,自动附输出)
- **Agent/Skill 会话归入「定时任务」分组**
- **成功后自动归档会话**(对话从侧栏隐藏,日志保留)
4. 保存后到点自动执行;「立即执行」可随时手动触发,执行历史查看结果与输出
### 推送模板占位符
| 占位符 | 含义 |
|---|---|
| `{name}` | 任务名称 |
| `{type}` | 任务类型 |
| `{status}` | 完成/失败/超时/运行中 |
| `{exitCode}` | 退出码 |
| `{duration}` | 耗时 |
| `{time}` | 完成时间 |
| `{output}` | 运行输出(Agent 任务的最终回答,前 800 字) |
## API(同源 fenced)
`list` `save` `remove` `toggle` `runNow` `preview` `runs` `runOutput` `skills` `pushChannels` `status` —— 全部 `POST /cron/api/<method>`。
## 数据与限制
- 任务与历史:`$DSH_HOME/cron/store.json`;运行输出:`$DSH_HOME/cron/runs/`
- Agent/Skill 任务通过 `dsh --profile headless` 执行,复用 `$DSH_HOME/settings.yaml` 的模型配置
- Web 未运行时错过的时间点不补跑
## License
MIT
Install
dsh plugin --profile web add github:534119219/chicheng-cron
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install chicheng-cron from the hub
- This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.