本文根據 Claude Code 官方文檔《Choose a permission mode》中的 plan mode 一節和《Best practices for Claude Code》整理,核對日期 2026-10-07。
適用於誰
- 怕 Claude Code 一上來就改一大堆文件、想先看方案的人;
- 搜「claude code plan mode 怎麼用」「plan mode 是什麼」「計劃模式」的人;
- 想知道 plan 模式和 auto 模式該怎麼配合的人。
結論先說
- plan 模式 = 只研究、不改源碼:Claude 會讀文件、運行探索性的命令、寫出實施方案,但在你批准方案之前不會動你的代碼。
- 進入方式三種:按
Shift+Tab直到狀態欄顯示⏸ plan mode on;在單條消息前加/plan;啟動時claude --permission-mode plan。 - 方案寫好後有三個選擇:批准並用 auto 模式執行、批准但逐個確認改動、繼續修改方案。按
Ctrl+G可以在編輯器裏直接改方案。 - 官方的推薦流程是「探索 → 計劃 → 實現 → 提交」,但也提醒:一句話能說清的小改動(改錯別字、加一行日誌、改變量名)直接做,不必走 plan。
- 想規劃時用更強的模型、執行時用更省的模型,可以用
opusplan。
步驟
1. 進入 plan 模式
會話中:按 Shift+Tab 循環切換,直到輸入框下方顯示 ⏸ plan mode on。(從 auto 出發的順序是 manual → accept edits → plan。)
只對這一條消息:
text
/plan 修復 session 過期後登入失敗的問題
啟動時:
bash
claude --permission-mode plan
VS Code:點輸入框底部的模式標識選 Plan,或者輸入 /plan。VS Code 會把方案作為完整的 Markdown 文檔打開,你可以在裏面寫行內批註再反饋給 Claude。
2. 讓它探索並寫方案
官方示例的兩步提問(翻譯改寫):
text
閱讀 /src/auth,搞清楚我們是怎麼處理 session 和登入的;
再看看密鑰類的環境變量是怎麼管理的。
text
我想加上 Google OAuth 登入。需要改哪些文件?session 的流程是怎樣的?
請寫一份實施方案。
plan 模式下,Claude 運行命令的規則:
- auto 模式可用、且
useAutoModeDuringPlan開着(預設開)時,探索性的命令由分類器審核,通過就執行,不用你逐個點; - auto 模式不可用時,除內置只讀命令外的命令都會詢問你。
它在 plan 模式下調研時,通常會把大量讀代碼的工作交給內置的 Plan 子代理,這些輸出留在子代理自己的上下文裏,不會塞滿主對話。
3. 審閱和修改方案
方案寫好後 Claude 會問你怎麼繼續:
| 選項 | 效果 |
|---|---|
| Yes, and use auto mode | 批准,切到 auto 模式開始執行(auto 不可用時顯示為「Yes, auto-accept edits」) |
| Yes, manually approve edits | 批准,但每一處改動都要你確認 |
| No, keep planning | 留在 plan 模式,告訴 Claude 要改方案的哪裏 |
- 按
Ctrl+G在預設文本編輯器裏直接編輯方案,改完再讓 Claude 執行; - 不想批准、只想退出 plan 模式:再按
Shift+Tab; - 批准後會話會自動根據方案起一個標題(如果你還沒命名);
- 開啟設定
showClearContextOnPlanAccept後,會多一個「批准並清空規劃階段上下文」的選項,適合規劃聊得很長的情況。
批准方案後 plan 模式就結束了。想再規劃一次,按 Shift+Tab 切回,或在下一條消息前加 /plan。
4. 按方案實現並驗證
官方示例:
text
按你的方案實現 OAuth 流程。給回調處理函數寫測試,運行測試套件並修復失敗的用例。
text
用清楚的提交說明提交,並開一個 PR。
一個好習慣:讓 Claude 在實現時對照方案,並給它一個能自己運行的檢查(測試、構建、截圖對比),它就能自己發現問題、自己修。
5. 把 plan 設為預設(可選)
想讓某個項目每次都從 plan 模式開始,在項目的 .claude/settings.json 裏寫:
json
{
"permissions": {
"defaultMode": "plan"
}
}
注意 VS Code 擴展不讀項目設定裏的起始模式,需要在 VS Code 用戶設定裏把 claudeCode.initialPermissionMode 設成 plan。
用 opusplan:規劃用 Opus、執行用 Sonnet
text
/model opusplan
plan 模式下用 Opus 做複雜推理和架構決策,批准後自動切到 Sonnet 寫代碼。切換模型的更多用法詳見本站《Claude Code 切換模型:/model 命令、模型別名、effort 與 fast 模式》。
什麼時候用、什麼時候不用
適合用 plan 模式(官方說法):
- 你不確定該怎麼做;
- 改動會涉及多個文件;
- 你對要改的代碼不熟悉。
不必用:範圍明確的小改動。官方的判斷標準很直接——如果你能用一句話描述出這個 diff,就跳過計劃,直接讓 Claude 做。plan 模式有用,但也有額外開銷。
對於更大的功能,官方還推薦一個進階做法:先讓 Claude「採訪」你——用 AskUserQuestion 工具問清技術實現、交互、邊界情況和取捨,然後把完整需求寫進 SPEC.md,再開一個新會話照着 SPEC 去實現,新會話的上下文乾淨、專注於執行。
plan 模式和其他模式的關係
| 模式 | 會不會改代碼 |
|---|---|
| plan | 批准方案前不改源碼 |
| Manual | 會改,但每次都問你 |
| acceptEdits | 自動改文件,你事後用 git diff 複查 |
| auto | 自動執行,分類器在後台把關 |
plan 是「先想後做」的那一步,批准後通常接 auto 或 Manual 去執行。各模式的詳細區別和權限規則寫法,詳見本站《Claude Code 權限模式詳解:auto、手動、plan、bypass 與權限規則配置》。
常見問題
Q:plan 模式下 Claude 真的一個文件都不會改嗎?
批准方案前,源碼編輯會被攔下。唯一的例外是:在交互式終端裏以「bypass 權限可用」的方式啟動的會話,plan 模式的攔截不強制執行(Claude 仍被要求只規劃不編輯)。所以在普通使用中不用擔心;如果你用 --dangerously-skip-permissions 啟動,就不要指望 plan 模式替你攔截。
Q:plan 模式會消耗額度嗎?
會。讀文件、運行探索命令、寫方案都在消耗 token。但官方認為對複雜任務這是值得的:方向錯了再返工更費。
Q:方案寫得不滿意怎麼辦?
選「No, keep planning」並說明要改哪裏,或者 Ctrl+G 直接改。官方也提醒:同一個問題糾正了兩次以上還不對,說明上下文裏堆滿了失敗的嘗試,/clear 後用更清楚的提示重新開始效果往往更好。
Q:壓縮上下文後方案還在嗎?
在。官方說明 plan 模式寫好的方案會在壓縮後從磁盤重新注入。
參考資料
- Choose a permission mode · Analyze before you edit with plan mode(官方):https://code.claude.com/docs/en/permission-modes
- Best practices for Claude Code(官方):https://code.claude.com/docs/en/best-practices
- Common workflows(官方):https://code.claude.com/docs/en/common-workflows
- Use Claude Code in VS Code(官方):https://code.claude.com/docs/en/vs-code
- Model configuration · opusplan(官方):https://code.claude.com/docs/en/model-config
0 條評論
還沒有評論,來搶沙發~