---
title: "01 · Claude Code 是什麼"
description: "解釋 Claude Code 為什麼不是聊天框，而是能進入本機專案、讀檔案、改程式碼、跑命令並圍繞任務規劃的程式設計 Agent。"
canonical: "https://xiangyugongzuoliu.com/tag/claude-code"
verifiedAt: "2026-05-08"
---

Aaron拆了一圈 AI 程式設計工具，原本以為差距在模型能力。追到底才發現，真正改變體驗的是一個樸素到不起眼的設計決定——AI 住在哪裡。想通這一點，Skills、MCP、Agent Teams 這些功能全都順理成章了。——Aaron

> [!NOTE]
> **這一篇用 14 分鐘換什麼**：把 Claude Code 從**另一種聊天框**重新理解成**住進你電腦裡的 coding agent**。讀透之後，後面 11 篇裡的每一個名詞——CLAUDE.md、上下文、Skills、SubAgents、MCP、Hooks——都會自動連成一個系統，不再零散。

## 1. 一個你可能沒注意的動作

你在寫程式碼，遇到一個看不懂的報錯。

接下來你做了一件事——你可能太熟悉以至於根本沒注意自己在做：把報錯資訊複製了，切到瀏覽器，開啟 ChatGPT，貼上進去。

ChatGPT 給了解釋。你覺得有道理，但它說**我需要看一下你的程式碼**。你回到編輯器，複製了那個函式，切回瀏覽器貼上。它又問呼叫這個函式的地方。你翻了另一個檔案，複製，貼上。它再問資料庫表結構。你嘆了口氣，又去找。

來回七八次，**四十分鐘**。

這個過程裡，你充當了一個角色——**搬運工**。在兩個視窗之間來回搬運資訊：從編輯器搬到瀏覽器，從瀏覽器搬回編輯器。

> [!IMPORTANT]
> **停下來想一個問題**：你的程式碼就在你電腦上。AI 為什麼不能自己去看？

## 2. 把所有表面現象剝掉，只剩一個問題

如果問 ChatGPT 寫程式碼為什麼不夠順暢，十個人裡有八個會說：它理解力不夠、它寫的程式碼跑不通、它不瞭解最新的框架。

這些都是真實的痛點。但我們做一個**思維實驗**：假設明天 ChatGPT 升級了，變得和世界頂級程式設計師一樣聰明。程式碼寫得完美，理解力超強，最新的框架全知道。

你還是得把程式碼複製出來給它看。它還是不知道你的專案有哪些檔案。你還是不能讓它幫你跑一下 `npm test`。

**智力翻了十倍，但你當搬運工的那四十分鐘——一分鐘都沒少。**

> [!WARNING]
> **關鍵點**：我們習慣把所有問題歸結為 AI 不夠聰明。但有一類問題和智力無關——再聰明的人，如果被關在隔壁房間只能靠你傳紙條溝通，效率也快不起來。

這個思維實驗指向一件事：**AI 夠不到你的程式碼**。

它沒有眼睛去看你的檔案。它沒有手去改你的程式碼。它沒有腳去跑你的命令。它被困在瀏覽器的一個文本框裡，唯一的資訊來源就是你貼上進去的那些文字。

就像一個外科醫生再厲害，如果他在電話裡指揮你給自己做手術，效果也好不到哪去。瓶頸從來不是他的醫術，是**他不在手術室裡**。

這是 AI 輔助程式設計最底層的一個**位置問題**，不是智力問題。

## 3. 把 AI 搬到你的電腦裡

理解了瓶頸在位置，解決方案就很自然了——把 AI 從瀏覽器搬到你的電腦裡。

這就是 Claude Code 做的事。一句話講完：**它是一個住進你電腦裡的 AI 程式設計 agent（智慧代理）**。

它跑在哪裡？最經典的形態是終端——也就是你電腦上輸入文字命令的那個視窗。但 Claude Code 不止終端，從 2026 年開始它支援 5 個入口（Terminal CLI / VS Code / JetBrains / Desktop app / Web），共用同一套引擎，CLAUDE.md 和 MCP 配置跨入口生效。詳細差異在本篇 §7 展開。

位置變了，會發生什麼？看這張對比圖。

```mermaid
flowchart LR
    subgraph Before["💬 瀏覽器聊天框時代"]
        U1["👤 你"]
        AI1["🤖 ChatGPT<br/>住在瀏覽器裡"]
        Code1["📁 你的程式碼<br/>在你電腦上"]
        U1 -->|複製貼上| AI1
        AI1 -->|給你建議| U1
        U1 -.->|手動搬運| Code1
        Code1 -.->|再手動搬運| U1
    end

    subgraph After["💻 Claude Code 時代"]
        U2["👤 你"]
        AI2["🤖 Claude Code<br/>住在你電腦上"]
        Code2["📁 你的程式碼"]
        Term["⚡ 終端 / 命令"]
        U2 -->|自然語言指令| AI2
        AI2 -->|直接讀| Code2
        AI2 -->|直接改| Code2
        AI2 -->|直接跑| Term
    end

    style Before fill:#fee2e2,stroke:#ef4444
    style After fill:#dcfce7,stroke:#22c55e
    style AI2 fill:#dcfce7,stroke:#22c55e,stroke-width:2px
```

住進你電腦裡這五個字看起來很普通，但它引發了一連串變化——**四件 ChatGPT 永遠做不到的事**：

### 它能看你的檔案 [#see-files]

不是你貼一個片段給它——是它自己開啟你的目錄，把需要的檔案都讀一遍。

回到那個登入報錯的場景。你說一句**登入功能報錯了**。它不會問你要程式碼——它自己去找路由檔案、控制器、資料庫模型、認證中介軟體，把整條鏈路看一遍。**你省掉了來回貼上的七八個回合**。它一次能看多少？這個問題留給 [02 · 一次能看多少程式碼](/zh-Hant/docs/claude-code/understanding/02-context-window) 拆。

### 它能改你的程式碼 [#edit-code]

你說把 `userName` 改成 `userId`。它找到所有用到這個變數的地方——可能散落在十幾個檔案裡——全部改完。你在編輯器裡就能看到檔案變了。**不是給你一段程式碼讓你自己替換，是它來動手**。

### 它能執行命令 [#run-command]

安裝依賴、跑測試、啟動服務、提交程式碼——你用自然語言說，它在終端裡執行。你說裝 Prisma 然後建立使用者表，它跑 `npm install`、寫 schema、執行遷移。**不是告訴你步驟，是它動手**。

### 它能自己規劃 [#plan]

這一點最容易被低估。你說重構這個模組，它不會只改一行。它會想：先讀哪些檔案？依賴關係怎麼處理？改完哪些測試可能受影響？然後**制定計劃，逐步執行，最後跑測試驗證**。你可以隨時叫停，也可以讓它跑完。

四件事合在一起——**看檔案、改程式碼、跑命令、自主規劃**——AI 從隔壁房間的顧問變成了坐在你旁邊的搭檔。

**反向驗證**：這四件事**為什麼 ChatGPT 那種網頁端永遠做不到**？因為瀏覽器有沙箱（sandbox = 瀏覽器對指令碼的安全圍欄）—— 網頁裡的 JavaScript 出於安全考慮，不能任意讀你硬碟檔案、不能跑系統命令、不能呼叫本地 Python。這是瀏覽器**在設計層面**就堵死的能力，不是哪天網頁升級就能突破的。Claude Code 不在瀏覽器裡，不受這個約束——所以才能做到這四件事。位置不一樣，許可權邊界根本不一樣。

回到開頭那個登入 bug 的場景。在 Claude Code 裡，那 40 分鐘會變成這樣：

> [!NOTE]
> **👤 你**：登入功能報錯了，錯誤密碼後頁面空白。

> [!TIP]
> **🤖 Claude Code**：*（自己讀 5 個檔案：`src/auth/login.js`、`controllers/auth.ts`、`models/user.ts`、`middleware/auth.ts`、`schema.prisma`）*
>
> 問題在 `login.js:42`——錯誤密碼時拋了 `throw` 但前端沒接住。我修一下並加測試 *(改完，跑了 3 個測試 case 全過)*。**要 commit 嗎？**

**七八輪貼上變成 1 輪對話**。不是 AI 變聰明了，是 AI 終於在手術室裡了。

## 4. 一個位置決定，長出整個功能生態

後面你會遇到一系列功能名詞：**Skills、SubAgents、Agent Teams、MCP、Hooks、CLAUDE.md**。初看像一堆互不相關的東西。但它們全都是從 AI 住在你電腦裡這個根基上長出來的。

```mermaid
flowchart TB
    Root["🏠 AI 住在你電腦裡<br/>（位置就是根因）"]

    subgraph FS["📁 檔案系統能力"]
        F1[CLAUDE.md 長期記憶]
        F2[".claude/skills 工作流檔案"]
        F3[上下文看完整專案]
    end

    subgraph Exec["⚡ 命令執行能力"]
        E1[Hooks 自動跑指令碼]
        E2[SubAgents 派分身]
        E3[多 Agent 並行]
    end

    subgraph Net["🌐 本地程序能力"]
        N1[MCP 接外部服務]
        N2["資料庫 / GitHub / Slack"]
        N3[瀏覽器自動化]
    end

    subgraph Tool["🛠️ 你的工具箱"]
        T1["Python / FFmpeg / Git"]
        T2[任何 CLI]
        T3[裝什麼用什麼]
    end

    Root --> FS
    Root --> Exec
    Root --> Net
    Root --> Tool

    style Root fill:#dcfce7,stroke:#22c55e,stroke-width:3px
    style FS fill:#fef3c7,stroke:#f59e0b
    style Exec fill:#dbeafe,stroke:#3b82f6
    style Net fill:#f3e8ff,stroke:#a855f7
    style Tool fill:#fee2e2,stroke:#ef4444
```

每一個分支都有同一個前提：**AI 住在你電腦裡**。如果 AI 還在瀏覽器，這些功能一個都做不了。

<Cards>
  <Card title="CLAUDE.md" href="/zh-Hant/docs/claude-code/understanding/03-memory">
    專案長期記憶，每次啟動自動讀。能做到是因為 AI 能讀你磁碟上的檔案。
  </Card>
  <Card title="🛠️ Skills" href="/zh-Hant/docs/claude-code/understanding/06-command-files">
    把工作流寫成檔案，需要時自動載入。能做到是因為它能讀檔案並按需檢索。
  </Card>
  <Card title="👥 SubAgents" href="/zh-Hant/docs/claude-code/understanding/07-subagents">
    派出分身做子任務，獨立工作後彙總。能做到是因為分身也住在你電腦上。
  </Card>
  <Card title="🌐 MCP" href="/zh-Hant/docs/claude-code/understanding/09-mcp">
    接 GitHub、資料庫、Slack 等外部服務。能做到是因為它在你電腦上跑本地程序，可以發起網路請求。
  </Card>
  <Card title="🪝 Hooks" href="/zh-Hant/docs/claude-code/understanding/10-operation-control">
    在特定操作前後自動執行你預設指令碼。能做到是因為它能在你電腦上執行 Shell 命令。
  </Card>
</Cards>

> [!NOTE]
> **底層邏輯**：位置不是一個孤立的技術細節——它是整個 Claude Code 功能生態的根基。後面每篇教程拆解的每個功能，你都會看到同一條線索：**因為 AI 在你電腦上，所以它能 XXX**。理解了根基，枝葉自然生長。

## 5. 你的電腦能做什麼 = Claude Code 能做什麼

你可能會有一個直覺：Claude Code 是寫程式碼的工具。

它的核心能力其實更寬——是**在你的電腦上執行任務**。寫程式碼只是其中一種。

| 你電腦上有什麼 | Claude Code 就能做什麼 | 實際場景 |
|------|------|------|
| **Python** | 資料分析、指令碼自動化、生成圖表 | 處理 Excel、爬資料、出報表 |
| **FFmpeg** | 影片轉碼、音訊提取、字幕處理 | 剪影片、做字幕 |
| **Whisper** | 語音轉文字 | 把會議錄音轉筆記 |
| **Playwright** | 操作瀏覽器、填表單、截圖 | 自動化測試、批次爬取 |
| **Git** | 提交程式碼、解決衝突、建立 PR | 日常版本控制 |
| **任何 CLI 工具** | 能在終端跑的它都能調 | kubectl、docker、AWS CLI 等 |

它的能力邊界 = **你電腦的能力邊界 + MCP（Model Context Protocol，模型上下文協議）連線的外部服務**。MCP 怎麼連，[09 · 怎麼連外部服務](/zh-Hant/docs/claude-code/understanding/09-mcp) 會拆。

當然有限制：它不能直接操作滑鼠鍵盤（除了透過 Playwright 間接操作瀏覽器），不能看你的螢幕截圖（除非你主動給它），執行命令前會先徵求你同意（安全設計，[11 · 該給 AI 多少許可權](/zh-Hant/docs/claude-code/understanding/11-permissions) 會講）。

> [!IMPORTANT]
> **打個比方**：Claude Code 像你僱了一個什麼都願意學的實習生，他坐在你的工位上。你桌上有什麼工具，他就能用什麼——螺絲刀、萬用表、顯微鏡，不挑。**他的能力上限不取決於他自己，取決於你的工具箱**。當然，他幹活比你快得多，因為他每秒能讀幾萬行文字。

## 6. 三個模型，一條原則

Claude Code 背後有三組模型可選。你可能會想：選最強的不就完了？

做一個類比：你出門買個早餐——會開車去嗎？大多數人不會，走路 5 分鐘的事開車反而更慢（還得找停車位）。但如果你要去 200 公里外的城市，走路就不現實了。

選模型的邏輯一樣：**用最小夠用的那個**。

| 模型別名 | 一句話定位 | 什麼時候用 | 當前預設指向 |
|------|------|------|------|
| **`haiku`** | 走路——快、近、零成本 | 簡單問答、格式轉換 | Haiku 最新版 |
| **`sonnet`** | 開車——日常通勤首選 | 絕大多數編碼任務 | Sonnet 4.6（Anthropic API）|
| **`opus`** | 飛機——長途才用 | 複雜架構、深度除錯 | Opus 4.7（Anthropic API，需 v2.1.111+）|
| **`opusplan`** | 飛機+車——plan 期 opus，執行期 sonnet | 想要 opus 思考、sonnet 執行 | 自動切換 |
| **`best`** | 自動跟最強 | 不想自己選 | 當前等同 `opus` |

> [!NOTE]
> **事實基準（2026-05 最新）**：Anthropic API 上 `opus` 解析為 **Opus 4.7**，`sonnet` 解析為 **Sonnet 4.6**。Bedrock / Vertex / Foundry 上的別名指向略有滯後（詳見 https://code.claude.com/docs/en/model-config）。
>
> 想鎖版本就用全名（如 `claude-opus-4-7`），不鎖就用別名跟隨官方推薦。

預設掛 `sonnet`。遇到搞不定的複雜問題切 `opus`。簡單到不用動腦子的活切 `haiku` 省錢。

**新手常見的錯配**：剛上手就把所有任務都開 `opus`，結果兩個問題——一是費用快速膨脹（opus 是 sonnet 的 5 倍貴），二是簡單任務被過度推理汙染（opus 會順手給出"是否需要重構整個模組"的建議，新手照著改反而引入風險）。判斷方式跟早餐 vs 長途一樣：**走路能到的別開車**。

<details id="effort">
<summary>深入一步：effort 思考深度</summary>

Opus 4.7、Opus 4.6、Sonnet 4.6 都支援 effort 引數（思考深度）。

- **Opus 4.7**：5 檔 `low / medium / high / xhigh / max`，預設 **`xhigh`**。
- **Opus 4.6 / Sonnet 4.6**：4 檔 `low / medium / high / max`（無 `xhigh`），預設 **`high`**。

同一個模型，讓它快速掃一眼（low）或仔細想想（xhigh），token 成本能差幾倍。

effort 背後的快思考 vs 慢思考哲學，[05 · AI 怎麼決定想多深](/zh-Hant/docs/claude-code/understanding/05-thinking-depth) 會展開。這裡先知道有這個開關就夠了。

</details>

## 7. 5 個入口，位置程度不一樣

Claude Code 當前有 5 個入口，但**住在哪裡**程度不一樣。理解這個差異，對後面許可權和雲端任務章節會有幫助。

<details>
<summary>Terminal CLI</summary>

**位置定位**：100% 本地

**關鍵特徵**：主戰場，許可權最深、自動化最強。能讀你磁碟任何檔案、跑任何 CLI 命令。

**適合**：日常程式設計、CI 整合、指令碼化批次任務。

</details>
<details>
<summary>IDE 擴充套件</summary>

**位置定位**：本地（嵌入 IDE）

**關鍵特徵**：跟編輯器檢視深度整合（inline diff、@-mention、command palette）。VS Code / Cursor / JetBrains 都支援。

**適合**：邊寫邊問、看著 diff 改、需要視覺化對比。

</details>
<details>
<summary>Desktop App</summary>

**位置定位**：本地（獨立桌面程序）

**關鍵特徵**：多會話並行、視覺化 diff 審閱、定時任務（schedule）。macOS / Windows 都有。

**適合**：同時跑多個 Agent、長任務監控、定時跑 PR review。

</details>
<details>
<summary>Web</summary>

**位置定位**：**遠端**（Anthropic 雲端容器）

**關鍵特徵**：長任務非同步跑，電腦關機也在跑；不直接接你電腦檔案，讀的是它自己 clone 的專案副本。

**適合**：扔一個超長任務後去喝咖啡、不想本地跑、移動端啟動。

</details>
<details>
<summary>移動 / 遠端</summary>

**位置定位**：遠端轉發

**關鍵特徵**：iOS App、Remote Control、Slack / Discord 等 Channels 把任務路由到電腦端會話或雲端會話。

**適合**：地鐵上發任務、晚上手機看進度、外網時讓家裡電腦幹活。

</details>

**關鍵區分**：前 3 個真正住在你電腦裡，後 2 個是雲端的 Claude Code。你電腦關機時雲端能繼續，但讀不到你磁碟檔案。

這件事不影響本篇對**位置**的理解：核心仍然是有一個能直接操作程式碼檔案 + 跑命令的現場，無非這個現場可以是你的電腦，也可以是 Anthropic 雲端的臨時容器。

**5 個入口怎麼選——一句話決策**：

| 你正在做什麼 | 選哪個入口 |
|---|---|
| 日常程式設計、需要操作本地儲存庫 | Terminal CLI（最強許可權）|
| 邊寫邊問、想看 inline diff | IDE 擴充套件 |
| 同時跑多個 Agent、長任務監控 | Desktop App |
| 扔超長任務後去喝咖啡、本地不在家 | Web（雲端容器，讀不到你磁碟）|
| 地鐵上 / 手機端發任務 | 移動 / 遠端（路由到電腦或雲端）|

## 8. 檢驗你真懂了嗎

費曼說，檢驗你是不是真的理解一件事，試試能不能解釋給朋友聽。

| # | 試著用自己的話回答 | 對應章節 |
|:-:|------|------|
| 1 | 有人說 AI 程式設計工具選最聰明的就行——你能反駁嗎？論據是什麼？ | §2 思維實驗 |
| 2 | 不用術語，用買早餐 / 修水管這種類比能講清 Claude Code 的核心設計決定嗎？ | §3 把 AI 搬到電腦裡 |
| 3 | **動手題** ⭐：現在開啟終端，讓 Claude Code 完成"列出當前專案所有 .md 檔案，按行數從大到小排序，告訴我前 3 個分別講什麼"。這一個任務裡你能數出幾個**只有"AI 住在你電腦裡"才做得到的動作**？提示：至少 3 個。| §4 功能生態 |

> [!TIP]
> **過關標準**：能用一句話說清——**Claude Code 改變體驗的不是模型變聰明，而是 AI 從瀏覽器搬到了你電腦裡——所以它能看檔案、改程式碼、跑命令、自主規劃。**

<details id="glossary">
<summary>📖 本篇術語速查表</summary>

| 英文 / 縮寫 | 中文 | 一句話解釋 |
|-------------|------|-----------|
| agent | 智慧代理 | 能圍繞目標自主使用上下文、工具、反饋迴圈的 AI 系統 |
| coding agent | 程式設計智慧代理 | 面向程式設計任務的 agent，Claude Code 是典型代表 |
| token | 詞元 | 模型讀 / 寫文本的最小單位，1 箇中文字大約 2 token |
| context window | 上下文視窗 | 一次對話裡 AI 能同時看到的資訊總量，詳見 02 篇 |
| CLAUDE.md | 專案記憶檔案 | 寫給 Claude 的長期指令，每次啟動自動讀，詳見 03 篇 |
| Skills | 技能檔案 | 把工作流寫成檔案，Claude 按需載入，詳見 06 篇 |
| SubAgents | 子代理 / 分身 | 主 Claude 派出去做子任務的獨立工作單元，詳見 07 篇 |
| MCP | Model Context Protocol，模型上下文協議 | Agent 接外部工具的標準協議，詳見 09 篇 |
| Hooks | 鉤子 | 操作前後自動執行的指令碼，詳見 10 篇 |
| effort | 思考深度 | 控制模型在每步上花多少 token 思考，詳見 05 篇 |

</details>

## 官方資料

- [Claude Code 官方文件](https://code.claude.com/docs/en/overview)
- [Model configuration](https://code.claude.com/docs/en/model-config)（模型別名、effort、extended context 全部以此為準）
- [What's new](https://code.claude.com/docs/en/whats-new)（版本更新和能力變更）
- [Claude Models overview](https://platform.claude.com/docs/en/about-claude/models/overview)（具體模型 ID 與版本號）

## 接下來去哪

<Cards>
  <Card title="➡️ 02 · 一次能看多少程式碼" href="/zh-Hant/docs/claude-code/understanding/02-context-window">
    上下文視窗不是記憶，是當前工作臺。看 AI 在工作臺被堆滿後會發生什麼。
  </Card>
  <Card title="03 · 怎麼記住你的習慣" href="/zh-Hant/docs/claude-code/understanding/03-memory">
    上下文是一次性的，但專案知識需要跨會話保留。CLAUDE.md + Auto Memory 雙軌記憶系統。
  </Card>
  <Card title="09 · 怎麼連外部服務（可跳讀）" href="/zh-Hant/docs/claude-code/understanding/09-mcp">
    MCP 解決手不夠長的問題，讓 Claude 接資料庫、瀏覽器、GitHub 等外部服務。
  </Card>
  <Card title="11 · 該給 AI 多少許可權（可跳讀）" href="/zh-Hant/docs/claude-code/understanding/11-permissions">
    許可權不是越大越好，也不是越小越安全；要按風險分層。
  </Card>
</Cards>

不用按順序全讀。挑你最好奇的那條線走就行——每篇開頭都會標註需要先讀哪篇。
