Lệnh /loop trong Claude Code là công cụ tự động hóa các lời nhắc (prompt) lặp lại ngay trong một phiên làm việc (session).
Thay vì gõ tay từng câu lệnh kiểm tra trạng thái build, rà soát mã nguồn hay theo dõi lỗi CI, bạn thiết lập để Claude tự chạy các tác vụ đó theo chu kỳ định sẵn. Lệnh này giúp bạn giữ đúng mục tiêu công việc ngay cả khi phiên trải qua nhiều chu kỳ nén ngữ cảnh (compaction) — thời điểm AI dễ "quên" định hướng ban đầu.
Về bản chất, /loop mang tính "session-scoped": nó chỉ hoạt động khi phiên Claude Code hiện tại còn mở và ở trạng thái rảnh (idle). Đóng terminal hay mở một phiên mới, các vòng lặp sẽ dừng. Đây là cách biến Claude từ một trợ lý phản hồi thụ động thành một "nhà thầu" chủ động giám sát dự án trong suốt quá trình bạn viết mã.

/loop là gì và nó chạy thế nào?
Kỹ thuật đằng sau /loop bắt nguồn từ cơ chế xác thực kết quả lặp lại (iterative verification), trước đây thường được gọi là "Ralph Wiggums". Đây là cách cho AI liên tục kiểm tra xem nhiệm vụ đã thực sự hoàn thành đúng yêu cầu hay chưa, tránh việc dừng lại quá sớm khi kết quả mới đi được một nửa. Trong Claude Code, cơ chế này được chuẩn hóa thành một kỹ năng (skill) hệ thống.
Khi bạn kích hoạt /loop, Claude Code đăng ký một tác vụ định kỳ (cron job) ngay bên trong tiến trình của chính nó. Khác với cron job ở cấp hệ điều hành — vốn rắc rối về đường dẫn và biến môi trường — /loop quản lý mọi thứ nội bộ. Tác vụ này kế thừa toàn bộ quyền hạn (permission) và các MCP server từ phiên hiện tại, nên có thể truy cập file, chạy lệnh shell hay gọi các công cụ như Slack, Gmail mà không cần cấu hình lại.
Ba cách gọi /loop
Bạn có thể triển khai /loop theo ba kịch bản, tùy mức độ kiểm soát mong muốn:

- Cung cấp cả khoảng thời gian và lời nhắc: bạn xác định chính xác tần suất lẫn nhiệm vụ. Ví dụ:
/loop 5m check the deploy. - Chỉ cung cấp lời nhắc: bạn đưa ra mục tiêu, Claude tự chọn khoảng nghỉ (tự điều nhịp) dựa trên trạng thái dự án — đợi ngắn khi build đang chạy, đợi lâu hơn khi không có gì thay đổi.
- Không cung cấp gì, hoặc chỉ có khoảng thời gian: Claude chạy lời nhắc bảo trì (maintenance prompt) mặc định, thường gồm hoàn thành nốt việc dang dở, rà soát PR và xử lý lỗi CI trên nhánh hiện tại.
# Quét lịch sử git mỗi 10 phút và báo cáo ngắn
/loop 10m scan my git history and give me a brief update
# Để Claude tự điều chỉnh tần suất kiểm tra và sửa lỗi PR
/loop check for new comments on my PR and fix them
# Chạy tác vụ bảo trì mặc định mỗi giờ một lần
/loop 1hKhoảng cố định, chế độ tự điều nhịp và cron
Cú pháp thời gian hỗ trợ các đơn vị s (giây), m (phút), h (giờ) và d (ngày). Vì cron nội bộ của Claude chỉ chia nhỏ tới mức 1 phút, mọi giá trị tính bằng giây đều được làm tròn lên phút. Nếu bạn nhập một khoảng không khớp bước cron chuẩn (ví dụ 7m hay 90m), Claude sẽ tự làm tròn tới giá trị gần nhất và báo lại cho bạn.
Ở chế độ tự điều nhịp (chỉ có lời nhắc), Claude thường dùng công cụ Monitor: thay vì polling bằng cách chạy lại toàn bộ prompt — vốn tốn token — Monitor truyền (stream) kết quả từ các lệnh chạy ngầm. Cách này phản ứng tức thì với thay đổi và tiết kiệm chi phí đáng kể. Một lưu ý: trên Bedrock, Vertex AI và Microsoft Foundry, chế độ tự điều nhịp không khả dụng — mọi lời nhắc không kèm khoảng thời gian sẽ chạy cố định mỗi 10 phút.
Tùy biến mặc định bằng loop.md
File loop.md cho phép bạn thay thế hoàn toàn lời nhắc bảo trì mặc định bằng chỉ dẫn riêng. Claude tìm file này theo thứ tự ưu tiên:
.claude/loop.md— cấu hình riêng cho từng dự án.~/.claude/loop.md— cấu hình chung cho người dùng, áp dụng cho mọi dự án không có file cục bộ.
Ví dụ, bạn có thể hướng Claude tập trung vào các tác vụ kỹ thuật chuyên sâu thay vì chỉ rà soát PR chung chung:
1. Chạy 'npm test' để kiểm tra độ ổn định của mã nguồn.
2. Nếu có lỗi, phân tích stack trace và đề xuất bản vá ngay.
3. Dùng Slack MCP gửi tóm tắt tình trạng nhánh release-v1.0 vào channel #deploy-alerts.Nên giữ file dưới 25.000 byte để không bị cắt khi Claude đọc ngữ cảnh. Mọi thay đổi trong file có hiệu lực ngay ở vòng lặp kế tiếp, nên bạn có thể tinh chỉnh ngay khi loop đang chạy.
Quản lý, dừng loop và nhắc một lần
Bạn kiểm soát tác vụ qua cả phím tắt lẫn lệnh:
- Dừng nhanh: nhấn
Esckhi một loop đang chờ để hủy lần đánh thức kế tiếp. - Nhắc một lần (one-shot): thay vì /loop, hãy yêu cầu bằng ngôn ngữ tự nhiên (ví dụ: "nhắc tôi sau 20 phút kiểm tra log"). Claude dùng một biểu thức cron để "ghim" thời điểm chạy và tự xóa tác vụ ngay sau khi hoàn thành.
- Công cụ quản lý:
CronListliệt kê mọi tác vụ đang chạy kèm ID 8 ký tự (tối đa 50 tác vụ mỗi phiên);CronDeletehủy tác vụ theo ID;CronCreatelà công cụ cấp thấp để tạo tác vụ bằng biểu thức cron 5 trường.
# Tạo tác vụ thủ công bằng CronCreate (chạy 9:00 sáng mỗi ngày)
CronCreate(schedule="0 9 * * *", prompt="Summarize yesterday's commits", recurring=true)Khi nào nên — và không nên — dùng /loop
Nên dùng /loop khi bạn cần một "mắt xích" tự động để theo dõi chất lượng code, phân tích lỗi test sau mỗi thay đổi, hay dựng báo cáo tóm tắt công việc mỗi sáng. Nó giải phóng đầu óc khỏi các tác vụ kiểm tra vụn vặt để bạn tập trung vào logic chính.

Vài hạn chế cần nhớ:
- Độ lệch (jitter): để tránh quá tải API, Claude thêm một độ lệch. Với tác vụ chạy thường xuyên hơn mỗi giờ, độ lệch tối đa bằng nửa khoảng thời gian (loop 10 phút có thể lệch tối đa 5 phút); với tác vụ thưa hơn, độ lệch có thể lên tới 30 phút.
- Hết hạn: mọi tác vụ tự xóa sau 7 ngày. Cần lâu hơn thì phải tạo lại.
- Chi phí: ngữ cảnh tích lũy qua từng vòng lặp làm tăng chi phí token; hãy dùng
/compactthường xuyên để dọn lịch sử. - Độ bền: /loop sẽ chết khi terminal đóng.
| Đặc điểm | /loop | Desktop Tasks | Cloud Tasks |
|---|---|---|---|
| Môi trường | Máy cục bộ | Máy cục bộ | Anthropic Cloud |
| Yêu cầu mở phiên | Có | Không | Không |
| Truy cập file | Có | Có | Không (clone mới) |
| Chi phí token | Tăng theo ngữ cảnh | Độc lập theo task | Độc lập theo task |
Muốn tắt hoàn toàn tính năng này, đặt biến môi trường CLAUDE_CODE_DISABLE_CRON=1.