---
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 · 一次能看多少代码](/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="/docs/claude-code/understanding/03-memory">
    项目长期记忆，每次启动自动读。能做到是因为 AI 能读你磁盘上的文件。
  </Card>
  <Card title="🛠️ Skills" href="/docs/claude-code/understanding/06-command-files">
    把工作流写成文件，需要时自动加载。能做到是因为它能读文件并按需检索。
  </Card>
  <Card title="👥 SubAgents" href="/docs/claude-code/understanding/07-subagents">
    派出分身做子任务，独立工作后汇总。能做到是因为分身也住在你电脑上。
  </Card>
  <Card title="🌐 MCP" href="/docs/claude-code/understanding/09-mcp">
    接 GitHub、数据库、Slack 等外部服务。能做到是因为它在你电脑上跑本地进程，可以发起网络请求。
  </Card>
  <Card title="🪝 Hooks" href="/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 · 怎么连外部服务](/docs/claude-code/understanding/09-mcp) 会拆。

当然有限制：它不能直接操作鼠标键盘（除了通过 Playwright 间接操作浏览器），不能看你的屏幕截图（除非你主动给它），执行命令前会先征求你同意（安全设计，[11 · 该给 AI 多少权限](/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 怎么决定想多深](/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="/docs/claude-code/understanding/02-context-window">
    上下文窗口不是记忆，是当前工作台。看 AI 在工作台被堆满后会发生什么。
  </Card>
  <Card title="03 · 怎么记住你的习惯" href="/docs/claude-code/understanding/03-memory">
    上下文是一次性的，但项目知识需要跨会话保留。CLAUDE.md + Auto Memory 双轨记忆系统。
  </Card>
  <Card title="09 · 怎么连外部服务（可跳读）" href="/docs/claude-code/understanding/09-mcp">
    MCP 解决手不够长的问题，让 Claude 接数据库、浏览器、GitHub 等外部服务。
  </Card>
  <Card title="11 · 该给 AI 多少权限（可跳读）" href="/docs/claude-code/understanding/11-permissions">
    权限不是越大越好，也不是越小越安全；要按风险分层。
  </Card>
</Cards>

不用按顺序全读。挑你最好奇的那条线走就行——每篇开头都会标注需要先读哪篇。
