用好 CC,事半功倍!Claude Code 命令大全,黃金命令推薦、多模型設定、實戰指南、Hooks 和踩坑紀錄大全

前言

--

使用 Claude Code 已經有很長一段時間了,從 25 年初接觸 Cursor,再到後來的 Windsurf、再到 Claude Code、Codex,和 CC 也算是老朋友了。

真心想說,工具簡單使用真正會用之間差距特別大。只有把工具吃透、用得熟練精通,才能真正事半功倍。這段時間我從入門摸索到吃透全部命令,期間踩過不少坑,也沉澱了很多實操經驗。

今天整理分享一波 Claude Code 常用命令和工程配置,不管是新手還是老玩家,都值得認真讀一讀、收藏起來慢慢用,把這個工具真正用好、用精,做事真的真的真的能巨提效。

ps:這篇更像一份 Claude Code 實戰手冊,建議先收藏,後面配置專案、排查問題、實踐指南、踩坑、查命令時可以直接翻。

全文主要分四塊:

  1. 命令大全:CLI 命令、斜線命令、快捷鍵、多模型配置、CLAUDE.md、Hooks。
  2. 高頻黃金命令:精選我個人認為最實用的命令,重點講怎麼用。
  3. 踩坑紀錄:我踩過的坑,你不用再踩。
  4. 最佳實踐:把命令串成工程工作流,適合直接照著用。

另外,Claude Code 不建議一直「裸用」。命令、配置、Hooks 是基礎,後面真正拉開差距的是 Skills + MCP 生態。我之前還寫過一篇專門講 Skills 和 MCP 的實戰文章: 《別再裸用 Claude Code 了!32 個親測 Skills + 8 個 MCP,開發效率直接拉滿!》,這篇可以和本文配套看。

所有命令都經過 claude 終端驗證(我會為自己的每一篇文章負責),大部分都會配插圖,不存在編造或者臆想的情況。建議先按讚、收藏,後面用到時直接回來查;如果你有更好的命令組合,也歡迎留言區一起討論。廢話不多說,開幹!

本文基於 cc 2.1.131 (Claude Code) 編寫和演示。Claude Code 更新很快,如果你本地看到的命令和截圖略有差異,優先以你目前版本的 /helpclaude --help 和實際終端輸出為準。


先搞懂:Claude Code 到底能幹啥?

一句話:Claude Code 是 Anthropic 出的終端 AI 程式設計助手,不是程式碼補全外掛,而是任務驅動型代理——你說目標,它自己規劃步驟、讀程式碼、跑命令、改檔案。

能力維度具體表現程式碼生成即時生成、解釋、優化程式碼,支援 Python/JS/Java/Go 等命令執行直接跑 Shell 命令、操作 Git、執行測試檔案操作讀寫專案檔案、批次修改、目錄管理外部整合MCP 協議擴展,連接資料庫、瀏覽器、第三方工具自然語言說人話就行,不用記語法> 💡 實測感受:它不是幫你補全程式碼的,是幫你幹活的。你說「幫我重構這個模組」,它自己去看程式碼、規劃方案、動手改、跑測試,全程你只需要確認。


第一部分:命令大全

一、CLI 命令(終端直接執行)

1.1 安裝與更新

bash 体验AI代码助手 代码解读复制代码# npm 全域安裝(最常用)
npm install -g @anthropic-ai/claude-code

# 原生二進位安裝
claude install stable    # 安裝穩定版
claude install latest    # 安裝最新版
claude install 2.1.92    # 安裝指定版本

# 一鍵安裝(省心省力 推薦!):
curl -fsSL https://claude.ai/install.sh | bash

# 更新
claude update

# 查看版本
claude -v

由於我已經安裝了,這裡就不做安裝演示了,只給個更新演示: image.png

1.2 登入認證

bash 体验AI代码助手 代码解读复制代码# 登入(瀏覽器 OAuth,Pro/Max 使用者)
claude auth login

# 用 API Key 登入(Console 使用者)
claude auth login --console

# 企業 SSO 登入
claude auth login --sso

# 查看登入狀態
claude auth status           # JSON 格式
claude auth status --text    # 人類可讀格式

# 登出
claude auth logout

💡 注意:以上登入方式適合有 Claude 官方帳號的使用者,但是目前這情況。。你懂得。。。 so,大部分夥伴可能用的是國內其他模型,往下看 👇

1.2.1 第三方模型配置(這裡我以智譜為例)

方式一:環境變數配置
bash 体验AI代码助手 代码解读复制代码# 智譜 GLM
export CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC="1" 
export API_TIMEOUT_MS="3000000" 
export ANTHROPIC_AUTH_TOKEN="xxxxxxxxxxxxx" 
export ANTHROPIC_BASE_URL="https://open.bigmodel.cn/api/anthropic" 
export ANTHROPIC_DEFAULT_HAIKU_MODEL="glm-5.1" 
export ANTHROPIC_DEFAULT_SONNET_MODEL="glm-5.1" 
export ANTHROPIC_DEFAULT_OPUS_MODEL="glm-5.1"
方式二:設定檔(推薦)

編輯 ~/.claude/settings.json

json 体验AI代码助手 代码解读复制代码{
  "env": {
    "CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1",
    "API_TIMEOUT_MS": "3000000",
    "ANTHROPIC_AUTH_TOKEN": "xxxxxxxxxxxxx",
    "ANTHROPIC_BASE_URL": "https://open.bigmodel.cn/api/anthropic",
    "ANTHROPIC_DEFAULT_HAIKU_MODEL": "glm-5.1",
    "ANTHROPIC_DEFAULT_SONNET_MODEL": "glm-5.1",
    "ANTHROPIC_DEFAULT_OPUS_MODEL": "glm-5.1"
  }
}

其他國內模型配置,在其官網都有範例。這裡給幾個連結,直接跳過去就能看到接入 CC 的範例:

1.3 啟動方式

命令用途說明claude啟動互動式工作階段最基礎的啟動方式claude "幫我分析這個專案"帶初始提示啟動直接進入對話claude -p "解釋這個函式"非互動模式(print mode)執行完就退出,適合腳本claude -c繼續上次工作階段接著上次的對話繼續claude -r展開最近工作階段列表注意: -r 是 --resume 的短寫;claude --resume 和 claude -r 等效,都會打開可恢復工作階段列表。claude -r "auth-refactor"恢復指定工作階段按工作階段 ID 或名稱恢復claude -n "我的新功能"給工作階段命名當然你也可以在工作階段內使用 /rename xxx 這樣重新命名工作階段演示如下: image.pngimage.png

image.png

💡 實測感受claude -r 是我用得最多的命令,這個可以直接按回車選擇進入你想要恢復的上下文,很方便。

1.4 管道模式

bash 体验AI代码助手 代码解读复制代码# 分析檔案
cat xzll-im-server/im-business/pom.xml | claude -p "分析這個模組的依賴和潛在問題"

# 分析 git diff
git diff HEAD~3 | claude -p "總結這些改動"

# 分析日誌
cat error.log | claude -p "分析這個錯誤日誌,找出根因"

# 分析多個檔案
cat xzll-im-server/im-common/src/main/proto/*.proto | claude -p "找出所有 TODO 註解"

image.png

💡 實測感受:管道模式適用於那種一次性任務,我個人用得不算多。

1.5 其他 CLI 子命令

bash 体验AI代码助手 代码解读复制代码# MCP 配置
claude mcp add <name> -- <command>    # 新增 MCP 伺服器
claude mcp list                       # 列出已配置的 MCP
claude mcp remove <name>              # 移除 MCP 伺服器

# 外掛管理
claude plugin install <name>          # 安裝外掛
claude plugin list                    # 列出外掛

# 遠端控制(必須訂閱了正版 Claude Code!才支援這個功能)
claude remote-control --name "My Project"

# CI/CD 用的長期 Token
claude setup-token

# 非互動式超級程式碼審查(必須訂閱了正版 Claude Code!才支援這個功能)
claude ultrareview  --json

# 健康檢查
claude doctor

image.png


二、斜線命令大全(/ 開頭,互動模式內用)

這是 Claude Code 最核心的部分,55+ 個斜線命令,我按場景分類整理。

注意:下面基於 cc 2.1.131 整理。部分命令依賴版本、訂閱方案、平台能力、GitHub CLI、Claude Code on the web 或特定功能開關。如果你本地沒有某個命令,先用 /help 看目前環境實際支援情況。

2.1 會話管理(最高頻)

命令別名用途&說明/clear/reset, /new清空上下文,開始全新工作階段/compact [focus]-壓縮上下文釋放空間,可指定保留重點/continue/resume恢復歷史工作階段/rename [name]-重新命名目前工作階段/export [filename]-匯出工作階段為純文字/rewind/checkpoint, /undo回退到之前的對話/程式碼點,有以下三個可選模式: Restore conversation恢復工作階段 → 直接倒帶撤回,回到你發「給我分析整個 im 專案」之前的空白對話狀態,重新提問。Summarize from here從這裡開始總結 → 不回退,直接從目前位置,把後面所有對話幫你精簡概括一遍。 Never mind 算了、取消 → 不做任何回退,保持現在對話不變。)/branch [name]/fork在目前點建立對話分支/exit/quit退出 CLIimage.png

2.2 規劃與執行(效率翻倍)

命令用途說明/plan [description]進入計劃模式先分析再執行,省 token 省心(非常好用)/batch <instruction>大規模平行程式碼變更自動建立 worktree 並行執行(注意這個命令必須得在 git 倉庫下執行)/loop [interval] <prompt>定時循環執行閉環除錯,直到成功/plan 大任務、複雜任務一定記得先 plan。這屬於基操:先把方案想清楚,再動程式碼,後面會省很多回滾成本。 image.pngimage.png

/batch 這個命令特點是:快、暴力、適合大批量重複修改 由於我這沒這種場景所以不演示了。

/loop 這個適合那種難纏的 bug 或者定時程式碼 review 之類的,適合除錯 / 修復image.png

💡 實測感受/loop 是真正的神器!舉個例子:你讓 Claude 修一個 bug,它改完跑測試發現還有錯,再改再跑,直到全部通過。這就是閉環除錯,不用你手動反覆催它

💡 實測感受:大改動之前一定先 /plan!讓它分析完出個方案,你確認了再動手。省得它一頓亂改,你還得一個個回退

2.3 程式碼審查

命令用途/review [PR]本地審查 PR/ultrareview [PR]多 agent 深度程式碼審查(雲沙盒)/autofix-pr [prompt]自動修復 PR CI 失敗/simplify [focus]審查程式碼品質並優化/diff查看未提交的檔案變更/security-review分析目前分支安全漏洞> 注意:/ultrareview/autofix-pr 這類命令更依賴帳號方案、GitHub CLI、倉庫權限和遠端執行環境。建議在正文截圖裡展示你的實際可用狀態,讀者照著做時更不容易誤解。

2.4 模型與設定

命令用途/model [model]切換模型(sonnet/opus/haiku)/effort [level]設定推理深度(low/medium/high/xhigh/max)/fast [on|off]切換 fast mode(僅 Opus)/config打開設定介面(別名:/settings)/output-style [style]切換輸出風格,比如 default、explanatory、learning/statusline設定狀態列,顯示模型、目錄、分支等資訊/theme更改顏色主題/context視覺化目前上下文使用情況 (很有用)image.png

💡 實測感受/context 一定要學會用!它會用彩色方格展示上下文占用率。低於 70% 正常用,70%-85% 考慮 /compact,超過 85% 幻覺風險飆升,趕緊壓縮或新開工作階段

2.5 權限與安全

命令用途/permissions管理工具權限規則(別名:/allowed-tools)/sandbox切換沙盒模式/security-review安全漏洞分析/privacy-settings查看/更新隱私設定權限這裡不要只會一路 allow。更推薦按風險分層:

  • allow:確定安全的讀檔案、搜尋、測試命令,可以直接放行。
  • ask:刪除檔案、資料庫寫入、部署、改正式環境設定,每次都確認。
  • deny:金鑰、.env、正式憑證、危險刪除命令,直接禁止。

image.png

2.6 MCP 與外掛

命令用途/mcp管理 MCP 伺服器連接和 OAuth 認證/plugin管理外掛/reload-plugins重新載入所有啟用中的外掛image.png

2.7 Agent 與任務

命令用途/agents管理/建立/設定 agent/tasks列出/管理背景任務(別名:/bashes)agents 這個很有用 尤其是大型專案多任務分工明確時 建立幾個不同角色的 agents 會更加得心應手。 當然 claude 本身就內建了些,一般情況下也夠用了: 內建如下:

arduino 体验AI代码助手 代码解读复制代码Built-in (always available): → 【內建預設代理】無需建立,直接能用
claude-code-guide · haiku:程式碼規範指南助手 
Explore · haiku:專案探索分析助手 
general-purpose · inherit:通用萬能助手
Plan · inherit:規劃專用助手 
statusline-setup · sonnet:介面設定助手

我這裡演示建立個程式碼審查的 agents: image.pngimage.png

2.8 資訊與幫助

命令用途/help顯示幫助和所有可用命令/usage費用/限額/活動統計(別名:/cost, /stats)/status版本/模型/帳號/連接狀態/doctor診斷和驗證安裝/recap目前工作階段一行摘要(高頻使用)/insights生成工作階段分析報告/release-notes查看更新日誌這部分一般只是查看,不做過多演示: image.png

2.9 其他實用命令

這部分命令版本差異會更明顯,尤其是 /schedule/stickers/heapdump 這類偏平台能力或診斷能力的命令。如果你本地沒有,還是以 /help 輸出為準。

命令用途/init初始化專案 CLAUDE.md/memory編輯 CLAUDE.md 記憶檔案/add-dir [path]給目前工作階段新增額外工作目錄/terminal-setup設定終端快捷鍵,常用於 Shift+Enter 換行/vim開關 Vim 輸入模式/voice [hold|tap|off]切換語音輸入/schedule [description]建立定時任務(別名:/routines)/feedback [report]提交回饋(別名:/bug)/btw <question>旁路提問,不影響主對話上下文(很實用)/copy [N]複製最後 N 個回覆到剪貼簿/debug [description]啟用除錯日誌/hooks查看 hook 設定/keybindings打開/建立快捷鍵設定/heapdump寫 JS 堆快照診斷記憶體問題/stickers訂購貼紙(對,Claude 還能買貼紙 😂)> 💡 實測感受/btw 被嚴重低估了!有時候你正在改程式碼,突然想問個不相關的問題,或者想對剛才的指令補一句旁路說明,用 /btw 就不會汙染目前上下文,也不用中斷主工作階段,非常 nice。

💡 IM 專案小技巧:如果你在 xzll-im-server 裡啟動 Claude,但這次改動還要看 Flutter SDK,可以直接 /add-dir ../xzll-im-flutter-sdk,不用退出重開。


三、CLI 參數大全(-- 開頭)

CLI 參數是在終端啟動 Claude Code 時傳入的,控制各種行為。

小提醒:CLI 參數分兩類,一類是互動式工作階段也能用,一類只在 print mode(claude -p)裡生效。下面我會把容易踩坑的地方標出來。

3.1 模型與輸出控制

參數用途適用範圍演示命令--model設定模型互動 /print modeclaude --model glm-5.1``--effort推理深度互動 /print modeclaude --effort high``--output-format輸出格式僅 print modeclaude -p --output-format json "分析程式碼"``--fallback-model過載時回退模型僅 print modeclaude -p --fallback-model glm-4-flash "分析程式碼"``--json-schemaJSON Schema 驗證輸出僅 print modeclaude -p --json-schema '{"type":"object"}' "分析程式碼"#### 3.2 會話管理

參數用途演示命令--continue, -c繼續最近工作階段claude -c``--resume, -r恢復指定工作階段claude -r 工作階段ID``--name, -n工作階段命名claude -n "IM 專案開發工作階段"``--fork-session恢復時建立新工作階段 IDclaude -c --fork-session``--session-id指定 UUID 作為工作階段 IDclaude --session-id 123e4567-e89b-12d3-a456-426614174000``--no-session-persistence停用工作階段持久化僅 print modeclaude -p --no-session-persistence "分析程式碼"#### 3.3 權限與安全

參數用途演示命令--permission-mode權限模式claude --permission-mode auto``--dangerously-skip-permissions跳過所有權限提示,裸奔模式,爽但風險高claude --dangerously-skip-permissions``--allowedTools設定免確認執行的工具claude --allowedTools filesystem,edit``--disallowedTools移除指定工具claude --disallowedTools shell#### 3.4 系統提示客製化

參數用途演示命令--system-prompt替換整個系統提示claude --system-prompt "你是Java/Flutter專家"``--system-prompt-file從檔案載入替換系統提示claude --system-prompt-file ./prompt.txt``--append-system-prompt追加自訂文字到系統提示claude --append-system-prompt "專注IM即時通訊專案"``--append-system-prompt-file從檔案載入追加系統提示claude --append-system-prompt-file ./append.txt#### 3.5 MCP 與外掛

參數用途演示命令--mcp-config從 JSON 檔案載入 MCP 伺服器claude --mcp-config ~/.claude/mcp.json``--strict-mcp-config僅使用指定的 MCPclaude --strict-mcp-config --mcp-config ./custom-mcp.json``--plugin-dir指定外掛目錄claude --plugin-dir ~/.claude/plugins#### 3.6 除錯與開發

參數用途演示命令--debug啟用除錯模式claude --debug``--debug-file除錯日誌寫入檔案claude --debug --debug-file ./debug.log``--verbose詳細日誌claude --verbose``--bare最小模式,停用擴充claude --bare#### 3.7 工作區

參數用途演示命令--add-dir新增額外工作目錄claude --add-dir ~/dosomething/im/xzll-im-flutter-client``--worktree, -w隔離 git worktree 啟動claude -w``--tmux為 worktree 建立 tmux 工作階段claude -w --tmux#### 3.8 花費控制

參數用途演示命令--max-budget-usdAPI 最大花費限制僅 print modeclaude -p --max-budget-usd 0.1 "分析程式碼"``--max-turns限制 agent 輪次僅 print modeclaude -p --max-turns 5 "分析程式碼"#### 3.9 其他實用參數

參數用途演示命令--remote建立遠端 web 工作階段claude --remote --name "IM遠端協作"``--teleport恢復 web 工作階段到本地claude --teleport``--init執行初始化 hook僅 print modeclaude -p --init``--chrome啟用 Chrome 整合claude --chrome``--ide自動連接 IDEclaude --ide---

四、快捷鍵速查表

4.1 通用控制

快捷鍵用途Ctrl+C取消目前輸入/生成Ctrl+D退出 Claude CodeCtrl+O切換 transcript 檢視器Ctrl+R反向搜尋命令歷史Ctrl+V貼上剪貼簿圖片Ctrl+B背景執行任務Ctrl+T切換任務列表Ctrl+X Ctrl+K殺死所有背景 agentEsc+Esc回退/摘要Shift+Tab循環切換權限模式Option+P切換模型Option+T切換擴充思考Option+O切換 fast mode?顯示目前環境可用快捷鍵#### 4.2 特殊前綴

前綴用途範例/命令或 skill/help /model opus``!Shell 模式,直接執行 shell 命令!git status``@檔案路徑自動補全@xzll-im-server/im-business/``#快速新增到 CLAUDE.md 記憶# 使用 2 空格縮排> 💡 實測感受! 前綴太方便了!有時候就想跑個命令看個結果,不用退出 Claude 再開終端,直接 !git status 就行

演示 # : image.png演示 @: image.png

使用 @ 指定某個檔案進行分析(在某些場景下非常有用) image.png

4.3 深度思考觸發詞:ultrathink (重要!複雜任務必用)

在提示詞中加入特定關鍵字,觸發 Claude 的深度思考模式:

bash 体验AI代码助手 代码解读复制代码# 超深度思考(最詳細)
ultrathink 分析這段程式碼的所有潛在問題

ultrathink 不是斜線命令,而是一個提示詞關鍵字。它適合放在複雜架構設計、疑難 bug 排查、關鍵方案評審這類需要深度推理的任務裡。

這是我在複雜任務裡很常用的一個關鍵字。image.png

💡 實測感受:複雜任務裡加上 ultrathink,Claude 的分析會明顯更細,但 token 消耗也會增加。小問題沒必要每次都加。

4.4 三種互動模式詳解

透過 Shift+Tab 循環切換:

模式切換方式特點適用場景Interactive預設每步需確認重要修改、正式環境Auto-acceptShift+Tab 一次AI 自動執行簡單任務、批次操作PlanShift+Tab 兩次只規劃不改程式碼複雜任務前期規劃> 💡 實測感受:新手建議用 Interactive,熟悉後再切 Auto-accept。Plan 模式適合大改動,先出方案你看,滿意再執行。


五、配置檔案體系

5.1 設定檔層級(優先級從高到低)

這塊如果只看表格,很容易覺得「知道了路徑」,但真正用的時候還是會懵。你可以把它理解成一句話:

越靠近目前專案、越臨時的設定,優先級越高。 下面這個表說的是個人開發者最常接觸到的設定層級;如果公司用了企業託管策略,那種 managed policy 會更高。

檔案作用域說明CLI 參數這一次啟動/目前工作階段最高優先級,適合臨時覆蓋.claude/settings.local.json目前專案 + 只對你自己生效通常會被 gitignore,適合放個人模型、token、本地路徑.claude/settings.json目前專案 + 團隊共享可以提交到 Git,適合放團隊統一規則~/.claude/settings.json使用者全域所有專案預設生效,適合放通用預設配置舉個最常見的例子:你全域設定了 model: glm-5.1,但 IM Flutter 用戶端專案裡 .claude/settings.local.json 設定了 model: kimi-k2.5。那麼你在 Flutter 用戶端目錄啟動 claude 時,最終用的是 kimi-k2.5

text 体验AI代码助手 代码解读复制代码最終生效 = 全域預設 + 專案共享設定 + 個人本地設定 + 本次 CLI 參數覆蓋

實際工程裡我建議這麼分:

放哪裡適合放什麼不適合放什麼~/.claude/settings.json預設模型、通用權限、通用 hooks、全域 MCP某個專案專屬規則.claude/settings.json團隊共享權限、專案 MCP、專案 hooks、推薦模型token、個人路徑、本機資料庫.claude/settings.local.json個人模型選擇、本地路徑、個人 token、個人權限偏好團隊必須遵守的規則CLI 參數臨時模型、臨時目錄、臨時 debug長期固定配置拿 IM 專案舉例:

text 体验AI代码助手 代码解读复制代码~/.claude/settings.json
  所有專案預設用 glm-5.1,配置通用 hooks,以及你個人全域權限

/Users/hzz/dosomething/im/.claude/settings.json
  IM 工作區級設定,比如 additionalDirectories、neural-memory MCP 權限、statusLine

/Users/hzz/dosomething/im/.claude/settings.local.json
  你自己在 IM 工作區的本地設定:預設 GLM、真實 token、sandbox、個人權限

/Users/hzz/dosomething/im/xzll-im-server/.claude/settings.local.json
  伺服器端子專案本地設定:預設 GLM,並覆蓋智譜 URL/token

/Users/hzz/dosomething/im/xzll-im-flutter-client/.claude/settings.local.json
  Flutter 用戶端本地設定:預設 Kimi,並覆蓋 Kimi URL/token

注意:/Users/hzz/dosomething/im 這個目錄在我本機更像一個 IM 工作區,不一定本身就是 Git 倉庫。所以這裡的 .claude/settings.json 是否「團隊共享」,取決於你有沒有把它放到真正要提交的倉庫裡。真實 token 一律只放 settings.local.json,不要放 settings.json

如果只是臨時這一次想切模型,不要改設定檔,直接用 CLI:

bash 体验AI代码助手 代码解读复制代码claude --model glm-5.1

或者進工作階段後用:

text 体验AI代码助手 代码解读复制代码/model glm-5.1

💡 實測建議:能提交給團隊的放 .claude/settings.json;只和你自己機器有關的放 .claude/settings.local.json;只用一次的用 CLI 參數或斜線命令。

image.png

5.2 專案記憶 vs 全域記憶:到底該寫哪裡?

檔案作用域說明~/.claude/CLAUDE.md使用者全域所有專案生效CLAUDE.md.claude/CLAUDE.md專案專案級設定CLAUDE.local.md本地專案gitignored,個人偏好這塊我建議一定要認真用起來。Claude Code 好不好用,很多時候不取決於模型多強,而取決於你有沒有把穩定規則沉澱到記憶裡。

我的理解是:

類型放什麼不放什麼全域記憶 ~/.claude/CLAUDE.md你所有專案都通用的個人習慣某個專案的業務規則專案記憶 CLAUDE.md團隊共享的專案規則、架構說明、常用命令個人 token、個人路徑、臨時想法本地專案記憶 CLAUDE.local.md只對你自己生效的專案偏好團隊必須遵守的規則全域記憶適合寫:

markdown 体验AI代码助手 代码解读复制代码# 我的通用偏好
- 回答優先使用中文。
- 修改程式碼前先說明計劃,改完後說明驗證結果。
- 不要主動執行刪除、部署、資料庫寫入等高風險命令。
- 程式碼改動盡量保持小步提交,不做無關重構。

專案記憶適合寫:

markdown 体验AI代码助手 代码解读复制代码# XZLL IM 專案

## 專案結構
- `xzll-im-server/`:Java 伺服器端,Spring Cloud + gRPC + Netty
- `xzll-im-flutter-client/`:Flutter 用戶端
- `xzll-im-flutter-sdk/`:Flutter IM SDK,用戶端透過本地路徑依賴
- `xzll-im-server/im-console-web/`:後台管理前端

# 常用命令
- 伺服器端編譯:`mvn -pl im-business -am compile`
- 伺服器端測試:`mvn -pl im-business -am test`
- Flutter 用戶端分析:`flutter analyze`
- Flutter SDK 測試:`flutter test`

# 專案約定
- 伺服器端模組包括 im-auth、im-business、im-client、im-common、im-connect、im-console、im-data-sync、im-gateway、im-social。
- Flutter 用戶端使用 GetX 狀態管理。
- SDK 與用戶端保持分離,不要把 SDK 邏輯直接寫進用戶端業務層。
- 協議、訊息結構、資料庫欄位變更時,要同步檢查伺服器端、SDK、用戶端三端影響。

本地專案記憶適合寫:

markdown 体验AI代码助手 代码解读复制代码# 我的本地偏好
- 我本機 IM 工作區在 `/Users/hzz/dosomething/im`。
- 伺服器端主要看 `xzll-im-server/`,Flutter 用戶端主要看 `xzll-im-flutter-client/`。
- Flutter SDK 路徑是 `xzll-im-flutter-sdk/`,用戶端依賴本地 SDK。
- 本機 Flutter 命令優先使用 `/Users/hzz/myself_project/flutter/bin/flutter`。

💡 實測建議CLAUDE.md 寫「穩定、長期、團隊共享」的資訊;臨時需求不要亂塞進去。否則記憶越寫越多,反而會把 Claude 帶偏。

快速補充記憶可以用 #

text 体验AI代码助手 代码解读复制代码# 提交前必須先執行 mvn test

如果要整理得更系統,用 /memory 打開記憶檔案直接編輯。

5.3 不同專案使用不同模型:IM 伺服器端用 B,Flutter 用 D

這個需求很常見。比如:

  • IM 伺服器端邏輯複雜,希望預設用 glm-5.1
  • Flutter 用戶端偏 UI 和小改動,希望預設用更快/更便宜的模型
  • 臨時做架構設計或疑難 bug,再手動切到更強模型

推薦做法是:全域設定放通用預設值,專案設定覆蓋專案差異。

設定優先級前面已經說過:CLI 參數 > .claude/settings.local.json > .claude/settings.json > ~/.claude/settings.json

所以如果只是你自己用,最推薦把專案模型寫到 專案根目錄/.claude/settings.local.json。像 IM 這種 mono repo,更要注意你是從哪個目錄啟動 claude:在工作區根目錄啟動,就讀取根目錄設定;在 xzll-im-serverxzll-im-flutter-client 啟動,就優先讀取對應子專案設定。

比如我的全域設定可以這樣放在 ~/.claude/settings.json,作為所有專案的預設模型和安全規則:

json 体验AI代码助手 代码解读复制代码{
  "env": {
    "CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1",
    "API_TIMEOUT_MS": "3000000",
    "ANTHROPIC_BASE_URL": "https://open.bigmodel.cn/api/anthropic",
    "ANTHROPIC_AUTH_TOKEN": "xxxxxxxxxxxxx",
    "ANTHROPIC_DEFAULT_HAIKU_MODEL": "glm-5.1",
    "ANTHROPIC_DEFAULT_SONNET_MODEL": "glm-5.1",
    "ANTHROPIC_DEFAULT_OPUS_MODEL": "glm-5.1"
  },
  "model": "glm-5.1",
  "permissions": {
    "allow": [
      "Read(*)",
      "Grep(*)",
      "Glob(*)"
    ]
  }
}

IM 工作區根目錄可以放團隊共享設定:/Users/hzz/dosomething/im/.claude/settings.json

json 体验AI代码助手 代码解读复制代码{
  "env": {},
  "permissions": {
    "allow": [
      "mcp__neural-memory__nmem_stats",
      "mcp__neural-memory__nmem_recall",
      "mcp__neural-memory__nmem_remember"
    ]
  }
}

如果只是我自己在 IM 專案裡想預設用某個模型,就放本地設定:/Users/hzz/dosomething/im/.claude/settings.local.json

json 体验AI代码助手 代码解读复制代码{
  "model": "glm-5.1",
  "permissions": {
    "allow": [
      "mcp__neural-memory__nmem_stats",
      "mcp__neural-memory__nmem_recall",
      "mcp__neural-memory__nmem_remember"
    ]
  },
  "sandbox": {
    "enabled": false,
    "autoAllowBashIfSandboxed": false
  }
}

這裡有個非常關鍵的點:只寫 model 夠不夠,取決於這兩個模型是不是走同一個 ANTHROPIC_BASE_URL 和同一套 token。

情況一:同一個服務商,只是換模型名

如果伺服器端和 Flutter 用戶端都走同一個閘道,比如都走智譜的 https://open.bigmodel.cn/api/anthropic,全域已經配置好了 ANTHROPIC_BASE_URLANTHROPIC_AUTH_TOKEN,那子專案裡只寫 model 就夠了。

伺服器端:/Users/hzz/dosomething/im/xzll-im-server/.claude/settings.local.json

json 体验AI代码助手 代码解读复制代码{
  "model": "glm-5.1"
}

Flutter 用戶端:/Users/hzz/dosomething/im/xzll-im-flutter-client/.claude/settings.local.json

json 体验AI代码助手 代码解读复制代码{
  "model": "glm-5.1-flash"
}

這樣你在 xzll-im-server 啟動 claude,預設走伺服器端模型;在 xzll-im-flutter-client 啟動 claude,預設走 Flutter 用戶端模型。它們共用全域的 URL 和 token,只是覆蓋了目前專案的預設模型。

情況二:不同服務商,必須同時設定 URL、token 和模型

如果伺服器端用智譜,Flutter 用戶端用 Kimi,那就不能只寫:

json 体验AI代码助手 代码解读复制代码{
  "model": "kimi-k2.5"
}

因為它會繼承全域的 ANTHROPIC_BASE_URL。如果你的全域 URL 是智譜,但模型寫成 Kimi,就很容易出現 Model not found、認證失敗、請求格式不相容等問題。

這時 Flutter 用戶端專案的 .claude/settings.local.json 應該把這一套都覆蓋掉:

json 体验AI代码助手 代码解读复制代码{
  "env": {
    "ANTHROPIC_BASE_URL": "https://api.moonshot.cn/anthropic",
    "ANTHROPIC_AUTH_TOKEN": "xxxxxxxxxxxxx",
    "ANTHROPIC_MODEL": "kimi-k2.5",
    "ANTHROPIC_DEFAULT_HAIKU_MODEL": "kimi-k2.5",
    "ANTHROPIC_DEFAULT_SONNET_MODEL": "kimi-k2.5",
    "ANTHROPIC_DEFAULT_OPUS_MODEL": "kimi-k2.5",
    "CLAUDE_CODE_SUBAGENT_MODEL": "kimi-k2.5",
    "ENABLE_TOOL_SEARCH": "false"
  },
  "model": "kimi-k2.5"
}

伺服器端繼續用智譜,就在伺服器端子專案裡寫完整的智譜設定:

json 体验AI代码助手 代码解读复制代码{
  "env": {
    "ANTHROPIC_BASE_URL": "https://open.bigmodel.cn/api/anthropic",
    "ANTHROPIC_AUTH_TOKEN": "xxxxxxxxxxxxx",
    "ANTHROPIC_DEFAULT_HAIKU_MODEL": "glm-5.1",
    "ANTHROPIC_DEFAULT_SONNET_MODEL": "glm-5.1",
    "ANTHROPIC_DEFAULT_OPUS_MODEL": "glm-5.1"
  },
  "model": "glm-5.1"
}

我的建議是:

  • 同一服務商換模型:子專案只寫 model 可以。
  • 不同服務商切換:子專案寫完整 env + model
  • 不要把真實 token 提交到 Git:這些設定放 .claude/settings.local.json,不要放 .claude/settings.json
  • 不確定有沒有繼承衝突:用 /status 看目前模型和連接狀態。

如果是團隊統一要求某個專案使用某個模型,可以寫到 .claude/settings.json 並提交到 Git。但注意:token、個人路徑、本地資料庫位址不要提交,這些應該放 .claude/settings.local.json 或系統環境變數裡。

臨時切換模型,用 /model 或 CLI 參數就行:

bash 体验AI代码助手 代码解读复制代码claude --model glm-5.1
claude --model kimi-k2.5

互動模式裡:

text 体验AI代码助手 代码解读复制代码/model glm-5.1
/model kimi-k2.5

也可以在工作階段內配合 ultrathink 使用:

text 体验AI代码助手 代码解读复制代码/model glm-5.1
ultrathink 分析 IM 訊息投遞鏈路裡哪些地方可能丟消息

我的建議是:

  • 長期預設:寫進專案 .claude/settings.local.json
  • 團隊統一:寫進專案 .claude/settings.json
  • 只跑這一次:用 claude --model xxx
  • 目前工作階段臨時切換:用 /model xxx
5.3.1 (推薦)進階玩法:寫啟動腳本,一鍵切換模型 Profile

還有一種很方便的方式(也是我個人推薦的方式):不改 settings 檔,而是寫幾個啟動腳本,透過環境變數指定模型和服務商

這個適合經常在多個模型之間切換。比如:

  • cc-glm:用智譜 GLM 啟動 Claude Code
  • cc-kimi:用 Kimi 啟動 Claude Code
  • cc-im-server:進入 IM 伺服器端目錄並使用伺服器端模型
  • cc-im-flutter:進入 Flutter 用戶端目錄並使用 Flutter 模型

先準備一個專門放本地腳本的目錄:

bash 体验AI代码助手 代码解读复制代码mkdir -p ~/bin

如果你的 ~/bin 還沒加入 PATH,可以加到 ~/.zshrc

bash 体验AI代码助手 代码解读复制代码vim ~/.zshrc

加入這一行:

bash 体验AI代码助手 代码解读复制代码export PATH="$HOME/bin:$PATH"

然後讓設定生效:

bash 体验AI代码助手 代码解读复制代码source ~/.zshrc

範例一:建立智譜啟動腳本 ~/bin/cc-glm

bash 体验AI代码助手 代码解读复制代码vim ~/bin/cc-glm

貼上下面內容:

bash 体验AI代码助手 代码解读复制代码#!/usr/bin/env bash
export CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC="1"
export API_TIMEOUT_MS="3000000"
export ANTHROPIC_BASE_URL="https://open.bigmodel.cn/api/anthropic"
export ANTHROPIC_AUTH_TOKEN="xxxxxxxxxxxxx"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="glm-5.1"
export ANTHROPIC_DEFAULT_SONNET_MODEL="glm-5.1"
export ANTHROPIC_DEFAULT_OPUS_MODEL="glm-5.1"
exec claude --model glm-5.1 "$@"

儲存離開後,給它加執行權限:

bash 体验AI代码助手 代码解读复制代码chmod +x ~/bin/cc-glm

以後直接這樣啟動:

bash 体验AI代码助手 代码解读复制代码cc-glm
cc-glm -r

範例二:建立 Kimi 啟動腳本 ~/bin/cc-kimi

bash 体验AI代码助手 代码解读复制代码vim ~/bin/cc-kimi

貼上下面內容:

bash 体验AI代码助手 代码解读复制代码#!/usr/bin/env bash
export ANTHROPIC_BASE_URL="https://api.moonshot.cn/anthropic"
export ANTHROPIC_AUTH_TOKEN="xxxxxxxxxxxxx"
export ANTHROPIC_MODEL="kimi-k2.5"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="kimi-k2.5"
export ANTHROPIC_DEFAULT_SONNET_MODEL="kimi-k2.5"
export ANTHROPIC_DEFAULT_OPUS_MODEL="kimi-k2.5"
export CLAUDE_CODE_SUBAGENT_MODEL="kimi-k2.5"
export ENABLE_TOOL_SEARCH="false"
exec claude --model kimi-k2.5 "$@"

儲存離開後,給它加執行權限:

bash 体验AI代码助手 代码解读复制代码chmod +x ~/bin/cc-kimi

之後就可以這樣啟動:

bash 体验AI代码助手 代码解读复制代码cc-kimi
cc-kimi -r
cc-glm --add-dir ../xzll-im-flutter-sdk

如果想進一步貼合 IM 專案,可以寫專案專用腳本。比如建立 cc-im-server

bash 体验AI代码助手 代码解读复制代码vim ~/bin/cc-im-server

貼上下面內容:

bash 体验AI代码助手 代码解读复制代码#!/usr/bin/env bash
cd /Users/hzz/dosomething/im/xzll-im-server || exit 1
export ANTHROPIC_BASE_URL="https://open.bigmodel.cn/api/anthropic"
export ANTHROPIC_AUTH_TOKEN="xxxxxxxxxxxxx"
export ANTHROPIC_DEFAULT_SONNET_MODEL="glm-5.1"
export ANTHROPIC_DEFAULT_OPUS_MODEL="glm-5.1"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="glm-5.1"
exec claude --model glm-5.1 "$@"

加執行權限:

bash 体验AI代码助手 代码解读复制代码chmod +x ~/bin/cc-im-server

以後直接這樣用:

bash 体验AI代码助手 代码解读复制代码cc-im-server
cc-im-server -r
cc-im-server --add-dir ../xzll-im-flutter-sdk

同理再寫一個 cc-im-flutter,進入 xzll-im-flutter-client 並切到 Kimi。

這種方式的好處是:

  • 切模型非常快,不用手動改設定檔
  • 不同服務商的 URL/token 不會互相汙染
  • 可以和 -r--add-dir--debug 等參數組合
  • 適合自己本機使用,不影響團隊專案設定

注意兩點:

  • 腳本裡有 token,不要放進專案 Git 倉庫。
  • 如果腳本和 settings 都設定了模型,以腳本啟動時傳入的環境變數和 CLI 參數優先。

這是我的快捷啟動腳本演示: image.png

5.4 其他重要檔案

檔案用途~/.claude.json使用者級 MCP 伺服器設定.mcp.json專案級 MCP 伺服器設定~/.claude/agents/使用者全域子 agent 設定.claude/agents/專案子 agent 設定.claude/skills/SKILL.md專案 skills#### 5.5 關鍵設定項

下面這份是個人本地設定(~/.claude/settings.json)範例。注意:真實 token 不要提交到 Git。

json 体验AI代码助手 代码解读复制代码{
  "env": {

    "CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1",
    "API_TIMEOUT_MS": "3000000",
    "ANTHROPIC_AUTH_TOKEN": "xxxxxxxxxxxxxxxxxxx.rrrrrrr",
    "ANTHROPIC_BASE_URL": "https://open.bigmodel.cn/api/anthropic",
    "ANTHROPIC_DEFAULT_HAIKU_MODEL": "glm-5.1",
    "ANTHROPIC_DEFAULT_SONNET_MODEL": "glm-5.1",
    "ANTHROPIC_DEFAULT_OPUS_MODEL": "glm-5.1"
  },
  "permissions": {
    "allow": [
      "Bash(*)",
      "Read(*)",
      "Write(*)",
      "Edit(*)",
      "Glob(*)",
      "Grep(*)",
      "Agent(*)",
      "WebSearch(*)",
      "WebFetch(*)"
    ]
  },
  "model": "glm-5.1",
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Bash",
        "hooks": [
          {
            "type": "command",
            "command": "input=$(cat); cmd=$(echo \"$input\" | jq -r '.tool_input.command // empty'); if echo \"$cmd\" | grep -qE 'rm\\s+-[a-zA-Z]*[rf][a-zA-Z]*\\s+'; then echo \"BLOCKED: rm -r/-f is not allowed: $cmd\" >&2; exit 2; fi; exit 0",
            "timeout": 5
          }
        ]
      }
    ],
    "SessionStart": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "nmem-hook-session-start",
            "timeout": 15
          }
        ]
      }
    ],
    "PreCompact": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "nmem-hook-pre-compact",
            "timeout": 30
          }
        ]
      }
    ],
    "Stop": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "nmem-hook-stop",
            "timeout": 30
          }
        ]
      }
    ],
    "PostToolUse": [
      {
        "matcher": "tool == 'Write' || tool == 'Edit' || tool == 'Bash'",
        "hooks": [
          {
            "type": "command",
            "command": "nmem-hook-post-tool-use",
            "timeout": 5
          }
        ]
      }
    ]
  },
  "enabledPlugins": {
    "rust-analyzer-lsp@claude-plugins-official": true,
    "figma@claude-plugins-official": true
  },
  "alwaysThinkingEnabled": true,
  "skipDangerousModePermissionPrompt": true,
  "defaultModel": "glm-5.1",
  "statusLine": {
    "type": "command",
    "command": "bash /Users/hzz/.claude/statusline-command.sh"
  }
}

上面這份權限放得比較開,只適合自己非常熟悉的本地專案。工程裡更推薦寫得細一點,尤其是多人專案。比如 IM 專案可以這樣分層:

json 体验AI代码助手 代码解读复制代码{
  "model": "glm-5.1",
  "additionalDirectories": [
    "../xzll-im-flutter-sdk",
    "../xzll-im-flutter-client"
  ],
  "permissions": {
    "allow": [
      "Read(*)",
      "Glob(*)",
      "Grep(*)",
      "Bash(mvn -pl im-business -am test)",
      "Bash(mvn -pl im-business -am compile)",
      "Bash(flutter analyze)",
      "Bash(flutter test)"
    ],
    "ask": [
      "Edit(*)",
      "Write(*)",
      "Bash(git commit*)",
      "Bash(git push*)",
      "Bash(mvn deploy*)"
    ],
    "deny": [
      "Read(.env*)",
      "Read(**/application-prod.yml)",
      "Read(**/application-prod.yaml)",
      "Bash(rm -rf*)",
      "Bash(mysql * -e*)"
    ]
  },
  "statusLine": {
    "type": "command",
    "command": "printf 'IM | %s | %s' \"$(basename \"$PWD\")\" \"$(git branch --show-current 2>/dev/null)\""
  },
  "outputStyle": "default",
  "cleanupPeriodDays": 30,
  "includeCoAuthoredBy": false
}

這幾個設定很實用:

  • additionalDirectories:固定給 Claude 額外目錄權限。IM 專案裡伺服器端、用戶端、SDK 經常要一起看,這個很省事。
  • permissions.allow / ask / deny:比一股腦 Bash(*)Write(*) 安全很多。
  • statusLine:在底部狀態列顯示目前目錄、分支、模型等資訊,多專案切換時不容易搞錯。
  • outputStyle:控制回答風格。日常開發建議 default;想學習原始碼時可以切 explanatory 或 learning。
  • cleanupPeriodDays:控制本地工作階段清理週期,避免歷史越積越多。
  • includeCoAuthoredBy:是否在 Git commit message 裡追加 Claude 聯名,不想加就設為 false。

5.6 statusLine 狀態列:多專案、多模型時非常有用

statusLine 是 Claude Code 底部狀態列設定。它不是決定模型能力的核心設定,但在真實工程裡很實用,尤其是你這種 IM mono repo:

  • 一會兒在 xzll-im-server
  • 一會兒在 xzll-im-flutter-client
  • 一會兒又要看 xzll-im-flutter-sdk
  • 伺服器端預設 GLM,Flutter 用戶端預設 Kimi

如果不看狀態列,很容易忘了自己現在在哪個目錄、哪個分支、用的是哪個模型。

最簡單可以直接執行:

text 体验AI代码助手 代码解读复制代码/statusline

Claude 會引導你生成狀態列設定。也可以手寫到 .claude/settings.json

json 体验AI代码助手 代码解读复制代码{
  "statusLine": {
    "type": "command",
    "command": "printf 'IM | %s | %s' \"$(basename \"$PWD\")\" \"$(git branch --show-current 2>/dev/null)\""
  }
}

這個範例會顯示:

text 体验AI代码助手 代码解读复制代码IM | xzll-im-server | main

如果你想把目前模型也顯示出來,可以用環境變數做一個簡單版本:

json 体验AI代码助手 代码解读复制代码{
  "statusLine": {
    "type": "command",
    "command": "printf 'IM | %s | %s | %s' \"$(basename \"$PWD\")\" \"$(git branch --show-current 2>/dev/null)\" \"${ANTHROPIC_MODEL:-${ANTHROPIC_DEFAULT_SONNET_MODEL:-default}}\""
  }
}

它大概會顯示:

text 体验AI代码助手 代码解读复制代码IM | xzll-im-flutter-client | main | kimi-k2.5

我個人建議 IM 專案至少顯示三項:

  • 目前目錄:避免伺服器端、用戶端、SDK 搞混
  • 目前 Git 分支:避免在錯誤分支改程式碼
  • 目前模型:避免本來想用 Kimi,結果還在 GLM 工作階段裡

輸出風格可以這樣切:

text 体验AI代码助手 代码解读复制代码/output-style explanatory
/output-style default

這是我設定的 statusline:

image.png

六、Hooks 機制

Hooks 是給 Claude Code 添加自動化規則的機制。簡單說就是:在特定事件發生時,自動執行你預設的操作

6.1 所有 Hook 類型

Hook 類型觸發時機典型用途UserPromptSubmit使用者送出提示前輸入驗證、日誌記錄PreToolUse工具執行前安全攔截、阻止危險命令PostToolUse工具執行後自動格式化、跑 lintNotification權限請求時桌面通知StopClaude 完成回覆時完成日誌、狀態更新SubagentStop子 agent 完成時agent 編排PreCompact上下文壓縮前備份工作階段記錄SessionStart工作階段開始時載入開發上下文#### 6.2 配置範例

json 体验AI代码助手 代码解读复制代码"hooks": {
  // ==================== 核心安全防護鉤子 ====================
  // 工具執行**前**觸發(PreToolUse),用於攔截危險命令
  "PreToolUse": [
    {
      // 僅匹配【Bash 終端命令】工具
      "matcher": "Bash",
      "hooks": [
        {
          "type": "command",
          // 安全防護腳本:攔截所有 rm -rf / rm -f 強制刪除命令
          // 邏輯:解析終端命令 → 檢測是否包含危險刪除指令 → 命中則攔截並報錯
          "command": "input=$(cat); cmd=$(echo \"$input\" | jq -r '.tool_input.command // empty'); if echo \"$cmd\" | grep -qE 'rm\\s+-[a-zA-Z]*[rf][a-zA-Z]*\\s+'; then echo \"BLOCKED: rm -r/-f is not allowed: $cmd\" >&2; exit 2; fi; exit 0",
          "timeout": 5 // 腳本執行超時時間:5秒
        }
      ]
    }
  ],

  // ==================== 神經記憶外掛自動化鉤子 ====================
  // 1. 工作階段啟動時:載入專案歷史記憶
  "SessionStart": [
    {
      "hooks": [
        {
          "type": "command",
          "command": "nmem-hook-session-start",
          "timeout": 15
        }
      ]
    }
  ],

  // 2. 工作階段精簡(/compact)前:整理優化記憶
  "PreCompact": [
    {
      "hooks": [
        {
          "type": "command",
          "command": "nmem-hook-pre-compact",
          "timeout": 30
        }
      ]
    }
  ],

  // 3. 工作階段退出時:儲存目前專案記憶
  "Stop": [
    {
      "hooks": [
        {
          "type": "command",
          "command": "nmem-hook-stop",
          "timeout": 30
        }
      ]
    }
  ],

  // 4. 執行檔案寫入/編輯/終端命令後:同步更新記憶
  "PostToolUse": [
    {
      "matcher": "tool == 'Write' || tool == 'Edit' || tool == 'Bash'",
      "hooks": [
        {
          "type": "command",
          "command": "nmem-hook-post-tool-use",
          "timeout": 5
        }
      ]
    }
  ]
}

💡 實測感受:Hooks 配好了就是你的安全網。我配了一個 PreToolUse 攔截 rm -rf,有次 Claude 真的差點把整個目錄刪了,被攔住了。救命的功能!

演示一下,可以看到 rm 命令 成功被 hook 攔截:

image.png

七、自訂 Skills

比起這種原生的方式(這裡簡單介紹下怎麼自訂 skills 就點到為止), 我更推薦使用 skill-creator 可以看:《別再裸用 Claude Code 了!32 個親測 Skills + 8 個 MCP,開發效率直接拉滿!》

7.1 Skills vs Legacy Commands

特性Skills(推薦)Legacy Commands位置.claude/skills/<name>/SKILL.md``.claude/commands/<name>.md目錄結構支援打包檔案單檔案自動觸發支援不支援子代理執行context: fork不支援優先級更高較低同名時,Skill 總是優先。

7.2 建立自訂 Skill

markdown 体验AI代码助手 代码解读复制代码# .claude/skills/deploy/SKILL.md
---
name: deploy
description: 一鍵部署到指定環境
allowed-tools: [Bash, Read]
---

當使用者要求部署時,執行以下步驟:
1. 執行 `npm run test` 確保測試通過
2. 執行 `npm run build` 建置專案
3. 執行 `docker build -t myapp .` 打包映像
4. 推送到指定環境:$ARGUMENTS(預設 staging)

使用:/deploy production

7.3 進階特性

  • 變數替換$ARGUMENTS(全部參數)、$0 / $1(單個參數)
  • 動態上下文!command`` 在提示詞中嵌入 Shell 命令輸出
  • 檔案引用@xzll-im-server/im-business/ 引用專案檔案或目錄
  • Frontmatter 設定:name、description、agent、hooks、allowed-tools 等

7.4 延伸閱讀:不要裸用,Skills + MCP 才是進階形態

如果說本文前面這些命令、設定、Hooks 是 Claude Code 的「基本功」,那 Skills + MCP 更像是把 Claude Code 變成你自己工程環境的關鍵。

  • Skills:把你的高頻工作流沉澱成可重複使用能力,比如程式碼審查、介面聯調、資料庫排查、Flutter 頁面檢查、IM 訊息鏈路分析。
  • MCP:把 Claude Code 接到外部工具,比如資料庫、瀏覽器、設計工具、記憶系統、文件系統。

這塊展開講會很長,我單獨寫了一篇實戰文章:
《別再裸用 Claude Code 了!32 個親測 Skills + 8 個 MCP,開發效率直接拉滿!》

建議閱讀順序是:

text 体验AI代码助手 代码解读复制代码先讀本文:把 CLI、斜線命令、配置層級、Hooks、權限、多模型切換用熟
再讀 Skills + MCP 那篇:把高頻工作流沉澱成自己的工具箱

說白了,命令解決的是「我會不會用 Claude Code」;Skills + MCP 解決的是「Claude Code 能不能貼合我的專案長期進化」。這兩篇合起來,基本就是我現在使用 Claude Code 的完整方法論。


第二部分:高頻黃金命令

上面是完整命令列表,但說實話,你日常用到的可能就那麼十幾個。這部分我把最實用的命令拎出來,深入講怎麼用。

如果你剛開始用 Claude Code,不用一口氣把前面的命令全背下來。我的建議是:不要按命令酷不酷來記,而是按日常開發工作流來記

等這些基礎命令用熟之後,再去補 Skills + MCP。否則一上來裝一堆技能和 MCP,底層命令不熟,最後還是會用得很亂。

我現在最推薦先吃透下面這 17 個命令/關鍵字/工作流:

優先級命令為什麼推薦必學claude -r / /continue找回歷史工作階段,最貼近日常使用必學/init / /memory建立專案長期記憶,減少重複解釋必學CLAUDE.md 記憶體系全域、專案、本地記憶分層,長期提升穩定性必學多模型切換按專案/任務選擇 GLM、Kimi 等模型必學@ 檔案引用精準指定檔案,避免 AI 猜路徑必學/plan複雜任務先規劃,降低亂改機率必學ultrathink複雜問題觸發深度思考,適合架構和疑難 bug必學/context看上下文占用,判斷什麼時候該壓縮必學/compact長對話續命,釋放上下文必學/recap快速生成目前工作階段摘要,適合切換任務前看一眼必學/diff每輪改完先看差異,防止改偏必學/rewind改偏了及時回退,別硬著頭皮繼續補必學! Shell 模式不退出 Claude 直接跑命令高頻/btw臨時旁路提問,不打斷目前主線高頻/review提交前讓它審一遍,能發現不少低級問題高頻claude -p腳本、管道、CI 自動化基礎高頻/permissions管住權限,別讓 AI 亂動危險操作像 /batch/loop--max-budget-usd 也很有用,但我不會把它們都放進「日常最高頻」。它們更像進階提效命令:場景對了非常猛,場景不對就只是看起來高級。

🥇 1. claude -r / /continue:找回工作階段,接著幹活

場景:昨天分析了一半,今天想接著來;或者你開了多個專案,不想重新解釋背景。

用法

bash 体验AI代码助手 代码解读复制代码claude -r          # 展開最近工作階段列表
claude -c          # 繼續目前目錄最近工作階段

互動模式裡也可以用:

kotlin 体验AI代码助手 代码解读复制代码/continue

為什麼重要:Claude Code 很多價值都沉澱在上下文裡。工作階段恢復用得好,等於少重複解釋一大堆背景。

注意:工作階段恢復通常和目前目錄有關。在哪個專案裡開的工作階段,就盡量回到那個專案目錄恢復。


🥈 2. /init / /memory / CLAUDE.md:讓 Claude 先認識專案

場景:第一次在某個專案裡用 Claude Code。

用法

bash 体验AI代码助手 代码解读复制代码/init
/memory

/init 會生成或更新 CLAUDE.md,把專案結構、開發命令、約定寫進去。/memory 則適合後續補充長期規則,比如:

  • 測試命令是什麼
  • 程式碼風格是什麼
  • 哪些目錄不能亂動
  • 提交前必須跑哪些檢查

實際工程裡,我建議把 CLAUDE.md 記憶分三層:

  • 全域記憶:寫你所有專案都通用的個人習慣,比如回答語言、改程式碼前先說計劃、危險命令必須確認。
  • 專案記憶:寫專案技術棧、目錄結構、測試命令、業務邊界、團隊約定。
  • 本地專案記憶:寫只跟你機器有關的資訊,比如本地資料庫位址、個人腳本路徑、自己常跑的單測。

為什麼重要:很多人一上來就讓 Claude 改程式碼,其實它還不了解專案。先把專案規則寫清楚,後面每次對話都會穩很多。

這塊我會把它放到「黃金工作流」裡,而不是只當設定項。因為真實工程裡,CLAUDE.md 寫得好不好,直接決定 Claude 後面理解專案的穩定性。


🥉 3. 多模型切換:按專案和任務選模型

場景:伺服器端複雜邏輯用 GLM,Flutter 用戶端輕量改動用 Kimi;或者平時用便宜模型,關鍵架構設計再切強模型。

常用方式

bash 体验AI代码助手 代码解读复制代码# 臨時啟動指定模型
claude --model glm-5.1
claude --model kimi-k2.5

# 用腳本啟動不同模型 profile
cc-glm
cc-kimi
cc-im-server
cc-im-flutter

互動模式裡也可以直接切:

bash 体验AI代码助手 代码解读复制代码/model glm-5.1
/model kimi-k2.5

長期預設:寫進對應專案的 .claude/settings.local.json
臨時切換:用 /modelclaude --model
高頻切換:用 cc-glmcc-kimi 這種啟動腳本。

為什麼重要:不同任務適合不同模型。把模型切換設定好之後,你不用每次手動改環境變數,也能避免伺服器端、Flutter 用戶端、SDK 來回切時用錯模型。


🏅 4. @ 檔案引用:精準告訴它看哪裡

場景:想讓 Claude 看某個特定檔案、目錄,而不是讓它自己猜。

用法

less 体验AI代码助手 代码解读复制代码幫我優化 @xzll-im-server/im-business/ 這個模組
看看 @xzll-im-flutter-client/lib/ 目錄下有沒有重複邏輯
對比 @xzll-im-server/im-connect/ 和 @xzll-im-flutter-sdk/lib/ 的訊息處理差異

效果:自動補全檔案路徑,不容易寫錯,也能減少「你到底在說哪個檔案」的歧義。

實測感受@ 是最樸素但最有用的能力之一。提示詞越精準,Claude 越不容易跑偏。


🏅 5. /plan:複雜或大改動前必用

場景:重構模組、改資料庫結構、調整架構、遷移依賴、修複雜 bug。

用法

bash 体验AI代码助手 代码解读复制代码/plan 重構 IM 訊息投遞鏈路,梳理伺服器端、SDK、Flutter 用戶端三端影響

效果:Claude 會先分析程式碼、列出改動方案、評估風險,你確認後再執行。

為什麼重要:大任務不要一上來就讓它動手。先讓它把方案講清楚,你能提前發現方向錯了、範圍大了、風險漏了。


🏅 6. ultrathink:複雜問題讓它多想一層

場景:架構設計、疑難 bug、效能瓶頸、安全風險分析、重要方案評審。

用法

bash 体验AI代码助手 代码解读复制代码ultrathink 幫我分析 IM 訊息投遞鏈路有沒有一致性問題
ultrathink review @xzll-im-server/im-auth/,重點看認證風險和邊界條件
ultrathink 比較「伺服器端主動推送」和「用戶端拉取補償」兩個方案的長期維護成本

為什麼重要:有些任務不是「快點給答案」就好,而是要把風險、邊界、反例、長期影響都想清楚。ultrathink 的價值就在這裡。

/plan 的差別/plan 是讓 Claude 先給執行方案;ultrathink 是讓它在回答前投入更多推理。複雜任務裡可以組合使用:

bash 体验AI代码助手 代码解读复制代码/plan ultrathink 重構 IM 會話狀態機,要求先分析風險和遷移步驟

注意:小問題不要濫用。ultrathink 會更費 token,也可能讓回答變長。適合關鍵問題,不適合每一句都加。


🏅 7. /context:判斷上下文是否健康

場景:聊了一段時間後,Claude 開始變慢、遺漏細節,甚至開始胡說八道。

用法

bash 体验AI代码助手 代码解读复制代码/context

效果:查看目前上下文使用情況。

我的習慣

  • 低於 70%:正常用
  • 70% - 85%:準備 /compact
  • 超過 85%:盡快壓縮,或者開新工作階段

為什麼重要:很多「AI 突然變笨」的問題,本


精選技術文章翻譯,幫助開發者持續吸收新知。

共有 0 則留言


精選技術文章翻譯,幫助開發者持續吸收新知。
🏆 本月排行榜
🥇
站長阿川
📝12   💬4   ❤️1
464
🥈
alicec
📝1   ❤️2
87
#4
我愛JS
💬1  
3
評分標準:發文×10 + 留言×3 + 獲讚×5 + 點讚×1 + 瀏覽數÷10
本數據每小時更新一次
📢 贊助商廣告 · 我要刊登