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: