AI 程式輔助工具這幾年變化非常快,從最早的自動補完、到 IDE 內的 Chat 助手、再到現在的 Agent 模式,每一代都讓開發者的工作方式有很大的改變。大部分工具像是 GitHub Copilot 或 Cursor 都是內嵌在編輯器裡面運作,如果你想了解 Copilot Agent 的設定方式,可以參考 GitHub Copilot Agent 設定教學|用 .github 資料夾打造你的 AI 開發助手。但 Anthropic 推出的 Claude Code 走了一條不同的路——它直接在終端機裡運作,能自己讀寫檔案、執行指令、管理 Git,就像一個住在 terminal 裡的工程師隊友。這篇文章會從安裝開始,一步步教學 Claude Code 的使用方式,到自訂指令、進階功能都會涵蓋。

Claude Code 是什麼

Claude Code 是 Anthropic 官方推出的 CLI(Command Line Interface)程式開發工具,它使用 Claude 大語言模型,直接在終端機中以對話方式協助你寫程式。跟一般的 AI Chat 不同,Claude Code 具備 agentic 能力——它可以自己讀取專案檔案、修改程式碼、執行終端機指令、操作 Git,真正做到「你說需求,它來實作」。

跟其他常見的 AI 程式工具比較一下:

工具運作環境操作方式需要 IDEAgent 能力費用
Claude Code終端機(CLI)對話指令不需要完整(讀寫檔案、執行指令、Git)API 用量計費 / Max 訂閱
GitHub CopilotVS Code / JetBrains自動補完 + Chat + Agent需要有(Agent Mode)月費訂閱
CursorCursor 編輯器自動補完 + Chat + Composer需要有(Composer)月費訂閱
ChatGPT網頁 / App對話不需要無(純對話)免費 / 訂閱

Claude Code 最大的特色是不依賴任何 IDE,只要有終端機就能用。這對於習慣用 Vim、Neovim 或是經常在遠端伺服器上工作的開發者特別方便。

安裝與設定

參考 https://code.claude.com/docs/zh-TW/overview 教學,有

官方推薦安裝原生安裝

macOS, Linux, WSL

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

Windows PowerShell:

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

Windows CMD:

curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd

使用 Node.js 安裝

安裝 Node.js

Claude Code 是透過 npm 安裝的,所以需要先確認電腦上有 Node.js 18 以上的版本。

# 確認 Node.js 版本
node --version
# v20.11.0(需要 18 以上)

如果還沒有安裝 Node.js,macOS 可以用 Homebrew,Linux 可以用 NodeSource,Windows 可以到 Node.js 官網下載安裝檔。

安裝 Claude Code

確認 Node.js 版本沒問題之後,用 npm 全域安裝:

# 全域安裝 Claude Code
npm install -g @anthropic-ai/claude-code

安裝完成後,輸入 claude 確認是否安裝成功:

# 確認安裝成功
claude --version

認證設定

Claude Code 需要認證才能使用,有兩種方式:

  1. Anthropic API Key:如果你有 Anthropic 的 API Key,可以設定環境變數:
  2. Claude Max / Pro 訂閱:如果你有 Claude 的付費訂閱,第一次執行 claude 時會引導你透過瀏覽器登入,完成 OAuth 認證。
# 設定 API Key
export ANTHROPIC_API_KEY="sk-ant-xxxxxxxx"

設定完成後,在任何專案資料夾中輸入 claude 就可以開始使用了。進入 Claude Code 如果沒看到要你登入的提示,可以輸入 /login

基本操作

啟動與互動

在你的專案資料夾中打開終端機,輸入 claude 就會進入互動模式:

# 在專案資料夾中啟動
cd my-project
claude

進入後會看到一個對話介面,你可以直接用自然語言描述你想做的事情。Claude Code 會自動分析你的專案結構、讀取相關檔案,然後給你建議或直接修改程式碼。

幾個常見的使用場景:

# 問問題
> 這個專案的架構是什麼?入口點在哪裡?

# 請求修改
> 幫我把 UserService 的 getUser 方法加上快取機制

# 除錯
> 我執行 npm test 出現這個錯誤:[貼上錯誤訊息],幫我找出原因

Claude Code 收到指令後,會自己去讀取相關的檔案,理解程式碼的結構,然後提出修改方案。如果需要修改檔案,它會顯示修改的內容讓你確認。

權限機制

Claude Code 有一套權限機制來保護你的專案。它把操作分成幾個等級:

  • 唯讀操作(讀取檔案、搜尋程式碼):自動執行,不需要確認
  • 寫入操作(修改檔案、建立新檔案):會先顯示修改內容,等你確認
  • 執行指令(跑 shell command):會顯示要執行的指令,等你確認

如果你信任 Claude Code 在目前的專案中執行操作,可以在確認提示時選擇 Always allow 來跳過之後同類型操作的確認。也可以透過 /permissions 指令來管理權限設定。

常用 Slash Commands

在互動模式中,可以使用 / 開頭的指令來控制 Claude Code 的行為:

指令用途
/init初始化一個新的 CLAUDE.md 文件
/help顯示說明文件
/clear清除目前對話歷史,開啟新對話(對話會保留下來)
/resume切換對話紀錄,重新開啟 Claude Code 或是使用 /clear 開啟新對話之後,都可以切換回之前對話
/compact壓縮對話歷史,釋放 context window
/config開啟設定選單
/cost顯示目前的 token 用量與費用
/memory編輯 CLAUDE.md 記憶檔案
/permissions管理工具權限設定
/model切換使用的模型(如 Claude Sonnet、Opus)
/review請 Claude Code 審查目前的 Git diff

需要注意的是,/compact 很實用。當對話太長時,Claude Code 的 context window 會被佔滿,回應品質會下降。這時候用 /compact 可以讓它把之前的對話摘要壓縮,騰出空間繼續工作。但不同任務可以直接使用 /new 開一個新的對話重新開始。

快捷鍵

ESC:中斷目前動作

連按兩下 ESC:恢復到之前的步驟

Shift + Tab:依序切換 Plan Mode、Accept Edits、Normal

Ctrl + B:將目前執行的AI思考或是程式切換到背景模式

補充:如果需要在 Claude Code 直接使用終端機指令,可以使用驚嘆號開頭,例如:

!ls -al

實戰工作流

修 Bug

最常見的用法就是把錯誤訊息直接貼給 Claude Code:

> npm test 跑出這個錯誤:
> TypeError: Cannot read properties of undefined (reading 'map')
>   at UserList (src/components/UserList.tsx:15:23)
> 幫我找出原因並修復

Claude Code 會去讀取 UserList.tsx,分析問題(可能是 API 回傳的資料還沒載入就嘗試 map),然後提出修改方案,例如加上空值檢查或是載入狀態。

新增功能

你可以用自然語言描述需求,Claude Code 會幫你從頭建立:

> 幫我在這個 Express 專案新增一個 /api/health 端點,
> 回傳 JSON 格式的健康檢查資訊,包含:
> - 服務狀態
> - 啟動時間
> - 記憶體使用量

Claude Code 會找到路由設定的檔案,新增端點的程式碼,如果需要的話還會建立新的檔案。整個過程它會告訴你它正在做什麼,每一步都可以確認或修改。

Git 操作

Claude Code 可以幫你處理 Git 操作,這是很多開發者喜歡的功能:

# 讓它幫你 commit
> 幫我把目前的修改 commit,訊息用英文,描述我們剛做的變更

# 讓它建立 PR
> 幫我建立一個 Pull Request,標題和描述用英文

# 查看差異
> 目前的 git diff 有什麼重要的變更?

Claude Code 會自動執行 git addgit commitgh pr create 等指令,commit message 會根據實際的程式碼變更來撰寫。

Code Review

你也可以讓 Claude Code 幫你做 Code Review:

> 幫我審查目前 staging area 的程式碼變更,
> 注意安全性問題和效能問題

它會讀取 git diff --staged 的內容,然後逐一檢查變更,給出具體的建議。

CLAUDE.md 專案設定

什麼是 CLAUDE.md

CLAUDE.md 是 Claude Code 的專案設定檔,用來告訴 Claude Code 你的專案有什麼規則、偏好和限制。如果你用過 GitHub Copilot,這個概念跟 .github/copilot-instructions.md 很類似,詳細的 Copilot 設定教學可以參考 GitHub Copilot Agent 設定教學|用 .github 資料夾打造你的 AI 開發助手

Claude Code 每次啟動時都會自動讀取 CLAUDE.md,所以你放在裡面的指令會影響它在這個專案中的所有行為。

放置位置與層級

CLAUDE.md 可以放在不同位置,優先順序由高到低:

位置作用範圍說明
專案根目錄 ./CLAUDE.md當前專案最常用,定義專案規則
子目錄 ./src/CLAUDE.md該子目錄針對特定目錄的規則
使用者目錄 ~/.claude/CLAUDE.md所有專案個人偏好,跨專案共用

多個層級的 CLAUDE.md 會合併生效,如果有衝突,越接近當前工作目錄的優先。除了自己編輯、使用 /init 指令讓 Claude Code 建立,也可以在對話中要求 Claude Code 自己將目前學習到的重點記錄到 CLAUDE.md 檔案內。

範例

一個典型的專案 CLAUDE.md 長這樣:

# 專案指令

## 技術
- 後端:Java 21 + Spring Boot 3
- 前端:React + TypeScript
- 資料庫:PostgreSQL
- 建構工具:Gradle

## 程式碼風格
- Java 使用 4 空格縮排
- 變數命名使用 camelCase
- 常數使用 UPPER_SNAKE_CASE
- 禁止使用 var(Java)

## 測試
- 使用 JUnit 5 + Mockito
- 測試檔案放在 src/test/java 對應的 package 下
- 每個 public method 都要有測試

## Git
- commit message 用英文
- 格式:type(scope): description
- type: feat, fix, refactor, test, docs, chore

## 注意事項
- 不要修改 docker-compose.yml
- 不要直接操作 production 資料庫
- API 回傳格式統一使用 ResponseEntity

你也可以在互動模式中輸入 /memory 來快速編輯 CLAUDE.md,Claude Code 會自動幫你開啟檔案。

自訂 Slash Command

除了內建的 Slash Commands,Claude Code 也支援自訂指令。你可以把常用的提示詞存成檔案,之後用 /指令名稱 就能快速呼叫。

專案層級指令

在專案根目錄建立 .claude/commands/ 資料夾,裡面放 .md 檔案,檔名就是指令名稱:

# 建立指令資料夾
mkdir -p .claude/commands

例如建立一個 /review 指令,專門做 Code Review:

# .claude/commands/review.md 的內容

請審查目前 git staging area 的程式碼變更,依照以下標準:

1. 安全性:是否有 SQL Injection、XSS 等漏洞
2. 效能:是否有 N+1 查詢、不必要的迴圈
3. 可讀性:命名是否清楚、邏輯是否容易理解
4. 測試:修改的功能是否有對應的測試

每個問題用條列方式列出,附上檔案名稱和行號。

存檔之後,在 Claude Code 互動模式中輸入 /review 就會自動帶入這段提示詞。

你也可以在指令中使用 $ARGUMENTS 佔位符,讓指令可以接受參數:

# .claude/commands/explain.md 的內容

請用中文詳細解釋以下檔案的程式碼邏輯:$ARGUMENTS

包含:
- 檔案的主要功能
- 關鍵函式的作用
- 資料流向

使用方式:/explain src/services/AuthService.ts

使用者層級指令

如果你希望某些指令在所有專案都能用,可以放在使用者目錄:

# 使用者層級的指令資料夾
mkdir -p ~/.claude/commands

放在這裡的指令會在所有專案中都可以使用,適合放一些通用的提示詞,例如翻譯、摘要等。

專案層級的指令會被 commit 進版本庫,團隊成員都能共用;使用者層級的指令則只有你自己能用。

進階功能

背景執行

Claude Code 支援在背景執行任務。如果你有一個比較耗時的工作,可以讓它在背景跑,同時你繼續做其他事:

# 在背景啟動一個任務
claude --background "幫我把所有 JavaScript 檔案轉換成 TypeScript"

背景任務完成後會通知你。你也可以同時開啟多個 Claude Code 視窗來平行處理不同的任務。

Headless 模式

如果你想把 Claude Code 整合到腳本或 CI/CD 流程中,可以使用 headless 模式。它不會進入互動介面,而是直接執行指令後輸出結果:

# 直接執行單一指令
claude -p "分析這個專案的資料夾結構,列出主要的模組"

# 搭配管道使用
cat error.log | claude -p "分析這個 log 檔案,找出錯誤原因"

# 指定輸出格式
claude -p "列出所有 TODO 註解" --output-format json

這個模式很適合用在自動化流程中,例如在 CI 中自動做 Code Review、在 pre-commit hook 中檢查程式碼品質等。

Hooks 自訂行為

Hooks 讓你在 Claude Code 的特定事件觸發自訂腳本。設定檔放在 .claude/settings.json 或透過 /config 指令設定:

支援的事件:

事件觸發時機
sessionStartClaude Code 啟動時
sessionEndClaude Code 結束時
preToolUse使用工具之前(可決定允許或拒絕)
postToolUse使用工具之後
agentStopAgent 停止工作時

例如你想在每次啟動 Claude Code 時自動安裝 npm 套件:

// .claude/settings.json 中的 hooks 設定
{
    "hooks": {
        "sessionStart": [
            {
                "command": "npm install",
                "description": "自動安裝 npm 依賴"
            }
        ]
    }
}

或者在 Claude Code 要執行 shell 指令之前,先檢查指令是否安全:

// preToolUse hook 範例
{
    "hooks": {
        "preToolUse": [
            {
                "matcher": "Bash",
                "command": "./scripts/check-command.sh",
                "description": "檢查要執行的指令是否安全"
            }
        ]
    }
}

MCP 整合

MCP(Model Context Protocol)是一個開放標準,讓 AI 工具可以連接外部資源。Claude Code 支援 MCP Server,你可以透過它連接資料庫、第三方 API 或其他工具。如果你對在本地執行的 AI 模型有興趣,也可以搭配 Ollama 入門教學|本地大語言模型新手指南 使用。

MCP 的設定方式是在 .claude/settings.json 中加入 MCP Server 的定義:

// .claude/settings.json
{
    "mcpServers": {
        "database": {
            "command": "npx",
            "args": ["-y", "@modelcontextprotocol/server-postgres"],
            "env": {
                "DATABASE_URL": "postgresql://localhost:5432/mydb"
            }
        }
    }
}

設定完成後,Claude Code 就能透過 MCP 工具直接查詢你的資料庫,不需要你手動複製貼上查詢結果。

IDE 整合

雖然 Claude Code 的核心是終端機工具,但它也有 IDE 擴充可以用:

  • VS Code:安裝 Claude Code 擴充套件,可以在編輯器內直接開啟 Claude Code 的終端機面板
  • JetBrains(IntelliJ、WebStorm 等):同樣有官方擴充支援

IDE 整合的好處是可以直接在編輯器中選取程式碼,然後送給 Claude Code 處理,省去切換視窗的麻煩。

使用技巧與注意事項

給明確的上下文:Claude Code 雖然會自己讀取檔案,但如果你能在提問時提供更多上下文,效果會更好。例如「幫我修 UserService 的 bug」不如「UserService.getUser() 在使用者不存在時會回傳 null 而不是拋出例外,請修改成拋出 UserNotFoundException」。

善用 /compact:長時間的工作對話會讓 context window 被佔滿。當你感覺 Claude Code 開始「忘記」之前討論的內容,或是回應變慢,就用 /compact 壓縮對話。

用 /cost 控制費用:如果你是用 API Key 計費,隨時輸入 /cost 查看目前的 token 用量。大型專案的對話可能會產生不少費用,適時壓縮對話或開新的 session 可以幫助控制成本。

注意敏感檔案:Claude Code 會讀取專案中的檔案,請確保 .env、密鑰檔案等不要被它讀到或意外 commit。可以在 CLAUDE.md 中明確告訴它不要碰某些檔案。

分步驟給指令:如果要做的事情比較複雜,建議分步驟給指令,而不是一次丟一大堆需求。這樣 Claude Code 的每一步都能做得更精確,你也更容易確認每一步的結果。

善用 CLAUDE.md:花一點時間把專案的規則寫進 CLAUDE.md,可以大幅提升 Claude Code 的輸出品質。它不會再猜你的命名風格、測試框架或 commit message 格式,因為你已經告訴它了。