TROISINH
Nền tảngGiao diện & Nền tảng

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.

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ểm
  • plan: 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.txt

Khô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 commit

Cả 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ểmCLI (Terminal)VS Code ExtensionWeb (claude.ai/code)Desktop App
Cài đặtnpm install -g @anthropic-ai/claude-codeExtension marketplaceKhông cần (browser)Download app
Sức mạnh tối đaTất cả flags, headless mode, worktreesTích hợp editor trực quan, inline diffCơ bản, dễ truy cậpGUI thân thiện
Automation/CI-p flag hoàn hảo cho pipelineKhông tự động hóa đượcKhôngKhông
Git WorktreesNative support (--worktree)Cần chuyển đổi thủ côngKhông hỗ trợHạn chế
Context persistence--resume, --teleport đầy đủGiới hạn theo IDE sessionCó nhưng khó teleport về CLIGiống CLI
Phù hợp khiPower user, scripting, automationCode hàng ngày, debug trực quanMáy công ty không cho cài phần mềmNgườ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":

Đọc tiếp (hướng tới Level 1 — Sử dụng thực chiến):

On this page