Skip to main content

รันคำสั่งตามกำหนดเวลา

ใช้ /loop และ cron scheduling tools เพื่อรัน prompt ซ้ำ ๆ สำรวจสถานะ หรือตั้งการเตือนครั้งเดียวภายใน Claude Code session

หมายเหตุ: Scheduled tasks ต้องใช้ Claude Code v2.1.72 หรือใหม่กว่า ตรวจสอบเวอร์ชันด้วย claude --version

Scheduled tasks ช่วยให้ Claude รัน prompt ซ้ำอัตโนมัติตามช่วงเวลา ใช้เพื่อสำรวจการ deploy บ้าง ดูแล PR บ้าง ตรวจสอบ build ที่รันนาน หรือเตือนตัวเองให้ทำสิ่งต่าง ๆ ในภายหลังของ session

Tasks มีขอบเขตเฉพาะ session: ชีวิตอยู่ใน conversation ปัจจุบันและหยุดเมื่อเริ่ม session ใหม่ การ resume ด้วย --resume หรือ --continue จะคืน task ที่ยังไม่หมดอายุ

เปรียบเทียบตัวเลือกการกำหนดเวลา

Claude Code มีสามวิธีกำหนดเวลางานที่เกิดซ้ำหรือครั้งเดียว:

CloudDesktop/loop
รันบนAnthropic cloudเครื่องของคุณเครื่องของคุณ
ต้องเปิดเครื่องทิ้งไว้ไม่ใช่ใช่
ต้องมี session เปิดไม่ไม่ใช่
คงอยู่หลัง restartใช่ใช่Restore ใน --resume ถ้ายังไม่หมดอายุ

รัน Prompt ซ้ำด้วย /loop

คำสั่ง /loop เป็นวิธีเร็วที่สุดในการรัน prompt ซ้ำในขณะที่ session ยังเปิดอยู่

สิ่งที่ระบุตัวอย่างสิ่งที่เกิดขึ้น
Interval และ prompt/loop 5m check the deployPrompt รันตามกำหนดเวลาที่กำหนด
Prompt เท่านั้น/loop check the deployPrompt รันตามช่วงที่ Claude เลือก
Interval เท่านั้น หรือไม่มีอะไร/loopBuilt-in maintenance prompt รัน

รันตามช่วงเวลาที่กำหนด

เมื่อระบุ interval Claude จะแปลงเป็น cron expression และยืนยัน cadence:

/loop 5m check if the deployment finished and tell me what happened

ช่วงเวลาสนับสนุน unit: s สำหรับวินาที, m สำหรับนาที, h สำหรับชั่วโมง, d สำหรับวัน

ให้ Claude เลือก Interval

เมื่อไม่ระบุ interval Claude จะเลือกเองแบบ dynamic:

/loop check whether CI passed and address any review comments

รัน Built-in Maintenance Prompt

เมื่อไม่ระบุ prompt Claude ใช้ maintenance prompt ในตัว:

/loop

ปรับแต่ง Default Prompt ด้วย loop.md

ไฟล์ loop.md แทนที่ built-in maintenance prompt ด้วยคำสั่งของคุณ:

Pathขอบเขต
.claude/loop.mdProject-level ใช้ก่อนเมื่อทั้งสองไฟล์มีอยู่
~/.claude/loop.mdUser-level ใช้ใน project ใด ๆ ที่ไม่ได้กำหนดของตัวเอง

ตัวอย่าง loop.md:

Check the `release/next` PR. If CI is red, pull the failing job log,
diagnose, and push a minimal fix. If new review comments have arrived,
address each one and resolve the thread.

หยุด Loop

หากต้องการหยุด /loop ขณะรอการ iterate ครั้งถัดไป กด Esc

ตั้งการเตือนครั้งเดียว

สำหรับการเตือนแบบ one-shot ให้อธิบายสิ่งที่ต้องการใน natural language:

remind me at 3pm to push the release branch
in 45 minutes, check whether the integration tests passed

จัดการ Scheduled Tasks

ถาม Claude ใน natural language เพื่อแสดงหรือยกเลิก tasks:

what scheduled tasks do I have?
cancel the deploy check job

Tools ที่ใช้งานเบื้องหลัง

Toolวัตถุประสงค์
CronCreateกำหนด task ใหม่ รับ 5-field cron expression
CronListแสดง scheduled tasks ทั้งหมดพร้อม ID และกำหนดการ
CronDeleteยกเลิก task ตาม ID

วิธีที่ Scheduled Tasks ทำงาน

Scheduler ตรวจสอบทุกวินาทีว่า task ใดถึงกำหนด และเพิ่มใน queue ด้วย priority ต่ำ

เวลาทั้งหมดถูก interpret ใน timezone ของคุณ cron expression เช่น 0 9 * * * หมายถึง 9 โมงเช้า ที่ใดก็ตามที่คุณรัน Claude Code ไม่ใช่ UTC

Jitter

เพื่อหลีกเลี่ยงทุก session กดบน API พร้อมกัน scheduler เพิ่ม offset:

  • Recurring tasks ยิงได้สูงสุด 30 นาทีหลังเวลาที่กำหนด
  • One-shot tasks ที่กำหนดที่ต้น/กลางชั่วโมงยิงเร็วขึ้นได้ถึง 90 วินาที

หมดอายุ 7 วัน

Recurring tasks หมดอายุอัตโนมัติ 7 วันหลังสร้าง task ยิงครั้งสุดท้ายแล้วลบตัวเอง

Cron Expression Reference

CronCreate รับ 5-field cron expressions: minute hour day-of-month month day-of-week

ตัวอย่างความหมาย
*/5 * * * *ทุก 5 นาที
0 * * * *ทุกชั่วโมงเต็ม
7 * * * *ทุกชั่วโมงที่นาทีที่ 7
0 9 * * *ทุกวันเวลา 9 โมงเช้า local
0 9 * * 1-5วันทำงานเวลา 9 โมงเช้า local
30 14 15 3 *15 มีนาคม เวลา 14:30 local

ปิดใช้งาน Scheduled Tasks

ตั้งค่า CLAUDE_CODE_DISABLE_CRON=1 ใน environment ของคุณเพื่อปิด scheduler ทั้งหมด

ข้อจำกัด

  • Tasks ยิงได้เฉพาะเมื่อ Claude Code รันและไม่ได้ใช้งาน ปิด terminal จะหยุดการยิง
  • ไม่มี catch-up สำหรับ fires ที่พลาดไป
  • เริ่ม conversation ใหม่จะลบ session-scoped tasks ทั้งหมด

สำหรับ automation แบบ cron ที่ต้องรันแบบ unattended: