Claude Code trên Terminal: Cách dùng CLI từ cơ bản đến automation
Hướng dẫn làm chủ Claude Code qua terminal: từ interactive mode đến headless automation, nắm vững các flag để điều khiển AI coding agent từ dòng lệnh.
Định nghĩa
CLI (Command Line Interface) của Claude Code là cách bạn "nói chuyện" trực tiếp với AI thông qua terminal — không cần click chuột hay mở browser. Khi gõ lệnh claude, bạn bước vào interactive mode: một vòng lặp hội thoại liên tục nơi AI đọc file, chạy lệnh bash, và sửa code ngay trên máy của bạn. Các flag (cờ lệnh) như -p, --resume, hay --worktree là công tắc điều khiển hành vi của AI từ trước khi câu chuyện bắt đầu, biến Claude từ trợ lý chat thành công cụ tự động hóa pipeline.
Giải thích chi tiết
Interactive Mode: Vòng lặp agent liên tục
Đây là chế độ mặc định khi chạy claude không thêm tham số. Bạn đang khởi động một agent loop: AI nhận context (câu hỏi của bạn + lịch sử chat + nội dung file bạn đang làm việc), suy nghĩ, quyết định dùng tool nào (đọc file, chạy npm test, sửa code), thực thi, rồi trả lời. Mỗi lượt tương tác cập nhật context window (200k tokens cho Claude 3.5 Sonnet). Trong mode này, bạn có thể dùng slash commands như /plan để lập kế hoạch, /cost để xem tiêu tốn token, hay /memory để chỉnh sửa file CLAUDE.md.
Print Mode (-p): Claude như một Unix tool
Flag -p (hay --print) biến Claude thành stateless filter — đọc từ stdin, xử lý một lần, in ra stdout, rồi thoát ngay. Không có hội thoại, không có "Bạn có muốn tôi chạy lệnh này không?". Ví dụ: git diff | claude -p "review for security issues" | tee review.md. Kết hợp với --permission-mode dontAsk, đây là cách bạn tích hợp Claude vào CI/CD pipeline hoặc shell script tự động.
Permission Modes: Phổ quyền từ thận trọng đến tự chủ
Flag --permission-mode quyết định AI được quyền làm gì mà không hỏi lại:
default: Hỏi trước mỗi tool use (an toàn nhất cho người mới, tránh xóa nhầm file)acceptEdits: Tự động áp dụng các chỉnh sửa file, nhưng vẫn hỏi trước khi chạy lệnh bash nguy hiểmplan: Chỉ phân tích và lập kế hoạch, không thực thi (dùng để review kiến trúc trước khi code)auto: Auto Mode — classifier tự đánh giá rủi ro và quyết định execute (cần thêm flag--enable-auto-modeđể unlock)bypassPermissions: Không hỏi gì cả, chạy tất cả (chỉ dùng cho automation trong môi trường tin cậy)
Session Management: Ghim context qua thời gian
Khác với ChatGPT, Claude Code CLI có persistent sessions — bạn có thể "đóng băng" công việc và quay lại sau:
--continue(-c): Quay lại session gần nhất ngay lập tức--resume <name>: Quay lại session có tên cụ thể--name <name>: Đặt tên cho session ngay từ đầu (vd:claude --name refactor-auth)--teleport: Kéo session đang chạy trên web (claude.ai/code) về local CLI — hữu ích khi bạn bắt đầu trên iPad rồi chuyển về laptop--remote-control: Cho phép điều khiển CLI local từ mobile app hoặc browser
Git Worktrees: Song song hóa mà không conflict
Flag --worktree tạo một context cô lập trên branch riêng biệt nhưng vẫn dùng chung repository gốc. Bạn có thể chạy claude --worktree hotfix-bug để sửa lỗi khẩn cấp trên branch A, trong khi terminal khác đang claude --worktree feature-stripe phát triển tính năng mới trên branch B. Mỗi worktree có context window riêng, AI không bị nhầm lẫn giữa hai dòng công việc.
Ví dụ thực tế
Quay lại công việc sau giờ nghỉ trưa
Bạn đang debug xử lý webhook thanh toán từ ZaloPay trong file zalopay_handler.js, đến giờ ăn trưa. Thay vì để AI quên mất ngữ cảnh:
# Trước khi đi ăn, đặt tên session
claude --name "debug-zalopay-timeout"
# Sau giờ nghỉ, quay lại ngay — AI vẫn nhớ bạn đang trace lỗi ở dòng 127
claude --resume "debug-zalopay-timeout"Phân tích log lỗi trong pipeline CI
Build trên GitHub Actions thất bại, bạn cần giải thích nhanh lỗi để fix:
# Pipe log vào Claude, nhận phân tích ngay lập tức
cat /var/log/deploy/error.log | claude -p "explain these errors in Vietnamese and suggest fixes" > fix-suggestions.txtKhông cần mở browser, không cần paste log vào chat — xử lý hoàn toàn trong terminal.
Song song hai tính năng với Worktrees
Bạn đang code tính năng affiliate Shopee trên branch feature/affiliate-system. Đột nhiên khách hàng báo lỗi thanh toán VietQR không hiển thị mã QR:
# Terminal 1: Tiếp tục làm feature (không bị gián đoạn)
claude --worktree feature-affiliate --continue
# Terminal 2: Tạo context mới cho hotfix
claude --worktree hotfix-vietqr --name "fix-qr-render"
# AI tự tạo worktree mới trên branch hotfix, sửa xong commitCả hai session chạy song song, không conflict, không cần stash/pop liên tục.
Ứng dụng
Sinh viên học code: Dùng interactive mode với --permission-mode default để AI hỏi trước mọi hành động, tránh xóa nhầm bài tập. Dùng --name để đặt tên session theo từng bài lab (vd: claude --name "lab-oop-java-week3"), giúp duy trì context qua nhiều buổi học.
Developer đi làm: Dùng --continue để duy trì context dự án suốt cả ngày làm việc. Khi cần review code nhanh mà không làm nhiễu session chính, dùng claude -p để phân tích diff hoặc log riêng lẻ.
DevOps và Automation: Kết hợp claude -p --permission-mode bypassPermissions trong GitHub Actions để tự động review PR, generate changelog từ commit messages, hoặc phân loại issues — biến Claude thành một step trong CI pipeline thay vì công cụ tương tác.
Freelancer đa nhiệm: Dùng --worktree để chạy nhiều client project song song trên cùng một repository (vd: fix bug giỏ hàng cho client bán hàng Shopee trên worktree A, refactor API cho client fintech trên worktree B), mỗi context hoàn toàn cách ly, không sợ "lẫn" yêu cầu giữa các dự án.
So sánh
| Đặc điểm | CLI (Terminal) | VS Code Extension | Web (claude.ai/code) | Desktop App |
|---|---|---|---|---|
| Cài đặt | npm install -g @anthropic-ai/claude-code | Extension marketplace | Không cần (browser) | Download app |
| Sức mạnh tối đa | Tất cả flags, headless mode, worktrees | Tích hợp editor trực quan, inline diff | Cơ bản, dễ truy cập | GUI thân thiện |
| Automation/CI | -p flag hoàn hảo cho pipeline | Không tự động hóa được | Không | Không |
| Git Worktrees | Native support (--worktree) | Cần chuyển đổi thủ công | Không hỗ trợ | Hạn chế |
| Context persistence | --resume, --teleport đầy đủ | Giới hạn theo IDE session | Có nhưng khó teleport về CLI | Giống CLI |
| Phù hợp khi | Power user, scripting, automation | Code hàng ngày, debug trực quan | Máy công ty không cho cài phần mềm | Người mới, thích GUI |
Kết luận: CLI là "đích đến" cho người dùng nghiêm túc với Claude Code, cung cấp toàn quyền kiểm soát và khả năng tự động hóa. Tuy nhiên, nếu bạn mới bắt đầu, hãy dùng CLI ở chế độ default permission để làm quen, sau đó migrate lên các flag nâng cao khi đã hiểu rõ agent loop.
Bài viết liên quan
Cùng cụm "platforms":
- Claude Code trong VS Code: Cài đặt và sử dụng — Giao diện quen thuộc cho developer dùng VS Code hàng ngày
- Claude Code trong JetBrains: IntelliJ, WebStorm, PyCharm — Tích hợp với hệ sinh thái JetBrains
- Claude Desktop App: Tính năng và cách dùng — Lựa chọn thân thiện với người dùng GUI
- Code trên điện thoại với Claude Code iOS/Android — Khi bạn cần code ở quán cà phê chỉ với điện thoại
- Claude Code trên web: claude.ai/code — Không cần cài đặt, mở browser là chạy
Đọc tiếp (hướng tới Level 1 — Sử dụng thực chiến):
- Workflow hàng ngày: Slash commands, git, debug, refactor — Sau khi nắm vững CLI, học cách dùng hàng ngày với
/plan,/commit,/loopvà các kỹ thuật memory management
6 Chế độ Permission trong Claude Code: default, auto, plan... Dùng sao cho an toàn?
Hiểu 6 cấp độ kiểm soát Claude Code từ thận trọng đến tự động. Chọn đúng permission mode để vừa an toàn vừa tối ưu workflow với AI coding agent.
Claude Code Extension VS Code: Cài đặt và Workflow Tối Ưu
Cài Claude Code lên VS Code để code bằng AI trong IDE quen thuộc. Hướng dẫn cài đặt 1 click, so sánh với CLI và workflow thực chiến cho developer Việt Nam.