casual-cron

⏰ 自然语言定时任务管家

基于 OpenClaw 的自然语言定时任务工具,支持 /at 和 /every 快速创建提醒,采用隔离会话与严格转义保障执行安全。

收藏
2.1k
安装
1.1k
版本
v1.2.0
CLS 安全性认证2026-05-11
点击查看完整报告 >

使用说明

Casual Cron 是 OpenClaw 生态中的定时任务调度技能,允许用户通过自然语言(如"每天下午3点提醒"或"/at 20m")快速创建 cron 作业。它支持两种主要模式:/at 用于一次性任务(支持绝对时间如"3pm"或相对时间如"20m"),/every 用于周期性任务(支持"每天"、"每周一"或"每2小时"等频率)。系统会自动将自然语言解析为 ISO 8601 时间戳或标准 Cron 表达式,并默认使用 America/New_York 时区处理夏令时。生成的命令通过 openclaw cron add CLI 提交,支持 Telegram、WhatsApp、Slack、Discord 和 Signal 等多渠道消息投递。

该技能最大优势在于交互的自然性和安全性的平衡。用户无需记忆复杂的 Cron 语法,通过日常语言即可创建精确调度。安全设计上采用多重防护:使用 shlex.quote 对所有用户输入进行 Shell 转义,防止命令注入;强制附加 --session isolated 参数确保任务在隔离环境中执行,避免影响主系统;遵循严格的"Cron Run Guard"规则,禁止在定时任务内执行故障排查或网关重启等危险操作。此外,纯 Python 标准库实现(无外部依赖)大幅降低了供应链攻击面,42 个单元测试覆盖了边界情况和特殊字符处理,确保解析鲁棒性。

主要限制在于对外部工具 openclaw CLI 的强依赖,其安全性和稳定性直接影响本技能表现,若 CLI 未安装或版本不兼容将导致功能失效。默认时区固定为 America/New_York,虽 DST-aware 但对其他时区用户不够友好,跨时区使用需手动指定 --tz 参数。此外,当前仅支持通过环境变量 CRON_DEFAULT_CHANNEL 配置默认渠道,灵活性有限。对于复杂的时间逻辑(如"每个月最后一个工作日")解析能力有限。

适合需要轻量级定时提醒的个人用户和社群运营者,特别是依赖 Telegram 等即时通讯工具进行日程管理的群体。开发者可利用其快速搭建自动化通知系统,如定时报表推送、定期备份提醒等。对于非技术用户,自然语言界面降低了使用门槛;对于运维人员,其严格的隔离机制和明确的执行日志便于审计。不适合需要毫秒级精度或复杂任务依赖关系的企业级调度场景。

使用风险方面,需确保 openclaw 二进制文件来自官方可信渠道,防止恶意替换。跨时区团队使用时若忽略 TZ 设置,可能导致提醒时间偏差。性能上,频繁创建大量定时任务(如每秒级)可能对底层 cron 系统造成压力。此外,虽输入经过转义,但若用户通过 message 参数注入社交工程内容(如伪造系统通知),仍需结合渠道端的安全策略防范。

安全解读

核心用法

Casual Cron 是一款自然语言定时任务生成器,让用户用日常口语(如"每天下午3点提醒我"、"20分钟后发送消息")即可创建精确的 cron 任务。

触发方式:用户主动提及时间安排,或使用 /at(一次性)、/every(重复)命令前缀。

工作流程
1. 解析用户输入的时间表达式(8am、3:30pm、noon、midnight 等)和频率模式(daily、weekdays、hourly、every 2 hours 等)

2. 自动计算 America/New_York 时区(夏令时安全)

3. 生成 openclaw cron add 命令,包含严格的运行隔离(--session isolated

4. 向用户确认解析结果(时间、任务名、任务ID)后执行

关键安全设计

  • 使用 shlex.quote() 对所有用户输入进行转义,彻底防止命令注入
  • 强制使用隔离会话,任务运行环境受限
  • 一次性任务默认 --delete-after-run,避免残留

显著优点

  • 零学习成本:无需记忆 cron 表达式语法,口语化输入即可
  • 时区智能:自动处理 America/New_York 夏令时转换,避免时间漂移
  • 多渠道支持:telegram、whatsapp、slack、discord、signal 全覆盖
  • 运行隔离--session isolated 确保任务执行环境受限,降低风险
  • 纯本地处理:无外部网络请求,完全离线运行

潜在局限

  • 时区单一:仅支持 America/New_York,国际用户需手动换算
  • 依赖环境变量:需预配置 CRON_DEFAULT_CHANNEL,否则可能需每次指定渠道
  • 无内置验证:依赖 openclaw CLI 的可用性,若未安装会执行失败
  • 自然语言覆盖有限:复杂时间描述(如"每个月最后一个工作日")可能无法解析

适合人群

  • 需要为团队或个人设置提醒的 Telegram/Slack 用户
  • 不熟悉 cron 语法的非技术用户
  • 寻求快速、安全定时任务方案的自动化爱好者

常规风险

  • 环境依赖风险:若 openclaw 二进制文件缺失或版本不兼容,命令执行失败
  • 时区误配风险:用户可能误以为支持其他时区,导致提醒时间偏差
  • 任务堆积风险:高频重复任务(如 every 1m)若未合理设置,可能产生大量任务实例

casual-cron 内容

scripts文件夹
skills文件夹
casual-cron文件夹
scripts文件夹
test文件夹
test文件夹
手动下载zip · 17.5 kB
cron_builder.pytext/plain
请选择文件