12 - 設定檔與 CLI 旗標速查

11-非互動模式與腳本化 | 00-Index | 下一篇 → 13-實戰-套用在兩個repo


設定檔在哪、誰蓋誰

層級位置說明
Managed policy系統層(IT 部署)最高,個人無法覆蓋
User~/.claude/settings.json你所有專案
Project.claude/settings.json團隊共享,進版控
Local.claude/settings.local.json個人的專案設定,要 gitignore
CLI--settings <file-or-json>只影響這次執行,蓋掉同名 key

--setting-sources user,project,local 可以指定要載入哪幾層。

.claude/ 目錄整體結構見官方 .claude Directory


一份給你的起手設定

~/.claude/settings.json

{
  "permissions": {
    "defaultMode": "plan",
    "allow": [
      "Read",
      "Bash(git status)",
      "Bash(git diff *)",
      "Bash(git log *)"
    ],
    "deny": [
      "Bash(git push --force *)",
      "Bash(git push -f *)"
    ]
  },
  "autoMemoryEnabled": true,
  "model": "sonnet"
}

Obsidian-med-note/.claude/settings.json(進版控,團隊 = 你和所有 AI):

{
  "permissions": {
    "ask": [
      "Bash(git push *)"
    ],
    "deny": [
      "Edit(.quartzsite/**)",
      "Write(.quartzsite/**)"
    ]
  }
}

Obsidian-med-note/.claude/settings.local.json(gitignore):

{
  "claudeMdExcludes": []
}

💡 claudeMdExcludes 在 monorepo 或有多層 CLAUDE.md 時很有用——可以用 glob 跳過不相關的祖先 CLAUDE.md。你目前用不到,但知道有這個東西。


常用設定 key

Key說明
permissions.defaultMode預設權限模式。⚠️ auto.claude/settings.json.claude/settings.local.json 會被忽略(repo 不能自己給自己 auto mode),要設在 ~/.claude/settings.json
permissions.allow / ask / deny權限規則
permissions.additionalDirectories--add-dir 的目錄跨 session 保留
permissions.disableBypassPermissionsMode"disable" 擋掉 bypass 模式(managed settings)
permissions.disableAutoMode"disable" 擋掉 auto mode(managed settings)
model預設模型
fallbackModel主模型不可用時的 fallback 鏈
effortLevel預設思考力度
autoMemoryEnabledauto memory 開關
autoMemoryDirectoryauto memory 存放位置(絕對路徑或 ~/ 開頭)
claudeMd在 managed settings 裡直接放 CLAUDE.md 內容(只有 managed/policy 層有效)
claudeMdExcludes用 glob 排除特定 CLAUDE.md,各層陣列會合併
hooksHook 設定(見 09-Hooks自動化
sandbox.enabled沙箱隔離
env環境變數
agent這個 session 用哪個自訂 agent
teammateModeagent team 隊友的顯示方式
axScreenReader螢幕閱讀器友善輸出
showClearContextOnPlanAccept核准 plan 時多一個「順便清 context」選項
useAutoModeDuringPlanplan mode 期間用 classifier 審查指令(預設開)

完整清單見官方 Settings


CLI 旗標速查(挑常用的)

Session 控制

Flag說明
-p, --print非互動
-c, --continue接續目前目錄最近一次對話
-r, --resume [id|name]接續指定 session,或開選單
--fork-sessionresume 時開新 session ID 而非沿用
-n, --name "x"設 session 顯示名稱(可用名稱 resume)
--session-id <uuid>指定 session ID
--from-pr 123開跟某個 PR 關聯的 session 選單
--teleport把網頁 session 拉回本機終端
--cloud "task"在 claude.ai 開一個網頁 session

模型與思考

Flag說明
--model sonnet指定模型(alias 或完整 ID)
--fallback-model sonnet,haikufallback 鏈
--effort highlow/medium/high/xhigh/max/ultracode
--advisor opus開 advisor 工具(用更強模型輔助關鍵決策)

權限

Flag說明
--permission-mode plan起始權限模式
--allowedTools "Read,Bash(git diff *)"免詢問的工具
--disallowedTools "Edit"拒絕規則。裸工具名會把工具從 context 移除Bash(rm *) 這種有範圍的只擋相符呼叫
--tools "Bash,Edit,Read"限制可用的內建工具
--dangerously-skip-permissions= --permission-mode bypassPermissions ⚠️
--allow-dangerously-skip-permissions只是把 bypass 加進 Shift+Tab 循環,不會直接進去

Context 與設定

Flag說明
--add-dir ../apps ../lib加可存取的目錄(只給檔案存取,大部分 .claude/ 設定不會被探索,但 .claude/skills/ 是例外)
--settings ./s.json載入設定(可用 inline JSON)
--setting-sources user,project只載入指定來源
--mcp-config ./mcp.json載入 MCP
--strict-mcp-config只用 --mcp-config 的 MCP
--agents '{"reviewer":{...}}'動態定義 subagent
--plugin-dir ./my-plugin載入本機 plugin
--append-system-prompt "..."附加到預設 system prompt
--system-prompt "..."取代整個 system prompt
--bare極簡模式,跳過所有自動探索
--safe-mode停用所有客製(救援用)

輸出(print mode)

Flag說明
--output-format text|json|stream-json輸出格式
--json-schema '{...}'保證符合 schema 的結構化輸出
--include-partial-messages串流部分訊息
--verbose完整逐輪輸出
--max-turns 3限制輪數
--max-budget-usd 5.00花費上限

平行與 worktree

Flag說明
-w, --worktree [name]在隔離 git worktree 開 session
--tmux幫 worktree 開 tmux(需搭 --worktree
--bg, --background開成背景 agent,立刻返回
--exec 'pytest -x'跑一個 shell 指令當背景 job(搭 --bg

其他

Flag說明
--ide啟動時自動連 IDE
--chrome / --no-chromeChrome 整合
--remote-control [name], --rc開 Remote Control(可從 claude.ai / 手機控制)
--debug "api,mcp"debug 模式(可分類過濾)
--debug-file /tmp/x.logdebug log 寫檔
-v, --version版本

📌 claude --help 不會列出所有 flag——某個 flag 沒出現在 help 裡不代表不能用。以官方 CLI reference 為準。


CLI 子指令速查

claude update                      # 更新
claude install [version|stable|latest]
claude doctor                      # 唯讀診斷(不開 session)
claude auth login|logout|status
claude setup-token                 # CI 用的長效 token
claude mcp                         # MCP 設定
claude mcp login|logout <name>
claude plugin ...                  # plugin 管理(別名 claude plugins)
claude agents [--json] [--cwd path]  # agent view
claude attach <id>                 # 接上背景 session
claude logs <id>                   # 看背景 session 輸出
claude stop <id>                   # 停(別名 claude kill)
claude respawn <id> [--all]        # 重啟(對話保留)
claude rm <id>                     # 從清單移除
claude daemon status               # 背景 session supervisor 狀態
claude daemon stop --any [--keep-workers]
claude project purge [path] [--dry-run] [-y]   # 刪掉某專案的所有本機狀態
claude remote-control [--name "x"]
claude ultrareview [target] [--json]
claude auto-mode defaults [--label prefix]     # 印出 classifier 預設規則
claude auto-mode reset [-y]

⚠️ claude project purge 會刪掉 transcript、任務清單、debug log、檔案編輯歷史、prompt 歷史,以及 ~/.claude.json 裡該專案的條目。先用 --dry-run 看清楚。


環境變數(挑常用的)

變數用途
ANTHROPIC_API_KEY用 API key 而非訂閱登入 ⚠️ 設了會跳過登入流程
CLAUDE_CODE_DISABLE_AUTO_MEMORY=1關掉 auto memory
CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD=1--add-dir 的目錄也載入 CLAUDE.md
CLAUDE_CODE_NEW_INIT=1/init 用互動式多階段流程
CLAUDE_CODE_SAFE_MODE等同 --safe-mode
CLAUDE_CODE_SIMPLE等同 --bare
CLAUDE_CODE_PRINT_BG_WAIT_CEILING_MSprint mode 等背景 agent 的上限(預設 10 分鐘,0 = 不限)
CLAUDE_CODE_SKIP_PROMPT_HISTORY不存 session
CLAUDE_CONFIG_DIR換設定目錄位置
CLAUDE_AX_SCREEN_READER螢幕閱讀器模式

完整清單見官方 Environment variables


🔗 相關筆記


最後更新:2026-08-04