完整學習指南 · 2026

歡迎來到 Claude Code 學習中心

從零開始,循序漸進掌握 Anthropic 出品的終端機 AI 程式設計助手 — 從安裝、指令、Python 開發、Git 協作,一路到多代理進階應用。

什麼是 Claude Code?

Claude Code 是 Anthropic 推出的 AI 編程代理。本指南以終端機(Terminal / PowerShell)版本為主,同一套引擎也提供 VS Code / JetBrains 擴充、桌面 App 與網頁版(claude.ai/code)。它能夠:

📖

讀懂整個專案

自動探索專案結構,理解程式碼之間的關聯與依賴。

✏️

編輯多個檔案

跨檔案重構、新增功能、修復 bug 都能一次完成。

⚡

執行終端指令

跑測試、安裝套件、執行腳本,全程不離開對話。

🌿

管理 Git 與 GitHub

提交、推送、建立 PR、處理 Issue 都能交給它。

🤖

多代理協作

派出子代理同時處理多個獨立任務,加速大型工作。

🔌

連接外部工具

透過 MCP 連接資料庫、API、設計工具、雲端服務。

為什麼選擇 Claude Code?

相較於其他 AI 編程工具,Claude Code 有幾個獨特之處:

  • 在你最熟悉的環境中工作:就在你每天使用的終端機中;喜歡圖形介面也可改用 IDE 擴充或桌面 App,設定共用。
  • 真正理解大型程式碼庫:Claude 模型在處理上萬行程式碼的跨檔案邏輯上表現特別出色。
  • 高度可擴展:透過 Subagents、Hooks、Skills、MCP、Plugins,可以打造完全客製化的開發助手。
💡 適合誰學?

本指南適合所有 Python 工程師、Web 開發者、DevOps、資料科學家,以及想要學會用 AI 加速開發的任何人。完全沒接觸過終端機也沒關係,安裝章節會手把手帶你完成。

如何使用本網站

左側導覽列分為九大區塊,建議按照順序學習:

  1. 入門:了解 Claude Code 的定位與優勢,以及終端機、IDE、桌面、網頁等各種使用入口
  2. 安裝與設定:手把手完成 Windows / Mac 的安裝,並學會權限模式與安全設定
  3. 常用指令:依分類學習所有核心指令
  4. IDE 環境:挑選並設定編輯器,讓 IDE 與 Claude Code 協作
  5. Python 開發:建立第一個 Claude Code 加持的 Python 專案
  6. Git & GitHub:用 Claude Code 取代繁瑣的版本控制操作
  7. 規格驅動開發:學會用文件先行的方式產出高品質程式
  8. 進階應用:解鎖子代理、MCP、Hooks、Skills 等強力工具
  9. Plugins 與熱門擴充:用 plugin 安裝社群與官方擴充,並打造自己的 Skill 包
🎯 學習小撇步

每段程式碼右上角都有「複製」按鈕,可一鍵貼到終端機執行。遇到不懂的指令,直接在 Claude Code 中輸入 /help 就能查看完整說明。

Claude Code 與其他工具比較

了解 Claude Code 在 AI 編程工具生態中的定位,幫你判斷它是不是你需要的工具。

主流 AI 編程工具一覽

Claude Code

類型:AI 編程代理(終端機起家,另有 IDE、桌面、網頁版)

  • 跨檔案重構強
  • Subagents 平行協作
  • MCP / Plugins 擴充生態
  • Headless(-p)自動化

Cursor

類型:AI 優先 IDE

  • 內建 AI 的 VS Code fork
  • Tab 補全 + Agent 模式
  • 多模型切換(含 Claude)
  • 適合 IDE 重度使用者

GitHub Copilot

類型:IDE 外掛 + CLI 代理

  • 即時程式碼補全
  • IDE 內 Agent 模式(VS Code、JetBrains 等)
  • Copilot CLI:終端機編程代理
  • 與 GitHub Issue / PR 深度整合

Cline / Aider

類型:開源 AI 代理

  • 可自選模型(含本地)
  • Aider 主打 Git 整合
  • Cline 在 VSCode 中執行
  • 適合進階使用者客製

適用情境快速判斷

你的需求 推薦工具 原因
跨多檔案的重構、新功能開發 Claude Code 對大型程式碼庫理解與規劃能力最強
視覺化編輯體驗、UI 工作流 Cursor IDE 原生體驗 + AI 整合
快速程式碼補全、GitHub 整合 GitHub Copilot 低延遲行內建議,可直接在 GitHub 上指派任務
自動化、CI/CD、批次任務 Claude Code Headless 模式(-p)+ GitHub Actions 整合
與 Git/GitHub 深度整合 Claude Code 或 Aider 原生 Git 操作支援
使用本地或開源模型 Aider / Cline 支援 Ollama、Llama 等

Claude Code 的獨特優勢

1. Terminal-First,但不只有終端機

核心是把 AI 變成你的終端機夥伴,對習慣 vim、emacs、tmux 工作流的工程師特別友好。同一套引擎也提供 VS Code / JetBrains 擴充、桌面 App、網頁版(claude.ai/code)與手機 App,設定(CLAUDE.md、MCP 等)在各介面共用。

2. 強大的代理架構

支援同時派出多個子代理處理不同任務(例如:一個做測試、一個做文件、一個做重構),主代理協調整合結果。

3. 可深度客製

透過 CLAUDE.md、Hooks、Skills、MCP 四大機制,可以把 Claude Code 打造成完全符合團隊習慣與專案需求的助手。

4. 訂閱方案彈性

Pro($20 美金/月)適合入門與輕度使用;Max 有 5x($100/月)與 20x($200/月)兩檔,提供更高用量額度,適合重度使用者;團隊可選 Team / Enterprise。也可透過 Claude Console 以 API 用量計費。價格以 claude.com/pricing 為準。

💡 我可以同時用多個工具嗎?

當然可以!很多開發者會在 IDE 中用 Cursor 或 Copilot 做日常編輯,用 Claude Code 做大型重構、文件撰寫、自動化任務。Claude Code 的 VS Code 擴充也能裝在 Cursor 裡,彼此並不衝突。

⚔️ CLI 三巨頭深度對照

Claude Code vs Codex CLI vs Antigravity CLI — Anthropic、OpenAI、Google 三大模型廠商的旗艦 CLI 編程代理比較。

撰寫時(2026/10)整理 · 規格變動快,請以官方文件為準

三大廠商正面對決

Anthropic、OpenAI、Google 都推出了自家旗艦 CLI 編程代理。本頁對照三者的定位、安裝、客製化、訂閱與適用情境,幫你做出明智選擇。模型版本與跑分幾乎每季都在變,本頁刻意不列 tok/s 或跑分數字,請以各家官方公告為準。

🏁 一張圖看懂三巨頭

🟧 Claude Code

Anthropic 出品 · 指令 claude

  • 模型:Claude Opus 5.5 / Sonnet 5.5 / Haiku 4.5 等
  • 強項:複雜推理、跨檔案重構、長 context
  • 介面:終端機、VS Code、JetBrains、桌面 App、網頁、手機
  • 客製化:CLAUDE.md、Subagents、Hooks、Skills、MCP、Plugins
  • 社群:plugins 生態活躍

🟢 Codex CLI

OpenAI 出品 · 指令 codex

  • 模型:OpenAI 最新 GPT 系列(可用 /model 切換)
  • 強項:與 ChatGPT 帳號整合
  • 介面:CLI、IDE 擴充、雲端與 App
  • 客製化:AGENTS.md、MCP
  • 整合:ChatGPT 訂閱共用

🔵 Antigravity CLI

Google 出品 · 指令 agy

  • 模型:Google Gemini 系列
  • 強項:與 Google 生態整合、背景代理
  • 介面:CLI + Antigravity IDE
  • 客製化:GEMINI.md / AGENTS.md、Skills、MCP
  • 替代:取代已停止服務個人帳號的 Gemini CLI

📊 功能對照表

項目 Claude Code Codex CLI Antigravity CLI
廠商AnthropicOpenAIGoogle
主力模型Claude Opus 5.5 / Sonnet 5.5GPT 系列Gemini 系列
專案指示檔CLAUDE.md(也可讀 AGENTS.md)AGENTS.mdGEMINI.md / AGENTS.md
多代理Subagents 可平行執行,另有背景代理(agent view)支援支援背景代理
桌面 App✅ Claude 桌面 App(Code 分頁)✅ Codex App✅ Antigravity IDE
IDE 擴充✅ VS Code(含 Cursor)、JetBrains✅ VS Code 等Antigravity IDE
網頁 / 雲端✅ claude.ai/code✅ Codex 雲端請見官方文件
行動裝置✅ Claude iOS / Android App、Remote Control✅ 透過 ChatGPT App請見官方文件
SDK✅ Claude Agent SDK請見官方文件請見官方文件
語音輸入✅ /voice 語音聽寫請見官方文件請見官方文件
瀏覽器整合✅ Claude in Chrome(--chrome)請見官方文件請見官方文件

「請見官方文件」表示撰寫時無法從官方來源確認,不代表沒有該功能。

🛠️ 安裝指令對照

macOS / Linux

Terminal
# 🟧 Claude Code
curl -fsSL https://claude.ai/install.sh | bash

# 🟢 Codex CLI
npm install -g @openai/codex

# 🔵 Antigravity CLI
curl -fsSL https://antigravity.google/cli/install.sh | bash

Windows

PowerShell
# 🟧 Claude Code
irm https://claude.ai/install.ps1 | iex
# 或 winget install Anthropic.ClaudeCode

# 🟢 Codex CLI(需先安裝 Node.js)
npm install -g @openai/codex

# 🔵 Antigravity CLI
irm https://antigravity.google/cli/install.ps1 | iex

啟動指令

Terminal
claude                 # 🟧 互動模式(首次啟動會引導登入)
codex                  # 🟢 互動模式
agy                    # 🔵 互動模式

# 認證(首次使用)
claude auth login      # 或在 Claude Code 對話中輸入 /login
codex login            # 或首次啟動時選 Sign in with ChatGPT
# Antigravity:首次啟動時用 Google 帳號登入

💰 訂閱方案對照

方案Claude CodeCodex CLIAntigravity CLI
個人方案 Pro $20/月;Max 5x $100/月、Max 20x $200/月 ChatGPT Plus / Pro 等 Google AI Pro / Ultra 等
團隊方案 Team / Enterprise Business / Enterprise 企業方案
API 計費 ✅ Claude Console ✅ OpenAI API 請見官方文件
用量限制 每 5 小時滾動額度 + 每週上限(可用 /usage 查看) 依方案而定 依方案與 AI credits 而定

價格為美金、撰寫時(2026/10)參考值,各家常調整,請以 claude.com/pricing 等官方頁面為準。

🎨 客製化機制對照

專案級設定檔

工具設定檔名稱位置
Claude CodeCLAUDE.md專案根 / ~/.claude/
Codex CLIAGENTS.md專案根
Antigravity CLIGEMINI.md / AGENTS.md專案根 / ~/.gemini/

客製化能力

🟧 Claude Code

最豐富的客製化生態

  • CLAUDE.md:多層記憶 + auto memory
  • Subagents:專業角色、可平行
  • Hooks:事件自動化
  • Skills:可重用工作流
  • MCP / Plugins:外部整合與打包分享

🟢 Codex CLI

統一規格,簡潔聚焦

  • AGENTS.md:專案規範(/init 建立)
  • MCP:可使用 MCP server
  • 跨介面:CLI / IDE / 雲端

🔵 Antigravity CLI

承接 Gemini CLI 生態

  • GEMINI.md / AGENTS.md:專案脈絡
  • Skills:.agents/skills/
  • MCP:可使用 MCP server
  • Plugins:可匯入 Gemini CLI 擴充

🚀 多代理能力對照

🟧 Claude Code:主代理可同時派出多個 Subagents 平行處理(例如一個查程式碼、一個寫測試),各自用獨立 context 完成後回報;也能把整個工作階段丟到背景執行。客製化最深,可定義專屬角色、Skills、Hooks。
🟢 Codex CLI:支援把長任務交給雲端執行,完成後再回來檢視。
🔵 Antigravity CLI:支援背景代理,長時間任務不會卡住終端機。

🎯 適用情境推薦

你的需求推薦工具原因
跨多檔案的複雜重構🟧 Claude Code推理與長 context 理解強,可平行派工
需要深度客製工作流🟧 Claude CodeHooks、Skills、Subagents、Plugins 最完整
豐富的社群擴充🟧 Claude Codeoh-my-claudecode、gstack、Superpowers 等社群 plugins
同一套工具跨終端機 / IDE / 網頁 / 手機🟧 Claude Code各介面共用同一引擎與設定
已訂閱 ChatGPT🟢 Codex CLI共用既有訂閱額度
Microsoft / Azure 環境🟢 Codex CLI透過 ChatGPT / Azure OpenAI
已訂閱 Google AI 方案🔵 Antigravity CLI共用 Google 帳號與方案
從 Gemini CLI 轉移🔵 Antigravity CLI官方提供擴充匯入工具

🔀 跨工具搭配建議

組合 1:品質優先派

主力 Claude Code,搭配 Codex CLI 做「第二意見」review。複雜重構靠 Claude,做完讓 Codex 做獨立 review 找盲點。

範例
# Claude 做主力重構
claude "refactor the auth module to use JWT"

# Codex 做獨立 review
codex "review the recent changes for security issues"

組合 2:三王並用

社群外掛 oh-my-claudecode(非官方)提供 /ask codex、/ask antigravity 指令,請其他模型當顧問、再由 Claude 統整意見,適合架構決策、難題分析。需另外安裝並設定好另外兩個 CLI。

Claude Code(已裝 OMC)
/ask codex "我們的資料庫應該選 PostgreSQL 還是 MongoDB?"
/ask antigravity "我們的資料庫應該選 PostgreSQL 還是 MongoDB?"
# 再請 Claude 統整兩方意見並給出建議

📦 從別的工具遷移

從 Gemini CLI → Antigravity CLI

Google 已於 2026/6/18 起停止為免費、AI Pro、Ultra 個人帳號提供 Gemini CLI 服務(企業授權另計),改由 Antigravity CLI 取代。官方提供擴充匯入指令:

Terminal
agy plugin import gemini

注意:專案中的 .gemini/skills/ 需手動改到 .agents/skills/。詳見 官方遷移指南。

從其他工具 → Claude Code

Claude Code 內建 claude import 子指令,可從其他 AI 編程代理匯入設定;若專案已有 AGENTS.md,Claude Code 也能直接讀取。

更新 Codex CLI

Terminal
npm install -g @openai/codex@latest

更新 Claude Code

Terminal
claude update
# 原生安裝器預設會在背景自動更新;Homebrew / WinGet 則用 brew upgrade / winget upgrade

📈 怎麼取捨

⚡ 速度與品質:三家模型更新頻繁,跑分排名每季都可能洗牌。與其看數字,不如拿自己的專案實測一週。
🛠️ 客製化:Claude Code(Hooks / Skills / Subagents / Plugins)最完整。
💰 性價比:三家入門方案都在每月 $20 美金左右,差別在額度與重度方案。
🌐 生態系:選你已經在用的帳號生態(Anthropic / ChatGPT / Google),上手最快。

🤔 我該選哪一個?

🟧 選 Claude Code 如果你
  • 重視程式碼品質與複雜推理
  • 常做大型重構、跨檔案邏輯
  • 想要最豐富的客製化與社群擴充
  • 想在終端機、IDE、桌面、網頁、手機之間無縫切換
🟢 選 Codex CLI 如果你
  • 已經有 ChatGPT 訂閱想善用
  • 在 Microsoft / Azure 生態系工作
  • 想要 Claude 以外的第二意見
🔵 選 Antigravity CLI 如果你
  • 已使用 Google AI 方案或 Google Cloud
  • 想搭配 Antigravity IDE 使用
  • 原本是 Gemini CLI 使用者
💡 結論:沒有最好,只有最適合

很多開發者不只用一個工具:用 Claude Code 做複雜思考與主力開發,再用另一家做第二意見。本指南的主軸是 Claude Code,但學會它的核心觀念(指示檔、權限、MCP、代理)後,其他兩個也能快速上手。

安裝 Claude Code

官方推薦方式:使用原生安裝器(Native Installer),無需 Node.js,安裝後會在背景自動更新。

📋 開始之前你需要準備
  • 一個終端機(Windows 是 PowerShell、Mac 是 Terminal)
  • 網路連線(Claude Code 是即時呼叫雲端 API)
  • 付費的 Claude 帳號(Pro、Max、Team、Enterprise),或 Claude Console 帳號(依 API 用量計費)
  • 免費版的 Claude.ai 帳號 無法使用 Claude Code
  • 系統需求:macOS 13+、Windows 10 1809+、Ubuntu 20.04+ / Debian 10+ / Alpine 3.19+,4 GB 以上記憶體

選擇你的作業系統

打開「終端機」

按下 ⌘ + Space 打開 Spotlight,輸入 terminal 並按 Enter。

這就是你接下來要互動的環境,所有指令都會在這裡執行。

使用原生安裝器(推薦方式)

複製下方指令貼到終端機並按 Enter:

Terminal
curl -fsSL https://claude.ai/install.sh | bash

安裝器會自動下載並安裝 Claude Code,啟動指令放在 ~/.local/bin/claude,無需 Node.js,會在背景自動更新。

替代方案:用 Homebrew 安裝

如果你已經用 Homebrew 管理所有套件,可以這樣裝:

Terminal
# 穩定版(約晚一週,跳過有重大問題的版本)
brew install --cask claude-code

# 最新版(搶先體驗)
brew install --cask claude-code@latest
⚠️ 注意

Homebrew 安裝預設不會自動更新,需要定期執行 brew upgrade claude-code(或 claude-code@latest)。若想讓 Claude Code 自動幫你跑升級,可設定環境變數 CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE=1。

驗證安裝成功

關掉終端機再重開(或執行 source ~/.zshrc),然後輸入:

Terminal
claude --version

應該會顯示版本號(例如 2.1.292 (Claude Code))。若顯示「command not found」請翻到「故障排除」章節。

打開 PowerShell

按下鍵盤左下角的 Windows 鍵,直接輸入 powershell,點選「Windows PowerShell」開啟。

PowerShell 就是 Windows 版的終端機,所有指令在這裡執行。

使用原生安裝器(推薦方式)

複製下方指令貼到 PowerShell 並按 Enter:

PowerShell
irm https://claude.ai/install.ps1 | iex

irm 是 Invoke-RestMethod 的縮寫,iex 是 Invoke-Expression。整段意思是「下載安裝腳本並執行」。

安裝完成後請開一個新的 PowerShell 視窗。如果輸入 claude 仍顯示找不到指令,代表 claude.exe 所在資料夾還不在 PATH 中,請複製下方指令貼到 PowerShell 並按 Enter:

PowerShell
$currentPath = [Environment]::GetEnvironmentVariable('PATH', 'User')
[Environment]::SetEnvironmentVariable('PATH', "$currentPath;$env:USERPROFILE\.local\bin", 'User')

這段指令會把 %USERPROFILE%\.local\bin(原生安裝器把 claude.exe 放在這裡)加進使用者層級的 PATH。執行後請關閉並重新打開 PowerShell讓設定生效。

替代方案:用 WinGet 安裝

WinGet 是 Windows 內建的套件管理器,也可以用它安裝:

PowerShell
winget install Anthropic.ClaudeCode

WinGet 安裝預設不會自動更新,請定期執行 winget upgrade Anthropic.ClaudeCode。

另一個替代:WSL(適合進階使用者)

如果你習慣 Linux 環境,可以先裝 WSL2 再用 Linux 方式安裝:

PowerShell(系統管理員)
wsl --install -d Ubuntu

裝完後重啟,進入 Ubuntu 再用 Linux 安裝指令。

驗證安裝成功

關掉 PowerShell 再重開,輸入:

PowerShell
claude --version

應該會顯示版本號。若失敗,請翻到「故障排除」章節。

💡 推薦安裝 Git for Windows

Git for Windows 不是必裝,但官方建議安裝:有了它,Claude Code 會用 Git Bash 執行指令(Bash 工具),也方便做版本控制;沒裝的話會改用 PowerShell 執行指令。請至 git-scm.com 下載。原生安裝器不需要 Node.js;只有你的專案本身(或某些 MCP 伺服器)需要時才要另外安裝。

原生安裝器(所有發行版通用)

Bash
curl -fsSL https://claude.ai/install.sh | bash

替代方案:套件管理器安裝(apt / dnf / apk)

Anthropic 提供官方簽章的套件庫。以下設定為 stable 頻道(約晚一週)。套件管理器安裝不會自動更新,需隨系統一起升級。

Debian / Ubuntu

Bash
# 1. Download the signing key
sudo install -d -m 0755 /etc/apt/keyrings
sudo curl -fsSL https://downloads.claude.ai/keys/claude-code.asc -o /etc/apt/keyrings/claude-code.asc

# 2. Add the repository and install
echo "deb [signed-by=/etc/apt/keyrings/claude-code.asc] https://downloads.claude.ai/claude-code/apt/stable stable main" | sudo tee /etc/apt/sources.list.d/claude-code.list
sudo apt update
sudo apt install claude-code

Fedora / RHEL

Bash
sudo tee /etc/yum.repos.d/claude-code.repo <<'EOF'
[claude-code]
name=Claude Code
baseurl=https://downloads.claude.ai/claude-code/rpm/stable
enabled=1
gpgcheck=1
gpgkey=https://downloads.claude.ai/keys/claude-code.asc
EOF
sudo dnf install claude-code

Alpine

Bash
wget -O /etc/apk/keys/claude-code.rsa.pub https://downloads.claude.ai/keys/claude-code.rsa.pub
echo "https://downloads.claude.ai/claude-code/apk/stable" >> /etc/apk/repositories
apk add claude-code

安裝前建議先依 官方文件 核對簽章金鑰指紋,並查看 latest 頻道的設定方式。

驗證安裝

Bash
claude --version
claude doctor   # 檢查環境是否正確
📦 還看到 npm 安裝法?

官方仍提供 npm install -g @anthropic-ai/claude-code(需 Node.js 22 以上,不要加 sudo),裝到的是同一個原生程式。但對新手來說,上面的原生安裝器最簡單,也會自動更新。另外,如果你偏好圖形介面,也可以直接下載 Claude 桌面 App,在「Code」分頁使用 Claude Code,不必另外安裝 CLI。

✅ 安裝成功了!下一步

接著到「設定 cc 捷徑」章節,幫 claude 取個短綽號,每次少打四個字。

設定 cc 一鍵捷徑

每次要叫 Claude Code 都打 claude 有點長,幫它取個綽號叫 cc,之後只要兩個字母就能啟動。這在技術上叫做 alias(別名)。

確認你用的是哪個 Shell

Mac 預設 Shell 是 Zsh。執行以下指令確認:

Terminal
echo $SHELL

如果顯示 /bin/zsh → 用 .zshrc;如果是 /bin/bash → 用 .bashrc 或 .bash_profile。

加入 alias 到設定檔

用以下指令一次完成(Zsh 用戶):

Terminal
echo 'alias cc="claude"' >> ~/.zshrc

Bash 用戶請把 .zshrc 改成 .bashrc。

讓設定立即生效

Terminal
source ~/.zshrc

或是關掉終端機再重開,效果一樣。

測試 cc 是否能用

Terminal
cc --version

有顯示版本號就成功了!🎉

⚠️ 小提醒:cc 原本是 C 編譯器

在 macOS / Linux 上,cc 原本是系統的 C 語言編譯器指令。設了這個 alias 後,你在自己輸入的終端機指令裡,cc 會變成 Claude Code。如果你不寫 C / C++,這通常沒影響(alias 只在互動式 shell 生效,make 等建置工具仍會用到真正的編譯器);若你會手動編譯 C 程式,建議改用其他名字,例如 cl 或 ai。

找到你的 PowerShell Profile

在 PowerShell 執行:

PowerShell
echo $PROFILE

會顯示一個路徑,類似:C:\Users\你的名字\Documents\PowerShell\Microsoft.PowerShell_profile.ps1

若 Profile 不存在就建立它

PowerShell
if (!(Test-Path $PROFILE)) { New-Item -Type File -Path $PROFILE -Force }

加入 cc 別名

PowerShell
Add-Content $PROFILE 'Set-Alias cc claude'

允許執行 Profile(首次設定)

PowerShell 預設不允許執行腳本,需要放寬權限:

PowerShell(系統管理員)
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

讓設定生效並測試

PowerShell
. $PROFILE          # 重新載入 profile
cc --version     # 測試

看到版本號就成功了!🎉

💡 想取其他名字?

把上面的 cc 換成任何你喜歡的,例如 ai、code、q。注意不要跟現有指令重複。

首次啟動 Claude Code

安裝完成、別名設好了,現在來啟動 Claude Code 並完成登入。

進入你的專案資料夾

Claude Code 會以「目前資料夾」為工作目錄。先 cd 到你的專案目錄:

Terminal
cd ~/projects/my-app

# 或建立新專案資料夾
mkdir hello-claude
cd hello-claude

啟動 Claude Code

Terminal
cc   # 或 claude(如果沒設別名)

首次啟動會跳出登入流程。

選擇登入方式

Claude Code 支援以下幾種登入方式:

  • Claude 訂閱方案登入(推薦):用 Pro / Max 帳號,或團隊管理員邀請你的 Team / Enterprise 帳號登入,會跳到瀏覽器完成授權
  • Claude Console:依 API 用量計費,適合企業或大量呼叫(需管理員先邀請)
  • 第三方雲端平台:Amazon Bedrock、Google Cloud Agent Platform(原 Vertex AI)、Microsoft Foundry,由公司 IT 設定

選第一個,瀏覽器會自動打開讓你授權。登入成功後終端機會顯示 Login successful,按 Enter 繼續。之後想換帳號,可在對話中輸入 /login 或 /logout。

看到提示符號就成功了

Claude Code
╭─── Claude Code v2.1.x ──────────────╮
│                                     │
│  Welcome back!                      │
│  Opus 5.5 · Claude Max              │
│  ~/hello-claude                     │
│                                     │
╰─────────────────────────────────────╯

> _

看到 > 輸入框就表示 Claude 在等你輸入指令了!(以上為示意,實際畫面依版本、方案與終端機寬度而不同。)首次進入某個資料夾時,Claude Code 會先問你是否信任這個資料夾,選信任即可。

跟 Claude 說第一句話

試著輸入:

Claude Code
幫我建立一個 hello.py,印出 "Hello, Claude Code!"

Claude 會建立檔案、寫入內容,並詢問你是否要執行它。恭喜,你正式踏出第一步了!🎉

啟動模式選項

指令用途
cc互動模式(最常用)
cc "幫我修這個 bug"開啟互動模式,並把這句話當成第一個提問
cc -p "幫我修這個 bug"非互動模式:印出結果後直接結束(適合腳本)
cc --continue接續上次對話
cc --resume從清單選擇要恢復的歷史對話
cc --model opus指定使用 Opus 模型

安裝故障排除

遇到問題不要慌!這裡整理了最常見的安裝錯誤與解決方案。

❌ command not found: claude ▶

原因:Shell 還沒讀到新的 PATH 設定。

解法:

  1. 關掉終端機完全重新開啟
  2. 或手動執行 source ~/.zshrc(Mac)/ . $PROFILE(Windows)
  3. 檢查 PATH:echo $PATH 應該包含 ~/.local/bin
Terminal
# 手動加入 PATH(Mac/Linux)
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
🪟 Windows:原生安裝器沒有任何反應 ▶

原因:某些 Windows 環境下原生安裝器會靜默失敗。

解法:改用 WinGet:

PowerShell
winget install Anthropic.ClaudeCode

WinGet 會有清楚的進度條與成功訊息。

🔐 PowerShell 無法執行 Profile 腳本 ▶

原因:PowerShell 預設執行原則不允許腳本。

解法:以系統管理員身分執行:

PowerShell(管理員)
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
🚫 登入時瀏覽器沒有自動打開 ▶

解法:按 c 複製登入網址,手動貼到瀏覽器即可。如果瀏覽器登入後顯示一組代碼而沒有跳回來(WSL2、SSH、容器裡常見),把代碼貼回終端機的 Paste code here if prompted 提示處。如果你有 Claude Console 帳號,也可以改用 API Key:

Terminal
export ANTHROPIC_API_KEY="sk-ant-..."
cc
⚠️ 注意計費差異

設定 ANTHROPIC_API_KEY 後,互動模式會先問你要不要使用這把 Key;一旦同意,就會優先使用它、走 API 用量計費,而不是訂閱方案的額度。若想改回訂閱,請 unset ANTHROPIC_API_KEY(並從 ~/.zshrc 等設定檔移除),再用 /status 確認目前使用的登入方式。

🐢 安裝下載速度很慢 ▶

解法:

  • 檢查網路是否穩定,必要時開啟 VPN
  • 若你在中國大陸地區,需要 VPN 才能順利存取 Anthropic 服務
  • 改用 Homebrew、WinGet 或 Linux 套件管理器安裝
🔧 萬用診斷指令 ▶

Claude Code 內建診斷工具,能自動檢測環境問題:

Terminal
claude doctor   # read-only diagnostics, no session started

claude doctor 不會開啟對話,只印出唯讀的診斷資訊:安裝狀態、自動更新結果、設定檔格式錯誤,以及附修正建議的警告。

如果 Claude Code 已經能啟動,也可以在對話中輸入 /doctor,做更完整的健檢,並能協助修正問題。查看目前登入方式、模型與版本則用 /status。

基礎指令

最常用、最基本的指令,從這裡開始熟悉 Claude Code 的對話介面。

會話控制

/help
顯示所有可用指令的清單
/clear
清除目前對話,重新開始
/compact
壓縮對話歷史,釋放 context
/exit
離開 Claude Code
/login
登入或切換帳號
/logout
登出目前帳號
/status
顯示版本、模型、帳號與連線狀態
/doctor
健檢安裝與設定問題,並可協助修復
/usage
本次花費、方案用量與統計(/cost、/stats 為別名)
/context
用彩色格狀圖顯示 context 用量
/rewind
把對話和/或程式碼倒回先前的檢查點
/btw
問個旁支問題,不加入對話紀錄

詳細用法

/help — 你的萬用查詢

不確定有什麼指令?打 /help 就對了,它會列出可用的指令與說明。更快的方式是直接輸入 /:會跳出指令選單,繼續打字即可篩選,內建指令、內建 skills 和你自己裝的 skills 都在裡面。

Claude Code
# 列出所有指令與說明
> /help

# 輸入 / 後繼續打字,選單會即時篩選(例如找 model 相關指令)
> /mod

在空白輸入列按 ? 可以開關快捷鍵說明面板。實際列出的指令會隨版本與你安裝的外掛而不同。

/clear — 開新對話

當你想開始一個全新主題時使用。它會開一段 context 全空的新對話,專案檔案不會受影響。可以寫成 /clear 舊主題名稱,幫剛剛那段對話取名;之後用 /resume 還能找回來。

⚠️ 何時不要用 /clear

如果只是 context 太長但還想保留邏輯,請用 /compact,它會總結後保留重點。

/compact — 聰明地節省 token

當對話累積很長後,Claude 會請你 /compact。它會:

  • 把過往對話總結成精簡的記錄
  • 保留關鍵決策、檔案修改、進行中的任務
  • 清掉重複內容與已完成的細節
Claude Code
# 一般 compact
> /compact

# 帶上指示,告訴 Claude 該保留什麼
> /compact 請特別保留資料庫 schema 設計和 API 路由規劃

就算你不手動執行,context 快滿時 Claude Code 也會自動 compact。

/status — 確認目前環境

打開設定介面的 Status 分頁,顯示:

  • Claude Code 版本
  • 目前使用的模型
  • 登入的帳號
  • 連線狀態

想看 token 用量或花費,要用下面的 /usage 和 /context,不是 /status。

/usage 與 /context — 看看你用了多少

  • /usage:顯示本次對話的 token 與花費估算、方案用量上限和使用統計。/cost 和 /stats 是它的別名。Pro/Max 訂閱用戶的費用已包含在方案內,請以方案用量條為準。
  • /context:把目前 context 的組成(系統提示、工具、記憶檔、對話等)畫成彩色格狀圖,還會提示哪裡最佔空間。

/btw — 問個旁支問題

做到一半想確認小事,又不想把對話弄亂?用 /btw 問的問題不會加入對話紀錄:

Claude Code
> /btw 剛剛那個設定檔叫什麼名字?

/rewind — 後悔藥

Claude 改壞了?/rewind(別名 /checkpoint、/undo)可以選一個先前的時間點,把對話、程式碼或兩者一起還原。在空白輸入列連按兩次 Esc 也能打開同一個選單。

模型與設定指令

控制 Claude 使用哪個模型、調整權限、查看花費。

模型管理

/model — 切換模型

不加參數會打開模型選單;也可以直接帶別名或完整模型名稱。用 /model 選的模型會存成之後新對話的預設;在選單中對某一列按 s 則只切換本次對話。

Claude Code
# 打開模型選單(支援的模型可用 ← → 調整 effort)
> /model

# 直接用別名切換
> /model opus
> /model fable

# 用完整模型 ID 鎖定特定版本
> /model claude-opus-5-5

# 啟動時就指定(在終端機執行)
claude --model sonnet
模型(別名)強項適用情境
Fable 5.1(fable)Claude Code 中能力最強,擅長長時間自主工作、主動驗證大型任務、根因調查、架構決策;需手動選用,不是任何方案的預設
Opus 5.5(opus)複雜推理架構設計、複雜重構、Debug 難題
Sonnet 5.5(sonnet)速度與品質平衡日常開發、寫測試、文件
Haiku 4.5(haiku)速度快、成本低簡單編輯、批次重新命名、格式化

其他特殊值:

  • opusplan:規劃模式(plan mode)時用 Opus,執行時改用 Sonnet。
  • [1m] 後綴:例如 opus[1m],使用 100 萬 token 的 context 視窗。Sonnet 5.5 本身就是 1M 視窗,所以 sonnet[1m] 對它沒有差別。
  • default:清除你的設定,回到帳號的預設模型。

別名會指向官方推薦的最新版本,而且會隨時間更新;在 Bedrock 等第三方雲端平台上,別名對應的版本可能不同。(撰寫時為 2026/10,模型清單請以 官方 Model configuration 文件為準。)

/effort — 調整思考深度

Effort 控制 Claude 每一步要想多深。越低越快越省,越高推理越深入:

Claude Code
# 不帶參數:打開滑桿
> /effort

# 直接指定:low / medium / high / xhigh / max
> /effort high

# 清除你存的設定,回到模型預設值
> /effort auto
  • Opus 5.5 和 Sonnet 5.5 預設是 medium;Haiku 4.5 不支援 effort 設定。
  • 只想讓某一次回答想深一點?在訊息裡加上 ultrathink 即可,不會改動整個對話的 effort。
  • 啟動時也能指定:claude --effort high。

/fast — 快速模式

/fast(或 Option+O/Alt+O)開關快速模式:同樣是 Opus、品質不變,但回應最多快約 2.5 倍,每 token 價格較高。只支援 Opus(如 Opus 5.5),Sonnet、Haiku 不能用;訂閱方案使用時是從 usage credits 扣款,不含在方案額度內。此功能仍屬研究預覽,細節以官方文件為準。

設定與權限

/config — 開啟設定面板

打開設定介面(別名 /settings),可調整主題、模型、輸出風格、編輯模式(例如 Vim)等偏好。也可以用 key=value 直接設定,不必開面板:

Claude Code
# 打開設定介面
> /config

# 直接設定
> /config theme=dark
> /config model=sonnet

# 列出可用的 key
> /config --help

/permissions — 管理工具權限

Claude 要做某些動作時會先詢問你。/permissions 打開互動視窗,可依範圍檢視、新增或移除 allow(允許)、ask(詢問)、deny(拒絕)規則。規則寫法像這樣:

規則範例
# allow:完全符合這個指令
Bash(npm run build)

# allow:npm run 開頭的任何指令
Bash(npm run *)

# ask:git push 前一定要問我
Bash(git push *)
💡 加快開發速度的技巧

把常用且安全的指令加入允許清單,例如 Bash(git status)、Bash(npm run *),避免每次都要按 yes。deny 規則在任何權限模式下都有效。

/usage — 查看花費與用量

舊的 /cost 現在是 /usage 的別名。Session 區塊顯示本次對話的 token 統計,金額是依牌價在本機估算(以下為示意):

Claude Code
> /usage

Total cost:            $0.55
Total duration (API):  6m 20s
Total duration (wall): 6h 33m 10s
Total code changes:    0 lines added, 0 lines removed
Usage by model:
   claude-sonnet-5-5:  1.2k input, 5.3k output, 940.0k cache read, 50.0k cache write ($0.55)

Pro、Max、Team、Enterprise 方案還會看到方案用量條與用量明細;訂閱用戶的花費已含在方案中,金額僅供參考。

輸出與顯示

/output-style — 輸出風格

改變 Claude 回應的方式。內建風格:

  • Default:標準模式
  • Proactive:直接開工,例行決定自己做合理假設,少問問題
  • Concise:先給結果,省略開場白與重述
  • Explanatory:寫程式時加上簡短的 Insight 說明背後的選擇
  • Learning:邊做邊教,還會留一小段程式碼讓你自己寫
Claude Code
# 列出可用風格並標示目前的風格
> /output-style

# 切換(不分大小寫)
> /output-style learning

也可以在 /config 選 Output style。選擇會存到專案的 .claude/settings.local.json;你也能自訂風格。

/theme — 切換主題

打開主題選單,可選 auto(跟著終端機的深淺背景)、淺色與深色、色盲友善主題、使用終端機色盤的 ANSI 主題,或自訂主題。想一步到位也可以用 /config:

Claude Code
> /theme
> /config theme=dark

檔案與專案指令

告訴 Claude 你的專案結構、引用檔案、管理記憶。

初始化專案

/init — 自動分析專案並生成 CLAUDE.md

第一次在新專案使用 Claude Code,先跑這個:

Claude Code
> /init

Claude 會:
  1. 掃描專案結構
  2. 識別語言、框架、套件管理工具
  3. 找出主要目錄與檔案
  4. 生成 CLAUDE.md(專案指南)
  5. 建議常用指令(測試、建構、執行)

檔案引用

@ 符號 — 直接引用檔案

在訊息中輸入 @ 會跳出路徑自動完成,按 Tab 選取。可以引用檔案,也可以引用整個資料夾:

Claude Code
> 幫我重構 @src/utils/api.py,把所有 sync 函式改成 async

> 比較 @models/user.py 和 @models/admin.py 的差異

> 說明一下 @src/components 的結構

如果連了 MCP 伺服器,也可以用 @server:resource 的格式引用它提供的資源。

/add-dir — 加入額外的工作目錄

預設 Claude 只能存取啟動時所在的資料夾。如要讓它存取其他目錄:

Claude Code
# 對話中加入
> /add-dir ~/projects/shared-lib

# 或啟動時就加入(在終端機執行)
claude --add-dir ~/projects/shared-lib

記憶管理

CLAUDE.md 放在哪裡?

Claude Code 每次開對話都會讀取 CLAUDE.md。依範圍從大到小:

範圍位置用途
組織政策macOS:/Library/Application Support/ClaudeCode/CLAUDE.md
Linux/WSL:/etc/claude-code/CLAUDE.md
Windows:C:\Program Files\ClaudeCode\CLAUDE.md
IT 統一管理的公司規範
使用者~/.claude/CLAUDE.md你個人在所有專案的偏好
專案./CLAUDE.md 或 ./.claude/CLAUDE.md團隊共用,進版控
本機專案./CLAUDE.local.md只屬於你的專案設定,記得加進 .gitignore
  • 子資料夾裡的 CLAUDE.md(例如 ./src/CLAUDE.md)會在 Claude 用到該資料夾時才載入。
  • 大型專案可以把規則拆成多個檔案放在 .claude/rules/,還能限定只套用到特定路徑。

Auto memory — Claude 自己記的筆記

除了你寫的 CLAUDE.md,Claude 也會自動記下你的偏好與糾正(預設開啟),存在 ~/.claude/projects/<project>/memory/,每次對話開始時載入 MEMORY.md 的前 200 行(或前 25KB)。

/memory — 檢視與編輯記憶

/memory 會列出各層 CLAUDE.md、CLAUDE.local.md 等記憶檔,選一個就用編輯器打開;也可以在這裡開關 auto memory、打開 auto memory 資料夾。

Claude Code
> /memory

用說的請 Claude 記住

直接告訴 Claude 要記什麼就好:說「記住…」會存進 auto memory;想寫進 CLAUDE.md,就明講「把這條加到 CLAUDE.md」。

Claude Code
# 存進 auto memory
> 記住:這個專案一律用 pnpm,不要用 npm

# 寫進 CLAUDE.md,跟團隊共用
> 把「所有 API 路由前綴都是 /api/v2」加到 CLAUDE.md

> 在 CLAUDE.md 註明:不要修改 legacy/ 資料夾的程式碼
📝 舊教學的 # 快捷鍵

早期版本可以在訊息開頭打 # 快速寫入記憶。目前官方文件的快捷鍵清單已沒有這個功能,請改用 /memory 或直接請 Claude 記住。

對話管理

claude -c
在終端機啟動時接續最近一次對話(--continue)
/resume
用 ID 或名稱恢復對話,不帶參數會開啟列表(別名 /continue;啟動時用 claude -r)
/rename
幫目前對話取名,方便之後找回
/branch
從這裡分岔出一條新對話,原本的保留不動
/export
把對話匯出成純文字(可指定檔名,或複製到剪貼簿)
/copy
複製 Claude 最後一則回應到剪貼簿

代理與擴充指令

管理子代理、MCP 伺服器、Hooks、Skills 等進階擴充機制。

Sub-agents 子代理

建立與管理子代理

子代理是一個個 Markdown 檔,放在專案的 .claude/agents/ 或個人的 ~/.claude/agents/。最簡單的做法是直接請 Claude 幫你建:

Claude Code
> 幫我建一個 code-reviewer 子代理,只能用 Read、Grep、Glob,
  專門檢查安全性和效能問題,存到 .claude/agents/
📝 /agents 指令的改變

在 v2.1.197 以前,/agents 會打開互動式管理介面;目前版本的 /agents 只會提醒你改用「請 Claude 建立」或直接編輯 .claude/agents/ 裡的檔案。想看 Claude 現在能傳訊息給哪些子代理,可用 /list-agents。

子代理檔案開頭的 frontmatter 常用欄位:

  • name(必填):例如 code-reviewer、test-writer
  • description(必填):什麼任務該派給這個子代理
  • tools:限制它能用的工具,例如 Read, Grep, Bash;不寫就繼承全部
  • model:sonnet、opus、haiku、fable、完整模型 ID 或 inherit
  • 檔案內文:子代理的系統提示,定義它的專業角色與行為規範

MCP 伺服器

/mcp — 管理 MCP 連線

MCP (Model Context Protocol) 讓 Claude 能連接外部服務(資料庫、API、Figma、Notion 等):

Claude Code
# 打開伺服器清單:看連線狀態、做 OAuth 驗證
> /mcp

# 重新連線某個(或全部)伺服器
> /mcp reconnect github
> /mcp reconnect all

# 暫時停用/啟用
> /mcp disable figma
> /mcp enable figma

新增或移除伺服器不是在 /mcp 裡,而是在終端機用 claude mcp 子指令:

bash
# Add a remote HTTP server
claude mcp add --transport http sentry https://mcp.sentry.dev/mcp

# List / remove servers
claude mcp list
claude mcp remove sentry

Hooks 鉤子

/hooks — 檢視自動化觸發點

Hooks 讓 Claude Code 在特定事件發生時自動執行你的腳本(例如每次編輯完就跑 formatter),不必依賴 Claude「記得」去做。Hooks 寫在 settings.json 的 hooks 欄位或由外掛提供;/hooks 是唯讀的瀏覽器,用來查看已設定的 hooks 與它們的來源。常見事件:

事件名稱觸發時機典型用途
PreToolUse工具呼叫執行前(可阻擋)擋掉危險指令、保護特定檔案
PostToolUse工具呼叫成功後編輯後跑 formatter、linter
UserPromptSubmit你送出訊息、Claude 處理之前補充脈絡、檢查輸入
SessionStart / SessionEnd對話開始(或恢復)/結束載入環境資訊、清理暫存
Stop / SubagentStopClaude/子代理回應結束跑測試、發通知
NotificationClaude Code 發出通知時(例如等你授權)桌面通知、推播到手機
PreCompact壓縮 context 之前備份對話紀錄

完整事件清單很長,請以 官方 Hooks 文件為準。想新增 hook,可以直接請 Claude 幫你改設定(內建的 /update-config skill 就是做這件事的)。

Skills 技能

/skills — 檢視技能包

Skills 是可重複使用的「迷你工作流程」:一個資料夾裡放一份 SKILL.md(例如 .claude/skills/deploy/SKILL.md)。Claude 會在相關時自動使用,你也可以直接打 /技能名稱 呼叫:

Claude Code
# 列出可用 skills(可打字篩選、調整是否顯示)
> /skills

# 直接呼叫自訂 skill:.claude/skills/deploy/SKILL.md
> /deploy

# 剛新增或修改 skill 檔案後重新掃描
> /reload-skills

Claude Code 也內建一些 skills,例如 /code-review、/simplify、/loop、/batch、/debug、/run、/verify。

外掛與其他擴充指令

/plugin
管理外掛(skills、子代理、hooks、MCP 的打包):安裝、啟用、停用
/reload-plugins
不重開就套用外掛變更
/loop
在對話開著時定時重複執行某個提示,例如 /loop 5m 檢查部署好了沒
/ide
管理 IDE 整合並顯示狀態
/statusline
設定底部狀態列
/sandbox
開關沙箱模式(僅支援的平台)
⚠️ 這些不是內建指令

網路上常看到的 /pr、/issue、/explain、/refactor、/test 都不是 Claude Code 內建指令。直接用自然語言說「幫我解釋這段」「幫我寫測試」就好;常做的流程可以自己做成 skill。

Git 整合指令

Claude Code 對 Git 與 GitHub 有深度支援,可大幅簡化日常版控操作。

內建 Git 工作流

自然語言操作 Git

不必記指令,直接用自然語言告訴 Claude:

Claude Code
> 把現在的變更分成兩個 commit,第一個是 bug 修復,第二個是新功能

> 看一下 main 跟我這個 branch 的差異,幫我寫 PR 描述

> rebase 到最新的 main,遇到衝突就停下來問我

Commit — 請 Claude 寫 commit 訊息

Claude Code 沒有內建的 /commit 指令,直接用說的就行。Claude 會看 git diff、參考專案過去的 commit 風格,寫好訊息後執行 git commit:

Claude Code
> 幫我 commit 目前的變更,訊息用 Conventional Commits 格式

> 先用 /diff 讓我看一下改了什麼,沒問題再 commit

/diff 是內建指令,可以檢視工作目錄的變更(包含 Claude 剛改的部分)。如果你喜歡一鍵式指令,可以透過 /plugin 安裝 commit-commands 外掛,它提供 /commit-commands:commit 等指令——這是外掛功能,不是內建。

GitHub 整合

Pull Request 與 Issue — 自然語言 + gh

Claude Code 透過 GitHub CLI(gh)操作 GitHub。沒有 /pr、/issue 這類內建指令,直接說需求即可:

Claude Code
> 推上去並開一個 PR,描述寫清楚改了什麼、怎麼測試

> 看一下 PR #42 有哪些 review 留言,逐一處理

> 列出目前開著的 issue,挑跟登入有關的

> 找 issue 123,分析根因並幫我修復

# 也可以用 ! 自己跑 gh 指令,輸出會留在對話中
> !gh pr list
💡 先裝好 GitHub CLI

請先安裝 gh 並登入:gh auth login。舊版的 /pr-comments 已在 v2.1.91 移除,現在請直接請 Claude 去看 PR 留言。

/code-review — 由 Claude 做 Code Review

/code-review(別名 /review)會檢查目前的 diff 有沒有正確性 bug,也可以指定 PR 編號、分支或路徑。可加 effort 等級(low 到 max),加 --fix 直接套用修正,加 --comment 把結果貼到 PR 上:

Claude Code
# 檢查目前的變更
> /code-review

# 用較高 effort 審查 PR #1234
> /code-review high 1234

# 審查並直接修正
> /code-review --fix

# 安全性專門審查(比對目前分支與 origin 預設分支)
> /security-review

需要更深入的審查,可以用 /code-review ultra(或 /ultrareview)在雲端跑多代理審查。

/install-github-app — 在 GitHub 上召喚 Claude

幫 repo 安裝 Claude GitHub App,並可選擇一併設定 GitHub Actions workflow 與 secrets。設定好後,就能在 PR 或 issue 留言裡請 Claude 幫忙。只支援 github.com 的 repo。

Claude Code
> /install-github-app

常見組合工作流

💬 「幫我修 Issue #42」
↓
🤖 Claude 讀 Issue 內容 → 探索相關程式碼
↓
🌿 建立新 branch fix/issue-42
↓
✏️ 修改程式碼並執行測試
↓
📝 Commit + Push
↓
🔀 開 PR、自動連結到 Issue #42

實用技巧

這些「非指令」的功能能大幅提升你的工作效率。

輸入特殊符號

! 開頭 — 直接執行 Bash

不用切回終端機,直接執行 shell 指令:

Claude Code
> !ls -la
> !git status
> !pytest tests/test_api.py -v
> !npm run dev

輸出會留在對話脈絡中,Claude 看得到,後續分析更精準。

請 Claude 記住

想讓 Claude 以後都記得某件事,直接說就好(舊版的 # 開頭快捷寫法已不在官方快捷鍵清單中):

Claude Code
# 存進 Claude 的 auto memory
> 記住:這個專案用 black 格式化,行寬 88

# 寫進 CLAUDE.md(或用 /memory 自己編輯)
> 把「用 black 格式化,行寬 88」加到專案的 CLAUDE.md

@ — 引用檔案 / 資源

輸入 @ 後會跳出路徑自動完成,可以引用:

  • 檔案:@src/api.py
  • 資料夾:@tests/
  • MCP 資源:@server:resource(需先連上該 MCP 伺服器)

網頁不是用 @ 引用:直接把網址貼進訊息,例如「讀一下 https://docs.example.com 再幫我寫範例」,Claude 會用網頁擷取工具去讀。

多行輸入

方法 1:\ + Enter(所有終端機都能用)

Claude Code
> 幫我寫一個 Python script,需求是: \
這個 script 接受 CSV 檔案路徑當參數, \
讀取後印出每個欄位的統計資料, \
包含平均值、中位數、標準差。

方法 2:Shift+Enter

在 iTerm2、WezTerm、Ghostty、Kitty、Warp、macOS 終端機、Windows Terminal 原生支援。VS Code、Cursor、Alacritty、Zed 等終端機,先執行一次 /terminal-setup 安裝按鍵設定。

方法 3:Ctrl+J 或 Option+Enter

Ctrl+J 不用任何設定,任何終端機都能換行。Mac 上的 Option+Enter 需要先在終端機開啟「Option 當作 Meta 鍵」(macOS 終端機可用 /terminal-setup 幫你開)。

方法 4:貼上多行內容

從別處複製多行文字直接貼上即可,適合貼大段程式碼或 log。

圖片與多模態

直接拖曳圖片到終端機

把圖片檔拖進 Claude Code 視窗,或在訊息裡寫出圖片路徑(例如「分析這張圖:/path/to/image.png」)。例如:

  • 把 Figma 截圖拖進來,請 Claude 寫 HTML/CSS
  • 把錯誤訊息截圖丟進來,請 Claude 分析
  • 把架構圖丟進來,請 Claude 寫對應的 code

剪貼簿貼圖

截圖後按 Ctrl + V 貼上——Mac 也是 Ctrl+V(iTerm2 可用 ⌘ + V);Windows 與 WSL 用 Alt + V。貼上後輸入框會出現 [Image #1] 標籤,可以在文字中指稱它。

對話技巧

明確指示 vs 模糊指示

❌ 模糊✅ 明確
「幫我改一下這個」 「在 UserModel 加 email_verified 欄位,預設 False,並更新對應的 schema migration」
「優化效能」 「get_users() 每次都查 DB,幫我加上 Redis 快取,TTL 5 分鐘」
「寫個測試」 「用 pytest 為 payment.process() 寫測試,包含成功、餘額不足、超時三種情境」

分階段執行複雜任務

Claude Code
> 我要做一個訂單管理系統。先不要寫程式,
  我們分階段做:
  
  階段 1:列出需要的資料模型(User、Order、Product...)
  階段 2:設計 API 端點
  階段 3:寫 schema migration
  階段 4:實作 endpoint
  階段 5:寫測試
  
  我們先做階段 1,列出每個 model 需要的欄位。

讓 Claude 提問

當你不確定怎麼描述需求時:

Claude Code
> 我要建一個部落格網站,但還沒想清楚需求。
  你來問我問題,幫我釐清。

停止與修正

中斷執行

按 Esc 一次:停止目前的回應或工具呼叫,已完成的部分會保留,你可以立刻改方向。Claude 工作時你也可以先打下一則訊息,它會排隊等著送出。

回到前面某一步

在空白輸入列連按兩次 Esc:打開 rewind(檢查點)選單,選一個先前的時間點,還原對話、程式碼或兩者(等同 /rewind)。如果輸入列有字,按兩次 Esc 則是清掉草稿(按 ↑ 可以找回)。

快捷鍵速查

熟記這些快捷鍵能讓你操作飛快。

對話控制

按鍵功能
Enter送出訊息
\ + Enter換行(所有終端機都能用)
Shift + Enter換行(多數現代終端機原生支援,其他先跑 /terminal-setup)
Ctrl + J換行(不用任何設定)
Esc中斷 Claude 目前的回應,或關閉對話框
Esc Esc輸入列空白時打開 rewind 選單;有字時清除草稿
Ctrl + C中斷執行;沒在執行時第一次清空輸入,第二次離開
Ctrl + D離開 Claude Code(需連按兩次確認)

畫面與輸入

按鍵功能
Ctrl + O開關詳細紀錄檢視(看工具呼叫細節)
Ctrl + T顯示/隱藏 Claude 的待辦清單
Ctrl + B把正在跑的 Bash 指令或代理丟到背景
Ctrl + G用預設文字編輯器編寫這則訊息
Ctrl + S暫存目前輸入;空白時再按一次還原
Ctrl + V(Windows/WSL:Alt + V)從剪貼簿貼上圖片
Ctrl + L重繪畫面(畫面亂掉時用,對話與輸入都保留)
Ctrl + R反向搜尋歷史輸入
↑ / ↓瀏覽歷史輸入
Tab接受自動補完建議(指令、檔名)
?(空白輸入列)開關快捷鍵說明面板

模式與模型切換

按鍵功能
Shift + Tab循環切換權限模式(見下表)
Option + P(Windows/Linux:Alt + P)切換模型,不會清掉正在打的字
Option + T(Windows/Linux:Alt + T)開關延伸思考(對 Opus 5.5、Sonnet 5.5、Fable 無效,它們一律會思考)
Option + O(Windows/Linux:Alt + O)開關快速模式
!(行首)Shell 模式:直接執行指令,輸出加入對話
/(行首)指令或 skill 選單
@檔案路徑自動完成

Mac 上部分 Option 組合鍵需要先在終端機開啟「Option 當作 Meta 鍵」才會生效。想自訂按鍵,可用 /keybindings 打開設定檔。

權限模式說明(Shift+Tab)

模式不需詢問就能做的事適合
Manual(設定值 default)只有讀取,其他動作都會問你想逐一審核、敏感專案
acceptEdits讀取、編輯檔案,以及 mkdir、mv、cp 等常見檔案指令邊看邊改程式碼
plan只讀取與分析、提出計畫,不動手改改之前先摸清楚程式碼
auto幾乎所有動作,由背景安全檢查把關長任務、減少一直按確認
  • 按 Shift+Tab 的循環順序:default → acceptEdits → plan →(可用時)auto,再回到 default。如果啟動時用了 --dangerously-skip-permissions 等方式,bypassPermissions 會插在 plan 和 auto 之間。
  • 較新版本在終端機中預設以 auto 模式啟動(帳號或模型不支援時會改用 Manual);狀態列會顯示目前模式。
  • dontAsk(沒預先允許的一律拒絕,適合 CI)不在循環裡,要用 --permission-mode dontAsk 指定。
  • 也可以用 /plan 描述 直接進入規劃模式並開始任務。
💡 推薦工作流

複雜任務先用 plan 模式(或 /plan)讓 Claude 提出計畫 → 確認後切到 acceptEdits 或 auto 讓它執行 → 完成後用 /diff 檢視結果。

💻 IDE 選擇指南

Claude Code 雖然在終端機運作,但搭配 IDE 能讓你的開發體驗加倍順暢 — 在 IDE 看程式碼、用 Claude Code 改程式碼。

為什麼需要 IDE?

Claude Code 本身是終端機工具,但很多時候你還是需要:

  • 視覺化檢視:看程式碼的結構、追蹤定義、看 Excel/Word 檔案
  • 除錯:設中斷點、查看變數狀態
  • 圖形化 Git:方便檢視 diff、stage hunks、看 history
  • 語言服務:IntelliSense、即時錯誤標示、refactor 工具

推薦 IDE 比較

IDE 定位 免費 適合誰
VSCode 業界事實標準,外掛最豐富 ✅ 所有人,特別是新手
Google Antigravity Google 的 agent-first 開發平台(Antigravity IDE + 2.0 桌面代理 App),預設使用 Gemini Flash 系列模型 ✅(可免費下載;用量額度依 Google AI 方案而定) 想體驗 agent-first 開發體驗
Cursor AI 優先的 VSCode fork 有限免費 習慣 IDE 內 AI 對話的人
JetBrains 系列 PyCharm、IntelliJ 等專業 IDE 付費(部分 IDE 有免費版) 需要強大語言服務的進階使用者
Vim / Neovim 終端機編輯器 ✅ 進階 Linux 使用者

本指南的搭配建議

🎯

新手起步

VSCode + Claude Code 官方擴充:在側邊面板對話、直接看 inline diff;需要完整 CLI 功能時再到內建終端機執行 claude

🚀

嚐鮮派

Google Antigravity,體驗 Gemini agent + 內建瀏覽器整合

⚡

多工流程

Antigravity 跑 Gemini + 終端機跑 Claude Code,跨模型對照

💡 為什麼介紹這兩個?

VSCode 是業界標準,外掛生態最完整。Google Antigravity 於 2025/11 首次推出、2026/5 發表 2.0,設計理念與 Claude Code 接近(agent-first)。其中 Antigravity IDE 基於 VSCode 核心(擴充來自 Open VSX),所以 VSCode 的擴充大部分能直接相容 — 學一套等於學兩套。

本章節學什麼?

  1. VSCode 安裝:Windows、Mac、Linux 三平台,加上 Claude Code 官方擴充
  2. Google Antigravity 安裝:三平台完整步驟
  3. 三大必裝擴充:繁體中文、Python、Office Viewer
  4. 整合 Claude Code:VS Code 擴充、JetBrains 外掛、/ide 連線與 Dev Container

VSCode 安裝

微軟出品、免費、跨平台、開源 — 全球最多開發者使用的編輯器。

選擇你的作業系統

下載安裝程式

到官網 code.visualstudio.com 點「Download for Windows」。

會自動下載最新的 Stable 版本 (.exe),檔案約 100MB。

執行安裝程式

  • 同意授權條款
  • 選擇安裝路徑(建議用預設)
  • 勾選「加入 PATH」(重要!讓你能在終端機用 code 指令)
  • 勾選「將 Open with Code 加入右鍵選單」(建議)
  • 勾選「將 Code 設為支援檔案類型的編輯器」

確認安裝成功

開新的 PowerShell 視窗,輸入:

PowerShell
code --version

看到版本號就成功了。輸入 code . 會在目前資料夾打開 VSCode。

用 WinGet 一鍵安裝(替代方案)

PowerShell
winget install Microsoft.VisualStudioCode

方法 1:官網下載

到 code.visualstudio.com 下載 .zip。

解壓後把 Visual Studio Code.app 拖到「應用程式」資料夾。

方法 2:Homebrew(推薦)

Terminal
brew install --cask visual-studio-code

把 code 指令加進 PATH

打開 VSCode → ⌘ + Shift + P → 輸入 shell command → 選「Install 'code' command in PATH」。

之後就能在終端機用:

Terminal
code .                    # 在目前資料夾開啟
code ~/projects/my-app    # 開啟特定專案
code hello.py             # 開啟單一檔案

Debian / Ubuntu

Bash
# 加入 Microsoft repo
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg
sudo install -D -o root -g root -m 644 packages.microsoft.gpg /etc/apt/keyrings/packages.microsoft.gpg
sudo sh -c 'echo "deb [arch=amd64,arm64,armhf signed-by=/etc/apt/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main" > /etc/apt/sources.list.d/vscode.list'

# 安裝
sudo apt update
sudo apt install code

Fedora / RHEL

Bash
sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
sudo sh -c 'echo -e "[code]\nname=Visual Studio Code\nbaseurl=https://packages.microsoft.com/yumrepos/vscode\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/vscode.repo'
sudo dnf install code

Arch / Manjaro

Bash
# 從 AUR 安裝
yay -S visual-studio-code-bin

VSCode 介面快速導覽

介面區塊
┌─────────────────────────────────────────────┐
│ [≡]  File Edit ...  ← 選單列                 │
├──┬──────────────────────────────────────────┤
│📁│                                          │
│🔍│  ← 主編輯區                              │
│🔃│                                          │
│🐛│                                          │
│🧩│  Extensions 在這 ↑                       │
│⚙️│                                          │
├──┴──────────────────────────────────────────┤
│ > Terminal(PowerShell / bash / zsh)       │ ← Ctrl+`
└─────────────────────────────────────────────┘
 ↑
 左側活動列:檔案、搜尋、版控、除錯、擴充、設定

必學快捷鍵

功能Windows/LinuxMac
命令面板(萬用)Ctrl+Shift+P⌘+Shift+P
快速開啟檔案Ctrl+P⌘+P
開啟終端機Ctrl+`⌃+`
全域搜尋Ctrl+Shift+F⌘+Shift+F
分割編輯器Ctrl+\⌘+\
切換側邊欄Ctrl+B⌘+B
整行移動Alt+↑/↓⌥+↑/↓
多游標選取Ctrl+D⌘+D
💡 下一步

VSCode 裝好後,請依序裝這三個必裝擴充:「繁體中文語言包」→「Python」→「Office Viewer」。請從左側選單點選對應章節。

安裝 Claude Code 官方擴充

Anthropic 官方提供 Claude Code for VS Code 擴充(ID:anthropic.claude-code),是官方推薦在 VS Code 裡使用 Claude Code 的方式。需求:VS Code 1.94.0 以上,以及任一付費 Claude 訂閱(Pro / Max / Team / Enterprise)或 Claude Console 帳號。

從 Extensions 安裝

按 Ctrl+Shift+X(Mac:⌘+Shift+X)開啟擴充面板,搜尋「Claude Code」,認明發行者 Anthropic 後按 Install。也可以用指令安裝:

Terminal
code --install-extension anthropic.claude-code

開啟面板並登入

點編輯器右上角或側邊欄的 Claude 圖示(或命令面板輸入「Claude Code」),第一次開啟會引導你登入 Anthropic 帳號。

擴充能做什麼?

  • 原生聊天面板:在 VS Code 側邊或分頁中與 Claude 對話,可同時開多個對話分頁
  • Inline diff:Claude 的修改以 VS Code 原生 diff 顯示,可逐項接受或拒絕
  • @-mention:選取程式碼後按 Alt+K(Mac:⌥+K)插入像 @app.ts#5-10 的檔案與行號參照;Claude 也會自動看到你目前選取的文字
  • 計畫審閱(plan review):在 plan mode 下先檢視、修改 Claude 的計畫再批准執行
  • Checkpoints 回溯:把檔案改動倒回先前某則訊息的狀態
  • 對話紀錄共用:擴充與 CLI 共用同一份對話歷史,終端機執行 claude --resume 可接續擴充裡的對話
⚠️ 擴充 ≠ 終端機的 claude 指令

擴充內建自己的一份 CLI 供聊天面板使用,但不會把 claude 加進你的 PATH。想在 VS Code 內建終端機打 claude(例如使用 ! Bash 捷徑、Tab 補全、完整的指令清單等 CLI 專屬功能),仍要另外照「安裝 Claude Code」章節完成獨立安裝。

💡 Cursor 等 VS Code 分支也能用

同一個擴充也能裝在 Cursor,以及其他 VS Code 分支編輯器(如 Kiro;可從 Open VSX 安裝)。若你的編輯器裝不了擴充,就在它的內建終端機執行 claude — CLI 在任何終端機都能用。詳見官方 VS Code 文件。

Google Antigravity

Google 推出的 agent-first AI 開發平台:2025/11 首發 Antigravity IDE,2026/5 Google I/O 發表 Antigravity 2.0。

Gemini Flash 系列 · agent-first · IDE / 桌面 App / CLI

什麼是 Antigravity?

由 Gemini 模型驅動的 AI 開發環境,讓你把跨多步驟的編程任務委派給自主 AI agent。撰寫時(2026/10)預設使用 Gemini Flash 系列(官方於 2026/5 起陸續推出 3.5 → 3.8 Flash),也提供 Gemini Pro 系列模型(如 3.1 Pro);實際可用模型以官方公告為準。

Antigravity 的三種形態

產品是什麼適合
Antigravity IDE基於 VSCode 的編輯器,內建 agent 面板;擴充來自 Open VSX想要「編輯器 + AI agent」的人,本章後續的擴充安裝也以它為準
Antigravity 2.0獨立的桌面 App,以管理多個 agent 為核心(不是 VSCode 分支)主要把任務交給 agent、較少自己寫程式的人
Antigravity CLI終端機介面,指令為 agy,定位類似 Claude Code CLI習慣終端機工作流的人

核心特色

🤖

Agent-first 架構

不像傳統 AI 工具只給補全建議,Antigravity 讓 agent 從頭到尾完成複雜任務

🎛️

Agent Manager Dashboard

同時管理多個自主 agent 處理不同任務

📝

VSCode 風格編輯器

Antigravity IDE 基於 VSCode,熟悉的開發環境,大部分 VSCode 擴充可從 Open VSX 安裝

🌐

深度瀏覽器整合

透過 Chrome 擴充讓 agent 即時測試 web app

🧠

多模態理解

能處理程式碼、自然語言、圖片(如 UI 截圖)、API 回應

📋

檢查清單追蹤

AI 產出時會同步產生你需要做的事項清單,逐項打勾

系統需求

  • Windows:Windows 10(64-bit)或更新版本(x64 / ARM64)
  • macOS:macOS 12 Monterey 或更新版本(Apple Silicon 或 Intel)
  • Linux:glibc 2.28+ 與 glibcxx 3.4.25+(例如 Ubuntu 20+、Debian 10+、Fedora 36+、RHEL 8+)
  • 需要 Google 帳號(個人 Gmail 即可)
⚠️ 方案與額度

Antigravity 可免費下載使用,但模型用量有額度限制;Google AI Pro / Ultra 方案提供更高額度。方案與版本更新頻繁,下載頁與定價請以 antigravity.google 為準。本頁安裝步驟以 Antigravity IDE 為主。

選擇你的作業系統

到官網下載

開啟瀏覽器前往 antigravity.google/download

在「Antigravity IDE」區塊選擇 Windows(x64 或 ARM64)版本下載安裝程式。

執行安裝

  • 雙擊安裝程式啟動安裝精靈
  • 同意授權條款
  • 選擇安裝路徑(建議用預設)
  • 若有「加入 PATH」選項建議勾選,方便在終端機開啟

首次啟動

  • 選擇主題(淺色 / 深色 / 高對比)
  • 從 VSCode / Cursor 匯入設定(推薦,省去重複設定)
  • 用 Gmail 登入 Google 帳號
  • 同意 Gemini 模型使用條款

確認版本

從選單「Help → About」可查看目前版本。Antigravity 會自動更新,版本號以下載頁為準。

到官網下載

前往 antigravity.google/download

在「Antigravity IDE」區塊選對應你的 Mac 晶片:

  • Apple Silicon(M 系列晶片)→ 下載 Apple Silicon 版
  • Intel Mac → 下載 Intel 版

安裝

  • 雙擊下載的 .dmg 檔案
  • 把「Antigravity」圖示拖到「Applications」資料夾
  • 第一次開啟時,macOS 可能會問是否信任這個應用程式 — 選「打開」
  • 若被 Gatekeeper 擋住,到「系統設定 → 隱私權與安全性」按「仍要打開」

首次設定

  • 選擇主題與字型
  • 從 VSCode / Cursor 匯入設定(如果有的話)
  • 登入 Google 帳號
  • 依精靈提示設定 agent 的審核方式(例如執行指令前是否要先問你)

(選用)安裝 Antigravity CLI

想在終端機使用 Antigravity agent,可另外安裝 CLI(指令名 agy),官方下載頁提供的安裝指令:

Terminal
curl -fsSL https://antigravity.google/cli/install.sh | bash

Windows 請在 PowerShell 執行 irm https://antigravity.google/cli/install.ps1 | iex。安裝指令可能變動,請以下載頁為準。

下載 Linux 版

前往 antigravity.google/download,在「Antigravity IDE」區塊選擇 Linux(x64 或 ARM64),依下載頁指示安裝。發行套件格式與套件庫設定可能隨版本調整,請以下載頁說明為準。

先確認系統符合需求(glibc 2.28+):

Bash
ldd --version   # first line shows the glibc version

(選用)安裝 Antigravity CLI

Bash
curl -fsSL https://antigravity.google/cli/install.sh | bash
agy --version   # verify the CLI is on PATH

初次體驗:給 Antigravity 第一個任務

打開 agent 面板

在 Antigravity IDE 開啟專案資料夾後,打開 agent 對話面板(若你用的是 Antigravity 2.0 桌面 App,則直接在主畫面建立新任務)。介面位置會隨版本調整,以實際畫面為準。

建立新 agent 任務

Agent Manager
幫我建立一個 FastAPI 待辦清單 API:
- GET /todos 列出所有
- POST /todos 新增
- PUT /todos/{id} 更新
- DELETE /todos/{id} 刪除
- 用 SQLite 儲存
- 寫對應的 pytest 測試

觀察 agent 工作

Antigravity 會在右側面板顯示 agent 的思考過程:

  • 📋 規劃步驟
  • 📁 建立檔案
  • ✏️ 編輯程式碼
  • ▶️ 跑測試確認
  • ✅ 回報完成

整個過程你可以監督、暫停、修改方向。

Antigravity vs Claude Code

面向AntigravityClaude Code
模型Gemini Flash 系列為預設,另有 Gemini Pro 系列Claude Opus / Sonnet / Haiku / Fable
主介面圖形化 IDE / 桌面 App,另有 CLI(agy)終端機 CLI,另有 VS Code / JetBrains 整合與桌面 App
瀏覽器整合內建 Chrome 擴充Claude in Chrome 擴充或 MCP 連接
多代理內建 agent 管理介面Subagents、背景任務
客製化VSCode 擴充相容(IDE 版)CLAUDE.md、Hooks、Skills、Plugins
費用可免費下載,額度依 Google AI 方案需付費 Claude 訂閱(Pro / Max / Team / Enterprise)或 Console API 帳號
💡 兩者一起用

Antigravity 與 Claude Code 並非互斥!很多開發者會同時用兩者:Antigravity 處理需要視覺化(如 UI 開發、瀏覽器測試)的任務;Claude Code 處理大型重構、跨檔案邏輯、自動化腳本。跨模型對照能得到更全面的觀點。

繁體中文語言包安裝

把 VSCode / Antigravity 的介面切換成繁體中文,閱讀更順暢。

📌 通用說明

本章節適用 VSCode 與 Google Antigravity IDE。Antigravity IDE 基於 VSCode 核心,擴充面板的操作方式相同;差別在於它的擴充來自 Open VSX 而非微軟市集,少數微軟專屬擴充(例如 Pylance)在 Open VSX 上找不到。

方法 1:透過擴充市集(推薦)

打開擴充市集

有三種方式:

  • 左側活動列點「擴充 / Extensions」圖示(積木 🧩)
  • 快捷鍵 Ctrl+Shift+X(Mac: ⌘+Shift+X)
  • 命令面板 Ctrl+Shift+P → 輸入 Extensions

搜尋繁體中文語言包

在搜尋框輸入:

搜尋字串
Chinese (Traditional)

找到「Chinese (Traditional) Language Pack for Visual Studio Code」由 Microsoft 出品,識別 ID 為 ms-ceintl.vscode-language-pack-zh-hant。

點「Install」安裝

下載並安裝大約 5-10 秒(取決於網速)。

切換顯示語言

安裝完成後,VSCode / Antigravity 會自動彈出對話框問你要不要重新啟動以套用繁體中文。點「Change Language and Restart」。

如果沒有跳出來,請手動切換:

命令面板
按 Ctrl+Shift+P
> Configure Display Language
> 選擇 "zh-tw"
然後重新啟動

方法 2:用指令列安裝

Terminal
# VSCode
code --install-extension ms-ceintl.vscode-language-pack-zh-hant

Antigravity IDE 請直接在擴充面板搜尋同名擴充安裝(Open VSX 上同樣有 ms-ceintl.vscode-language-pack-zh-hant)。

切回英文(必要時)

有些情境下英文介面比較好搜尋錯誤訊息或文件:

命令面板
按 Ctrl+Shift+P
> 設定顯示語言(Configure Display Language)
> 選擇 "en"
重新啟動

編輯 locale.json(進階)

可直接編輯設定檔:

locale.json
{
  "locale": "zh-tw"
}

檔案位置:

  • Windows: %APPDATA%\Code\User\locale.json
  • Mac: ~/Library/Application Support/Code/User/locale.json
  • Linux: ~/.config/Code/User/locale.json
💡 簡體中文也想要?

把擴充 ID 改成 ms-ceintl.vscode-language-pack-zh-hans,locale 設為 "zh-cn" 即可。

常見問題

❓ 切換語言後部分文字還是英文? ▶

這是因為部分擴充元件本身沒有提供繁體中文翻譯。VSCode 核心介面、選單、命令面板都會變繁體,但第三方擴充的設定面板可能仍是英文。

❓ 重啟後沒有變繁體中文? ▶

檢查:

  1. 確認擴充已啟用(不是 disabled 狀態)
  2. 檢查 locale.json 設定是否正確
  3. 完全關閉所有 VSCode 視窗再重開(不只是 reload window)
  4. 用命令面板「Developer: Reload Window」
❓ 中文輸入法卡頓? ▶

這不是擴充問題,是 VSCode 在某些系統與輸入法組合下的已知問題。解法:

  • 關閉 IME Mode 衝突的設定
  • 更新 VSCode 到最新版
  • 嘗試其他輸入法(注音 vs 倉頡)
  • 在 settings.json 加入 "editor.experimental.asyncTokenization": true

Python 擴充安裝

Microsoft 官方 Python 擴充 — 提供完整的 IntelliSense、debug、測試、Jupyter 支援。

為什麼必裝 Python 擴充?

沒裝 Python 擴充的 VSCode 只是個文字編輯器;裝了之後馬上變成完整的 Python IDE:

💡

IntelliSense

智慧補全、定義跳轉、型別提示

🐛

視覺化除錯

設中斷點、查看變數、step over/into

🧪

測試整合

pytest / unittest 介面化跑測試

📓

Jupyter 支援

直接在 VSCode 跑 .ipynb notebook

🎨

格式化與 Linting

Black、Pylint、Flake8、Ruff 整合

🔄

環境管理

自動偵測 venv / conda / poetry / uv

安裝步驟

前置:安裝 Python

請先確認系統有 Python 3.12 以上版本(新專案建議 3.12 或 3.13):

Terminal
python --version
# 或
python3 --version

如果沒有,請依平台安裝:

  • Mac:brew install python@3.13
  • Windows:winget install Python.Python.3.13 或從 python.org 下載
  • 任何平台:已裝 uv 的話,uv python install 3.13 最省事
  • Linux:sudo apt install python3 python3-pip python3-venv

打開擴充市集

按 Ctrl+Shift+X(Mac: ⌘+Shift+X)打開擴充面板。

搜尋並安裝 Python 擴充

搜尋:

搜尋字串
Python

第一個結果是 Python by Microsoft(識別 ID:ms-python.python),有藍勾驗證標記。點「Install」。

安裝後會自動安裝三個配套擴充:

  • Pylance(ms-python.vscode-pylance)— 強大的語言伺服器
  • Python Debugger(ms-python.debugpy)— 除錯器
  • Python Environments(ms-python.vscode-python-envs)— 環境管理

註:Pylance 僅在微軟官方 VS Code 市集提供。Antigravity IDE、Cursor 等使用 Open VSX 的編輯器裝不到 Pylance,會改用各自內建或其他的 Python 語言伺服器。

指令列一行安裝(替代方案)

Terminal
code --install-extension ms-python.python

選擇 Python 直譯器

打開任何 .py 檔案後:

  • 左下角狀態列會顯示目前用的 Python 版本
  • 點它可以切換到專案的 venv
  • 或用命令面板:Python: Select Interpreter

推薦的搭配擴充

擴充用途ID
Ruff 超快的 linter + formatter(取代 Black、Flake8、isort) charliermarsh.ruff
Jupyter 跑 .ipynb notebook ms-toolsai.jupyter
Mypy Type Checker 靜態型別檢查 ms-python.mypy-type-checker
autoDocstring 自動產生 docstring 樣板 njpwerner.autodocstring
Python Test Explorer 視覺化跑測試 內建於 Python 擴充
Better Comments 讓 TODO / FIXME 註解更顯眼 aaron-bond.better-comments

建議的 settings.json 設定

在工作區根目錄建立 .vscode/settings.json:

.vscode/settings.json
{
  // Python 直譯器
  "python.defaultInterpreterPath": "./.venv/bin/python",
  
  // 自動匯入
  "python.analysis.autoImportCompletions": true,
  "python.analysis.typeCheckingMode": "basic",
  
  // 使用 Ruff 做格式化與 linting
  "[python]": {
    "editor.defaultFormatter": "charliermarsh.ruff",
    "editor.formatOnSave": true,
    "editor.codeActionsOnSave": {
      "source.organizeImports": "explicit",
      "source.fixAll": "explicit"
    }
  },
  
  // 測試設定
  "python.testing.pytestEnabled": true,
  "python.testing.pytestArgs": ["tests"],
  
  // 終端機自動啟用 venv
  "python.terminal.activateEnvironment": true
}

除錯設定(launch.json)

建立 .vscode/launch.json 來設定除錯設定檔:

.vscode/launch.json
{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Python: 當前檔案",
      "type": "debugpy",
      "request": "launch",
      "program": "${file}",
      "console": "integratedTerminal",
      "justMyCode": true
    },
    {
      "name": "FastAPI 開發伺服器",
      "type": "debugpy",
      "request": "launch",
      "module": "uvicorn",
      "args": ["src.main:app", "--reload"],
      "jinja": true
    },
    {
      "name": "pytest(所有測試)",
      "type": "debugpy",
      "request": "launch",
      "module": "pytest",
      "args": ["-v"],
      "console": "integratedTerminal"
    }
  ]
}

常用快捷鍵

動作快捷鍵
執行當前檔案F5
執行(不除錯)Ctrl+F5
設置中斷點F9
Step OverF10
Step IntoF11
跳到定義F12
查找引用Shift+F12
重新命名F2
💡 與 Claude Code 搭配

在 VSCode 內按 Ctrl+` 打開內建終端機,直接跑 cc(Claude Code)— 左邊看程式碼,右邊跟 Claude 對話,這是最高效的開發配置之一。

Office Viewer 安裝

在 IDE 內直接預覽 Word、Excel、PowerPoint、PDF — 不必再開外部 Office 軟體。

為什麼需要 Office Viewer?

開發過程中常會遇到:

  • 專案附的 Word 規格書、Excel 設計表
  • Git repo 裡的 PDF 文件
  • 需要快速看一下 .xlsx 的測試資料
  • 要產生報表預覽結果

不裝 Office Viewer 就只能切換到 Microsoft Office 或 Google 雲端硬碟,工作流程會被打斷。裝了之後 直接在 IDE 雙擊就能看。

推薦兩個版本

Office Viewer(基礎版)

cweijan.vscode-office

  • ✅ 完全免費開源
  • ✅ 支援 Word、Excel、PDF
  • ✅ Markdown WYSIWYG 編輯器
  • ✅ 輕量

Office Viewer Enhanced(強化版)

rjwang.vscode-office-enhanced

  • ✅ 更多檔案格式
  • ✅ 匯出獨立 HTML(含圖片內嵌)
  • ✅ 支援 Mermaid v11 圖表
  • ✅ Kiro IDE 相容

建議:先裝基礎版,覺得不夠用再換強化版。兩者不要同時裝以免衝突。

安裝基礎版(推薦新手)

打開擴充市集

按 Ctrl+Shift+X(Mac: ⌘+Shift+X)。

搜尋並安裝

搜尋:

搜尋字串
Office Viewer

找到「Office Viewer」by Weijan Chen(識別 ID:cweijan.vscode-office)。點「Install」。

指令列安裝

Terminal
code --install-extension cweijan.vscode-office

安裝強化版

Terminal
code --install-extension rjwang.vscode-office-enhanced

支援的檔案格式

類型副檔名功能
Word.docx / .doc檢視文件內容、保留格式
Excel.xlsx / .xls / .csv表格檢視、多工作表
PowerPoint*.pptx強化版才支援
PDF.pdf文件預覽、頁面導覽
Markdown.mdWYSIWYG 編輯器(Vditor)
HTML.html實時預覽(按 Ctrl+Shift+V)

使用方式

直接雙擊檔案

在 VSCode / Antigravity 的檔案總管雙擊任何支援的檔案,就會自動用 Office Viewer 開啟。

選擇開啟方式(若有衝突)

如果你裝了多個檢視器:

操作
右鍵點選檔案 > Open With...
> 選擇 "Office Viewer"
// 或設成預設
> Configure default editor...

Excel 表格實用功能

  • 切換不同工作表(底部 tab)
  • 調整欄寬
  • 搜尋儲存格內容
  • 複製整列 / 整欄

Markdown WYSIWYG 編輯器

基礎版會把 .md 預設改用 Vditor 編輯器。如果你習慣原本的 VSCode markdown 編輯器,請在 settings.json 加上:

settings.json
{
  "workbench.editorAssociations": {
    "*.md": "default",
    "*.markdown": "default"
  }
}

實用快捷鍵

動作快捷鍵
調整編輯器大小Ctrl/⌘ + 滑鼠滾輪
HTML 即時預覽Ctrl+Shift+V
開啟超連結Ctrl+點擊 或 雙擊

其他替代擴充

如果以上不合適,可以考慮:

擴充特色ID
Excel Viewer 由 GrapeCity 出品,專注於 Excel 與 CSV GrapeCity.gc-excelviewer
Syncfusion Document Viewer 商業級檢視器,支援 Word/Excel/PDF/CSV/TSV SyncfusionInc.Document-Viewer-VSCode-Extensions
XLSX, CSV, TSV & Markdown Editor 開源、支援表格內編輯 Muhammad-Ahmad.xlsx-viewer
vscode-pdf 僅 PDF,輕量無多餘功能 tomoki1207.pdf
💡 與 Claude Code 搭配

當 Claude Code 產出 Excel / Word 報表時,你可以直接在 IDE 內雙擊預覽結果,不必跳出去 — 工作流程更順暢。例如:「幫我把 data.csv 整理成 summary.xlsx」,產生後直接在旁邊打開查看。

整合 Claude Code 與 IDE

讓 IDE 與 Claude Code 無縫協作 — 官方擴充、終端機 CLI、JetBrains 外掛一次看懂。

三種整合方式

方式怎麼用特色
VS Code 官方擴充安裝 anthropic.claude-code,在側邊面板對話(見「VSCode 安裝」章節)圖形介面、inline diff、計畫審閱、多分頁對話;官方推薦
CLI + IDE 內建終端機在 VS Code / Cursor / JetBrains 的內建終端機執行 claude(或你的 cc 別名)所有指令與 CLI 專屬功能都能用;會自動連上 IDE,diff 在 IDE 中顯示
JetBrains 外掛從 JetBrains Marketplace 安裝「Claude Code」外掛(IntelliJ IDEA、PyCharm、WebStorm、GoLand、Android Studio 等)外掛本身不含 CLI,會在 IDE 終端機呼叫你已安裝的 claude

CLI 與 IDE 自動連線:/ide

在 IDE 的內建終端機啟動 claude 時會自動連上 IDE。如果你是在外部終端機(例如獨立的 Windows Terminal、iTerm2)啟動,進入 Claude Code 後輸入:

Claude Code
/ide

選擇要連線的 IDE 即可。連線後你會得到:

  • IDE 內看 diff:Claude 的修改以 IDE 原生 diff 檢視器顯示(可在 /config 的 Diff tool 改回 terminal)
  • 自動分享選取範圍:你在編輯器選取的程式碼與目前開啟的檔案會自動附在提問裡
  • 診斷資訊:Claude 可讀取 IDE 顯示的 lint / 語法錯誤

請在與 IDE 專案根目錄相同的資料夾啟動 Claude Code,兩邊看到的檔案才會一致。JetBrains 若偵測到 IDE 沒裝外掛,/ide 會幫你安裝並請你重啟 IDE。

常用快捷鍵

功能Windows/LinuxMac適用
在編輯器與 Claude 之間切換焦點 / 開啟 ClaudeCtrl+Esc⌘+EscVS Code 擴充、JetBrains
以新分頁開新對話Ctrl+Shift+Esc⌘+Shift+EscVS Code 擴充
插入目前檔案 / 選取範圍的 @ 參照Alt+K⌥+KVS Code 擴充
插入檔案參照(如 @src/auth.ts#L1-99)Ctrl+Alt+K⌘+⌥+KJetBrains
⚠️ 安全提醒

在 IDE 中使用 acceptEdits(自動接受編輯)模式時,Claude 可能改到 IDE 會自動執行的設定檔。對不熟的專案建議保持預設的逐次確認,並用 Read deny 規則排除 .env 等敏感檔案,避免選取內容被送出。詳見官方 VS Code 與 JetBrains 文件。

推薦工作配置

配置 1:經典單視窗

VSCode 視窗布局
┌──────────────┬──────────────────────────────┐
│              │                              │
│  📁 檔案     │  📝 程式碼編輯區             │
│  總管        │                              │
│              │                              │
│              ├──────────────────────────────┤
│              │                              │
│              │  $ cc                        │
│              │  > 幫我重構這個檔案...        │
│              │  Claude Code 終端機          │
│              │                              │
└──────────────┴──────────────────────────────┘

用 Ctrl+` 打開 VSCode 內建終端機,直接跑 cc。看程式碼與對話在同一個視窗。

配置 2:雙螢幕並排

  • 主螢幕:IDE(VSCode / Antigravity)— 看程式碼、改細節
  • 副螢幕:獨立 Terminal 視窗跑 Claude Code — 對話、規劃

適合大型專案或重度多工。

配置 3:tmux + IDE

進階使用者最愛 — 一個 tmux session 開多個 Claude Code 視窗,各自處理不同 sub-agent,IDE 純粹看結果。

讓 Claude Code 知道你的 IDE

VSCode 整合

在 CLAUDE.md 加入:

CLAUDE.md
## 開發環境
- 編輯器:VSCode
- 必裝擴充:Python (ms-python.python)、Ruff、Office Viewer
- 終端機:在 VSCode 內建終端機跑指令
- Debug:用 launch.json 的 "Python: 當前檔案" 設定檔

讓 Claude 用 VSCode 開檔案

Claude Code 可以呼叫系統指令打開特定檔案:

Claude Code
> 把剛剛產生的測試結果用 VSCode 開出來給我看
> !code reports/coverage.html

> 開啟剛建立的 Excel 報表
> !code output/sales_summary.xlsx

共享設定範本

讓團隊每個人的 IDE 設定一致,建立 .vscode/ 資料夾並 commit 到 git:

.vscode/extensions.json
{
  // 開啟這個 workspace 時,VSCode 會建議裝以下擴充
  "recommendations": [
    "anthropic.claude-code",
    "ms-ceintl.vscode-language-pack-zh-hant",
    "ms-python.python",
    "ms-python.vscode-pylance",
    "charliermarsh.ruff",
    "ms-python.mypy-type-checker",
    "ms-toolsai.jupyter",
    "cweijan.vscode-office",
    "eamodio.gitlens",
    "njpwerner.autodocstring"
  ]
}

Antigravity 與 Claude Code 並用

雖然 Antigravity 內建 Gemini agent,但你仍可在 Antigravity 的內建終端機跑 Claude Code,這樣你會有兩個 AI 同時工作:

🤖 Gemini Agent(Antigravity 內建)— 處理需要瀏覽器、視覺化的任務
↓ 互補
🤖 Claude Code(終端機)— 處理跨檔案重構、複雜邏輯、自動化
💡 跨模型比較工作流

遇到棘手問題時,讓 Gemini 與 Claude 各自分析一次,比較兩邊的方案 — 通常能找到單一模型想不到的角度。Gemini 對視覺、瀏覽器任務強;Claude 對長 context 的程式碼推理強。

常用快速指令

在 VSCode / Antigravity 中設定快速鍵,呼叫 Claude Code:

keybindings.json
[
  {
    // 在終端機跑 cc
    "key": "ctrl+alt+c",
    "command": "workbench.action.terminal.sendSequence",
    "args": { "text": "cc\u000D" }
  },
  {
    // 對目前檔案執行 Claude review
    "key": "ctrl+alt+r",
    "command": "workbench.action.terminal.sendSequence",
    "args": { "text": "cc -p \"review ${file}\"\u000D" }
  }
]

同步團隊環境

使用 VSCode 的「Settings Sync」或建立完整的 dev container。Anthropic 提供官方的 Claude Code Dev Container Feature(ghcr.io/anthropics/devcontainer-features/claude-code),加進 features 即可安裝 Claude Code;在 VS Code / Codespaces 開啟容器時還會順便裝好 Claude Code 擴充:

.devcontainer/devcontainer.json
{
  "name": "Python + Claude Code",
  "image": "mcr.microsoft.com/devcontainers/python:3.13",

  "features": {
    "ghcr.io/anthropics/devcontainer-features/claude-code:1.0": {}
  },

  "customizations": {
    "vscode": {
      "extensions": [
        "ms-ceintl.vscode-language-pack-zh-hant",
        "ms-python.python",
        "charliermarsh.ruff",
        "cweijan.vscode-office"
      ]
    }
  }
}

重建容器(命令面板 → Dev Containers: Rebuild Container)後,在容器的終端機執行 claude 登入即可。:1.0 鎖定的是 Feature 安裝腳本版本,Claude Code 本身會安裝最新版並自動更新。想參考含防火牆(init-firewall.sh)、持久化設定的完整範例,可看 anthropics/claude-code 的 .devcontainer 與官方 Dev Container 文件。

⚠️ 容器不等於絕對安全

即使在容器裡用 --dangerously-skip-permissions,惡意專案仍可能外洩容器內可取得的資料(包含 ~/.claude 裡的憑證)。只對信任的 repo 這樣做,也不要把主機的 ~/.ssh 等機密掛進容器。

🎉 設定完成!

恭喜你完成 IDE 環境設定。現在你已經擁有一個完整的開發環境:IDE 提供視覺化與檔案檢視,Claude Code 提供 AI 協作能力。可以回到主章節繼續學習 Python 開發、Git 協作、進階應用等內容。

建立 Python 專案

用現代化的工具搭配 Claude Code,打造高效率的 Python 開發環境。

選擇套件管理工具

工具適用情境速度
venv + pipPython 內建,最基本慢
uv ⭐2024+ 最熱門,超快極快
poetry需依賴管理+發佈套件中等
pipenv傳統選擇慢

推薦方式:用 uv 建立專案

安裝 uv

Mac / Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
Windows PowerShell
irm https://astral.sh/uv/install.ps1 | iex

建立專案

Terminal
uv init my-project
cd my-project

# 加入依賴
uv add fastapi uvicorn sqlalchemy pydantic

# 加入開發依賴
uv add --dev pytest pytest-cov ruff mypy black

初始化 Git 與 Claude Code

Terminal
git init
git add .
git commit -m "chore: initial commit"

cc
> /init   # 讓 Claude 分析專案並生成 CLAUDE.md

推薦的專案結構

Tree
my-project/
├── .claude/
│   ├── settings.json        # 團隊共用設定:權限、hooks、環境變數(commit)
│   ├── settings.local.json  # 個人本地設定(不 commit)
│   ├── rules/               # 依主題拆分的規則 *.md(可用 paths 限定檔案範圍)
│   ├── skills/              # 專案技能,每個技能一個資料夾含 SKILL.md
│   └── agents/              # 子代理定義 *.md
├── .mcp.json                # 專案層級 MCP 伺服器設定(commit)
├── src/
│   └── my_project/
│       ├── __init__.py
│       ├── main.py
│       ├── api/
│       ├── models/
│       └── services/
├── tests/
│   ├── conftest.py
│   ├── test_api.py
│   └── test_models.py
├── docs/
│   ├── requirements.md      # 需求文件
│   ├── design.md            # 設計文件
│   └── tasks.md             # 任務拆解
├── CLAUDE.md                # 專案指南(給 Claude 看;也可放在 .claude/CLAUDE.md)
├── pyproject.toml
├── .gitignore
└── README.md

註:Hooks 不是放在獨立資料夾,而是寫在 settings.json 的 hooks 欄位(hook 呼叫的腳本可放在任意路徑)。舊版的 .claude/commands/ 仍可使用,但新的自訂指令建議改寫成 skills/。完整說明見官方 .claude 目錄說明。

必裝的開發工具

ruff
超快的 linter + formatter(取代 flake8 + isort + black)
mypy
靜態類型檢查
pytest
事實標準測試框架
pytest-cov
測試覆蓋率報告
pre-commit
Git commit 前自動檢查
python-dotenv
讀取 .env 環境變數

CLAUDE.md 完整指南

CLAUDE.md 是專案級的「使用說明書」,給 Claude 看的。寫好它能大幅提升 Claude 對你專案的理解。

記憶架構:CLAUDE.md 放哪裡?

Claude Code 每次啟動都會讀取以下檔案,由範圍最廣到最具體依序串接(不是互相覆蓋),越後面載入的越貼近你的專案:

層級位置用途誰看得到
組織管理政策macOS:/Library/Application Support/ClaudeCode/CLAUDE.md
Linux / WSL:/etc/claude-code/CLAUDE.md
Windows:C:\Program Files\ClaudeCode\CLAUDE.md
IT 統一部署的公司規範,個人無法排除組織內所有人
使用者層~/.claude/CLAUDE.md、~/.claude/rules/*.md個人偏好(所有專案共用)只有你
專案層./CLAUDE.md 或 ./.claude/CLAUDE.md、./.claude/rules/*.md團隊共用的架構、規範、常用指令(commit 進 git)團隊成員
本地層./CLAUDE.local.md只屬於你的專案設定(如測試帳號、本機網址),記得加進 .gitignore只有你(此專案)
子目錄./src/CLAUDE.md 等特定模組的細節;Claude 讀寫該目錄的檔案時才載入團隊成員

用 .claude/rules/ 拆分規則

規則太多時,可以依主題拆成多個 .md 放在 .claude/rules/。在檔頭加 paths 就能限定只在處理特定檔案時套用:

.claude/rules/api.md
---
paths:
  - "src/my_project/api/**/*.py"
---

# API Rules
- Every endpoint validates input with a Pydantic schema
- Return errors in the shared error response format

用 @ 匯入其他檔案

CLAUDE.md 可以用 @路徑 把其他檔案一起載入(相對路徑以該 CLAUDE.md 所在位置為準,最多巢狀 4 層)。例如重用既有文件,或在多個 worktree 間共用個人設定:

CLAUDE.md
See @README.md for the project overview and @docs/design.md for architecture.

## Personal preferences
- @~/.claude/my-project-instructions.md

自動記憶(auto memory)

除了你手寫的 CLAUDE.md,Claude 也會根據你的糾正與偏好自己做筆記,存在 ~/.claude/projects/<project>/memory/(同一個 git repo 的所有 worktree 共用),其中的 MEMORY.md 索引每次都會載入。輸入 /memory 可以查看、編輯記憶檔,並切換自動記憶的開關。

📌 已經有 AGENTS.md?

如果 repo 只有給其他 AI 工具用的 AGENTS.md、沒有 CLAUDE.md,Claude Code 會改讀 AGENTS.md。兩者都有時預設只讀 CLAUDE.md,可在 CLAUDE.md 裡寫 @AGENTS.md 共用同一份內容。詳見官方記憶文件。

Python 專案 CLAUDE.md 範本

CLAUDE.md
# Project: My FastAPI Service

## 專案概覽
這是一個 FastAPI 後端服務,提供使用者管理 API。
資料庫使用 PostgreSQL,ORM 用 SQLAlchemy 2.0。

## 技術棧
- Python 3.12+
- FastAPI 0.115+
- SQLAlchemy 2.0(async 風格)
- Pydantic v2
- pytest(測試)
- uv(套件管理)

## 專案結構
- `src/my_project/api/` — API 路由
- `src/my_project/models/` — DB models
- `src/my_project/schemas/` — Pydantic schemas
- `src/my_project/services/` — 業務邏輯
- `tests/` — 對應結構的測試

## 開發規範
1. 所有函式必須加 type hints
2. 公開 API 必須寫 docstring(Google style)
3. 行寬限制 88 字(Black 預設)
4. import 順序由 ruff 自動處理
5. commit 訊息遵循 Conventional Commits

## 常用指令
- 啟動開發伺服器:`uv run uvicorn src.my_project.main:app --reload`
- 跑測試:`uv run pytest`
- 跑單一測試:`uv run pytest tests/test_api.py::test_create_user -v`
- 格式化:`uv run ruff format .`
- Lint:`uv run ruff check . --fix`
- 類型檢查:`uv run mypy src/`

## 測試規範
- 每個新功能必須有對應測試
- 整體覆蓋率目標:85%+
- 測試獨立,不依賴執行順序
- 用 fixtures 而非 setUp/tearDown

## 重要規則
- ❌ 不要修改 `migrations/` 已存在的檔案,要新增 migration
- ❌ 不要在 model 層寫業務邏輯,那是 service 層的事
- ❌ 不要 commit `.env` 或任何 secrets
- ✅ 所有 DB 操作必須是 async
- ✅ 使用者輸入必須用 Pydantic schema 驗證

## 環境變數
參考 `.env.example`,必須提供:
- `DATABASE_URL`
- `JWT_SECRET`
- `REDIS_URL`

全域 CLAUDE.md 範本

放在 ~/.claude/CLAUDE.md,所有專案都會載入:

~/.claude/CLAUDE.md
# 個人開發偏好

## 回應風格
- 用繁體中文回答
- 程式碼註解用英文,討論用中文

## 程式碼風格
- Python:遵循 PEP 8,type hints 必加
- JavaScript:偏好 TypeScript over JS
- 變數命名用全名而非縮寫(`user_count` 而非 `uc`)

## 安全規則
- 絕對不在 code 寫入 API key、密碼
- 不要執行 `rm -rf` 或 `sudo` 指令,有需要需先經過同意
- 修改前先確認檔案路徑


These rules apply to every task in this project unless explicitly overridden.
Bias: caution over speed on non-trivial work. Use judgment on trivial tasks.

## Rule 1 — Think Before Coding

State assumptions explicitly. If uncertain, ask rather than guess.
Present multiple interpretations when ambiguity exists.
Push back when a simpler approach exists.
Stop when confused. Name what's unclear.

## Rule 2 — Simplicity First

Minimum code that solves the problem. Nothing speculative.
No features beyond what was asked. No abstractions for single-use code.
Test: would a senior engineer say this is overcomplicated? If yes, simplify.

## Rule 3 — Surgical Changes

Touch only what you must. Clean up only your own mess.
Don't "improve" adjacent code, comments, or formatting.
Don't refactor what isn't broken. Match existing style.

## Rule 4 — Goal-Driven Execution

Define success criteria. Loop until verified.
Don't follow steps. Define success and iterate.
Strong success criteria let you loop independently.

## Rule 5 — Use the model only for judgment calls

Use me for: classification, drafting, summarization, extraction.
Do NOT use me for: routing, retries, deterministic transforms.
If code can answer, code answers.

## Rule 6 — Keep context lean

Read only the files the task needs; search before opening whole directories.
When a session gets long or switches topics, summarize progress and suggest /clear.
Never paste large logs back verbatim — quote the relevant lines.

## Rule 7 — Surface conflicts, don't average them

If two patterns contradict, pick one (more recent / more tested).
Explain why. Flag the other for cleanup.
Don't blend conflicting patterns.

## Rule 8 — Read before you write

Before adding code, read exports, immediate callers, shared utilities.
"Looks orthogonal" is dangerous. If unsure why code is structured a way, ask.

## Rule 9 — Tests verify intent, not just behavior

Tests must encode WHY behavior matters, not just WHAT it does.
A test that can't fail when business logic changes is wrong.

## Rule 10 — Checkpoint after every significant step

Summarize what was done, what's verified, what's left.
Don't continue from a state you can't describe back.
If you lose track, stop and restate.

## Rule 11 — Match the codebase's conventions, even if you disagree

Conformance > taste inside the codebase.
If you genuinely think a convention is harmful, surface it. Don't fork silently.

## Rule 12 — Fail loud

"Completed" is wrong if anything was skipped silently.
"Tests pass" is wrong if any were skipped.
Default to surfacing uncertainty, not hiding it.

## single-file HTML 或 一頁式 HTML
當我提出這份內容產生一份 single-file HTML 或 一頁式 HTML 報告要求時,請依照下列要求生成:
- 深色主題、現代漸層、無外部相依
- 頂部執行摘要 + 狀態徽章(紅 / 黃 / 綠)
- 內嵌 SVG 圖表呈現重要數據
- 至少一個可篩選或可搜尋的清單
- 主要區塊使用可折疊 details 元件
- 包含一個含 checkbox 的行動清單
- sticky TOC 與閱讀進度條
- 互動以 vanilla JS 實作
最後將整份輸出包在 ```html``` 區塊中。

撰寫技巧

1. 用 Markdown 結構化

使用 ## 分節、清單、程式碼區塊。Claude 對結構化的內容理解最好。

2. 明確的 Do / Don't

用 ✅ ❌ 列出該做與不該做的事,比抽象描述有效。

3. 提供常用指令

把測試、build、執行指令寫進去,Claude 就能直接呼叫,不必每次問你。

4. 動態更新

專案進化時也要更新 CLAUDE.md。可以叫 Claude 幫忙:

Claude Code
> 我們今天加了 Celery 跑背景任務,請更新 CLAUDE.md
  把 Celery 加入技術棧,並補上啟動 worker 的指令
💡 大型專案的子目錄 CLAUDE.md

如果某個子目錄(如 ./frontend/)有特殊規範,可在那邊放一份 CLAUDE.md。Claude 讀取或編輯該目錄裡的檔案時會自動載入。只針對特定檔案類型的規則,也可以改用 .claude/rules/ 搭配 paths。

Python 開發核心工作流

用 Claude Code 加速日常 Python 開發的最佳實踐。

工作流程 1:從零實作新功能

清楚描述需求

Claude Code
> 我要做使用者註冊功能:
  
  需求:
  - POST /api/v1/users/register
  - 接收 email、password、name
  - 密碼用 bcrypt hash
  - email 唯一檢查
  - 成功回傳 JWT
  - 失敗回傳明確錯誤
  
  先列出實作計畫,不要動程式碼。

更保險的做法是進入 plan mode:按 Shift+Tab 切換權限模式到 plan,或直接輸入 /plan 使用者註冊功能。plan mode 下 Claude 只會分析與提出計畫,不會改檔案,等你批准後才動手。

檢視計畫並調整

Claude 會列出計畫,例如:

  • 新增 schemas/auth.py 定義 RegisterRequest / TokenResponse
  • 新增 services/auth_service.py 處理 hash 與 JWT
  • 新增 api/v1/auth.py 路由
  • 更新 main.py 註冊 router
  • 新增 tests/test_auth.py 測試

你可以調整:「不要新檔案,把所有 auth 邏輯放在現有的 users.py」

讓 Claude 實作(建議先寫測試)

Claude Code
> 開始實作。請先寫測試(失敗的),再寫實作讓測試通過。
  每完成一個檔案就跑一次測試確認。

檢視與修正

Claude Code
> 跑 ruff、mypy、pytest,把所有警告修掉

> /code-review   # 讓 Claude 檢查目前 diff 的 bug(/review 是同一個指令的別名)

Commit 與 PR

Claude Code
> 幫我建 branch、commit、push、開 PR,
  PR 描述要列出主要變更與測試結果

工作流程 2:修 Bug

🐛 「使用者註冊失敗,錯誤訊息是 X,這是 stack trace」
↓
🔍 Claude 讀錯誤、找相關檔案、定位問題
↓
📝 提出根因分析與修復方案
↓
✏️ 先寫能重現 bug 的測試
↓
🔧 修復程式碼讓測試通過
↓
✅ 確認其他測試也都過

工作流程 3:重構

Claude Code
> @src/services/order_service.py 這個檔案太大了(800 行),
  幫我拆成幾個小檔案。
  
  原則:
  1. 先確認所有測試通過
  2. 規劃拆分方案後給我確認
  3. 一次只動一塊,每動完跑一次測試
  4. 保持 API 不變(外部呼叫不能壞)
  5. 完成後跑完整測試套件

工作流程 4:學習陌生程式碼

Claude Code
> 我剛接手這個專案,幫我:
  1. 畫出主要模組之間的關係
  2. 列出最重要的 5 個檔案
  3. 解釋整個請求的處理流程
  4. 找出可能的技術債或風險點

工作流程 5:升級依賴

Claude Code
> 把 SQLAlchemy 從 1.4 升到 2.0。
  
  請:
  1. 先看 release notes 找出 breaking changes
  2. 列出我們專案中需要改的地方
  3. 一個個改、改完跑測試
  4. 全部過了再 commit

測試驅動開發 (TDD)

Claude Code 是執行 TDD 的絕佳夥伴 — 它可以同時寫測試、寫實作、跑測試、修錯。

為什麼用 Claude 做 TDD 特別有效?

  • 測試即規格:寫測試的過程就是把需求講清楚的過程,Claude 因此更理解你要什麼
  • 快速迭代:Claude 可以在幾秒內寫完測試、實作、跑測試,迅速取得反饋
  • 避免過度設計:先寫測試讓 Claude 只實作必要的程式碼

標準 TDD 循環

🔴 Red:寫一個會失敗的測試
↓
🟢 Green:寫最少的程式碼讓測試通過
↓
🔵 Refactor:重構讓程式碼更乾淨(測試保證行為不變)
↓
↺ 重複下一個功能

實戰範例:用 TDD 開發購物車

Step 1:請 Claude 進入 TDD 模式

Claude Code
> 我們要用 TDD 開發購物車模組。遵循這個流程:
  
  1. 我給需求,你先寫測試
  2. 跑測試確認失敗
  3. 寫最小實作讓測試通過
  4. 跑測試確認綠燈
  5. 看是否需要重構
  
  測試框架:pytest
  專案結構:src/cart/ + tests/test_cart.py
  
  第一個功能:建立空購物車

Step 2:Claude 寫第一個測試

Python — tests/test_cart.py
from src.cart import Cart


def test_new_cart_is_empty():
    cart = Cart()
    assert cart.is_empty()
    assert cart.total() == 0
    assert len(cart.items) == 0

Step 3:跑測試(會失敗)

Terminal
$ uv run pytest tests/test_cart.py -v

FAILED tests/test_cart.py::test_new_cart_is_empty
  ImportError: cannot import name 'Cart' from 'src.cart'

Step 4:Claude 寫最小實作

Python — src/cart.py
class Cart:
    def __init__(self):
        self.items = []
    
    def is_empty(self) -> bool:
        return len(self.items) == 0
    
    def total(self) -> float:
        return 0.0

Step 5:繼續下一個功能

Claude Code
> 下一個:加入商品到購物車,可以指定數量。
  繼續 TDD 流程。

進階:屬性測試與邊界測試

Claude Code
> 為 Cart.add_item() 補上邊界與錯誤測試:
  - 加入負數量應該 raise ValueError
  - 加入價格為 0 的商品應該被允許
  - 加入相同商品應該累加數量
  - 加入後 is_empty() 必須回 False
  
  用 pytest.mark.parametrize 整理

覆蓋率管理

Claude Code
> !uv run pytest --cov=src --cov-report=term-missing

> 看 coverage 報告,找出沒被覆蓋到的行,
  為這些情境補上測試
💡 TDD 加速技巧

按 Shift+Tab 切換到 acceptEdits 模式(自動接受檔案編輯),Claude 修改檔案時就不必每次等你確認,能順暢地跑「寫測試 → 跑 → 修 → 跑」循環(執行其他指令仍可能詢問,可用 /permissions 預先允許 uv run pytest 等指令)。只在熟悉的專案或非關鍵程式碼這樣做。

Git 基礎操作(搭配 Claude Code)

不必記繁瑣的 Git 指令,用自然語言交給 Claude 處理。

日常操作對照表

傳統 Git 指令用 Claude 怎麼說
git status「現在有哪些變更?」
git diff「我改了什麼?」
git add . && git commit -m "..."「幫我 commit」
git log --oneline -10「看最近 10 個 commit」
git checkout -b feature/x「建一個 branch 叫 feature/x」
git merge main「把 main 合進來」
git rebase main「rebase 到 main」

智慧 Commit

讓 Claude 幫你拆 commit

Claude Code
> 我改了三個檔案:修了 bug、加了新功能、更新文件。
  幫我分成三個獨立的 commit,每個都用 Conventional Commits 格式

Claude 會:

  1. 分析每個檔案的變更類型
  2. 用 git add -p 互動式選擇要納入哪些 hunk
  3. 寫對應的 commit 訊息

Conventional Commits 範例

commit message
feat(api): add user search endpoint
fix(auth): handle expired JWT correctly
docs(readme): update installation steps
refactor(db): extract query builder
test(cart): add edge cases for discount
chore(deps): bump fastapi to 0.110.0
perf(query): add index on user.email

分支策略

Git Flow 簡化版

Branch 命名
main                # 生產環境
develop             # 整合 branch
feature/user-auth   # 新功能
fix/login-bug       # 修 bug
hotfix/crit-issue   # 緊急修復(直接 → main)
chore/upgrade-deps  # 維護任務
docs/api-spec       # 文件

Trunk-Based 策略(更簡單)

  • 所有開發都從 main 開短期 branch
  • 每天 merge 回 main,避免長期 branch
  • 用 feature flags 控制未完成功能
  • 適合小團隊、CI/CD 完善的情況

處理衝突

Claude Code
> git pull 之後出現衝突,幫我看一下衝突的檔案,
  分析雙方的修改意圖,給我合理的合併建議

Claude 會:

  1. 列出所有衝突檔案
  2. 分析 <<<<<<< 與 >>>>>>> 雙方的差異
  3. 判斷哪些可以自動合併、哪些需要你決定
  4. 修改檔案、跑測試確認沒壞

常見救命指令

情境對 Claude 說
不小心 commit 錯東西 「我剛剛 commit 把 .env 加進去了,幫我撤銷並從歷史移除」
想復原檔案 「把 src/api.py 還原到 2 個 commit 前的版本」
commit 訊息打錯 「修改最後一個 commit 訊息為 ...」
想合併多個 commit 「把最近 3 個 commit squash 成一個」
找出 bug 從哪來 「用 git bisect 找出 test_login 從哪個 commit 開始壞掉」

GitHub CLI 整合

Claude Code 使用 gh 指令操作 GitHub,先裝好它能解鎖完整功能。

安裝 GitHub CLI

Terminal
brew install gh
PowerShell
winget install GitHub.cli
Bash
sudo apt install gh
# 或
sudo dnf install gh

登入 GitHub

Terminal
gh auth login

# 選 GitHub.com → HTTPS → 用瀏覽器登入
# 之後 Claude Code 就能用 gh 做所有 GitHub 操作了

常用 gh 指令

指令用途
gh repo create建立 repo
gh repo clone owner/repoclone repo
gh pr create開 PR
gh pr list列出 PR
gh pr view 42看 PR #42
gh pr checkout 42切換到 PR #42 的 branch
gh pr merge 42合併 PR #42
gh issue list列出 issue
gh issue create建立 issue
gh release create v1.0發佈 release
gh workflow run deploy.yml觸發 GitHub Actions

讓 Claude 處理 GitHub 工作

批次整理 Issues

Claude Code
> 列出所有開啟超過 90 天沒人回的 issue,
  讀內容後分類並加 label:
  - 已過時的 → close 並留言說明
  - 還有效但低優先 → 加 "stale" label
  - 重要的 → 加 "needs-attention" label

跨 repo 操作

Claude Code
> 在 my-org 下所有 Python repo 中,
  找出還在用 pydantic v1 的,
  幫每個建立 issue 提醒升級

Issue 自動分配

Claude Code
> 看新的 issue #156,分析它屬於哪個模組,
  到 CODEOWNERS 找對應的人,自動 assign 給他們

整合 GitHub MCP(更強大)

除了用 gh,還可以連 GitHub 官方的遠端 MCP server,讓 Claude 直接呼叫 GitHub API。在終端機(不是 Claude Code 對話框)執行,並把 YOUR_GITHUB_PAT 換成你的 GitHub Personal Access Token:

Terminal
claude mcp add --transport http github https://api.githubcopilot.com/mcp/ \
  --header "Authorization: Bearer YOUR_GITHUB_PAT"

開新對話後輸入 /mcp,確認 github 顯示 Connected,之後就能做更精細的操作:

Claude Code
> 在 PR #42 第 35 行加 review comment:「這裡可能有 N+1」
💡 新手先用 gh 就好

已經裝好並登入 gh 的話,Claude 透過 gh 就能完成絕大部分 GitHub 操作,不需要額外設定 MCP。Token 請勿寫進任何會 commit 的檔案。

Pull Request 與 Code Review

完整的 PR 工作流程:從建立、評論、回應、到合併。

建立高品質 PR

確認你在正確的 branch

Claude Code
> 我現在在哪個 branch?跟 main 差多少?

同步最新 main

Claude Code
> rebase 到最新 main,遇到衝突停下來問我

跑完整檢查

Claude Code
> 開 PR 前的最終檢查:
  1. 跑 ruff format + check
  2. 跑 mypy
  3. 跑完整測試
  4. 看 coverage 沒下降
  5. 確認沒有 print() 或 console.log
  6. 確認沒有 commit 到 secret

開 PR

Claude Code
> 幫我開 PR,描述要包含:
  - 動機(解決什麼問題)
  - 主要變更摘要
  - 測試結果(截圖或文字)
  - Breaking changes(若有)
  - 關聯的 issue(自動 link)
  - Reviewer checklist

PR 描述範本

Markdown
## 動機
解決 #42:使用者反映搜尋結果排序不一致。

## 變更內容
- 新增 `SearchService.rank_results()` 統一排序邏輯
- 將 `api/search.py` 改為呼叫 service
- 移除 `models/post.py` 中重複的排序程式碼
- 補上 12 個測試案例

## 測試
- ✅ pytest: 156 passed
- ✅ coverage: 87% (+2%)
- ✅ 手動測試 5 種搜尋情境

## Breaking Changes
無

## Checklist
- [x] 通過所有測試
- [x] 更新文件
- [x] 自我 review 完成
- [ ] 等待團隊 review

讓 Claude 做 Code Review

對自己的 PR

Claude Code
> /code-review          # review the current diff for correctness bugs (/review is an alias)
> /code-review 156      # review PR #156
> /security-review      # check the branch diff for security issues

# 或更具體
> review 我這個 PR 的變更,特別注意:
  - 是否有 SQL injection 風險
  - error handling 是否完整
  - 命名是否符合專案慣例

對別人的 PR

Claude Code
> 幫我 review PR #156,給出建設性意見。
  寫成 GitHub review comments 格式,
  分成 must-fix、suggestion、nitpick 三類

回應 Review 意見

Claude Code
> 看一下 PR #42 上 reviewer 的意見,
  分類處理:
  - 同意且簡單的:直接修
  - 同意但要討論的:先在 thread 回應
  - 不同意的:寫理由回應
  
  修改後重新跑測試、push、回 reviewer

合併策略

策略適用情境
Squash and Merge多個小 commit,希望 main 歷史乾淨(推薦)
Rebase and Merge每個 commit 都有意義,想保留線性歷史
Merge Commit想保留完整 branch 歷史

GitHub Actions 自動化

用 Claude Code 快速建立 CI/CD pipeline,也能讓 Claude 直接在 GitHub 上幫你工作。

官方 Claude Code GitHub Action

Anthropic 官方提供 anthropics/claude-code-action:在 issue 或 PR 留言 @claude,Claude 就會在 GitHub Actions runner 上分析程式碼、修改並推送 commit、回覆留言。也可以給它固定的 prompt,在任何 GitHub 事件(例如排程)自動執行。

快速設定:/install-github-app

先安裝並登入 GitHub CLI(gh auth login),在 repo 目錄啟動 Claude Code 後輸入:

Claude Code
/install-github-app

它會引導你安裝 Claude GitHub App、把認證存成 repo secret,並推一個含 workflow 檔的 branch 讓你開 PR;合併後 @claude 就能用。需要該 repo 的 admin 權限,且只支援 github.com。

認證 secret 二選一

  • ANTHROPIC_API_KEY:Claude Console 的 API key(按用量計費)
  • CLAUDE_CODE_OAUTH_TOKEN:用 Claude 訂閱(Pro / Max / Team / Enterprise)認證,在本機執行 claude setup-token 產生

在 workflow 中分別對應 anthropic_api_key 與 claude_code_oauth_token 輸入參數。絕對不要把 key 直接寫進 workflow 檔。

手動設定的 workflow 範例

不想用指令,也可以自己安裝 Claude GitHub App、加 secret,再放入這個 workflow:

.github/workflows/claude.yml
name: Claude Code
on:
  issue_comment:
    types: [created]
  pull_request_review_comment:
    types: [created]
jobs:
  claude:
    if: contains(github.event.comment.body, '@claude')
    runs-on: ubuntu-latest
    permissions:
      contents: write
      pull-requests: write
      issues: write
      id-token: write
      actions: read
    steps:
      - uses: actions/checkout@v6
        with:
          fetch-depth: 1
      - uses: anthropics/claude-code-action@v1
        with:
          anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
          # or: claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}

在 issue / PR 召喚 Claude

GitHub 留言
@claude 依照這個 issue 的描述實作功能
@claude 修掉使用者儀表板的 TypeError
@claude 這個 endpoint 的驗證該怎麼設計?

只有對 repo 有寫入權限的人留言才會觸發。Claude 會遵守 repo 根目錄的 CLAUDE.md,所以把專案規範寫清楚效果更好。想限制成本,可在 claude_args 加 --max-turns,並設定 workflow timeout。

💡 進階用法

提供 prompt 輸入就會進入自動化模式(不等 @claude),可搭配 schedule 做每日報告,或在 PR 開啟時自動 review。完整參數(prompt、claude_args、settings、trigger_phrase 等)見官方 GitHub Actions 文件。舊的 @beta 版請升級到 @v1。

Python 專案 CI 範本

.github/workflows/ci.yml
name: CI

on:
  push:
    branches: [main]
  pull_request:
    branches: [main]

jobs:
  test:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        python-version: ["3.12", "3.13"]

    steps:
      - uses: actions/checkout@v6

      - name: Install uv
        uses: astral-sh/setup-uv@v10.2.0  # setup-uv has no floating major tag; pin a full version
      
      - name: Set up Python
        run: uv python install ${{ matrix.python-version }}
      
      - name: Install dependencies
        run: uv sync --all-extras --dev
      
      - name: Lint with ruff
        run: uv run ruff check .
      
      - name: Format check
        run: uv run ruff format --check .
      
      - name: Type check
        run: uv run mypy src/
      
      - name: Run tests
        run: uv run pytest --cov=src --cov-report=xml
      
      - name: Upload coverage
        uses: codecov/codecov-action@v7
        with:
          token: ${{ secrets.CODECOV_TOKEN }}

用 Claude 建 workflow

Claude Code
> 幫我為這個專案建立 CI/CD:
  
  CI(push & PR):
  - 跑 ruff、mypy、pytest
  - 測 Python 3.12 和 3.13
  - 上傳 coverage 到 Codecov
  
  CD(push 到 main 且 tag 為 v*):
  - build Docker image
  - push 到 GHCR
  - 部署到 staging(手動觸發到 production)

常用 Workflow 範本

1. Pull Request 自動驗證

每次開 PR 自動跑測試、檢查 commit 訊息格式、確認版號是否更新:

.github/workflows/pr-checks.yml
name: PR Checks

on:
  pull_request:
    branches: [main]

jobs:
  validate:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6
        with:
          fetch-depth: 0  # commitlint needs the full history

      - name: 檢查 commit 訊息格式
        uses: wagoid/commitlint-github-action@v6

      - name: 檢查 PR 標題
        uses: amannn/action-semantic-pull-request@v6
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

      - name: 標記檔案類型  # requires .github/labeler.yml
        uses: actions/labeler@v7

2. 自動發佈 Python 套件

.github/workflows/release.yml
name: Release to PyPI

on:
  push:
    tags: ['v*']

jobs:
  publish:
    runs-on: ubuntu-latest
    permissions:
      id-token: write
    steps:
      - uses: actions/checkout@v6
      - uses: astral-sh/setup-uv@v10.2.0

      - name: Build
        run: uv build
      
      - name: Publish to PyPI
        uses: pypa/gh-action-pypi-publish@release/v1

3. 自動部署到雲端

.github/workflows/deploy.yml
name: Deploy

on:
  push:
    branches: [main]

jobs:
  deploy:
    runs-on: ubuntu-latest
    environment: production
    permissions:
      contents: read
      packages: write
    steps:
      - uses: actions/checkout@v6

      - name: Build Docker image
        run: docker build -t ghcr.io/${{ github.repository }}:${{ github.sha }} .
      
      - name: Push to registry
        run: |
          echo ${{ secrets.GITHUB_TOKEN }} | docker login ghcr.io -u ${{ github.actor }} --password-stdin
          docker push ghcr.io/${{ github.repository }}:${{ github.sha }}
      
      - name: Deploy to Kubernetes
        run: kubectl set image deployment/myapp myapp=ghcr.io/${{ github.repository }}:${{ github.sha }}

規格驅動開發 (SDD)

Spec-Driven Development 是與 AI 協作開發的最佳實踐:先寫清楚規格,再讓 AI 產出程式碼。

為什麼需要 SDD?

傳統「想到什麼寫什麼」的方式跟 Claude 協作時容易出現:

  • Claude 猜錯需求,產出不是你要的
  • 反覆來回修改,浪費 token 與時間
  • 架構決策事後才發現有問題
  • 難以追蹤「為什麼這樣設計」

SDD 把開發流程拆成三個明確階段,每個階段產出一份文件:

📋 Phase 1: Requirements(需求)
釐清要做什麼、為誰做、成功標準
↓
🎨 Phase 2: Design(設計)
決定怎麼做、架構、API、資料模型
↓
✅ Phase 3: Tasks(任務)
拆成可獨立執行的小步驟
↓
💻 Phase 4: Implementation(實作)
Claude 按任務逐一執行

適用情境

適合 SDD不適合 SDD(直接做即可)
新功能、新模組修 typo、改變數名
跨多檔案的重構單檔案的小修改
架構決策快速 prototype
多人協作的專案個人實驗
長期維護的程式碼一次性腳本

SDD 的優勢

🎯

明確目標

Claude 知道你真正要的是什麼,不會發散

📐

架構先行

設計問題在寫 code 前就發現,省下重寫成本

📚

知識留存

文件即文件,未來新人也看得懂

♻️

可重來

程式碼壞掉時,從文件就能重新生成

🤝

易於協作

團隊成員(人或 AI)對齊更容易

🧪

測試清晰

需求即測試案例的來源

建議的目錄結構

docs/
docs/
├── specs/
│   ├── user-auth/
│   │   ├── requirements.md
│   │   ├── design.md
│   │   └── tasks.md
│   ├── payment-flow/
│   │   ├── requirements.md
│   │   ├── design.md
│   │   └── tasks.md
│   └── search-feature/
│       └── ...
└── adr/                    # Architecture Decision Records
    ├── 001-use-postgres.md
    └── 002-jwt-vs-session.md
💡 工具推薦

這套「需求 → 設計 → 任務」三份文件的流程,和 AWS 推出的 AI IDE Kiro 內建的 spec 模式概念相同(Kiro 是獨立的編輯器,不是 Claude Code 的官方元件);社群也有 Spec Workflow MCP 等工具。不過在 Claude Code 裡,搭配 plan mode(Shift+Tab 或 /plan)讓 Claude 先規劃、你審核後再動手,再加上本章節的三份手寫 Markdown,就很夠用了。

需求文件 (Requirements)

第一步:把「要做什麼」與「成功標準」寫清楚。

需求文件範本

docs/specs/user-auth/requirements.md
# Requirements: 使用者認證系統

## 背景與動機
目前系統沒有使用者認證,所有 API 都是公開的。
為了上線商業服務,需要實作完整的註冊/登入/權限管理。

## 目標使用者
- 一般訪客:可註冊新帳號
- 已註冊使用者:可登入、修改個資、登出
- 管理員:可管理其他使用者

## 功能需求

### FR-1: 註冊
**作為** 訪客  
**我希望** 用 email 和密碼註冊  
**這樣** 我就能擁有自己的帳號  

驗收標準:
- [ ] email 格式必須有效
- [ ] 密碼至少 8 字元,含大小寫與數字
- [ ] 同 email 不能重複註冊
- [ ] 註冊成功後自動寄送驗證信
- [ ] 未驗證 email 不能登入

### FR-2: 登入
**作為** 已驗證使用者  
**我希望** 用 email 和密碼登入  
**這樣** 我就能存取受保護的資源  

驗收標準:
- [ ] 正確憑證回傳 JWT(有效期 1 小時)
- [ ] 同時回傳 refresh token(有效期 30 天)
- [ ] 錯誤密碼 5 次後鎖定 15 分鐘
- [ ] 登入紀錄寫入 audit log

### FR-3: 權限管理
**作為** 管理員  
**我希望** 指派使用者角色(admin、editor、viewer)  
**這樣** 我能控制不同人的權限  

驗收標準:
- [ ] 三種角色預設權限明確定義
- [ ] 角色變更立即生效
- [ ] 變更紀錄保留

## 非功能需求

### NFR-1: 安全性
- 密碼用 bcrypt + salt,cost ≥ 12
- JWT 用 RS256 簽章
- 所有 auth endpoint 必須 HTTPS
- 敏感操作要寫 audit log

### NFR-2: 效能
- 登入回應時間 P95 ≤ 200ms
- 註冊回應時間 P95 ≤ 500ms(含寄信)
- 支援同時 1000 個併發登入

### NFR-3: 可靠性
- Email 寄送失敗不能讓註冊失敗(異步處理)
- DB 連線斷開要自動重試

## 範圍外(這次不做)
- 第三方登入(OAuth)
- 雙因素認證(2FA)
- Magic link 登入
- SSO 整合

## 相關文件
- Design: ./design.md
- Tasks: ./tasks.md
- ADR: ../../adr/003-jwt-strategy.md

讓 Claude 幫你寫需求

Claude Code
> 我想做一個訂單管理系統。請以 SDD 流程幫我,
  先寫 requirements.md。
  
  背景:B2B SaaS,客戶下單後我們出貨。
  訪談我,把需求問清楚再寫。

Claude 會逐一問你:

  • 誰會使用?(採購、業務、出貨員、管理員...)
  • 訂單從哪來?(API、UI、Excel 上傳)
  • 有哪些狀態?(草稿、已下、出貨中、完成、退貨)
  • 付款流程是?
  • 要不要通知?怎麼通知?

需求驗收技巧

💡 用 INVEST 原則檢視每條需求
  • Independent:可獨立完成
  • Negotiable:可討論調整
  • Valuable:對使用者有價值
  • Estimable:能估時程
  • Small:足夠小(建議 ≤ 3 天工作量)
  • Testable:有明確驗收標準

設計文件 (Design)

第二步:把「怎麼做」寫清楚。架構、API、資料模型、錯誤處理。

設計文件範本

docs/specs/user-auth/design.md
# Design: 使用者認證系統

## 技術選型
- Web framework: FastAPI
- DB: PostgreSQL(既有)
- ORM: SQLAlchemy 2.0 (async)
- Password hashing: passlib + bcrypt
- JWT: python-jose
- Email: SendGrid via Celery(異步)
- Rate limiting: slowapi
- Audit log: 寫入既有的 audit_logs 表

## 架構圖
```
┌──────────┐    ┌────────────┐    ┌──────────┐
│  Client  │───▶│ Auth API   │───▶│ Auth     │
│          │    │ (FastAPI)  │    │ Service  │
└──────────┘    └────────────┘    └─────┬────┘
                                        │
                ┌───────────────────────┼───────────────────┐
                ▼                       ▼                   ▼
         ┌──────────┐           ┌──────────────┐    ┌──────────┐
         │  Users   │           │ Email Queue  │    │  Redis   │
         │   Table  │           │  (Celery)    │    │ (sessions│
         └──────────┘           └──────────────┘    │  + rate) │
                                                    └──────────┘
```

## 資料模型
### users 表
| 欄位 | 型別 | 說明 |
|------|------|------|
| id | UUID PK | |
| email | VARCHAR(255) UNIQUE | |
| password_hash | VARCHAR(255) | bcrypt |
| email_verified | BOOLEAN | 預設 False |
| role | ENUM | admin / editor / viewer |
| failed_login_count | INTEGER | 預設 0 |
| locked_until | TIMESTAMP NULL | |
| created_at | TIMESTAMP | |
| updated_at | TIMESTAMP | |

### audit_logs 表(既有)
寫入 type 為 `auth.login.success`、`auth.login.failure`、`auth.register` 的事件

## API 設計

### POST /api/v1/auth/register
Request:
```json
{
  "email": "user@example.com",
  "password": "SecurePass123",
  "name": "Alice"
}
```
Response 201:
```json
{
  "user_id": "uuid",
  "email": "user@example.com",
  "verification_email_sent": true
}
```
Errors:
- 400: 格式錯誤
- 409: email 已存在
- 422: 密碼強度不足

### POST /api/v1/auth/login
(類似格式...)

## 流程圖:登入流程
```
Client → API: POST /login
API → Service: authenticate(email, password)
Service → DB: 查 user
  ├─ 不存在 → 回 401
  ├─ 被鎖定 → 回 423
  └─ 找到 user:
       Service: bcrypt.verify(password, hash)
         ├─ 失敗 → failed_count++, 寫 audit, 回 401
         └─ 成功 → 產生 JWT + refresh token, 寫 audit, 回 200
```

## 錯誤處理策略
| HTTP code | 情境 | Body |
|-----------|------|------|
| 400 | 請求格式錯誤 | { "error": "invalid_request", "details": ... } |
| 401 | 認證失敗 | { "error": "invalid_credentials" } |
| 422 | 密碼強度不足 | { "error": "weak_password", "requirements": [...] } |
| 423 | 帳號鎖定 | { "error": "account_locked", "retry_after": 900 } |
| 500 | 內部錯誤 | { "error": "internal_error", "trace_id": "..." } |

## 安全考量
- 密碼絕不出現在 log 或回應
- bcrypt cost = 12(升級時要遷移)
- JWT secret 從 vault 讀取,不放 env
- Rate limit:登入 5 次/分鐘/IP
- 註冊:3 次/小時/IP

## 測試策略
- 單元測試:service 層(mock DB)
- 整合測試:完整 API 流程(test DB)
- 安全測試:SQL injection、密碼洩漏、JWT 偽造
- 負載測試:1000 併發登入

讓 Claude 寫設計文件

Claude Code
> 根據 @docs/specs/user-auth/requirements.md,
  幫我寫 design.md。
  
  限制:
  - 必須符合既有架構(FastAPI + PG + Celery)
  - 不引入新的基礎設施
  - 安全優先於開發速度
  
  寫之前先列出設計決策,跟我討論再開始

也可以先用 /plan(或 Shift+Tab 切到 plan mode)讓 Claude 只讀程式碼、提出設計方向,你確認後再請它寫成 design.md。

架構決策紀錄 (ADR)

對於重大設計決策,建議寫獨立的 ADR:

docs/adr/003-jwt-strategy.md
# ADR-003: 認證用 JWT 而非 Session

**Date**: 2026-05-22
**Status**: Accepted

## Context
需要決定如何維持使用者登入狀態。
選項:Session(state on server)vs JWT(stateless)

## Decision
採用 JWT,搭配 Refresh Token 機制。

## Consequences
✅ 好處:
- 無狀態,水平擴展容易
- 不需 Redis 存 session
- 跨服務驗證簡單

❌ 壞處:
- 無法主動撤銷(用 short TTL + refresh 緩解)
- Token 體積較大
- 需要管理 secret rotation

## Alternatives Considered
- Session in Redis:擴展性夠但增加基礎設施依賴
- Session in DB:每次請求查 DB,效能差

任務拆解 (Tasks)

第三步:把設計拆成具體、可獨立執行的任務清單。

任務清單範本

docs/specs/user-auth/tasks.md
# Tasks: 使用者認證系統

## Phase 1: 基礎建設

### T-1.1: 建立 users 表 migration
- 依賴:無
- 估時:30 分鐘
- 步驟:
  1. 在 alembic 建 migration
  2. 包含所有設計文件中的欄位
  3. 加 index on email
  4. 跑 migration 確認
- 驗收:
  - [ ] migration up/down 都能成功
  - [ ] 表結構符合 design.md

### T-1.2: 設定 JWT 相關套件
- 依賴:無
- 估時:20 分鐘
- 步驟:
  1. uv add python-jose passlib bcrypt
  2. 建 src/auth/config.py 讀 JWT secret
  3. 建 src/auth/security.py 放 hash/verify/jwt 函式
- 驗收:
  - [ ] 套件已加入 pyproject.toml
  - [ ] secret 從 env 讀取,無預設值

## Phase 2: Service 層

### T-2.1: AuthService.register()
- 依賴:T-1.1, T-1.2
- 估時:1 小時
- 步驟:
  1. 先寫測試:tests/services/test_auth.py
     - 成功註冊
     - email 重複
     - 弱密碼
  2. 實作 register 方法
  3. 整合 Celery 寄驗證信
- 驗收:
  - [ ] 所有測試通過
  - [ ] coverage ≥ 90%

### T-2.2: AuthService.login()
- 依賴:T-2.1
- 估時:1.5 小時
- 步驟:
  1. 寫測試
  2. 實作密碼驗證
  3. 實作鎖定邏輯
  4. 產生 JWT + Refresh Token
  5. 寫 audit log
- 驗收:
  - [ ] 所有測試通過
  - [ ] 鎖定 5 次後 15 分鐘

## Phase 3: API 層

### T-3.1: POST /auth/register endpoint
- 依賴:T-2.1
- 估時:45 分鐘
- 步驟:
  1. 建 schemas/auth.py(Pydantic)
  2. 建 api/v1/auth.py
  3. 寫整合測試
- 驗收:
  - [ ] 各種錯誤情境回正確 HTTP code
  - [ ] OpenAPI doc 正確顯示

### T-3.2: POST /auth/login endpoint
- 依賴:T-2.2
- 估時:45 分鐘
(類似格式...)

## Phase 4: 整合與部署

### T-4.1: Rate Limiting
- 依賴:T-3.1, T-3.2
- 估時:30 分鐘

### T-4.2: Auth Middleware
- 依賴:T-3.2
- 估時:1 小時
- 用於保護其他 API

### T-4.3: 文件與 Postman collection
- 依賴:T-4.2
- 估時:1 小時

## 預估總時程:6-8 小時

讓 Claude 拆任務

Claude Code
> 根據 @docs/specs/user-auth/design.md,
  拆成 tasks.md。
  
  原則:
  1. 每個任務 ≤ 2 小時工作量
  2. 標出依賴關係
  3. 每個任務都包含「寫測試」步驟
  4. 驗收條件用 checkbox 格式
  5. 按 phase 分組(基礎建設 → service → API → 整合)

逐一執行任務

Claude Code
> 開始執行 @docs/specs/user-auth/tasks.md。
  
  從 T-1.1 開始。每完成一個任務:
  1. 更新 tasks.md 的 checkbox
  2. commit
  3. 暫停讓我確認
  4. 我說 next 再做下一個

多代理平行執行

對於沒有依賴關係的任務,可派出多個 sub-agent 同時做:

Claude Code
> 同時派出三個 sub-agent:
  - Agent 1: 做 T-1.1(建 migration)
  - Agent 2: 做 T-1.2(設定 JWT 套件)
  - Agent 3: 寫 schemas/auth.py(不依賴前兩者)
  
  完成後彙整結果給我
💡 SDD + TDD 雙劍合璧

每個任務都用 TDD 流程執行:先寫測試(紅)→ 實作(綠)→ 重構(藍)。Claude Code 對這個流程的支援特別好。

子代理 (Sub-agents)

把專屬任務交給專門訓練的子代理,讓主對話保持乾淨、上下文不被汙染。

什麼是 Sub-agent?

Sub-agent 是「具有獨立 context、專注於特定任務」的子 Claude。它有自己的:

  • System prompt:定義它的角色與行為規則
  • 可用工具:限制它能用哪些工具(讀檔、寫檔、執行 shell...)
  • 觸發條件:什麼樣的任務該分派給它
  • 獨立的對話脈絡:不會佔用主對話的 context

為什麼用 Sub-agent?

🧹

保持主對話乾淨

把繁瑣細節交給代理處理,主對話只看摘要

🎯

專業分工

不同代理擅長不同事,效果比通才好

🔒

權限隔離

只給代理它需要的工具,降低風險

⚡

平行執行

多個代理同時做事,加速大型任務

內建 Sub-agents

不用自己寫,Claude Code 本身就附帶幾個常用的子代理,會在適當時機自動派出:

名稱用途工具
Explore快速搜尋、分析程式碼庫(找檔案、找用法)唯讀(不能 Write / Edit)
Plan在 Plan 模式下先研究程式碼,再提出計畫唯讀
general-purpose需要「邊查邊改」的複雜多步驟任務子代理可用的全部工具

另外還有一些輔助用途的內建代理(例如設定狀態列的 statusline-setup、回答 Claude Code 使用問題的 claude-code-guide),完整清單以官方文件為準。

建立 Sub-agent

Sub-agent 就是一個帶 YAML frontmatter 的 Markdown 檔。最簡單的建立方式是直接請 Claude 幫你寫:

Claude Code
> 幫我在 .claude/agents/ 建立一個 code-reviewer 子代理,
  專門 review 程式碼變更,只能讀檔不能改檔,使用 Sonnet 模型

你也可以自己手動建立檔案。如果新建的代理沒被找到(例如 agents 資料夾是在工作階段開始後才建立的),重新啟動 Claude Code 即可。

ℹ️ 關於 /agents 指令

舊版(v2.1.197 以前)輸入 /agents 會開啟互動式精靈;新版的 /agents 只會提醒你「請 Claude 幫忙建立,或直接編輯 .claude/agents/、~/.claude/agents/」。另外,終端機指令 claude agents 是另一個功能:開啟 agent view 管理背景工作階段,不是用來編輯子代理定義。

Frontmatter 欄位

只有 name 與 description 是必填,其餘皆可省略。常用欄位:

欄位說明
name必填。唯一識別名稱(小寫加連字號)
description必填。什麼時候該派給它 — Claude 依此自動委派,寫得越具體越準
tools允許使用的工具(逗號分隔);省略則繼承主對話的全部工具
disallowedTools從繼承的工具中移除哪些
modelsonnet、opus、haiku、fable、完整模型 ID,或 inherit(沿用主對話模型)
permissionMode權限模式,例如 default、acceptEdits、plan、dontAsk
maxTurns最多執行幾輪後停止
skills啟動時預先載入的 Skills
mcpServers這個子代理可用的 MCP 伺服器
hooks只在這個子代理執行期間生效的 Hooks
memory持久記憶範圍:user、project 或 local
background設為 true 讓它在背景執行
isolation設為 worktree,讓它在獨立的 git worktree 裡工作,不會動到你目前的檔案
effort思考強度:low ~ max
color介面顯示顏色,例如 blue、green、purple

完整欄位清單見官方 Sub-agents 文件。

Sub-agent 定義範例

.claude/agents/code-reviewer.md
---
name: code-reviewer
description: 資深 code reviewer。程式碼有變更後主動使用,檢查安全性、正確性與可維護性。
tools: Read, Grep, Glob, Bash
model: sonnet
color: blue
---

你是一位資深 Python code reviewer。

審查重點(依優先順序):
1. 安全性:SQL injection、XSS、密碼處理、secret 洩漏
2. 正確性:邊界條件、錯誤處理、競爭條件
3. 效能:N+1 查詢、不必要的迴圈、記憶體洩漏
4. 可維護性:命名、結構、過長函式

回報格式:
🔴 Must fix:(必須修正的問題)
⚠️ Should consider:(建議改善)
💡 Nice to have:(細節優化)

每個問題給出:
- 檔案 + 行號
- 為什麼是問題
- 建議的修改方式
- 範例程式碼

簡潔但完整。不要逐字罵人。

常用 Sub-agents 範本

1. test-writer(測試專家)

.claude/agents/test-writer.md
---
name: test-writer
description: 撰寫 pytest 測試,包含單元、整合、邊界案例
tools: Read, Write, Edit, Bash
---

你是 Python 測試專家,專精 pytest。

撰寫測試時必須:
- 用 fixtures 而非 setUp
- 用 parametrize 涵蓋多種輸入
- 命名格式:test_<function>_<scenario>_<expected>
- 一個測試只驗一件事
- Mock 外部依賴(DB、API、檔案系統)
- 包含 happy path + edge case + error path
- 用 pytest.raises 驗證例外

完成後跑測試確認都通過。

2. docs-writer(文件專家)

.claude/agents/docs-writer.md
---
name: docs-writer
description: 撰寫與更新技術文件、docstring、README
tools: Read, Write, Edit, Grep
---

你是技術寫作專家。

撰寫原則:
- 開門見山,先講重點
- 用「為什麼」而非「是什麼」
- 範例程式碼必須能直接執行
- 避免「顯而易見」、「簡單來說」等空話
- API 文件用 Google style docstring
- README 結構:簡介 → 安裝 → 快速開始 → 進階 → 貢獻

3. debugger(除錯專家)

.claude/agents/debugger.md
---
name: debugger
description: 系統化地除錯複雜問題
tools: Read, Grep, Bash, Edit
---

你是除錯專家。遇到 bug 時遵循:

1. 重現:先寫出能穩定重現 bug 的最小案例
2. 隔離:用二分法縮小問題範圍
3. 假設:列出 3 個可能的根因
4. 驗證:用 print/log/debugger 確認哪個對
5. 修復:先寫測試保證 bug 不再出現,再修
6. 回報:根因 + 解法 + 預防建議

不要猜。每個步驟都要有證據支持。

4. security-auditor(安全稽核)

.claude/agents/security-auditor.md
---
name: security-auditor
description: 安全漏洞掃描與稽核
tools: Read, Grep, Glob, Bash
---

你是應用程式安全專家(OWASP Top 10 為基準)。

掃描檢查項目:
- SQL injection(搜尋字串拼接的 SQL)
- XSS(未經 escape 的輸出)
- Hardcoded secrets(API key、密碼、token)
- 不安全的反序列化
- 認證/授權漏洞
- 敏感資訊 log
- 不安全的依賴(已知 CVE)
- CSRF 缺失
- Open redirect

每個發現給:嚴重度(Critical/High/Med/Low)+ CWE 編號 + 修復建議

呼叫 Sub-agent

Claude Code
# 1. 自動委派(Claude 依 description 判斷)
> 我剛改了 auth.py,請 review 一下

# 2. 用自然語言指名
> 用 code-reviewer 子代理看 @src/api/users.py

# 3. @ 提及:保證一定派給這個代理(輸入 @ 後從選單挑選)
> @agent-code-reviewer 看一下 auth 的變更

# 4. 一次派出多個(可平行執行)
> 同時派出 test-writer 寫測試、docs-writer 寫文件、
  security-auditor 做安全稽核

整個工作階段都用某個代理

Terminal
# Run the whole session as the code-reviewer agent
claude --agent code-reviewer

# Define agents on the fly with JSON (not saved to disk)
claude --agents '{
  "reviewer": {
    "description": "Reviews code after changes",
    "prompt": "You are a senior code reviewer.",
    "tools": ["Read", "Grep", "Glob"],
    "model": "sonnet"
  }
}'

前景 vs 背景執行

  • 前景:主對話等子代理做完才繼續,權限詢問會直接跳出來。
  • 背景:子代理與主對話同時進行,完成後送回通知;需要權限時會在主對話中詢問你。
  • 多個子代理可以平行執行,各自擁有獨立的 context,只把結果摘要回傳主對話。
💡 Sub-agent 儲存位置(優先順序由高到低)
  • 組織管理設定(managed settings):由管理員統一派送
  • --agents 旗標:只在這次工作階段有效
  • 專案級:./.claude/agents/ — 跟著 git 走,團隊共用
  • 個人級:~/.claude/agents/ — 你所有專案都能用
  • 外掛(Plugin):外掛內的 agents/ 資料夾,名稱會帶外掛前綴,例如 my-plugin:code-reviewer

同名時,優先順序高的會蓋過低的。

多代理協作模式

當任務複雜到單一代理難以處理時,讓多個代理協同作戰。

三大協作模式

Pattern 1: Orchestrator-Worker(總管—工人)

👨‍💼 Orchestrator(主代理):理解任務、拆解、分派
↓
👷 Worker 1 / 👷 Worker 2 / 👷 Worker 3(平行執行)
↓
👨‍💼 Orchestrator 整合結果、回報給使用者

適用情境:

  • 大規模重構(每個 worker 處理一個模組)
  • 跨檔案搜尋與分析
  • 需要從多角度評估的決策
Claude Code
> 我們要把整個專案從 SQLAlchemy 1.4 升到 2.0。
  
  你做 orchestrator,派出 4 個 worker:
  - Worker A: 升級 src/models/
  - Worker B: 升級 src/services/
  - Worker C: 升級 tests/
  - Worker D: 更新文件
  
  每個 worker 完成後回報,你彙整所有變更給我確認。

Pattern 2: Pipeline(管線)

📥 輸入
↓
🔍 分析代理 — 理解需求
↓
🎨 設計代理 — 提出架構
↓
💻 實作代理 — 寫程式碼
↓
🧪 測試代理 — 寫並執行測試
↓
📝 文件代理 — 更新文件
↓
📤 輸出

適用情境:每個階段的輸出是下一階段的輸入,順序執行不可平行。

Claude Code
> 用 pipeline 模式做這個功能:
  
  1. analyst 代理:訪談我,產出 requirements.md
  2. architect 代理:根據需求產出 design.md
  3. task-planner 代理:把設計拆成 tasks.md
  4. implementer 代理:執行每個任務
  5. reviewer 代理:最終 code review
  
  每階段完成都暫停讓我確認

Pattern 3: Debate / Multi-perspective(辯論/多角度)

讓多個代理從不同角度評估同一個問題,最後彙整:

Claude Code
> 我們要選後端框架:FastAPI vs Django vs Flask
  
  派出三個代理同時評估,每個從不同角度:
  - performance-expert:從效能與擴展性
  - dx-expert:從開發者體驗與學習曲線
  - ops-expert:從部署、監控、生態系
  
  最後請你彙整三方意見,給出綜合建議

協作模式選擇指南

任務特性推薦模式
可平行的獨立子任務Orchestrator-Worker
有明確順序的階段Pipeline
需要多元觀點Debate
大型探索性任務Orchestrator + 動態派發
需要外部資源整合結合 MCP 的混合架構

實戰:完整功能開發

Claude Code
> 開發「訂單退款」功能,用混合模式:
  
  Phase 1(Pipeline):
  - analyst → architect → task-planner
  
  Phase 2(Orchestrator-Worker,平行):
  - 4 個 implementer 各自實作不同 layer
  
  Phase 3(Debate):
  - security-auditor + performance-expert + reviewer
    同時 review,給多角度意見
  
  Phase 4(Pipeline):
  - bug-fixer → docs-writer → release-manager
  
  你做最高層的協調者,每個 phase 完成後跟我同步進度

平行工作不打架:Git Worktree 隔離

多個代理同時改同一份檔案很容易互相覆蓋。Claude Code 支援用 git worktree 把每個工作放在獨立的工作目錄:

Terminal
# Start a session in an isolated worktree at .claude/worktrees/feature-auth
claude --worktree feature-auth

# Short form; omit the name to get a generated one
claude -w

子代理也可以在 frontmatter 加上 isolation: worktree,讓它自動在獨立 worktree 中工作,做完再由你決定要不要合併。

官方功能:Agent Teams(實驗性)

上面的模式都是靠「主代理派出子代理」完成,子代理只能把結果回報給主代理。Claude Code 另外提供實驗性的 Agent Teams:由一個 team lead 協調多個獨立的 Claude Code 工作階段(teammates),它們共用任務清單,而且可以彼此直接傳訊息。

settings.json
{
  "env": {
    "CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1"
  }
}
Claude Code
> 派出三個 teammates 一起 review PR #142:
  一個看安全性、一個看效能、一個檢查測試覆蓋率,
  各自回報後由你彙整
Sub-agentsAgent Teams
溝通方式把結果回報給主代理Teammates 彼此直接傳訊息
協調主代理管理全部工作共用任務清單、自行認領工作
適合只需要結果的專注任務需要討論、互相挑戰的複雜工作
Token 成本較低較高(每個 teammate 都是獨立實例)

Agent Teams 需要互動式工作階段(-p 模式不會產生 teammates),目前仍有不少限制(例如恢復工作階段時不會還原 in-process teammates)。細節請見官方 Agent Teams 文件。

多代理的注意事項

⚠️ 不要過度使用
  • 簡單任務直接做,不要硬塞多代理
  • 多代理會消耗更多 token,成本高
  • 協調本身有 overhead,少而精比較好
  • 代理間溝通會「失真」,太多層會誤解需求
💡 何時值得啟用多代理
  • 任務 > 30 分鐘且可拆分
  • 需要多種專業判斷
  • 主對話 context 即將爆滿
  • 子任務有獨立的安全/權限需求

MCP 整合

Model Context Protocol 讓 Claude 連接外部服務 — 資料庫、API、設計工具、雲端平台。

什麼是 MCP?

MCP (Model Context Protocol) 是由 Anthropic 提出的開放標準,讓 AI 應用程式能透過統一介面連接任何外部系統。可以想像成「AI 的 USB-C」— 一旦標準化,任何工具都能即插即用。2025 年 12 月起,Anthropic 已將 MCP 捐贈給 Linux 基金會旗下的 Agentic AI Foundation(AAIF),由中立的開源基金會管理,ChatGPT、Cursor、Gemini、VS Code 等產品也都支援。

一個 MCP server 可以提供三種東西給 Claude:

  • Tools(工具):Claude 可以呼叫的函式,工具名稱格式為 mcp__<server>__<tool>
  • Resources(資源):可用 @ 引用的檔案或資料
  • Prompts(提示範本):會變成可用 / 呼叫的指令

常用 MCP Servers

下表列的是常見的服務類別,多數服務都有官方或社群維護的 MCP server。實際的套件名稱、網址與認證方式各家不同,請以該服務的官方說明為準。

開發類

MCP Server用途
githubIssues、PR、Repo、Actions 完整操作
gitlabGitLab 整合(同上)
sentry讀取錯誤、分析 stack trace
linear任務管理、issue tracking
jira企業專案管理

資料庫類

MCP Server用途
postgres查詢、執行、analyze PostgreSQL
mysqlMySQL 操作
sqlite本地 SQLite
mongodbMongoDB 查詢
redisKey-value 操作、debug 快取

雲端與基礎設施

MCP Server用途
awsEC2、S3、Lambda 等 AWS 服務
cloudflareWorkers、DNS、Pages
docker容器管理
kubernetesK8s 叢集操作

協作與設計

MCP Server用途
figma讀設計檔、自動轉 code
notion讀寫 Notion 文件
slack傳訊息、讀 channel
google-drive讀寫 Google 雲端文件

新增 MCP Server

MCP server 有兩大類:遠端(HTTP)— 服務商幫你架好,只要給網址;本機(stdio)— 在你電腦上用指令啟動一個程式。

方法 1:claude mcp add 指令(推薦)

Terminal
# Remote HTTP server: claude mcp add --transport http <name> <url>
claude mcp add --transport http sentry https://mcp.sentry.dev/mcp
claude mcp add --transport http notion https://mcp.notion.com/mcp

# Remote server that needs a header (e.g. GitHub with a personal access token)
claude mcp add --transport http github https://api.githubcopilot.com/mcp/ \
  --header "Authorization: Bearer YOUR_GITHUB_PAT"

# Local stdio server: everything after -- is the command that starts the server
claude mcp add playwright -- npx -y @playwright/mcp@latest

# Local stdio server with environment variables (-e / --env)
claude mcp add --env AIRTABLE_API_KEY=YOUR_KEY airtable -- npx -y airtable-mcp-server
⚠️ 注意 -- 的位置

-- 之前是給 claude 的選項(--transport、--env、--scope…),之後才是啟動 server 的指令與參數。少了 --,server 的參數會被 claude 誤吃掉。SSE 傳輸(--transport sse)已不建議使用,新服務請用 HTTP。

安裝範圍(Scope)

用 --scope(或 -s)決定這個 server 給誰用:

Scope誰能用存在哪裡
local(預設)只有你,只在目前專案~/.claude.json
project整個團隊(進版控)專案根目錄的 .mcp.json
user只有你,所有專案~/.claude.json
Terminal
# Share with the team via .mcp.json
claude mcp add --scope project --transport http sentry https://mcp.sentry.dev/mcp

# Manage servers
claude mcp list            # list servers and their health
claude mcp get sentry      # show details for one server
claude mcp remove sentry   # remove a server

方法 2:專案設定檔 .mcp.json

project scope 的 server 會寫進專案根目錄的 .mcp.json,你也可以手動編輯。支援 ${VAR} 與 ${VAR:-預設值} 環境變數展開,機密請放環境變數,不要寫死在檔案裡:

.mcp.json
{
  "mcpServers": {
    "sentry": {
      "type": "http",
      "url": "https://mcp.sentry.dev/mcp"
    },
    "github": {
      "type": "http",
      "url": "https://api.githubcopilot.com/mcp/",
      "headers": {
        "Authorization": "Bearer ${GITHUB_PAT}"
      }
    },
    "airtable": {
      "command": "npx",
      "args": ["-y", "airtable-mcp-server"],
      "env": {
        "AIRTABLE_API_KEY": "${AIRTABLE_API_KEY}"
      }
    }
  }
}

基於安全考量,別人 commit 進來的 .mcp.json server 第一次使用前,Claude Code 會先請你核准。

在對話中管理:/mcp

在 Claude Code 裡輸入 /mcp 可以看到所有 server 的連線狀態(已連線、需要認證、連線失敗、等待核准)。需要 OAuth 登入的遠端 server(例如 Sentry、Notion),從 /mcp 選擇它就會開啟瀏覽器登入;也可以在終端機用 claude mcp login <name>。

MCP 實戰範例

從 Figma 設計直接生成 React 元件

Claude Code
> 讀 Figma 檔案 ABC123,
  把「Login Page」frame 轉成 React + Tailwind 元件,
  存到 src/pages/Login.tsx

用自然語言查資料庫

Claude Code
> 連 production DB(read-only),
  找出過去 7 天訂單金額最大的 10 個客戶,
  我要他們的 email、訂單數、總金額

從 Sentry 找錯誤並修

Claude Code
> 從 Sentry 找今天最頻繁的 5 個錯誤,
  分析 stack trace,建立對應的 GitHub issue,
  並嘗試提出修復建議

建立自己的 MCP Server

如果現有 MCP 不夠用,可以自己寫一個。官方提供多種語言的 SDK,Python 版用 MCPServer 加裝飾器就能寫出來 — 型別註記就是參數 schema、docstring 就是工具說明:

Terminal
uv add "mcp[cli]"      # or: pip install "mcp[cli]"
Python — my_mcp.py
from mcp.server import MCPServer

mcp = MCPServer("my-tools")


@mcp.tool()
def get_user_stats(user_id: int) -> dict:
    """Return order statistics for a user."""
    # Replace with a real database / API lookup
    return {"user_id": user_id, "orders": 42, "total": 1234.5}


if __name__ == "__main__":
    mcp.run()  # stdio transport by default
Terminal
# Test it in the MCP Inspector
uv run mcp dev my_mcp.py

# Register it with Claude Code (stdio)
claude mcp add my-tools -- uv run my_mcp.py

註:舊版 Python SDK(1.x)的寫法是 from mcp.server.fastmcp import FastMCP,概念相同。各語言 SDK 請見 modelcontextprotocol.io。

💡 找更多 MCP servers

可以逛 MCP 官方 servers 儲存庫(含參考實作與第三方清單),或參考 Claude Code 官方 MCP 文件。第三方 server 會拿到你的資料與權限,安裝前請確認來源可信。

Hooks 自動化

在特定事件觸發時自動執行腳本,把重複的動作交給機器。

Hooks 是什麼?

Hooks 是你寫在設定檔裡的 shell 指令(或其他處理器),在 Claude Code 生命週期的特定時間點由程式自動執行。跟寫在 CLAUDE.md 裡的「請記得跑 formatter」不同,Hook 是確定一定會執行的規則,不靠 Claude 記不記得。

常用 Hook 事件

事件名稱觸發時機常見用途
SessionStart工作階段開始或恢復載入專案狀態當作 context
UserPromptSubmit你送出訊息、Claude 處理之前補充 context、擋下含敏感資訊的提示
PreToolUseClaude 呼叫工具之前阻擋危險指令、保護特定檔案
PermissionRequest工具需要你核准時自動允許或拒絕特定操作
PostToolUse工具成功執行之後跑 formatter、linter、記錄日誌
PostToolUseFailure工具執行失敗之後記錄錯誤
NotificationClaude Code 發出通知(例如等你核准)桌面通知、推播到手機
StopClaude 完成一輪回應完成提示音、最後檢查
SubagentStart / SubagentStop子代理啟動 / 結束追蹤子代理工作
PreCompact / PostCompact壓縮 context 前 / 後備份對話紀錄
SessionEnd工作階段結束清理暫存、上傳 log

事件名稱大小寫有分(PascalCase)。實際上還有更多事件(例如 worktree、設定變更、模型切換、agent teams 相關事件),完整清單見官方 Hooks 參考文件。

Hooks 寫在哪裡?

Hooks 設定在 settings 檔的 hooks 欄位裡(一般專案不需要另建 hooks 檔;只有外掛才用 hooks/hooks.json):

檔案範圍
~/.claude/settings.json你的所有專案
.claude/settings.json這個專案,可 commit 給團隊共用
.claude/settings.local.json這個專案,只有你自己(不進版控)

外掛、Skill 與子代理的 frontmatter 也可以帶自己的 hooks。在 Claude Code 裡輸入 /hooks 可以瀏覽目前生效的所有 hooks 以及它們定義在哪個檔案。

設定格式

.claude/settings.json
{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Edit|Write",
        "hooks": [
          {
            "type": "command",
            "command": "\"$CLAUDE_PROJECT_DIR\"/.claude/hooks/format-python.sh",
            "timeout": 60
          }
        ]
      }
    ]
  }
}
  • 事件名稱(PostToolUse)底下是一個陣列,每項有 matcher 與要執行的 hooks。
  • matcher:對工具類事件來說是工具名稱(可用正規表示式),例如 Bash、Edit|Write、mcp__github__.*。它比對的是工具名稱,不是檔名 — 要依副檔名過濾,請在腳本裡判斷。
  • type:最常用的是 command(執行 shell 指令),另外也有 http、prompt、agent 等類型。
  • $CLAUDE_PROJECT_DIR:專案根目錄,用它來指定腳本路徑最穩。

Hook 怎麼拿到資料、怎麼回應?

Command hook 透過 stdin 收到一段 JSON,常見欄位有 session_id、cwd、hook_event_name,工具類事件還有 tool_name 與 tool_input(例如 tool_input.file_path、tool_input.command)。用 jq 取值最方便。

Exit code意義
0成功。stdout 可以輸出 JSON 做進階控制;SessionStart、UserPromptSubmit 的 stdout 會被加進 Claude 的 context
2阻擋。stderr 的內容會回饋給 Claude(例如 PreToolUse 回傳 2 就不會執行該工具)
其他非阻擋性錯誤,操作照常進行

想更細緻地控制,可以 exit 0 並在 stdout 輸出 JSON,例如 PreToolUse 用 hookSpecificOutput.permissionDecision 回傳 "allow"、"deny" 或 "ask"。

常用 Hook 範本

1. 編輯後自動格式化 Python

設定同上方「設定格式」的範例,腳本內容:

.claude/hooks/format-python.sh
#!/bin/bash
# PostToolUse hook: format edited Python files with ruff
file_path=$(jq -r '.tool_input.file_path // empty')

if [[ "$file_path" == *.py ]]; then
  uv run ruff format "$file_path"
  uv run ruff check --fix "$file_path"
fi
exit 0

記得給腳本執行權限:chmod +x .claude/hooks/format-python.sh。

2. 阻擋危險指令

.claude/settings.json
{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Bash",
        "hooks": [
          { "type": "command", "command": "\"$CLAUDE_PROJECT_DIR\"/.claude/hooks/block-dangerous.sh" }
        ]
      }
    ]
  }
}
.claude/hooks/block-dangerous.sh
#!/bin/bash
# PreToolUse hook: block destructive shell commands
command=$(jq -r '.tool_input.command // empty')

if echo "$command" | grep -qE 'rm -rf|git push --force|DROP TABLE'; then
  echo "Blocked by hook: destructive command is not allowed" >&2
  exit 2   # exit 2 = block the tool call, stderr is shown to Claude
fi
exit 0

3. 保護敏感檔案(.env、密鑰)

.claude/hooks/protect-files.sh
#!/bin/bash
# PreToolUse hook (matcher: "Edit|Write"): refuse edits to secret files
file_path=$(jq -r '.tool_input.file_path // empty')

case "$file_path" in
  *.env|*.env.*|*.pem|*id_rsa*)
    echo "Blocked: $file_path is a protected file" >&2
    exit 2 ;;
esac
exit 0

4. 需要你注意時跳出桌面通知(macOS)

~/.claude/settings.json
{
  "hooks": {
    "Notification": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "osascript -e 'display notification \"Claude Code 需要你的注意\" with title \"Claude Code\"'"
          }
        ]
      }
    ]
  }
}

Linux 可改用 notify-send 'Claude Code' '需要你的注意'。不需要過濾的事件可以省略 matcher。

5. 開場自動載入專案狀態

.claude/settings.json
{
  "hooks": {
    "SessionStart": [
      {
        "matcher": "startup",
        "hooks": [
          { "type": "command", "command": "git status --short && git log --oneline -5" }
        ]
      }
    ]
  }
}

SessionStart 的 stdout 會加進 Claude 的 context,讓它一開始就知道目前的變更與最近的 commit。

⚠️ Hook 安全注意
  • Hook 會以你的帳號權限自動執行任意指令,不會再詢問你
  • 不要加入來源不明的 hook;別人 commit 的 .claude/settings.json 也要 review
  • 腳本裡的變數記得加雙引號("$file_path"),避免路徑有空白或惡意字元
  • 想暫時停用所有 hooks,可在設定加上 "disableAllHooks": true

Skills 自訂技能

把重複的多步驟工作流程包裝成「技能」,一個指令就能呼叫整套流程。

Skill 是什麼?

Skill 是一個資料夾,裡面放一份 SKILL.md(YAML frontmatter + Markdown 指示),也可以附帶腳本、範本、參考文件。Claude 平常只看到每個 skill 的 name 與 description,判斷用得上時才載入完整內容,所以裝很多 skill 也不太佔 context。Skills 遵循開放的 Agent Skills 標準。

Skill vs Sub-agent vs Hook

觸發方式典型用途
Skill 你輸入 /skill-name,或 Claude 依 description 自動載入 可重複的工作流程、團隊慣例、專業知識
Sub-agent Claude 自動分派或明確指名 在獨立 context 執行的專門角色(測試員、reviewer)
Hook 事件觸發(程式自動執行) 一定要執行的規則(格式化、阻擋危險指令)

Skill 放在哪裡?

位置範圍
~/.claude/skills/<name>/SKILL.md個人:你所有專案都能用
.claude/skills/<name>/SKILL.md專案:跟著 git 走,團隊共用
外掛的 skills/<name>/SKILL.md啟用外掛的地方,呼叫時帶前綴:/plugin-name:skill-name
組織管理設定由管理員派送給整個組織
ℹ️ 跟舊的自訂斜線指令(.claude/commands)有什麼關係?

舊格式 .claude/commands/deploy.md 仍然可用,它跟 .claude/skills/deploy/SKILL.md 一樣都會產生 /deploy。新的工作建議用 Skill:可以附帶支援檔案、可以讓 Claude 自動判斷何時使用、也能用 frontmatter 控制呼叫方式。

建立 Skill

目錄結構
.claude/skills/deploy/
├── SKILL.md          # required: frontmatter + instructions
├── checklist.md      # optional: loaded only when referenced
└── scripts/
    └── healthcheck.sh
.claude/skills/deploy/SKILL.md
---
name: deploy
description: 部署應用程式到 staging 或 production 環境
argument-hint: [staging|prod]
disable-model-invocation: true
---

執行以下步驟部署到 $ARGUMENTS 環境(沒指定就用 staging):

1. **檢查前置條件**
   - 確認在 main branch 或受信任的 release branch
   - 確認所有 CI 都通過
   - 確認沒有未 commit 的變更
   - 逐項核對 [checklist.md](checklist.md)

2. **跑完整測試**
   ```bash
   uv run pytest --cov=src
   ```
   如果失敗就停止。

3. **建立並推送 Docker image**
   ```bash
   docker build -t myapp:$(git rev-parse --short HEAD) .
   docker push myapp:$(git rev-parse --short HEAD)
   ```

4. **更新 Kubernetes deployment**
   ```bash
   kubectl set image deployment/myapp \
     myapp=myapp:$(git rev-parse --short HEAD) \
     -n <目標環境>
   ```

5. **驗證部署**:執行 `scripts/healthcheck.sh` 檢查 pods 與 health endpoint

6. **回報結果**:commit hash、環境、健康檢查結果、監控連結

部署這種有副作用的動作,加上 disable-model-invocation: true,就只有你輸入 /deploy 時才會執行,Claude 不會自己決定去部署。

常用 Frontmatter 欄位

所有欄位都是選填,但強烈建議寫 description:

欄位說明
name指令名稱,省略時用資料夾名稱
description做什麼、什麼時候用 — Claude 靠它判斷要不要自動載入
argument-hint輸入 / 時自動完成顯示的參數提示
disable-model-invocationtrue = 只能由你手動呼叫
user-invocablefalse = 不出現在 / 選單,只給 Claude 當背景知識用
allowed-tools使用這個 skill 時預先核准的工具,例如 Bash(gh *)
model執行這個 skill 時改用的模型
context / agentcontext: fork 讓 skill 在獨立子代理中執行,agent 指定子代理類型

完整欄位見官方 Skills 文件。

呼叫 Skill

Claude Code
# 直接用斜線呼叫(名稱就是 skill 名稱)
> /deploy

# 後面的文字會代入 SKILL.md 裡的 $ARGUMENTS
> /deploy prod

# 沒設 disable-model-invocation 的 skill,Claude 也會依 description 自動使用
> 幫我看一下這個 PR 改了什麼

也可以在 SKILL.md 裡用 !`指令` 在載入前先執行 shell 指令、把輸出塞進內容,例如 !`git diff HEAD` 讓 skill 一開始就拿到最新的變更。

常用 Skill 範本

1. 新人 onboarding

.claude/skills/onboard/SKILL.md
---
name: onboard
description: 帶新加入的成員認識這個專案。新人問「從哪裡開始」或要求專案導覽時使用。
---

歡迎新加入!我會帶你熟悉這個專案。

1. 先讀 @README.md @CLAUDE.md @CONTRIBUTING.md
2. 列出專案 5 個最重要的檔案
3. 解釋整體架構
4. 跑一次完整的 dev 環境啟動流程
5. 問新人想從哪個模組開始
6. 安排第一個 onboarding task(從 good-first-issue label 找)

2. 釋出版本

.claude/skills/release/SKILL.md
---
name: release
description: 建立新版本(含 changelog、tag、release notes)
argument-hint: [major|minor|patch]
disable-model-invocation: true
allowed-tools: Bash(git *) Bash(gh release *)
---

版號升級類型:$ARGUMENTS(沒指定就用 patch)

1. 確認在 main、無未 commit 變更
2. 跑完整測試
3. 從上次 tag 到現在的 commit 整理成 changelog(依 Conventional Commits 分類)
4. 依升級類型更新 pyproject.toml 版號
5. 更新 CHANGELOG.md
6. Commit「chore(release): vX.Y.Z」
7. 建立 git tag
8. Push 包含 tag
9. 用 gh release create 建立 GitHub release
10. 回報新版號與 release 連結

3. Bug 分類處理

.claude/skills/bug-triage/SKILL.md
---
name: bug-triage
description: 系統化分析一個 GitHub issue 回報的 bug
argument-hint: [issue-number]
disable-model-invocation: true
---

針對 issue #$ARGUMENTS:

1. 用 gh issue view 讀 issue 內容與所有評論
2. 嘗試在本地重現
3. 如能重現:
   - 寫出最小重現範例
   - 找出可能根因
   - 寫對應的失敗測試
   - 評估嚴重度(P0/P1/P2/P3)
4. 如不能重現:
   - 留言請報告者補資訊
   - 標 needs-info label
5. 更新 issue:加 label、提出修復計畫

4. 升級依賴

.claude/skills/upgrade-deps/SKILL.md
---
name: upgrade-deps
description: 升級 Python 專案的依賴套件並逐一測試
disable-model-invocation: true
---

1. 列出 pyproject.toml 中所有依賴的目前版本與最新版本
2. 分類:
   - patch 升級(自動執行)
   - minor 升級(執行,注意 release notes)
   - major 升級(先問人,不要直接做)
3. 一次升一個套件:
   - 升級
   - 跑完整測試
   - 過了就 commit,沒過就 revert 並回報
4. 全部完成後彙整:升了哪些、哪些有 breaking change

進階:Skill 搭配 Sub-agent

Skill 的指示裡可以要求 Claude 派出子代理處理各步驟;或在 frontmatter 加上 context: fork,讓整個 skill 在獨立的子代理 context 中執行(注意:它看不到主對話的歷史,指示要寫完整):

.claude/skills/full-feature/SKILL.md
---
name: full-feature
description: 從需求到 staging 部署的完整功能開發流程
disable-model-invocation: true
---

功能需求:$ARGUMENTS

1. 派出 Explore 子代理盤點相關程式碼
2. 寫出 design.md,暫停讓我確認
3. 依設計拆解任務並實作
4. 派出 test-writer 子代理補測試
5. 派出 code-reviewer 子代理做 review
6. 派出 docs-writer 子代理更新文件
7. 全部通過後,提醒我執行 /deploy staging
💡 分享與取得 Skills

把 .claude/skills/ 跟著 git 走,整個團隊都能用同一套 skill;要跨專案發佈,可以包成外掛(Plugin)。官方範例可參考 anthropics/skills。社群 skill 會拿到你的權限與資料,安裝前請先讀過內容。

🔥 熱門 Skills 擴充總覽

站在巨人的肩膀上 — 直接安裝社群打造的優秀 Skill 包,30 秒讓你的 Claude Code 變得脫胎換骨。

為什麼要用社群擴充?

⚡

立即可用

多數套件一兩行指令就能裝好,不必自己摸索

🎓

前人經驗

把資深工程師的實戰流程(規劃、TDD、Review、出貨)包成可直接呼叫的 skill

🌐

持續更新

熱門套件更新頻繁,透過 marketplace 就能一鍵更新

🆓

開源免費

多數採 MIT / Apache 等開源授權,可 fork 客製化(安裝前請看各自的授權)

💡 先懂 Plugin 再裝套件

本區的套件大多以 Plugin 形式發佈,透過 /plugin marketplace add 與 /plugin install 安裝。還不熟這兩個指令的話,建議先看 Plugins 外掛與 Marketplace。

推薦套件比較

GitHub 星數為撰寫時(2026/10)的約略值,僅供參考人氣。

套件定位GitHub 星數適合誰
oh-my-claudecode多代理協作系統約 39.7k ⭐想要並行開發、自動化編排的人
gstack50+ 個矽谷工程團隊角色 skill約 135.7k ⭐創辦人 / 完整 sprint 流程
Superpowers結構化生命週期 + 技能框架約 296.3k ⭐需要 TDD、Debug、Review 系統化流程
claude-mem跨對話長期記憶約 97.6k ⭐不想重複解釋專案背景的人
awesome-claude-code策展清單約 55.2k ⭐想瀏覽整個生態系的探索者

怎麼選?三條建議路線

路線 1:個人開發 / 創辦人 / 全端

推薦:gstack — Garry Tan(Y Combinator 總裁暨 CEO)的個人配方,從 office hours、CEO review、Eng review,到 QA 與 Ship,整個 sprint 流程都有對應的 skill。

路線 2:團隊協作 / 大型專案 / 並行開發

推薦:oh-my-claudecode — 主打多代理協作,/team 一次派出多個 worker 平行處理。

路線 3:簡潔派 / 想了解每個工具在做什麼

推薦:從官方 marketplace 挑 — 先在 /plugin 的 Discover 分頁瀏覽 Anthropic 官方 marketplace(claude-plugins-official),或從 awesome-claude-code 清單中挑選真正需要的 skill 一個個加,避免一次塞太多反而搞不清楚。

⚠️ 不要一次裝太多

每個套件都帶來自己的 skill、agent、hook 規則。啟用中的 plugin 會在每個 session 佔用一些 context(skill 的名稱與描述每回合都會載入),同時裝多個大型套件也可能互相干擾。建議一次只專注一個套件,熟悉後再加其他;暫時不用的可以 /plugin 停用。另外,plugin 會以你的權限執行程式碼,只安裝信任來源的套件。

oh-my-claudecode (OMC)

Claude Code 的多代理編排系統 — 零學習曲線。「不要學 Claude Code,用 OMC 就好。」

⭐ 約 39.7k stars(2026/10)· MIT License

Yeachan-Heo/oh-my-claudecode

把複雜的多代理協作包裝成 /autopilot、/team 等指令,從需求釐清、規劃、執行、驗證到修復,一氣呵成。

核心特色

🎯

零設定

智慧預設,安裝完就能用

👥

Team 模式

team-plan → team-prd → team-exec → team-verify → team-fix 的分階段管線

💬

自然語言介面

不必記指令,直接描述要做什麼

⚙️

自動平行化

複雜任務自動分派到專業代理

💰

成本優化

依任務難度路由到不同模型(README 宣稱可省 30-50% token)

🎤

需求訪談

/deep-interview 先問清楚需求再動手

安裝

方法 A:透過 Plugin Marketplace(推薦)

在 Claude Code 對話中執行(一次貼一行,兩行一起貼會失敗):

Claude Code
/plugin marketplace add https://github.com/Yeachan-Heo/oh-my-claudecode

接著貼第二行:

Claude Code
/plugin install oh-my-claudecode@omc

@omc 是這個 marketplace 的名稱;README 也寫成簡短的 /plugin install oh-my-claudecode,兩者效果相同。

裝好後執行初始設定:

Claude Code
/omc-setup

方法 B:透過 npm 安裝 CLI(提供 omc 指令)

Terminal
npm install -g oh-my-claude-sisyphus@latest
omc setup

npm 套件名稱是 oh-my-claude-sisyphus(歷史名稱,不是打錯)。安裝時若出現 deprecated prebuild-install 警告屬已知現象,不代表安裝失敗。

啟用 Native Teams(使用 /team 時需要)

/team 使用 Claude Code 的 agent teams 功能,目前仍是實驗功能,需在 ~/.claude/settings.json 開啟(未開啟時 OMC 會提示並退回非 team 模式執行):

~/.claude/settings.json
{
  "env": {
    "CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1"
  }
}

核心指令

/autopilot — 全自動執行

Claude Code
/autopilot "build a REST API for managing tasks"

/team — Team 編排(推薦)

Team 是 OMC 的核心:分階段管線(team-plan → team-prd → team-exec → team-verify → team-fix),N 個代理在同一份任務清單上協作:

Claude Code
/team 3:executor "fix all TypeScript errors"

omc team — tmux CLI Workers

在終端機派出真正的 claude / codex / gemini 等 CLI 進程到 tmux 分割視窗(需先用 npm 安裝 omc CLI,並安裝對應的 CLI 工具):

Terminal
omc team 2:codex "review auth module"
omc team 2:antigravity "redesign UI components"
omc team 1:claude "implement the payment flow"

執行模式速查

模式定位適用情境
/team標準多代理協作完成共同任務
omc teamtmux CLI workersCodex / Antigravity 跨模型任務
/ask codex、/ask antigravity請其他模型當顧問,由 Claude 統整需要多角度評估的決策
/autopilot單一主代理自動執行端到端功能開發
/ralph、/execute持續執行 + 驗證/修復迴圈必須完整完成的任務
/deep-interview蘇格拉底式需求訪談需求還很模糊的時候
⚠️ 舊教學的指令可能已移除

OMC 改版很快:新版已移除 swarm 等舊模式,Gemini 也改由 Antigravity 取代(舊版的 /ccg 請改用 /ask codex + /ask antigravity)。網路上舊文章的指令若無效,請以 GitHub README 為準;更新方式為 /plugin marketplace update omc 後再跑一次 /omc-setup。

📚 延伸資源

GitHub:Yeachan-Heo/oh-my-claudecode

gstack — 把 Claude 變成虛擬矽谷工程團隊

Y Combinator 總裁暨 CEO Garry Tan 的個人 Claude Code 配方 — 50 多個 opinionated skill,扮演 CEO、設計師、Eng Manager、Release Engineer、技術寫手、QA Lead、資安長。

⭐ 約 135.7k stars(2026/10)· MIT License

garrytan/gstack

Andrej Karpathy 說自己幾乎不再親手打程式碼,這句話啟發了 Garry Tan 打造 gstack。據 README 所述,他用它在 60 天內兼職出貨 3 個生產服務、40+ 功能。

定位與設計哲學

gstack 不只是工具集合,更是一套軟體開發流程。它把整個 sprint 拆成可呼叫的步驟:

💭 Think:/office-hours 釐清問題本質
↓
📋 Plan:/plan-ceo-review + /plan-eng-review + /plan-design-review
↓
💻 Build:根據計畫實作
↓
🔍 Review:/review 找出 production bug
↓
🧪 Test:/qa 開瀏覽器實際測試
↓
🚀 Ship:/ship + /land-and-deploy
↓
📊 Reflect:/retro 每週回顧

安裝

前置需求

  • Claude Code CLI
  • Git
  • Bun v1.4.2+(README 的測試版本;低於 1.3.3 時 ./setup 會拒絕安裝)
  • Node.js(僅 Windows 需要)

個人安裝

打開 Claude Code,把下方整段貼給它,Claude 會自動完成安裝:

Claude Code(整段貼上)
Install gstack: run `git clone --single-branch --depth 1 https://github.com/garrytan/gstack.git ~/.claude/skills/gstack && cd ~/.claude/skills/gstack && ./setup` then add a "gstack" section to CLAUDE.md.

也可以自己在終端機執行引號內的 git clone … && ./setup。gstack 不是走 /plugin marketplace,而是直接 clone 到 ~/.claude/skills/gstack;README 原文的 CLAUDE.md 段落還會列出可用 skill 清單,可參考 GitHub 上的完整版本。

第一次嘗試 — 試試這個

  1. 跑 /office-hours — 描述你想做什麼
  2. 跑 /plan-ceo-review — 在任何想法上
  3. 跑 /review — 在有變更的 branch 上
  4. 跑 /qa — 在你的 staging URL 上

常用工具精選

gstack 目前有 50 多個 skill(撰寫時 2026/10),以下挑出最常用的,完整清單請看 GitHub README。

🎯 規劃階段

指令角色功能
/office-hoursYC Office Hours六個強迫性提問,逼你重新思考產品 framing
/plan-ceo-reviewCEO / 創辦人找出隱藏的 10 倍機會
/plan-eng-reviewEng Manager鎖定架構、資料流、邊界條件
/plan-design-review資深設計師對每個設計維度打 0-10 分
/plan-devex-reviewDX Lead以開發者體驗角度審查計畫
/autoplanReview Pipeline一鍵跑完 CEO → 設計 → DX → 工程全套 review
/specSpec Author把模糊的想法寫成可執行的規格

🔍 Review 與測試

指令功能
/review找出 CI 過了但會在 production 爆掉的 bug
/investigate系統化根因分析,3 次失敗就停止
/qa實際操作瀏覽器 / API / CLI 測試、找 bug、寫回歸測試並修復
/qa-only只測試與回報,不改程式碼
/design-review設計稽核後直接修正
/cso資安稽核(OWASP + STRIDE 威脅模型)
/codex透過 OpenAI Codex CLI 取得獨立 review
/browse讓代理操作瀏覽器(「給代理一雙眼睛」)

🚀 部署

指令功能
/ship同步 main、跑測試、檢查覆蓋率與文件、推送並開 PR
/document-release出貨前比對變更與專案文件,更新文件
/land-and-deploy合併 PR、等 CI、部署、驗證 production
/canary部署後監控 console error、效能回歸
/retro每週工程回顧

🛡️ 安全護欄

指令功能
/careful在 rm -rf、DROP TABLE、force-push 前警告
/freeze把編輯限制在一個目錄
/guard/careful + /freeze 全套
/unfreeze解除 /freeze 的限制
📚 延伸資源

GitHub:garrytan/gstack

claude-img — 多圖上傳神器

原生檔案選擇器整合,一次選多張圖丟給 Claude Code — 不必一張一張貼上。

🦀 Rust · 無外部依賴 · MIT License · 跨平台

Lazy-poet/claude-img

用 Rust 寫的小工具,跨平台、無依賴、純二進位執行檔。一個 /img 指令打開系統原生檔案選擇器,選好幾張圖直接送進 Claude Code 對話。

解決什麼問題?

  • Claude Code 內建的貼圖快捷鍵(Ctrl+V;iTerm2 用 ⌘+V、Windows 用 Alt+V)每次貼上剪貼簿裡的一張圖,要放多張得反覆截圖、貼上
  • 手動輸入一長串圖片路徑容易打錯
  • 從檔案總管拖曳的行為在不同終端機 / OS 不一致
  • 截圖、設計圖大量比對時格外不方便
💡 不裝也能用多張圖

Claude Code 本身就支援在同一段對話中使用多張圖片:可以拖曳圖片進終端機、用上述快捷鍵貼上(每貼一張出現一個 [Image #N]),或直接輸入圖片路徑。claude-img 只是讓「一次挑選多張」更方便的社群小工具(個人專案,規模很小),是否需要請自行評估。

核心特色

🖼️

原生檔案選擇器

用作業系統內建的檔案選擇 UI,熟悉、快速、可預覽

📦

一次選多張

Ctrl/⌘ 多選,一口氣把多張圖丟給 Claude

🦀

Rust 純二進位

無需 Node.js、Python 或其他 runtime

🌐

跨平台

macOS(Apple Silicon/Intel)、Linux、Windows 全支援

🎨

多種格式

PNG、JPG、GIF、WebP、BMP、TIFF 都吃

⚡

零設定

一行指令安裝,馬上能用

安裝

下載並安裝

macOS / Linux:

Terminal
curl -fsSL https://claude-img-releases.s3.eu-north-1.amazonaws.com/install.sh | bash

Windows(PowerShell):

PowerShell
irm https://claude-img-releases.s3.eu-north-1.amazonaws.com/install.ps1 | iex

安裝器會下載對應平台的二進位執行檔,並把 /img skill 放到 ~/.claude/skills/img。curl … | bash 會直接執行遠端腳本,執行前建議先打開網址看一下內容。

立即使用

在任何 Claude Code session 中輸入 /img:

Claude Code
> /img 幫我 review 這些 mockup 的無障礙設計
> /img 比較這兩張截圖的差異
> /img

系統原生檔案選擇器會彈出來,選你要的圖片(按住 Ctrl / ⌘ 多選),按確認後圖片自動進入對話。/img 後面的文字會作為這些圖片的指示說明。

運作原理

1️⃣ 在 Claude Code 對話中輸入 /img [指示文字]
↓
2️⃣ /img Skill 觸發 → 啟動 claude-img 二進位執行檔
↓
3️⃣ 程式呼叫作業系統原生檔案選擇器(透過 rfd Rust crate)
↓
4️⃣ 驗證選取的檔案為合法圖片格式
↓
5️⃣ 輸出 @/path/to/image.png 引用到 stdout
↓
6️⃣ Claude Code 捕捉並把圖片注入對話脈絡

支援平台

平台架構狀態
macOSApple Silicon(M 系列)✅ 預編譯二進位
macOSIntel✅ 預編譯二進位
Linuxx86_64✅ 預編譯二進位
Windowsx86_64✅ 預編譯二進位

從原始碼編譯(進階)

若你需要支援其他平台(如 ARM Linux)或想自訂版本:

Terminal
cargo install --git https://github.com/lazy-poet/claude-img

需要先安裝 Rust toolchain(參考 rustup.rs)。

解除安裝

macOS / Linux
rm ~/.local/bin/claude-img
rm -rf ~/.claude/skills/img
Windows(PowerShell)
Remove-Item "$env:LOCALAPPDATA\Programs\claude-img" -Recurse
Remove-Item "$env:USERPROFILE\.claude\skills\img" -Recurse

典型適用情境

🎨

Mockup Review

把多張 Figma 截圖丟給 Claude 做無障礙、設計一致性 review

📸

螢幕截圖比對

比對前後版本的截圖,讓 Claude 指出視覺差異

🐛

UI Bug 回報

把錯誤畫面截圖批次丟給 Claude 分析

📊

多圖表分析

送出多張 chart、dashboard 截圖讓 Claude 統整觀察

📐

架構圖討論

多張白板照、架構草圖一起送給 Claude 評估

🖌️

Figma → Code

批次截圖整套 UI,讓 Claude 一次產生對應元件

💡 與其他工具搭配

配合 macOS 的 ⌘+Shift+5 連續截圖,或 Windows 的 Snipping Tool 批次截圖,然後用 /img 一次丟給 Claude — 設計 review、UI 開發、bug triage 的效率會大幅提升。

📚 延伸資源

GitHub:Lazy-poet/claude-img · License:MIT

Superpowers

結構化生命週期 + Skills 框架 — 已收錄於 Anthropic 官方 plugin marketplace(claude-plugins-official)。

⭐ 約 296.3k stars(2026/10)· MIT License

obra/superpowers

由 obra(Jesse Vincent)打造的 agentic skills 框架與軟體開發方法論 — 涵蓋 brainstorming、TDD、debugging、code review。

核心設計理念

Superpowers 不是一堆獨立工具,而是一個方法論框架。它把開發拆成明確的生命週期階段:

💡

Brainstorm

釐清想法、列出方案、找出最有價值的路徑

🧪

TDD

強制先寫測試的工作流,紅 → 綠 → 重構

🐛

Debug

系統化除錯流程,禁止盲猜

🔍

Review

結構化的 code review checklist

安裝

Superpowers 已收錄於 Anthropic 官方 marketplace claude-plugins-official(Claude Code 首次啟動時會自動加入,不必另外 add),直接安裝即可:

Claude Code
/plugin install superpowers@claude-plugins-official

或使用作者自己的 marketplace(一次貼一行):

Claude Code
/plugin marketplace add obra/superpowers-marketplace
/plugin install superpowers@superpowers-marketplace
⚠️ 收錄 ≠ Anthropic 認證

Superpowers 是 Jesse Vincent 的社群專案,只是被收錄在官方 marketplace 中。Anthropic 在官方 marketplace 的說明中也提醒,它無法控制或保證第三方 plugin 的內容,安裝前仍請自行評估。它也不在 anthropics/skills 裡。

典型工作流

Superpowers 由一組 skill 組成(全部是 skill,沒有額外的 slash command),Claude 會在合適的時機自動套用,也可以用 /superpowers:技能名稱 手動呼叫:

1️⃣ brainstorming — 釐清要做什麼、比較方案
↓
2️⃣ writing-plans → executing-plans / subagent-driven-development — 拆解並執行任務
↓
3️⃣ test-driven-development — 紅綠重構循環
↓
4️⃣ systematic-debugging — 遇到問題系統化處理
↓
5️⃣ requesting-code-review + verification-before-completion — 稽核與完成前驗證

其他 skill 還有 using-git-worktrees、finishing-a-development-branch、dispatching-parallel-agents、writing-skills 等,完整清單見 GitHub。

💡 為何值得試?

Superpowers 的價值不在指令多寡,而在「強制紀律」— 當你的 Claude 沒有結構地亂跑時,這套框架會把它拉回正軌。

其他必裝擴充

社群與官方 marketplace 中值得一試的擴充與資源。星數為撰寫時(2026/10)的約略值。

🏛️ 先從官方 marketplace 開始

Anthropic 官方 marketplace claude-plugins-official 會在第一次啟動 Claude Code 時自動加入,執行 /plugin 在 Discover 分頁就能瀏覽,也可以在 claude.com/marketplace/plugins 先看看。以下幾個是 Anthropic 自己維護、新手容易上手的:

Plugin做什麼安裝指令
frontend-design讓 Claude 產出有設計感、不落俗套的前端介面/plugin install frontend-design@claude-plugins-official
code-review多個專門代理平行 review PR,並以信心分數過濾誤報/plugin install code-review@claude-plugins-official
pr-review-toolkit針對註解、測試、錯誤處理、型別設計等面向的 PR review 代理/plugin install pr-review-toolkit@claude-plugins-official
commit-commandscommit、push、開 PR 的快捷指令/plugin install commit-commands@claude-plugins-official
linearLinear issue 追蹤整合:建立 / 更新 / 搜尋 issue/plugin install linear@claude-plugins-official
skill-creator引導你建立、改進、評測自己的 skill/plugin install skill-creator@claude-plugins-official

anthropics/skills — Anthropic 的 Agent Skills 範例庫

⭐ 約 180k。Anthropic 公開的 Agent Skills 儲存庫,本身也是一個 marketplace(名稱 anthropic-agent-skills)。其中 document-skills 提供 Word / Excel / PowerPoint / PDF 文件處理,example-skills 收錄 skill-creator、frontend-design、mcp-builder、webapp-testing 等範例(一次貼一行):

Claude Code
/plugin marketplace add anthropics/skills
/plugin install document-skills@anthropic-agent-skills

📚 策展清單(從這裡找更多)

hesreallyhim/awesome-claude-code
⭐ 約 55.2k · 手動策展的 Claude Code 資源清單(skills、hooks、slash commands、工具等)。
affaan-m/ECC(原 everything-claude-code)
⭐ 約 274.8k · 不是單純清單,而是一整套「agent harness」:大量 agents、skills、hooks 與規則,可當成 plugin 安裝。內容很多,建議挑需要的部分參考。
quemsah/awesome-claude-plugins
⭐ 約 1.4k · 自動化索引 Claude Code plugin 並附上採用度指標。
punkpeye/awesome-mcp-servers
⭐ 約 95.9k · 最完整的 MCP server 清單之一。

🧠 記憶與上下文

claude-mem — 跨對話長期記憶

⭐ 約 97.6k · Apache-2.0。自動記錄 Claude 在 session 中做過的事,之後的對話再把相關脈絡帶回來,不必每次重新解釋專案背景。安裝需先加入它的 marketplace(一次貼一行):

Claude Code
/plugin marketplace add thedotmack/claude-mem
/plugin install claude-mem@thedotmack

README 也提供 npx claude-mem install 安裝器;新版安裝器會邀請你登入試用其雲端服務,不需要的話可依 README 說明略過。

🔌 SaaS 整合

connect-apps(Composio)— 連接數百個 SaaS

放在 ComposioHQ/awesome-claude-skills 儲存庫(⭐ 約 76.7k)的 connect-apps-plugin/ 資料夾,透過 Composio 讓 Claude 操作 GitHub、Slack、Gmail、Notion 等服務。它不在官方 marketplace,需要先 clone 再用 --plugin-dir 載入,並準備 Composio API key:

Terminal
git clone https://github.com/ComposioHQ/awesome-claude-skills.git
cd awesome-claude-skills
claude --plugin-dir ./connect-apps-plugin

進入 Claude Code 後執行 /connect-apps:setup,依指示貼上 API key。詳細步驟以 repo 的 README 為準。

📦 大型 Skill 集合

agentic-awesome-skills(原 antigravity-awesome-skills)

⭐ 約 47.3k · MIT。社群維護、數量破兩千的跨工具 skill 集合,支援 Claude Code、Cursor、Gemini CLI、Codex CLI 等。repo 已改名為 sickn33/agentic-awesome-skills,舊的 npm 套件名稱已停止更新。

Terminal
npx agentic-awesome-skills --claude
⚠️ 數量多不等於好用

一次裝上千個 skill 會讓 Claude 每回合都要讀一大串名稱與描述,佔用 context 也容易誤觸發。建議只挑真正需要的幾個。

🎓 學習資源

📖 推薦閱讀

打造自己的 Skill 包

學會了怎麼用,下一步是打造屬於你或團隊的 skill 包,分享給社群。

SKILL.md 標準格式

Claude Code 的 skill 遵循開放的 Agent Skills 標準,其他支援這個標準的 AI 工具也能讀取同一份 SKILL.md;Claude Code 另外擴充了呼叫控制、子代理執行等功能(這些擴充欄位在其他工具不一定有效)。

~/.claude/skills/test-writer/SKILL.md
---
name: test-writer
description: 為 Python 檔案撰寫 pytest 測試。當使用者說「幫我寫測試」、「add tests」或提到 pytest 時使用。
argument-hint: [target-file]
allowed-tools: Read Grep Glob Bash(pytest *)
---

# Test Writer

你是測試專家,當使用者要寫測試時:

1. 先讀 $ARGUMENTS(若沒有指定,詢問要測哪個檔案)
2. 識別公開的 function / class
3. 為每個寫至少 3 個測試(happy / edge / error)
4. 用 pytest fixtures,避免重複
5. 完成後跑測試確認都過

絕對遵守:
- 不修改原本的 production code
- 不要 mock 不需要 mock 的東西
- 測試名稱要 self-documenting

使用時輸入 /test-writer src/utils.py,$ARGUMENTS 會被換成 src/utils.py;即使不打指令,Claude 也會依 description 判斷何時自動套用。

常用 frontmatter 欄位(官方)

欄位用途
name/ 選單中的指令名稱,省略時使用資料夾名稱
description做什麼、何時用 — Claude 靠它決定要不要自動套用(最重要的欄位)
when_to_use補充觸發時機,例如觸發語句或範例請求
argument-hint自動補完時顯示的參數提示
arguments具名參數,例如 arguments: [issue, branch] 後可用 $issue、$branch
allowed-tools呼叫這個 skill 的那一回合免詢問就能用的工具(是「預先核准」,不是限制)
disallowed-toolsskill 執行期間移除的工具
disable-model-invocation設為 true 時只能手動 /指令 呼叫,Claude 不會自動觸發
user-invocable設為 false 時從 / 選單隱藏,只讓 Claude 自動使用
model、effort這個 skill 執行時改用的模型 / 思考力度
context: fork、agent在獨立的子代理中執行,並指定子代理類型
paths以 glob 限定只在處理特定檔案時啟用
⚠️ 網路上常見的錯誤欄位

version、author、tags、triggers、tools 都不是 SKILL.md 的官方欄位,寫了也不會有作用:觸發條件請寫進 description / when_to_use,工具請用 allowed-tools,版本與作者則放在 plugin 的 plugin.json。參數請用 $ARGUMENTS 或 $名稱,不是 {{變數}}。完整欄位見官方 Skills 文件。

Skill 要放在哪裡?

位置路徑誰能用
個人~/.claude/skills/<skill 名稱>/SKILL.md你自己,所有專案
專案.claude/skills/<skill 名稱>/SKILL.md這個 repo 的所有協作者(隨 git 提交)
Plugin<plugin>/skills/<skill 名稱>/SKILL.md安裝該 plugin 的人,以 /plugin名稱:skill名稱 呼叫
⚠️ 不要再多包一層資料夾

每個 skill 資料夾必須直接放在 skills/ 底下。像 ~/.claude/skills/my-pack/test-writer/SKILL.md 這種多一層的結構,啟動時不會被載入。想把多個 skill 打包成一組分享,請做成 Plugin(見下方)。

把多個 Skill 打包成 Plugin

規劃結構

想一次分享多個 skill(甚至加上 agents、hooks、MCP server),官方做法是打包成 Plugin:

資料夾結構
my-skill-pack/
├── .claude-plugin/
│   └── plugin.json          # manifest(只有它放在這裡)
├── skills/
│   ├── test-writer/
│   │   └── SKILL.md
│   ├── code-reviewer/
│   │   └── SKILL.md
│   └── deploy/
│       └── SKILL.md
├── agents/
│   └── security-auditor.md
├── hooks/
│   └── hooks.json
├── README.md
└── LICENSE
.claude-plugin/plugin.json
{
  "name": "my-skill-pack",
  "description": "My team's testing and review skills",
  "version": "1.0.0",
  "author": { "name": "Your Name" }
}

用 skill-creator 加速

Anthropic 維護的 skill-creator plugin 能引導你建立、改進並評測 skill。它在官方 marketplace 中:

Claude Code
/plugin install skill-creator@claude-plugins-official

裝好後直接用自然語言說「幫我建立一個寫 pytest 測試的 skill」,或手動呼叫 /skill-creator:skill-creator。想打造完整 plugin,也可以安裝官方的 plugin-dev,再用 /plugin-dev:create-plugin。

本地測試

不需要 marketplace,用 --plugin-dir 載入資料夾即可測試(只在這個 session 有效),修改後在 session 內執行 /reload-plugins 重新載入:

Terminal
claude plugin validate ./my-skill-pack
claude --plugin-dir ./my-skill-pack

進入後用 /my-skill-pack:test-writer 試用 skill。

發佈

  1. 推上 GitHub,加上清楚的 README
  2. 在 repo 加一個 .claude-plugin/marketplace.json,別人就能 /plugin marketplace add 你的帳號/repo 再 /plugin install(做法見 Plugins 外掛與 Marketplace)
  3. 提交到社群清單(例如 awesome-claude-code)
  4. 也可以依官方文件的說明,提交到 Anthropic 的 plugin 目錄審核

撰寫好 Skill 的原則

1. 一個 Skill 做一件事

不要在同一個 SKILL.md 裡塞太多功能。「寫測試」和「做 code review」應該是兩個 skill。

2. 觸發條件要明確

Claude 是靠 description(與 when_to_use)判斷何時使用 skill,所以要把關鍵用途寫在最前面,並涵蓋使用者可能的多種說法(中英文、口語、技術術語)。描述太長會被截斷,精簡為上。

3. 謹慎預先核准工具

allowed-tools 會讓列出的工具免詢問直接執行,只列真正必要、且安全的項目。一個只讀分析的 skill 不應該預先核准 Write 或廣泛的 Bash;必要時可用 disallowed-tools 移除不該用的工具。

4. 提供範例對話

在 SKILL.md 內附上「使用者怎麼說 → skill 怎麼回」的範例,讓 Claude 更容易理解預期行為。

5. 規則要明確並說明理由

與其只寫「最好」、「建議」,不如清楚寫出「必須做什麼、不能做什麼」,並附上一句為什麼 — Claude 理解原因後,遇到沒寫到的情況也比較能做出正確判斷。

從熱門套件學習

想學什麼?看哪個專案的原始碼
多代理協作oh-my-claudecode
角色扮演與流程gstack
方法論框架Superpowers
SaaS 整合connect-apps
記憶系統Claude-Mem
🌟 分享給社群

寫好的 skill 別藏私!打包成 plugin 放上 GitHub 並提供 marketplace,或提交到 awesome-claude-code 清單。讓更多人受益的同時,你也會收到回饋讓 skill 變得更好。

🧭 Claude Code 在哪裡用

Claude Code 不只在終端機 — 同一個 AI 編程代理,可以從 IDE、桌面 App、瀏覽器、手機、Chrome、Slack 使用。認識每個入口,挑最適合你的那一個。

一張表看懂所有入口

入口在哪裡執行適合誰 / 什麼情境怎麼開始
終端機 CLI你的電腦功能最完整,本站主要教學對象安裝後輸入 claude
VS Code 擴充你的電腦習慣 VS Code / Cursor,想要圖形介面與內嵌 diff擴充功能搜尋「Claude Code」
JetBrains 外掛你的電腦IntelliJ、PyCharm、WebStorm 等使用者JetBrains Marketplace 安裝
桌面 App你的電腦或雲端不想碰終端機、想同時開多個 session下載 Claude Desktop → Code 分頁
網頁 / 手機Anthropic 雲端不在電腦前、想丟長任務讓它在雲端跑claude.ai/code 或 Claude App 的 Code 分頁
Chrome 整合你的瀏覽器讓 Claude 操作網頁、看 console 除錯claude --chrome 或 /chrome
SlackAnthropic 雲端在團隊討論串中直接交辦程式任務在頻道中 @Claude
💡 設定大多是共通的

CLI、VS Code 擴充與桌面 App 的本機 session 讀取同一套設定檔(~/.claude/settings.json、CLAUDE.md、MCP、skills 等),在本站學到的知識大部分都能直接沿用。雲端 session 則在 Anthropic 的虛擬機中執行,不會載入你本機的 plugin 與個人設定。

⌨️ 終端機 CLI

最原始、功能最完整的形式,所有指令、旗標、hooks、headless 模式都從這裡開始。安裝方式請看 安裝 Claude Code,之後在專案資料夾執行:

Terminal
cd my-project
claude

📘 VS Code 擴充(也支援 Cursor)

  • 需求:VS Code 1.94.0 以上;任何付費 Claude 方案(Pro、Max、Team、Enterprise)或 Claude Console 帳號,不需要 API key
  • 安裝:在擴充功能面板搜尋「Claude Code」(發行者 Anthropic)安裝。Cursor 與其他 VS Code 分支也能安裝,或從 Open VSX 取得
  • 開啟:打開任一檔案後,點編輯器右上角的 Spark(✱)圖示;或點左側活動列的 Spark 圖示;或按 Ctrl+Shift+P(Mac:⌘+Shift+P)輸入「Claude Code」
  • 特色:修改以 VS Code 原生 diff 呈現、可在接受前審閱與編輯 plan、用 @ 引用檔案與指定行數、多個對話分頁並行
💡 擴充 vs. CLI

擴充功能自帶一份 Claude Code 給聊天面板使用;但如果你也想在 VS Code 內建終端機輸入 claude,仍需另外安裝 CLI。兩者讀取同一套設定檔。更多 IDE 設定可參考 整合 Claude Code 與 IDE。

🧠 JetBrains IDE

  • 支援:IntelliJ IDEA、PyCharm、Android Studio、WebStorm、PhpStorm、GoLand 等
  • 安裝:從 JetBrains Marketplace 安裝「Claude Code」外掛後重新啟動 IDE;外掛會呼叫你已安裝的 CLI
  • 使用:在 IDE 內建終端機執行 claude,或用快速啟動鍵 Ctrl+Esc(Mac:⌘+Esc);從外部終端機啟動時,在 Claude Code 中輸入 /ide 連接 IDE
  • 特色:diff 顯示在 IDE 的比較視窗、自動分享目前選取的程式碼、可讀取 IDE 的錯誤診斷

🖥️ 桌面 App(Claude Desktop 的 Code 分頁)

Claude 桌面 App 有三個分頁:Chat(一般對話)、Cowork(較長的代理任務)和 Code(軟體開發)。Code 分頁就是有圖形介面的 Claude Code:

  • 平台:macOS(Intel 與 Apple Silicon 通用版)、Windows(x64 與 ARM64)、Linux(beta,Ubuntu / Debian)
  • 下載:請從 官方桌面 App 文件的下載連結取得,安裝後登入並點 Code 分頁
  • 特色:每個對話是一個獨立 session,可並行多個(搭配 Git 隔離);可選擇在本機(Local)或雲端(Cloud)執行;內建終端機與檔案編輯器、視覺化 diff 審閱、App 預覽、PR 監看

☁️ 網頁版與手機(雲端 session)

在 claude.ai/code 開啟的 session 會在 Anthropic 管理的隔離虛擬機中執行:它會從 GitHub clone 你的 repo、在雲端完成工作、推送分支並可建立 PR。闔上筆電也會繼續跑,隨時可從手機的 Claude App(Code 分頁)查看進度、回答問題。

  • 方案:Pro、Max、Team;Enterprise 需具備對應席位
  • 開始:登入 claude.ai/code,依引導連接 GitHub(安裝 Claude GitHub App),選擇 repo 後下達任務。已經在用 gh CLI 的人,也可以在終端機的 Claude Code 中執行 /web-setup 連接 GitHub
  • 限制:clone 與建立 PR 需要 GitHub;雲端 session 與你的其他 Claude 使用量共用額度

在終端機與雲端之間搬移工作

Terminal
# Start a new cloud session for the current repo (push your branch first)
claude --cloud "Fix the flaky test in auth.spec.ts"

# Pull a cloud session (and its branch) into your terminal
claude --teleport

在已開啟的 Claude Code 中也可以輸入 /teleport 挑選雲端 session。注意方向是單向的:--cloud 是「開新的雲端 session」,不能把正在進行的本機 session 推上雲端。

💡 想用手機遙控「本機」的 session?

那是另一個功能 Remote Control:在本機 session 中執行 /remote-control(或用 claude --remote-control 啟動),就能從 claude.ai 或 Claude App 查看與操控在你電腦上執行的 session。詳見官方文件。

🌐 Chrome 整合(Claude in Chrome)

安裝 Claude in Chrome 擴充功能後,Claude Code 可以操作你的瀏覽器:讀取 console 錯誤與 DOM 狀態來除錯、填表單、在你已登入的網頁上做事、擷取網頁資料。

  • 瀏覽器:Google Chrome 與其他 Chromium 系瀏覽器(如 Edge、Brave、Arc)
  • 需求:直接向 Anthropic 訂閱的方案(Pro、Max、Team、Enterprise),並用 /login 登入;透過 Amazon Bedrock 等第三方雲端時無法使用
  • 啟用:
Terminal
# Start Claude Code with Chrome integration
claude --chrome

已在 session 中的話,輸入 /chrome 可查看連線狀態、重新連線,或設定為預設啟用。Claude 能造訪哪些網站,由擴充功能的網站權限控制。

💬 Slack

在 Slack 頻道中 @Claude 並描述程式任務,Claude 會判斷這是程式工作,在 claude.ai/code 開一個雲端 session 處理,並把進度與結果回報到討論串,完成後可一鍵「Create PR」。

  • 方案:這個版本(Claude Code in Slack)適用 Pro、Max 個人方案;Team、Enterprise 組織請改用組織管理的 Claude Tag
  • 設定:工作區管理員從 Slack App Marketplace 安裝 Claude App → 在 App Home 點 Connect 連結你的 Claude 帳號 → 先在 claude.ai/code 連好 GitHub → 在頻道輸入 /invite @Claude
  • 限制:只在頻道(公開或私人)中運作,不支援私訊;repo 需在 GitHub
⚠️ 功能與方案會變動

各入口的支援平台、方案限制更新很快,本頁為撰寫時(2026/10)的整理。實際以 Claude Code 官方文件為準。

🛡️ 權限模式與安全

Claude Code 會在你的電腦上改檔案、跑指令。學會權限模式、權限規則、沙盒與檢查點(checkpoint),就能放心讓它做事,出錯也能復原。

六種權限模式

權限模式決定 Claude 哪些動作可以不問你直接做:

模式(設定值)不需詢問就能做的事適合
Manual(default)只有讀取;改檔、跑指令、連網前都會問你敏感工作、不熟的程式碼、想逐一審核
acceptEdits讀取、改檔,以及 mkdir、mv、cp 等常見檔案指令邊看邊改、你會審閱 diff 的時候
plan只讀取與探索,不會修改原始碼,先提出計畫給你批准動手前先摸清楚程式碼、規劃大改動
auto大部分動作,但由另一個「分類器」模型在背景把關,擋下超出你要求或可疑的動作長任務、減少一直按「同意」的疲勞
dontAsk只有讀取與事先核准的工具;其他會跳詢問的動作一律自動拒絕鎖定的 CI / 腳本
bypassPermissions全部(不做權限檢查)只限隔離的容器或虛擬機

在介面上 default 顯示為 Manual,CLI 也接受 manual 作為別名。新版 Claude Code(v2.1.283 起)在終端機與 VS Code 預設以 auto 模式啟動;若你的帳號、模型或組織設定不支援 auto,則會以 Manual 啟動。

切換模式:Shift+Tab

在 session 中按 Shift+Tab 循環切換,輸入框下方的狀態列會顯示目前模式(例如 ⏸ manual mode on、⏵⏵ accept edits on、⏸ plan mode on、⏵⏵ auto mode on)。

auto → default(Manual) → acceptEdits → plan → 回到 auto
  • auto 只在可用時才會出現在循環中
  • bypassPermissions 只有在用 --dangerously-skip-permissions、--allow-dangerously-skip-permissions 等方式啟動時才會加入循環
  • dontAsk 永遠不在循環中,只能用 --permission-mode dontAsk 指定

啟動時指定模式

Terminal
# Explore first, no edits until you approve a plan
claude --permission-mode plan

# Review every action yourself
claude --permission-mode manual

可用的值:manual(即 default)、acceptEdits、plan、auto、dontAsk、bypassPermissions。想讓每次啟動都用某個模式,可在 ~/.claude/settings.json 設定:

~/.claude/settings.json
{
  "permissions": {
    "defaultMode": "default"
  }
}
⚠️ bypassPermissions / --dangerously-skip-permissions

這會讓 Claude 不經確認執行任何動作,包含刪檔、推送程式碼。官方建議只在與你的主機隔離的容器、虛擬機或沙盒環境中使用,且不要用 root 執行。在自己的電腦上請改用 auto 或 acceptEdits。

權限規則:allow / ask / deny

模式是「基準線」,權限規則則可以針對特定工具或指令預先允許、一定詢問或直接禁止。在 session 中輸入 /permissions 可以查看、新增、刪除規則,並看到每條規則來自哪個設定檔。也可以直接寫在 settings.json:

.claude/settings.json
{
  "permissions": {
    "allow": [
      "Bash(npm run *)",
      "Bash(git commit *)",
      "WebFetch(domain:github.com)"
    ],
    "ask": [
      "Bash(git push *)"
    ],
    "deny": [
      "Read(./.env)",
      "Read(./secrets/**)",
      "Bash(curl *)"
    ]
  }
}

規則怎麼判斷?

  • 順序固定:先看 deny,再看 ask,最後看 allow,第一個符合的決定結果。deny 不能被 allow 開例外
  • deny 在任何模式都有效,連 bypassPermissions 也擋得住;明確的 ask 規則在 auto 模式下也一樣會詢問
  • 萬用字元 *:Bash(npm run *) 符合 npm run build、npm run test,但不符合 npm install。結尾的「空格 + *」也會符合不帶參數的指令本身;舊寫法 Bash(npm run:*) 效果相同
  • 懂得拆解指令:Bash(safe-cmd *) 不會讓 safe-cmd && other-cmd 通過,串接的每個子指令都要各自符合
  • 用參數限制 Bash 的規則很容易被繞過(例如想只允許 curl 連特定網址),要限制網路存取,建議 deny curl 等指令,再用 WebFetch(domain:…) 允許特定網域

規則寫在哪個檔案?

檔案範圍要不要進 git
~/.claude/settings.json你自己,所有專案—
.claude/settings.json這個專案的所有人要,與團隊共享
.claude/settings.local.json你自己,只限這個專案不要

同一設定在多處出現時,專案層級會優先於使用者層級;企業的 managed settings 優先權最高。

💡 規則由程式強制執行

在 prompt 或 CLAUDE.md 寫「不要讀 .env」只是影響 Claude 的意圖;真正擋得住的是 /permissions 與 settings 中的 deny 規則。重要的限制請一定寫成規則。

沙盒(Sandbox):限制指令能碰到的範圍

權限規則決定「要不要問你」,沙盒則由作業系統強制限制 Claude 執行的 shell 指令能讀寫哪些檔案、連到哪些網域。沙盒預設關閉,在 session 中執行:

Claude Code
/sandbox
  • 平台:macOS 直接使用內建的 Seatbelt;Linux 與 WSL2 需要先安裝 bubblewrap 與 socat(面板會顯示缺少什麼);原生 Windows 不支援,需在 WSL2 中執行 Claude Code
  • 兩種模式:auto-allow — 沙盒內的指令不必逐一詢問就執行;regular permissions — 即使在沙盒內仍照一般權限規則詢問
  • 範圍:只包住 Bash 等 shell 指令及其子行程;Claude 的檔案編輯工具、MCP server、hooks 不在沙盒內,仍由權限規則管控
Ubuntu / Debian / WSL2
sudo apt-get install bubblewrap socat

檢查點與 /rewind:改壞了也能回去

你每送出一個 prompt,Claude Code 就會自動建立一個檢查點,記錄 Claude 透過檔案編輯工具所做的修改。要回到過去的狀態:

  • 輸入 /rewind,或在輸入框為空時連按兩次 Esc
  • 選擇要回到哪一則訊息,再選動作:Restore code and conversation(程式碼與對話都回去)、Restore conversation(只回對話,保留目前程式碼)、Restore code(只還原檔案)、Summarize from here / up to here(把部分對話壓縮成摘要,釋放 context)
⚠️ 檢查點不是萬能的
  • Bash 指令造成的變更不會被追蹤:例如 rm、mv、cp,以及資料庫、部署、推送等外部副作用都無法 rewind
  • 你自己在 Claude Code 外手動改的檔案、其他 session 的修改,通常也不會被記錄
  • 大部分子代理(subagent)的修改不會被還原
  • 檢查點的檔案快照預設約 30 天後清除

檢查點是 session 層級的「快速後悔藥」,不能取代 Git。重要進度請照常 commit。

新手建議配置

  1. 日常開發用預設的 auto,或想逐一確認時切到 Manual
  2. 大改動前先 Shift+Tab 切到 plan,確認計畫再動手
  3. 在 .claude/settings.json 加上 deny 規則保護 .env、金鑰等敏感檔案
  4. macOS / Linux / WSL2 使用者可開啟 /sandbox 增加一層防護
  5. 勤 commit,把 /rewind 當成輔助而不是唯一的備份
📚 官方文件

權限模式 · 權限規則 · 沙盒 · 檢查點

🧩 Plugins 外掛與 Marketplace

Plugin 把 skills、子代理、hooks、MCP server 打包成一個單位,一行指令安裝、從 marketplace 自動更新。本站「熱門擴充」裡的套件大多就是 plugin。

Plugin 裡可以裝什麼?

🎯

Skills

SKILL.md 指令集,Claude 需要時自動載入,也能當 /指令 執行

👥

Agents

子代理定義,Claude 可以把工作委派給它們

🪝

Hooks

在特定時機自動執行的指令,例如每次編輯後跑 lint

🔌

MCP servers

啟用 plugin 時自動連上的工具伺服器

此外還可以包含 LSP server、output styles 等元件。舊式的 commands/(單一 Markdown 檔的指令)也仍支援,但新 plugin 建議一律用 skills/。

💡 什麼時候需要 plugin?

單一 skill、hook 或 MCP server 不需要 plugin,直接放在 ~/.claude/ 或專案的 .claude/ 就能用。當你想把好幾個元件打包、分享給團隊、在多個專案安裝,或發佈版本更新時,才需要做成 plugin。另外注意:VS Code / JetBrains 的「Claude Code 擴充」是 IDE 外掛,和這裡講的 Claude Code plugin 是兩回事。

Marketplace 是什麼?

Marketplace 是一個「目錄」:一個含有 .claude-plugin/marketplace.json 的 repo 或資料夾,列出有哪些 plugin、去哪裡下載。你先加入 marketplace 一次,之後就能用 plugin名稱@marketplace名稱 安裝其中的 plugin。

  • 官方 marketplace:claude-plugins-official,第一次啟動互動式 Claude Code 時就會自動加入,不必手動 add。也可以先在 claude.com/marketplace/plugins 瀏覽
  • 第三方 marketplace:任何人都能在 GitHub 發佈,例如 oh-my-claudecode 的 omc

/plugin 管理介面

在 session 中輸入 /plugin 開啟管理面板,常用分頁:

分頁用途
Discover瀏覽已加入的 marketplace 中可安裝的 plugin
Installed已安裝的 plugin,可啟用 / 停用 / 解除安裝,並查看包含哪些元件
Marketplaces管理已加入的 marketplace;官方 marketplace 的 plugin 會顯示預估的 context 成本
Errors載入失敗的 plugin 與原因

安裝 plugin

(第三方才需要)加入 marketplace

Claude Code
/plugin marketplace add owner/repo

來源可以是 GitHub 的 owner/repo、git URL,或本機資料夾路徑。

安裝

Claude Code
/plugin install plugin-name@marketplace-name

例如官方的前端設計 plugin:/plugin install frontend-design@claude-plugins-official。在 session 中執行時會開啟該 plugin 的詳細資訊面板,在面板中確認安裝並選擇範圍。

使用

plugin 提供的 skill 會加上 plugin 名稱當前綴,例如 /frontend-design:frontend-design,避免不同 plugin 撞名。多數 skill 也會在合適時機被 Claude 自動使用。安裝或修改後若沒出現,執行 /reload-plugins 重新載入。

安裝範圍(scope)

範圍對誰生效寫入哪個設定檔
user(預設)你自己,這台電腦的所有專案~/.claude/settings.json
project這個 repo 的所有協作者(各自仍需在自己電腦上安裝).claude/settings.json
local你自己,只限這個 repo.claude/settings.local.json

在終端機管理:claude plugin

不進入 session 也能用 claude plugin 子指令管理(適合腳本與自動化):

Terminal
claude plugin marketplace add owner/repo        # add a marketplace
claude plugin marketplace list                 # list marketplaces
claude plugin marketplace update               # refresh all marketplaces
claude plugin install name@marketplace --scope project
claude plugin list                             # list installed plugins
claude plugin disable name@marketplace         # turn off without uninstalling
claude plugin enable name@marketplace
claude plugin update name@marketplace
claude plugin uninstall name@marketplace
⚠️ 安裝前先想想
  • Plugin 以你的權限執行程式碼(hooks、MCP server 都會在你電腦上跑),只安裝信任的來源。被收錄在官方 marketplace 也不代表 Anthropic 為第三方 plugin 背書
  • 啟用中的 plugin 每回合都佔 context:每個 skill / agent 的名稱與描述會常駐在 context 中。用不到的 plugin 就停用

自己做一個 plugin

建立結構與 manifest

資料夾結構
my-first-plugin/
├── .claude-plugin/
│   └── plugin.json      # only the manifest goes here
├── skills/
│   └── hello/
│       └── SKILL.md
├── agents/              # optional
├── hooks/hooks.json     # optional
└── .mcp.json            # optional
my-first-plugin/.claude-plugin/plugin.json
{
  "name": "my-first-plugin",
  "description": "A greeting plugin to learn the basics",
  "version": "1.0.0",
  "author": { "name": "Your Name" }
}

只有 name 是必填,它也會成為 skill 的前綴。注意:.claude-plugin/ 裡只放 plugin.json,skills/ 等元件放在 plugin 根目錄,放錯位置不會載入。

加一個 skill

my-first-plugin/skills/hello/SKILL.md
---
name: hello
description: Greet the user with a friendly message
disable-model-invocation: true
---

Greet the user warmly and ask how you can help them today.

驗證並載入測試(不需要 marketplace)

Terminal
claude plugin validate ./my-first-plugin
claude --plugin-dir ./my-first-plugin

進入 session 後執行 /my-first-plugin:hello。--plugin-dir 只對這個 session 有效;修改檔案後在 session 中執行 /reload-plugins 即可套用。

做成 marketplace 分享出去

在 repo 根目錄加上 .claude-plugin/marketplace.json,列出你的 plugin:

.claude-plugin/marketplace.json
{
  "name": "my-marketplace",
  "owner": { "name": "Your Name" },
  "plugins": [
    {
      "name": "my-first-plugin",
      "source": "./plugins/my-first-plugin",
      "description": "A greeting plugin to learn the basics"
    }
  ]
}

推上 GitHub 後,別人就能 /plugin marketplace add 你的帳號/repo,再 /plugin install my-first-plugin@my-marketplace。marketplace 中的 plugin name 要與 plugin.json 的 name 一致。

💡 讓 Claude 幫你做

安裝官方的 plugin-dev(/plugin install plugin-dev@claude-plugins-official),再執行 /plugin-dev:create-plugin 加上你的需求描述,Claude 會引導你設計、建立並驗證 plugin。想專心寫 skill,可看 打造自己的 Skill 包。

Headless 模式與 CI/CD

在沒有互動的環境中執行 Claude Code — 自動化、CI、機器人、批次處理。

什麼是 Headless 模式?

用 -p (print) 旗標啟動 Claude Code,就進入 headless 模式:

  • 不開啟互動介面
  • 執行完任務就退出
  • 輸出可被腳本讀取
  • 適合 CI、cron、shell script
Terminal
claude -p "列出專案中所有 TODO 註解並彙整成清單"

常用旗標

旗標用途
-p / --print非互動模式(headless),印出結果後結束
--output-format text|json|stream-json輸出格式:純文字(預設)、單一 JSON、逐行串流 JSON
--allowedTools "Read,Edit,Bash(git diff *)"免詢問直接允許的工具(權限規則語法;也可寫成 --allowed-tools)
--disallowedTools "Bash(rm *)"拒絕某些工具或指令
--tools "Read,Grep,Glob"限制只能使用哪些內建工具
--permission-mode acceptEdits整個工作階段的權限模式(acceptEdits、auto、dontAsk、plan…)
--max-turns N最多執行 N 輪就停止(只在 print 模式)
--max-budget-usd 5.00花費上限(美元,依客戶端估算)
--model sonnet指定模型(別名或完整模型 ID)
--append-system-prompt "..."在預設 system prompt 後面追加指示
--continue / --resume <session-id>接續最近一次 / 指定的對話
--json-schema '{...}'要求輸出符合指定 JSON Schema(結果在 structured_output)
--bare精簡模式:不自動載入 hooks、skills、外掛、MCP、CLAUDE.md,啟動更快、每台機器結果一致(適合 CI)
--mcp-config file.json載入 MCP 設定
--settings file.json額外載入一份設定(檔案或 JSON 字串)
--agents '{...}'用 JSON 臨時定義子代理
--add-dir path加入額外的工作目錄

完整清單見 claude --help 或官方 CLI 參考(部分旗標不會出現在 --help)。

常見用法

Terminal
# Pipe data in, redirect the answer out
cat build-error.txt | claude -p "簡要說明這個 build 錯誤的根本原因" > output.txt

# Let Claude run tests and fix failures without prompting for these tools
claude -p "跑測試並修好失敗的項目" --allowedTools "Bash,Read,Edit"

# Multi-step: continue the most recent conversation
claude -p "檢查這個專案的效能問題"
claude -p "現在專注在資料庫查詢" --continue

# Or capture the session id and resume a specific conversation
session_id=$(claude -p "開始 review" --output-format json | jq -r '.session_id')
claude -p "繼續剛才的 review" --resume "$session_id"

實戰:CI/CD Pipeline

推薦:官方 GitHub Action

在 GitHub 上用 Claude,最省事的是官方的 anthropics/claude-code-action。在 Claude Code 裡執行 /install-github-app 會幫你安裝 GitHub App、設定 secret 並開好 workflow 的 PR。之後在 issue 或 PR 留言 @claude 就能叫它做事:

.github/workflows/claude.yml
name: Claude Code
on:
  issue_comment:
    types: [created]
  pull_request_review_comment:
    types: [created]
jobs:
  claude:
    if: contains(github.event.comment.body, '@claude')
    runs-on: ubuntu-latest
    permissions:
      contents: write
      pull-requests: write
      issues: write
      id-token: write
      actions: read
    steps:
      - uses: actions/checkout@v6
        with:
          fetch-depth: 1
      - uses: anthropics/claude-code-action@v1
        with:
          anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}

要讓它自動執行(例如每個 PR 自動 review、每天產生報告),在 with: 加上 prompt:;CLI 旗標則放進 claude_args:,例如 claude_args: "--max-turns 10 --model sonnet"。更多範例見官方 GitHub Actions 文件。

自己寫:在 CI 直接呼叫 CLI(自動修 Lint)

.github/workflows/auto-fix.yml
name: Auto-fix Lints

on:
  workflow_dispatch:    # manual trigger
  schedule:
    - cron: '0 2 * * *'   # daily at 02:00 UTC

jobs:
  fix:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6
      - uses: astral-sh/setup-uv@v10.2.0
      - run: uv sync

      - name: Install Claude Code
        run: curl -fsSL https://claude.ai/install.sh | bash

      - name: Auto-fix
        env:
          ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
        run: |
          claude --bare -p "跑 uv run ruff check,修掉所有可自動修復的錯誤。
          不要改變任何邏輯,只做 ruff 建議的修正。
          完成後再跑一次 ruff 確認都過了。" \
            --allowedTools "Read,Edit,Bash(uv run ruff *)" \
            --max-turns 10

      - name: Create PR
        uses: peter-evans/create-pull-request@v8
        with:
          commit-message: "chore: auto-fix lint issues"
          title: "🤖 Auto-fix lint issues"
          branch: chore/auto-fix-lints

批次處理腳本

scripts/migrate-all.sh
#!/bin/bash
# Replace print() with logging in every Python file under src/
mkdir -p logs

find src -name "*.py" | while read -r file; do
    echo "Processing $file..."

    claude -p "把 $file 中的所有 print() 改成 logging.info(),保留原本要印的訊息。
    如果有 print(..., file=sys.stderr) 改成 logging.error()" \
        --max-turns 5 \
        --allowedTools "Read,Edit" \
        --output-format json > "logs/$(basename "$file").json"
done

解析 JSON 輸出

Bash
result=$(claude -p "列出所有 TODO" --output-format json)

# Final text answer
echo "$result" | jq -r '.result'

# Session id (for --resume) and estimated cost in USD
echo "$result" | jq '.session_id, .total_cost_usd'

# Token usage
echo "$result" | jq '.usage.input_tokens, .usage.output_tokens'

要即時看到輸出,用 --output-format stream-json --verbose,每一行都是一個 JSON 事件,最後一行是 result 訊息。total_cost_usd 是客戶端估算值,可能與實際帳單略有差異。

更進一步:Claude Agent SDK

想把 Claude Code 的代理迴圈(工具、權限、子代理、hooks、MCP)直接嵌進自己的 Python / TypeScript 程式,用官方的 Claude Agent SDK(前身是 Claude Code SDK):

Terminal
# Python 3.10+
pip install claude-agent-sdk

# Node.js 18+
npm install @anthropic-ai/claude-agent-sdk
Python — agent.py
import asyncio
from claude_agent_sdk import query, ClaudeAgentOptions, ResultMessage


async def main() -> None:
    async for message in query(
        prompt="Review utils.py for bugs that would cause crashes. Fix any issues you find.",
        options=ClaudeAgentOptions(
            allowed_tools=["Read", "Edit", "Glob"],  # auto-approve these tools
            permission_mode="acceptEdits",  # auto-approve file edits
        ),
    ):
        if isinstance(message, ResultMessage):
            print(f"Done: {message.subtype}")


asyncio.run(main())
TypeScript — agent.ts
import { query } from "@anthropic-ai/claude-agent-sdk";

for await (const message of query({
  prompt: "Review utils.py for bugs that would cause crashes. Fix any issues you find.",
  options: {
    allowedTools: ["Read", "Edit", "Glob"],
    permissionMode: "acceptEdits"
  }
})) {
  if (message.type === "result") console.log(`Done: ${message.subtype}`);
}

SDK 需要設定 ANTHROPIC_API_KEY(從 Claude Console 取得),或使用 Amazon Bedrock、Google Cloud、Microsoft Foundry 等雲端供應商的認證。詳見官方 Agent SDK 文件。

進階應用場景

🤖

聊天機器人

用 Agent SDK 把 Claude 接到 Slack/Discord,讓團隊用自然語言查程式碼

📊

每日報告

每天自動分析 git log、產生開發進度報告

🔍

合規檢查

定期掃描程式碼是否符合內部規範與安全標準

📚

文件同步

API 改動時自動更新文件、生成 changelog

⚠️ 認證、成本與安全
  • 認證方式:claude -p 會沿用你登入的帳號。在 CI 等無法開瀏覽器的環境,可設定 ANTHROPIC_API_KEY(API 按用量計費),或在本機執行 claude setup-token 產生長效 token,設成 CLAUDE_CODE_OAUTH_TOKEN 環境變數(使用 Pro / Max / Team / Enterprise 訂閱額度)。注意 --bare 模式只認 ANTHROPIC_API_KEY 或 apiKeyHelper。
  • 用 --max-turns、--max-budget-usd 限制,避免暴衝
  • 用 --allowedTools 只放行必要的指令,CI 中尤其重要
  • -p 模式會跳過「信任此資料夾」的確認,只在你信任的 repo 執行;不想載入 repo 內的 hooks / MCP 設定時加上 --bare
  • 監控用量、設定預算警報;簡單任務可改用較小、較便宜的模型(例如 --model haiku)
  • Token 和 API key 一律放在 CI 的 secrets,絕對不要 commit 進 repo
🎉 學習旅程到此告一段落

恭喜你完整看完這份指南!從安裝到多代理自動化,你已經掌握了 Claude Code 的全貌。接下來就是動手實作,把這些技巧應用到你的專案中。記得,最快的學習方式就是用 Claude Code 寫下一個專案 — 邊用邊問、邊學邊試。

← 回教學資源網