Chạy Claude Code không giao diện (claude -p): đưa agent vào script, cron và CI
Tóm tắt
claude -p "prompt" chạy một lượt rồi thoát, in kết quả ra stdout. Thêm --output-format json để parse, --allowedTools để giới hạn quyền, --max-turns để chặn vòng lặp. Dùng cho báo cáo định kỳ, review tự động, sinh changelog.
Các lệnh cơ bản
# Tóm tắt thay đổi hôm nay
git log --since=midnight --oneline | claude -p "Viết changelog ngắn, nhóm theo feature/fix"
# Kết quả JSON để script xử lý tiếp
claude -p "Liệt kê TODO trong src/ dạng JSON" --output-format json > todo.json
# Giới hạn quyền + số vòng
claude -p "Chạy test và sửa lỗi lint" \
--allowedTools "Bash(npm test),Bash(npm run lint),Edit" --max-turns 10Ứng dụng thực tế
| Việc | Trigger |
|---|---|
| Báo cáo tiến độ sprint từ commit + ticket | Cron 17h mỗi ngày |
| Review PR theo checklist team | GitHub Actions khi mở PR |
| Phân loại log lỗi đêm qua | Cron 7h sáng |
| Sinh release note | Khi tạo tag |
An toàn khi chạy tự động
- Luôn khai báo
--allowedToolstối thiểu; không chạy skip-permissions trên máy có dữ liệu thật. - Chạy trong container / runner riêng, dùng API key riêng cho automation, có spend limit.
- Muốn tích hợp sâu hơn (custom tool, hook bằng code) → dùng Claude Agent SDK.
Tài liệu: Headless mode · CLI reference