Claude Code Plan Mode: Complete Guide (2026)

Plan Mode là chế độ chỉ đọc của Claude Code là gì, Claude có thể đọc file, chạy lệnh shell để khám phá, và viết kế hoạch, nhưng không thể chỉnh sửa hay tạo file nào. Kích hoạt bằng --permission-mode plan, nhấn Shift+Tab hai lần, hoặc gõ /plan (từ v2.1.0). Theo tài liệu chính thức của Anthropic, plan mode phù hợp nhất khi tác vụ cần thay đổi 3 file trở lên hoặc bạn chưa quen với codebase.
Bạn đã bao giờ để Claude Code chỉnh sửa một loạt file, rồi nhìn vào git diff mà không hiểu nổi nó vừa làm gì chưa? Mình đã từng như vậy. Vấn đề không phải Claude làm sai, mà là mình chưa cho nó cơ hội để lập kế hoạch trước. Đó chính xác là lý do plan mode tồn tại.
Bài này mình sẽ giải thích plan mode từ góc độ thực tế: nó hoạt động ra sao, khi nào nên bật, và workflow 4 bước mình đang dùng hàng ngày trong các dự án DevOps.




Plan Mode Là Gì Và Tại Sao Quan Trọng?
Plan mode là chế độ chỉ đọc hoàn toàn của Claude Code. Theo tài liệu chính thức Anthropic (2025), khi plan mode bật, Claude có thể đọc file, chạy lệnh shell để khám phá codebase, và dùng công cụ AskUserQuestion để hỏi bạn, nhưng tuyệt đối không thể tạo, sửa, hay xóa bất kỳ file nào.
Điểm quan trọng nhất: plan mode không phải “Claude chậm hơn” mà là “Claude an toàn hơn.” Khi bật chế độ này, thanh trạng thái ở cuối terminal hiển thị rõ plan mode on. Bạn biết chắc Claude đang khám phá, không phải đang âm thầm sửa code của bạn.
Tại sao điều này quan trọng? Thực tế là phần lớn lỗi khi dùng AI coding assistant xảy ra vì thiếu bước lập kế hoạch. Claude hiểu yêu cầu theo một cách, bạn hiểu theo cách khác, và chỉ đến khi nhìn vào diff bạn mới thấy sự khác biệt. Plan mode tạo ra một checkpoint bắt buộc để hai bên đồng thuận trước khi bất cứ thứ gì bị thay đổi.

5 Permission Modes Khác Nhau Thế Nào?
Claude Code có 5 permission modes theo tài liệu chính thức (2025). Mỗi mode được thiết kế cho một ngữ cảnh cụ thể, từ khám phá an toàn đến chạy tự động trong CI pipeline. Hiểu rõ sự khác biệt giúp bạn chọn đúng mode cho từng tác vụ.
Điểm dễ nhầm nhất: default và plan đều chỉ đọc, nhưng không giống nhau. Mode default sẽ hỏi bạn trước khi sửa file, còn plan từ chối mọi thao tác ghi dù bạn có đồng ý. Đây là sự bảo vệ cứng, không phải hỏi-và-cho-phép.
Với tiết kiệm token, mode plan cũng có lợi thế rõ: Claude không phải thực thi lệnh ghi tốn kém, chỉ tập trung vào đọc và phân tích. Trong một session khám phá codebase lớn, điều này tiết kiệm đáng kể context window.
Kích Hoạt Plan Mode Bằng Cách Nào?
Có 4 cách để bật plan mode, mỗi cách phù hợp một ngữ cảnh khác nhau. Theo tài liệu common-workflows của Anthropic (2025), lệnh /plan được thêm vào từ phiên bản v2.1.0, còn Shift+Tab là cách nhanh nhất khi đang ở giữa một session.
Cách 1: Khởi động session với plan mode
claude --permission-mode plan
Dùng cách này khi bạn muốn bắt đầu một session hoàn toàn trong plan mode. Claude sẽ không có khả năng sửa file suốt cả session, ngay cả khi bạn yêu cầu. Đây là lựa chọn tốt khi lần đầu tiếp cận một repo mới.
Cách 2: Shift+Tab để chuyển mode
Khi đang ở giữa session, nhấn Shift+Tab hai lần để cycle qua các mode theo thứ tự: default – acceptEdits – plan. Đây là cách mình dùng thường xuyên nhất, bắt đầu ở default, khi gặp tác vụ phức tạp thì chuyển sang plan, xong thì chuyển ngược lại.
Cách 3: Slash command /plan
/plan
Gõ /plan ngay trong chat để chuyển mode tức thì. Tính năng này có từ v2.1.0. Nếu bạn dùng nhiều slash commands thì đây là cách tự nhiên nhất để tích hợp vào workflow hiện tại.
Cách 4: Đặt plan mode làm mặc định
// settings.json
{
"permissions": {
"defaultMode": "plan"
}
}
Nếu codebase của bạn đặc biệt nhạy cảm (production config, hệ thống tài chính, infra code), đặt defaultMode: "plan" trong settings.json. Mỗi session mới sẽ tự động bắt đầu ở plan mode. Bạn phải chủ động chuyển sang mode khác nếu muốn sửa file.
Cách 5: Chỉnh sửa plan với Ctrl+G
Khi Claude đã viết xong kế hoạch, nhấn Ctrl+G để mở plan đó trong text editor của bạn. Đây là tính năng hay nhất mình thấy: bạn không cần phải mô tả thay đổi bằng lời, chỉ cần sửa trực tiếp vào plan. Claude sẽ đọc phiên bản đã chỉnh sửa và tiếp tục từ đó.
Khi Nào Nên Dùng Và Khi Nào Nên Bỏ Qua?
Câu hỏi thực tế nhất: plan mode có overhead, vậy khi nào nó thực sự đáng dùng? Theo hướng dẫn common-workflows của Anthropic (2025), ngưỡng đơn giản nhất là “quy tắc 3 file”: nếu tác vụ cần chạm vào 3 file trở lên, dùng plan mode.
Mình dùng thêm một quy tắc nữa mà mình gọi là “one-sentence rule”: nếu bạn không thể mô tả tác vụ trong 1 câu đơn giản, đó là dấu hiệu bạn cần plan mode. Ví dụ, “sửa typo trong README.md” rõ ràng không cần plan. Nhưng “thêm authentication vào API, cập nhật middleware, viết tests, và update docs” thì chắc chắn cần.
Nên dùng plan mode khi
Bỏ qua plan mode khi
- Sửa lỗi trong 1 file duy nhất (typo, rename variable)
- Yêu cầu rõ ràng, cách implement hiển nhiên
- Code quen thuộc, thay đổi một dòng
- Chỉ cần Claude giải thích, không cần thay đổi gì

Workflow 4 Bước Hoạt Động Thế Nào?
Anthropic mô tả workflow chuẩn trong tài liệu common-workflows (2025) gồm 4 giai đoạn rõ ràng. Mình đã áp dụng workflow này trong hơn 3 tháng và nhận thấy nó giảm đáng kể số lần phải revert commit do Claude làm sai hướng.
Bước 1: Explore (Plan Mode bật)
Claude đọc file, chạy lệnh khám phá, và đặt câu hỏi làm rõ. Đây là giai đoạn Claude xây dựng mental model về codebase. Đừng vội vàng ở bước này. Nếu Claude hỏi gì, hãy trả lời chi tiết. Thông tin bạn cung cấp ở đây sẽ ảnh hưởng trực tiếp chất lượng kế hoạch.
# Khởi động explore session
claude --permission-mode plan
# Trong session, cung cấp context cụ thể
> Mình cần thêm rate limiting vào API. @src/routes/ @src/middleware/
Bước 2: Plan (Plan Mode bật)
Claude viết kế hoạch chi tiết: file nào thay đổi, thay đổi gì, thứ tự thực hiện. Bạn đọc và review kế hoạch này. Nếu cần chỉnh, nhấn Ctrl+G để mở trong editor và sửa trực tiếp. Đây là điểm checkpoint quan trọng nhất trong toàn bộ workflow.
Mình thường dùng Alt+T (extended thinking) trong bước này để Claude suy nghĩ sâu hơn về các edge case. Kết hợp plan mode với memory và context tốt ở bước này tạo ra kế hoạch chất lượng cao hơn nhiều.
Bước 3: Implement (Chuyển sang acceptEdits hoặc auto)
# Nhấn Shift+Tab để chuyển từ plan sang acceptEdits
# Hoặc bắt đầu session mới với mode phù hợp
claude --permission-mode acceptEdits
> Thực hiện kế hoạch đã thống nhất.
Khi chuyển sang implement, đừng thay đổi scope. Nếu trong quá trình implement Claude phát hiện vấn đề mới, dừng lại, quay về plan mode để cập nhật kế hoạch, rồi mới tiếp tục. Không nên để Claude “tự quyết định” mở rộng scope trong lúc đang thực thi.
Bước 4: Commit (Mode bình thường)
git diff # Kiểm tra thay đổi
git add -p # Review từng hunk
git commit -m "feat: add rate limiting to API routes"
Commit ngay sau khi implement xong, trước khi bắt đầu tác vụ tiếp theo. Đây là nguyên tắc mình vi phạm nhiều nhất và luôn hối hận. Một commit sạch cho mỗi kế hoạch giúp git log dễ hiểu và rollback dễ hơn nhiều.
Best Practices Và Mẹo Nào Hiệu Quả Nhất?
Sau nhiều tháng dùng plan mode trong các dự án DevOps thực tế tại ongboit.com, mình đúc kết được một số mẹo giúp workflow hiệu quả hơn đáng kể. Phần lớn những điểm này không có trong tài liệu chính thức nhưng mình học được qua trial and error.
1. Giới hạn scope khoảng 30 phút công việc
Plan mode hoạt động tốt nhất khi kế hoạch có phạm vi vừa phải. Nếu plan của Claude dài hơn 30 phút implement, hãy chia nhỏ thành nhiều plan riêng. Kế hoạch quá lớn có xu hướng bị drift khi implement, và bạn mất đi lợi ích của checkpoint.
2. Dùng @file để giới hạn context
> Mình muốn refactor authentication. @src/auth/middleware.js @src/auth/utils.js @src/routes/api.js
Thay vì để Claude tự khám phá toàn bộ repo, chỉ định file liên quan bằng @filename. Claude sẽ tập trung vào đúng phần cần xem, tiết kiệm token và cho kế hoạch chính xác hơn.
3. Document conventions trong CLAUDE.md
Nếu team bạn có conventions riêng (naming pattern, error handling style, test structure), ghi vào CLAUDE.md. Khi plan mode khám phá codebase, Claude sẽ đọc CLAUDE.md trước, và kế hoạch tạo ra sẽ tự nhiên theo đúng conventions của team.
4. Lưu plan với plansDirectory setting
// settings.json
{
"plansDirectory": "./.claude/plans"
}
Khi có plansDirectory, Claude lưu kế hoạch vào file thay vì chỉ hiển thị trong chat. Bạn có thể commit file plan này vào repo, dùng lại cho lần sau, hoặc share với teammate để review trước khi implement.
5. Kết hợp extended thinking với plan mode
Nhấn Alt+T trước khi yêu cầu Claude viết kế hoạch. Extended thinking giúp Claude suy nghĩ kỹ hơn về trade-off và edge case. Mình thấy kế hoạch với extended thinking thường phát hiện được 1-2 vấn đề mà plan bình thường bỏ sót.
6. Sửa plan thay vì mô tả bằng lời
Đây là mẹo quan trọng nhất. Khi Claude viết plan và bạn muốn thay đổi, đừng gõ “thay vì làm X, hãy làm Y”. Nhấn Ctrl+G, sửa trực tiếp trong editor, save, rồi để Claude đọc lại. Cách này chính xác hơn nhiều, đặc biệt với thay đổi có nhiều bước.
Task States Và Persistent Tracking
Claude Code có hệ thống task tracking nội bộ qua TodoWrite tool. Mỗi task có 3 states: pending (chưa bắt đầu), in_progress (đang làm), completed (xong). Bạn thấy thanh task list ở sidebar khi Claude đang làm việc.
Tại sao quan trọng? Với task phức tạp nhiều bước, task tracking giúp Claude không bỏ sót bước nào. Và nếu context bị compact giữa chừng, task list vẫn được giữ lại, Claude biết tiếp tục từ đâu.
Câu Hỏi Thường Gặp
Plan mode có tốn thêm token so với mode thường không?
Bản thân plan mode không tốn thêm token so với default. Tuy nhiên, vì Claude đọc nhiều file để khám phá codebase, context window thường lớn hơn. Đổi lại, bạn tránh được những lần implement sai phải làm lại, vốn tốn token hơn nhiều. Trong thực tế, mình thấy tổng chi phí per-task thường thấp hơn khi dùng plan mode cho tác vụ phức tạp.
Tại sao Claude vẫn từ chối sửa file dù mình nói “ok hãy sửa đi”?
Đây là behavior đúng. Plan mode là hard restriction, không phải soft prompt. Claude không thể override restriction này dù bạn có yêu cầu trực tiếp hay nói “mình cho phép”. Để sửa file, bạn phải chủ động chuyển sang mode khác bằng Shift+Tab, /plan (toggle), hoặc khởi động session mới với mode khác.
Có thể dùng plan mode trong Claude.ai web không?
Plan mode là tính năng của Claude Code CLI, không có trên Claude.ai web hay API thông thường. Nếu bạn chưa cài Claude Code, xem hướng dẫn chi tiết trong bài Claude Code là gì. Plan mode được thiết kế riêng cho môi trường có file system access.
Shift+Tab không hoạt động trong terminal của mình thì làm sao?
Một số terminal emulator (đặc biệt trên macOS với iTerm2 cấu hình đặc biệt) có thể map Shift+Tab sang ký tự khác. Thử dùng /plan slash command thay thế, hoặc khởi động session mới với --permission-mode plan. Cũng kiểm tra xem terminal có bắt Shift+Tab trước khi chuyển cho Claude Code không.
Plan mode có hoạt động với MCP servers không?
Plan mode kiểm soát quyền đọc-ghi file local. Với MCP servers, quyền phụ thuộc vào cấu hình của từng server. Claude vẫn có thể gọi MCP tools trong plan mode nếu tools đó chỉ đọc dữ liệu. Tools có side effect (gửi email, tạo record trong database) cần cấu hình riêng ở phía MCP server.
Nên lưu plan vào file hay chỉ dùng trong chat?
Với tác vụ lớn hoặc tác vụ team cần review, hãy lưu plan bằng plansDirectory setting và commit vào repo. Với tác vụ nhỏ chỉ mình làm, dùng trong chat là đủ. Mình thường lưu file khi plan có hơn 5 bước hoặc cần người khác approve trước khi implement.
Plan mode và /clear command có liên quan gì không?
Không liên quan trực tiếp. /clear xóa conversation history để giải phóng context window. Plan mode kiểm soát quyền thao tác file. Bạn có thể dùng /clear sau khi implement xong, trước khi bắt đầu tác vụ mới. Xem thêm cách kết hợp slash commands để tối ưu workflow.
Kết Luận
Plan mode là một trong những tính năng ít được nhắc đến nhưng có ảnh hưởng lớn nhất đến chất lượng output của Claude Code. Không phải vì nó phức tạp, mà vì nó buộc cả bạn và Claude phải làm rõ kế hoạch trước khi hành động.
Mình tóm gọn lại những điểm cốt lõi: Plan mode là chế độ chỉ đọc cứng, không thể override. Dùng khi tác vụ cần 3 file trở lên hoặc bạn không thể mô tả nó trong 1 câu. Workflow 4 bước (Explore – Plan – Implement – Commit) là backbone cho bất kỳ tác vụ phức tạp nào. Và Ctrl+G để sửa plan trực tiếp là thói quen đáng xây dựng ngay.
Nếu bạn muốn đào sâu hơn về cách quản lý context để plan mode hoạt động hiệu quả, bài về memory và context là bước tiếp theo tự nhiên. Kết hợp plan mode với Claude Code skills để biến planning output thành workflow tự động. Còn nếu bạn mới bắt đầu với Claude Code và chưa rõ các khái niệm cơ bản, bài Claude Code là gì sẽ cho bạn nền tảng vững hơn để áp dụng plan mode hiệu quả. Tham khảo roadmap đầy đủ để chọn learning path phù hợp.
