TL;DR — Claude Code Open 推出定时任务守护进程,支持自然语言配置时间任务、文件监控、间隔任务。每天早上 9 点自动审查代码,文件修改时自动生成测试,监控日志异常时通过飞书通知。AI 驱动的智能自动化平台。
🤖 想象一下
每天早上 9 点,AI 自动审查你的代码提交;文件一修改,AI 立即生成测试用例;每周五下午,AI 自动生成项目进度报告;监控日志文件,异常时立即通过飞书通知你。
这不是科幻,这是 Claude Code Open 最新推出的定时任务守护进程能为你做的事情!
🎯 核心能力:三大任务类型
1️⃣ 基于时间的任务(Time-based Tasks)
使用自然语言描述时间,AI 会自动理解并执行:
# 一次性任务 "明天下午3点,分析这个项目的性能瓶颈" "2小时后,检查服务器日志是否有异常" "下周一早上9点,生成本周代码统计报告" # 循环任务 "每天早上8点,检查 GitHub issues 并总结" "每周五下午5点,生成周报" "每小时,检查 API 响应时间"
支持的时间表达式:
- 相对时间:"2小时后"、"30分钟后"、"明天"、"下周"
- 绝对时间:"2025-02-14 15:00"、"明天下午3点"
- 循环表达式:"每天早上9点"、"每周一"、"每小时"
2️⃣ 文件监控任务(File Watching)
监控文件变化,自动触发 AI 任务:
# 监控单个文件 "监控 server.log,出现 ERROR 时分析原因并通知我" # 监控整个目录 "监控 src/ 目录,代码修改时自动生成单元测试" # 监控特定类型文件 "监控 *.ts 文件,修改时检查 TypeScript 类型错误"
支持的监控事件:
change- 文件内容修改add- 新文件创建unlink- 文件删除addDir- 新目录创建unlinkDir- 目录删除
3️⃣ 间隔任务(Interval Tasks)
按固定时间间隔执行:
"每隔5分钟,检查服务器CPU使用率" "每隔1小时,备份数据库" "每隔30分钟,拉取最新代码并运行测试"
🏗️ 架构设计:工业级可靠性
核心组件
┌─────────────────────────────────────────┐
│ Daemon Manager │
│ (守护进程管理器) │
└───────────┬─────────────────────────────┘
│
┌───────┴───────┐
│ │
┌───▼───┐ ┌────▼────┐
│ Config│ │ Store │
│(配置) │ │(SQLite) │
└───┬───┘ └────┬────┘
│ │
└──────┬───────┘
│
┌──────┴──────┐
│ │
┌───▼────┐ ┌────▼─────┐ ┌──────────┐
│Scheduler│ │ Executor │ │ Watcher │
│(调度器) │ │ (执行器) │ │(文件监控)│
└────┬────┘ └────┬─────┘ └────┬─────┘
│ │ │
└────────┬───┴──────────────┘
│
┌────▼────┐
│Notifier │
│(通知器) │
└─────────┘
│ │
┌──────┘ └──────┐
│ │
┌───▼───┐ ┌────▼────┐
│Desktop│ │ Feishu │
│ Toast │ │ Bot │
└───────┘ └─────────┘
持久化存储(SQLite)
任务数据保存在 ~/.claude/scheduled_tasks.db,包含:
CREATE TABLE tasks ( id TEXT PRIMARY KEY, name TEXT NOT NULL, type TEXT NOT NULL, -- 'once' | 'interval' | 'watch' triggerAt INTEGER, -- Unix timestamp intervalMs INTEGER, watchPaths TEXT, -- JSON array watchEvents TEXT, -- JSON array prompt TEXT NOT NULL, notify TEXT, -- JSON array: ['desktop', 'feishu'] model TEXT, -- 'opus' | 'sonnet' | 'haiku' createdAt INTEGER, lastRun INTEGER, nextRun INTEGER, status TEXT -- 'active' | 'paused' | 'completed' );
为什么选择 SQLite?
- ✅ 零配置,无需单独数据库服务
- ✅ ACID 事务,数据可靠性保证
- ✅ 支持并发读,适合守护进程
- ✅ 文件级备份,迁移方便
智能时间解析
我们实现了一个强大的自然语言时间解析器:
parseTimeExpression("明天下午3点") // → Date: 2025-02-14 15:00:00 parseTimeExpression("2小时后") // → Date: 2025-02-13 12:30:00 (当前时间+2h) parseTimeExpression("每天早上9点") // → Cron: "0 9 * * *" parseTimeExpression("每周一早上10点") // → Cron: "0 10 * * 1"
支持的中文时间词:
- 明天、后天、下周、下个月
- 早上、中午、下午、晚上、凌晨
- 小时、分钟、天、周、月
- 工作日、周末
🔔 多渠道通知系统
桌面通知(Desktop Notification)
使用 node-notifier 库,支持:
- Windows:原生 Toast 通知
- macOS:通知中心集成
- Linux:libnotify (notify-send)
飞书机器人(Feishu Bot)
企业级通知,支持富文本消息。配置飞书通知:
{
"feishu": {
"webhookUrl": "https://open.feishu.cn/open-apis/bot/v2/hook/xxx",
"defaultChatId": "oc_xxxxxxxxxxxx"
}
}
💻 实战案例
自动化代码审查
每天早上 9 点,审查昨天的所有代码提交,分析代码质量,检查潜在问题,并通过飞书通知审查结果。使用 Opus 模型确保分析质量。
实时错误监控
监控日志文件,每次出现 'ERROR' 关键词时,分析错误原因和堆栈跟踪,提供修复建议,通过桌面通知和飞书双通道提醒。
定期备份提醒
每周五下午 5 点,检查备份目录是否有今天的备份文件,如果没有,提醒执行备份,并生成备份脚本。
API 健康监控
每 5 分钟检查 API 可用性,如果响应时间超过2秒或返回错误,分析原因并通过飞书发送告警消息。
自动测试生成
监控 src/ 目录,代码修改时自动生成单元测试,确保代码质量。支持监控特定类型文件如 *.ts。
周报自动生成
每周五自动分析本周的 git 提交记录,生成项目进度报告,通过飞书发送给团队。
🛠️ 使用指南
启动守护进程
# 启动(后台运行) claude daemon start # 查看状态 claude daemon status # Output: # ✓ Daemon is running (PID: 12345) # Active tasks: 5 # Next execution: 2025-02-13 15:00:00 # 停止 claude daemon stop # 重启 claude daemon restart
通过对话创建任务
最简单的方式是直接告诉 Claude:
User: 每天早上8点,检查 GitHub issues 并总结
Claude: 我将为你创建一个定时任务:
- 任务名称: "每日 GitHub Issues 总结"
- 类型: 间隔任务
- 触发时间: 每天 08:00
- 通知方式: 桌面通知
- 使用模型: Sonnet (快速响应)
是否确认创建?
🔒 安全性考虑
权限隔离
- 守护进程以用户权限运行,不需要 root
- 文件监控限制在用户目录内
- 防止路径遍历攻击
资源限制
- 最多同时执行 3 个任务
- 单任务最长 10 分钟
- 最大内存使用 512MB
- CPU 限制 50%
API 密钥保护
- API Key 加密存储
- 环境变量优先级高于配置文件
- 支持密钥轮换机制
🎯 立即开始
1. 安装 Claude Code Open(如果还没有)
# Windows irm https://raw.githubusercontent.com/kill136/claude-code-open/main/install.ps1 | iex # macOS/Linux curl -fsSL https://raw.githubusercontent.com/kill136/claude-code-open/main/install.sh | bash
2. 启动守护进程
claude daemon start
3. 创建你的第一个定时任务
claude # 在对话中说: "每天早上9点,检查 GitHub 仓库的新 issues,总结并通过飞书通知我"
4. 享受自动化带来的效率提升!
Claude Code Open - AI 驱动的智能自动化平台
加入我们的社区:
- Discord:https://discord.gg/bNyJKk6PVZ
- GitHub:https://github.com/kill136/claude-code-open
- X (Twitter):@wangbingjie1989