Claude Code 新手配置指南:讓它少問、多做
Claude Code 裝完就能用,但預設配置偏保守——每個動作都來問你一遍。模型已經足夠聰明,值得把韁繩放鬆一點。這頁按「你想要什麼」組織:每一項給確切的欄位名和寫法,全部在本機實測核對過。
速查:你想要什麼
| 你想要 | 改哪裡 | 怎麼改 |
|---|---|---|
| 信任的命令別再問 | permissions.allow | settings.json 加白名單 |
| 改檔案不用逐個確認 | acceptEdits 模式 | 會話內 Shift+Tab |
| 完全不問(隔離環境) | bypassPermissions | 風險邊界見下文 |
| 它記住我的規矩 | CLAUDE.md | 全域性 + 專案兩層 |
| 固定用某個模型 | model 設定 | /model 或 settings |
| 接著昨天的會話幹 | 會話恢復 | claude -c |
| 指令碼里呼叫它 | 非互動模式 | claude -p |
第一件事:讓它少問
「別問東問西,直接做」是配置 Claude Code 的第一訴求。正規做法有三層,按放權程度遞增——推薦從第一層開始,大多數人到第二層就夠了。
第 1 層 · 白名單:信任的命令不再詢問#
- 做法
-
在 settings.json 的
permissions.allow裡列出你信任的操作,命中的直接執行、不彈確認:~/.claude/settings.json{ "permissions": { "allow": [ "Bash(npm run *)", "Bash(git status)", "Bash(git diff *)", "Read(*)" ] } }Bash(npm run *)的*是字首通配:npm run build、npm run test -- --watch都命中。只放你確認無害的字首——比如放行git diff *而不是整個git *(後者連git push --force一起放了)。 - 為什麼先用它
- 精確、可審計、可回收。你放行的每一條都寫在檔案裡,哪天不放心刪掉那行就收回來了。
第 2 層 · acceptEdits:檔案編輯自動接受#
- 做法
-
會話內按 Shift+Tab 迴圈切換許可權模式,切到 acceptEdits——檔案的新建和修改不再逐個確認,其餘操作(如 Bash)仍走正常詢問。想長期生效就寫進 settings:
.claude/settings.json{ "permissions": { "defaultMode": "acceptEdits" } } - 適合誰
- 程式碼全在 git 裡的人。改錯了
git diff一眼可見、隨時可回滾——版本控制就是你的安全網。另有 plan 模式反向收緊:只讀分析、先出計劃不動手,適合讓它先把方案想清楚。
第 3 層 · bypassPermissions:完全不問#
- 做法
- 啟動時
claude --dangerously-skip-permissions,或 settings 裡"defaultMode": "bypassPermissions"。所有許可權檢查跳過,任何命令直接執行。 - 風險邊界
-
這個模式的名字裡帶著 dangerously,是認真的。它對刪檔案、改系統、髮網路請求一視同仁地放行。官方定位是給隔離環境用的:Docker 容器、專用虛擬機器、CI 沙箱——壞了就重建的環境。在存著你真實資料的主力機器上裸跑,等於把 shell 的鑰匙整串交出去。想在團隊裡禁用它,settings 裡有
disableBypassPermissionsMode開關。
讓它記住你的規矩:CLAUDE.md
少問的另一半是少教——每次會話都重複交代口徑,比確認彈窗更煩。CLAUDE.md 是每次會話自動讀取的指示檔案,兩層:
| 位置 | 生效範圍 | 放什麼 |
|---|---|---|
~/.claude/CLAUDE.md | 你的所有專案 | 語言偏好、協作風格(如「結論先行、別鋪墊」) |
專案根 CLAUDE.md | 當前倉庫(可入 git,全隊共享) | 構建/測試命令、程式碼規範、目錄禁區 |
寫法上最重要的一條:寫成簡短的規則列表,不要寫成小說。它每次會話都占上下文,越長噪音越多。三類內容回報最高:固定口徑(「註釋用中文」)、常用命令(「測試跑 npm test,別用 yarn」)、禁區(「migrations/ 目錄只讀」)。
固定模型
| 方式 | 寫法 | 適合 |
|---|---|---|
| 會話內切換 | /model 命令,從列表選 | 臨時換著用 |
| 固定預設 | settings.json 加 "model": "..." | 長期偏好 |
| 環境變數 | ANTHROPIC_MODEL(優先順序高於 settings) | 指令碼/CI 裡臨時覆蓋 |
| 單次會話 | claude --model <名稱> | 一次性指定 |
模型名手輸容易錯版本號——在 /model 列表裡選,或從 模型列表頁照抄準確 id。
會話:恢復、壓縮、清空
| 命令 | 作用 |
|---|---|
claude -c | 直接繼續最近一次會話(最常用,別每次從零開始) |
claude --resume / 會話內 /resume | 從歷史會話列表挑一個恢復 |
/compact | 把長會話的歷史壓縮掉,騰出上下文繼續幹(接近上限時也會自動觸發) |
/clear | 徹底清空,開新會話——換任務時用它比繼續舊會話更省更準 |
| Esc | 打斷當前生成——它跑偏了不用等它說完 |
指令碼里呼叫:非互動模式
# 執行一條指令,輸出結果後退出
claude -p "總結這個目錄裡的 TODO"
# 結構化輸出,給下游程式消費
claude -p "..." --output-format json
--output-format 支援 text / json / stream-json(只在 -p 模式下生效)。CI、定時任務、批處理管道都走這個。
settings.json 有三個,改哪個?
三層從高到低覆蓋,許可權規則多層疊加合併,單值欄位(如 model)以高層為準:
| 優先順序 | 檔案 | 定位 |
|---|---|---|
| 高 | .claude/settings.local.json | 本機個人特例(不入 git) |
| 中 | .claude/settings.json | 專案團隊共享(入 git) |
| 低 | ~/.claude/settings.json | 你的全域性預設 |
經驗法則:個人偏好放使用者級,團隊規範放專案級,「只有我這臺機器需要」的放 local。
進階三件套(一句話版)
- MCP 伺服器:
claude mcp add -s user|project|local ...接外部工具(資料庫、瀏覽器、內部系統),-s決定配置存哪層。 - Hooks:settings.json 的
"hooks"塊,在工具呼叫前後掛自動化(如 PostToolUse 裡跑 lint)——「每次改完檔案自動格式化」這類需求歸它。 - 狀態列:settings.json 的
statusLine可自定義底部狀態列顯示的內容。
claude --help 與官方文件核實;配置項隨版本演進,發現與你的版本不符時以 claude --help 實際輸出為準。本頁持續更新。
相關
- Claude Code 接入 9Coding——兩個環境變數,先跑通再調優
- 報錯排查手冊——401 / 429 / 529 按錯誤碼對號入座
- 用量與餘額怎麼查——控制台與 billing API