9. Claude Code 建置與使用

Claude Code 是 Anthropic 官方的命令列工具(CLI)——把 AI 助手裝進終端機,直接在程式專案裡用對話完成寫程式、改 bug、自動化等工作。


9.1 Claude Code vs Cowork

比較項Claude Code (CLI)Cowork (您現在用的)
介面終端機桌面 App
最適用途本地專案開發、程式庫深度分析跨多 App 工作、檔案/任務自動化
自動化高(Hook、cron、MCP)中(Skill、Agent)
學習曲線中(需熟悉 shell)
誰適合工程師、寫程式的人通用,含非工程師

選哪個? 平常在 IDE 寫程式 → Claude Code;管理檔案、跨工具自動化 → Cowork。兩者可以並用


9.2 安裝

系統需求

  • Node.js 18+ 或使用原生安裝器
  • macOS 11+ / Windows (WSL2 推薦) / Linux

macOS / Linux

# 方法 1:npm 全域安裝
npm install -g @anthropic-ai/claude-code
 
# 方法 2:原生安裝器(不需 Node.js)
# 從 https://code.claude.com/ 下載

Windows

# npm 安裝(先裝 Node.js)
npm install -g @anthropic-ai/claude-code
 
# 或下載 Windows 原生安裝器(最簡單)

驗證

claude --version
# Claude Code v2.x.x

9.3 第一次啟動

cd ~/projects/ExamSystem    # 進入專案
claude                       # 啟動互動模式

首次啟動會:

  1. 自動開啟瀏覽器登入 Anthropic
  2. 同意授權
  3. 回終端機開始對話

第一條指令範例:

> 你好,請看看這個專案的結構,幫我寫一份 README

Claude 會自動掃 package.json / 程式檔,給建議。


9.4 基本工作流(5 步迴圈)

flowchart LR
    A[1. cd 進專案] --> B[2. claude 啟動]
    B --> C[3. 給任務]
    C --> D[4. 看 diff 確認]
    D --> E[5. 接受 / 修改]
    E --> C

實際範例

$ claude
> 看 logs/error.log 找 TypeError 根因,提議修復

Claude:
  📝 Reading logs/error.log...
  🔍 Found 3 stack traces
  ✏️ Proposing changes to src/utils/parser.ts

  [diff preview]
  Accept? (y/n)

> y
  ✅ Changes applied
  📤 git commit -m "fix: handle null in parser.ts"

9.5 核心 Slash Commands

指令用途
/init初始化專案(產生 CLAUDE.md
/clear清空對話歷程
/compact壓縮上下文(降費用)
/help顯示指令列表
/review標記程式碼待審視
/quitCtrl+C退出

💡 /init 是新專案第一個該跑的指令——它會掃描技術棧、建好基礎 CLAUDE.md


9.6 Hooks(自動化規則引擎)

什麼是 Hook

Hook 是「Claude 觸發某事件時自動執行的程式」——不需手動同意,每次都跑。

Hook 類型

類型觸發時機用途
PreToolUseClaude 用工具前驗證、權限檢查
PostToolUseClaude 用工具後自動格式化、跑測試
Stop任務完成清理、報告

範例:自動 Prettier 格式化

.claude/hooks.json

{
  "hooks": [
    {
      "name": "auto-format",
      "trigger": "PostToolUse",
      "tools": ["write_file"],
      "script": "prettier --write {file_path}",
      "continueOnError": true
    }
  ]
}

效果:每次 Claude 寫 .ts / .js 檔,自動跑 prettier

範例:停止前先跑測試

{
  "name": "test-before-stop",
  "trigger": "Stop",
  "script": "npm test",
  "failMessage": "❌ Tests failed - 請修復後再 Stop"
}

9.7 CLAUDE.md(專案手冊)

放在專案根目錄,告訴 Claude 您的編碼慣例、架構原則、禁忌項。Claude 每次啟動都會優先讀

範例(您的 PAM 系統就有)

# PAM 績效考核管理系統 — AI 開發規格文件
 
## 技術架構
- 後端:C# / .NET 8 + Web API
- 前端:React 19 + TypeScript + Vite
- DB:MSSQL + EF Core
 
## 命名規範
- 資料表 / 欄位:PascalCase
- 主鍵一律 `Id`
- 布林:`Is` 開頭
 
## 禁忌
- ❌ 拼接 SQL(`"WHERE name = '" + n + "'"`
- ❌ Controller 吞例外
- ❌ 各處重寫等第公式(一律呼叫 GradingService)

💡 您 ExamSystem 的 CLAUDE - 主開發規格 就是個典範。

最佳實踐

✅ 簡潔、列關鍵點,不寫小說 ✅ 架構變動時記得更新 ✅ 明確列禁忌項,比說「請小心」有效


9.8 Settings(~/.claude/settings.json

{
  "model": "claude-sonnet-4-6",
  "defaultTemperature": 0.3,
  "maxContextTokens": 100000,
  "autoCommit": true,
  "commitTemplate": "fix: {description}",
  "theme": "dark"
}
參數意義建議值
model使用模型claude-sonnet-4-6
defaultTemperature創意度 0-20.3(程式碼)
maxContextTokens對話上限100000
autoCommit自動 committrue(小心使用)

9.9 Plugins / Marketplace

# 搜尋並安裝
claude marketplace search "prettier"
claude marketplace install claude-prettier-plugin
 
# 從 GitHub 直接裝
claude plugin add https://github.com/user/claude-plugin-name
 
# 發佈自己的 plugin
claude plugin publish

9.10 MCP Server 串接

讓 Claude Code 連 GitHub / Slack / 資料庫等服務。詳見 11-MCP 建置與使用

設定檔位置:

  • macOS:~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows:%APPDATA%\Claude\claude_desktop_config.json

範例:

{
  "mcpServers": {
    "github": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": { "GITHUB_TOKEN": "ghp_xxx" }
    }
  }
}

⚠️ 編輯後必須完全關閉 Claude Code 再重啟


9.11 PAM 實戰場景

場景 1:寫 README

> 看這個專案,產一份完整 README,含安裝 / 開發流程 / API 摘要

場景 2:追 stack trace

> ExamSystem/logs/error.log 有 NullReferenceException,
  請定位並提議修復

場景 3:實作 GitHub Issue

> 實作 issue #42(年度結算 API 應加快取),完成後開 PR

Claude 會:讀 issue → 改 code → 寫測試 → push → 開 PR。


9.12 IDE 整合

VS Code

code --install-extension anthropic.claude-code

側邊欄與 Claude 對話、一鍵套用建議。

JetBrains(IntelliJ / Rider / WebStorm)

Settings → Plugins → 搜「Claude Code」→ Install → 重啟。

快速鍵:Cmd+Shift+A(Mac)/ Ctrl+Shift+A(Win)。

💡 您寫 PAM 用的是 Visual Studio?也支援。


9.13 自動化排程

macOS / Linux(cron)

crontab -e
# 每晚 22:00 執行
0 22 * * * cd ~/projects/ExamSystem && claude < /tmp/nightly-task.txt >> ~/claude-logs.txt 2>&1

/tmp/nightly-task.txt

檢查 PAM 所有 TypeScript / C# 型別錯誤,列出修復建議。
不要自動套用,只回報。

Linux(systemd timer,更穩定)

# /etc/systemd/system/claude-nightly.service
[Service]
Type=oneshot
WorkingDirectory=/home/vincent/projects/ExamSystem
ExecStart=/usr/local/bin/claude < /tmp/nightly-task.txt
 
# /etc/systemd/system/claude-nightly.timer
[Timer]
OnCalendar=daily
OnCalendar=22:00

9.14 排錯 FAQ

Q
API key 無效claude login 重新登入
權限不足檢查資料夾 chmod u+w
Context 太長/compact/clear
推理太慢改用 Sonnet(Opus 慢但深)
Hook 沒跑檢查 .claude/hooks.json 語法、claude logs

9.15 快速查詢卡

登入             claude login
啟動             claude
版本             claude --version
看 log           claude logs
退出             Ctrl+C / /quit
初始化           /init
壓縮對話         /compact
清對話           /clear
review           /review src/file.ts
help             /help

9.16 官方資源


下一章 → 10-Skill 建置與使用 上一章 ← 08-學習資源與延伸 回到 Claude 學習指南目錄