Setup · 配置調優 · 持續更新

Claude Code 新手配置指南:讓它少問、多做

Claude Code 裝完就能用,但預設配置偏保守——每個動作都來問你一遍。模型已經足夠聰明,值得把韁繩放鬆一點。這頁按「你想要什麼」組織:每一項給確切的欄位名和寫法,全部在本機實測核對過。

速查:你想要什麼

你想要改哪裡怎麼改
信任的命令別再問permissions.allowsettings.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 buildnpm 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打斷當前生成——它跑偏了不用等它說完

指令碼里呼叫:非互動模式

terminal
# 執行一條指令,輸出結果後退出
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 可自定義底部狀態列顯示的內容。
本頁核實口徑:全部欄位與 flag 於 2026-08-28 對照本機 claude --help 與官方文件核實;配置項隨版本演進,發現與你的版本不符時以 claude --help 實際輸出為準。本頁持續更新。

相關