快速入门

概述:Claude Code 到底是什么

Claude Code 是Anthropic 推出的命令行 AI 编程搭档,它直接运行在终端里,能理解你的整个项目代码,并帮你编写、修改、调试代码,甚至执行命令和 Git 操作。

Claude Code 官方界面示意

一张图先建立整体感觉

加载图表中...

类比一下:如果说 Google AI Studio 更像一个在线原型实验场,那 Claude Code 更像一个真正驻扎在你电脑项目目录里的高级工程搭档。

它最核心的能力是什么

先不要急着看源码细节,先建立一个产品级认知。
Claude Code 之所以强,最核心的能力可以概括成下面这几项:

能力说明典型问题
理解项目读取并分析整个代码仓库“这个项目整体架构是怎样的?”
编写和修改代码直接创建、更新、重构文件“给用户列表页加一个搜索功能”
调试修复定位报错、修 bug、补验证“这个接口为什么返回 500?”
执行命令运行测试、构建、安装依赖、Git“帮我跑一下测试,看看哪里挂了”
遵守项目规范结合 CLAUDE.md 和项目上下文工作“按这个仓库现有风格改,不要乱来”

所以它强的地方,并不只是“能生成代码”,而是能在真实项目环境里持续推进任务。

它和普通 AI 聊天工具的本质区别

普通 AI 聊天,大多是:

  1. 你提问
  2. 模型回答
  3. 回答结束

而 Claude Code 的核心模式是:

  1. 你提出任务
  2. 系统收集项目上下文
  3. 模型决定要不要调用工具
  4. 工具执行文件读写、搜索、Shell、MCP、LSP 等动作
  5. 执行结果回流给模型
  6. 模型继续下一步,直到任务完成

这就是为什么它给人的感觉不像“问答机器人”,而像一个会动手干活的工程搭档。

一个典型工作流是什么样的

如果把它放进真实开发现场,一次典型任务往往是这样推进的:

加载图表中...

这里最重要的一点是:
Claude Code 的工作不是“回答完就结束”,而是会沿着读取、修改、验证、汇报这条链路持续推进。

用一句更工程化的话来定义它

如果用更偏架构的语言描述,Claude Code 可以定义为:

一个运行在终端中的会话级 Agent Runtime,它以大模型为决策核心,以工具系统为执行接口,以项目上下文为决策基础。

这个定义里有三个关键词:

  • 会话级:不是一次问答,而是持续运行的会话
  • 工具化:不是只生成文本,而是可以采取动作
  • 上下文化:不是面对孤立 prompt,而是面对整个项目环境

如果再说得更直白一点,它其实是把下面三样东西绑在了一起:

  1. 大模型的推理能力
  2. 终端里的工程工具链
  3. 项目目录里的真实上下文

这三样东西一旦放到一起,能力上限就明显和普通聊天工具拉开了。

从源码看,它的核心入口在哪里

在这份源码镜像里,最值得先记住的几个文件是:

  • main.tsx:启动与装配入口
  • QueryEngine.ts:对话与工具调用主循环
  • Tool.ts:工具协议定义
  • tools.ts:工具注册表
  • commands.ts:斜杠命令系统
  • context.ts:上下文注入
  • state/AppStateStore.ts:终端 UI 状态中心

你可以把这几个文件理解成 Claude Code 的主骨架。

源码片段:它一开始就不是“轻量 CLI”

下面这一小段 main.tsx 很能说明问题:

// These side-effects must run before all other imports:
// 1. profileCheckpoint marks entry before heavy module evaluation begins
// 2. startMdmRawRead fires MDM subprocesses ...
// 3. startKeychainPrefetch fires both macOS keychain reads ...
import { profileCheckpoint, profileReport } from './utils/startupProfiler.js';

profileCheckpoint('main_tsx_entry');
import { startMdmRawRead } from './utils/settings/mdm/rawRead.js';
startMdmRawRead();
import { ensureKeychainPrefetchCompleted, startKeychainPrefetch } from './utils/secureStorage/keychainPrefetch.js';
startKeychainPrefetch();

这段代码说明了三件事:

  • 启动性能被当成正式工程问题处理
  • 一些系统读取会在最早阶段并行预热
  • Claude Code 启动时就已经在做复杂运行时准备,而不是简单等用户输入

也就是说,Claude Code 不是“命令行打开后再慢慢加载”,而是从入口开始就在装配一套运行环境。

加载图表中...

它到底在解决什么问题

Claude Code 解决的不是“写一段函数”的问题,而是更完整的工程任务问题,比如:

  • 在一个真实仓库里理解现有代码
  • 修改多个文件并保持风格一致
  • 运行命令验证结果
  • 根据 Git 状态和项目约束做决策
  • 接入外部工具或资源

也就是说,它把“大模型”推进到了“工程工作流”内部,而不是停留在聊天框外面。

CLAUDE.md 为什么很重要

理解 Claude Code,不能漏掉 CLAUDE.md
你可以把它看成项目级记忆文件,用来告诉 Claude Code:

  • 这个项目是做什么的
  • 代码应该遵循什么规范
  • 常用命令有哪些
  • 哪些目录和文件比较关键
  • 哪些坑要避免

例如它可能长这样:

# 项目说明

- 这是一个 Next.js + TypeScript 项目
- 样式使用 Tailwind CSS
- 提交信息使用中文

# 开发约定

- 优先复用现有组件
- 不要随意引入新依赖
- 修改后先运行 build 验证

Claude Code 每轮工作时都会参考这类项目记忆,所以它更容易保持长期一致性,而不是每次都像“第一次来到这个项目”。

它适合什么场景

最适合 Claude Code 的,通常是这些场景:

  • 中大型项目开发
  • 跨文件修改和重构
  • 带构建、测试、命令执行的工程任务
  • 需要长期迭代的本地项目

不那么适合它的场景则包括:

  • 纯聊天问答
  • 完全没有本地项目上下文的开放式探索
  • 只想要简单代码补全的场景

所以它和编辑器补全工具不是同一个定位。

Claude Code 和其他 AI 编程工具的区别

如果粗略比较一下:

维度Claude CodeGoogle AI Studio编辑器内补全工具
宿主环境终端 / 本地项目浏览器编辑器
上下文深度整个仓库 + 命令行环境主要是当前原型或片段多数偏当前文件附近
可执行能力强,可读写文件并运行命令较弱,偏原型与实验中等,通常偏编辑内操作
适合阶段正式开发与持续迭代原型验证、快速试验编码补全、局部协助

所以非常常见的一条路径是:

  1. 先在 Google AI Studio 里快速验证想法
  2. 再把代码放到本地项目
  3. 用 Claude Code 做正式迭代开发

为什么研究它的源码有价值

就算你不打算自己做一个 Claude Code,研究它也至少有三层价值:

  • 你能更清楚地理解 AI 编程工具为什么强,不再把能力归因于“模型突然变聪明了”
  • 你能建立 Agent 系统的基本认知,知道真正关键的是主循环、工具、权限、上下文
  • 你能借鉴它的架构思想,去设计自己的命令行智能体、开发助手或自动化系统

同时,这篇是专题里的“入口文章”,重点是先帮你建立整体感觉。
后面文章才会逐步进入:

  • main.tsx 如何启动
  • QueryEngine 如何推进任务
  • 工具和权限是怎么协作的
  • 为什么它能接入 MCP、LSP、插件和多 Agent

这一专题会怎么展开

这个专题不会停留在“怎么装、怎么用”的层面,而是按照下面的路线逐步拆解:

  1. 先建立整体认知
  2. 再看高层架构
  3. 然后进入主循环、工具、命令、上下文、状态、权限
  4. 最后再看 MCP、LSP、插件、Skills、子 Agent 这些扩展能力

如果你第一次接触 Claude Code,建议直接按目录顺序阅读。

阅读这个专题时的推荐顺序

不同读者的推荐顺序不一样:

如果你是普通读者

  1. 先看这篇概述
  2. 再看“为什么更像工程搭档”
  3. 再看“源码架构总览”
  4. 之后按兴趣进入 QueryEngine、工具、权限

如果你是进阶开发者

  1. 先看“源码架构总览”
  2. 再看 “main.tsx 启动流程”
  3. 再看 “QueryEngine 主循环”
  4. 然后看工具、上下文、权限和扩展系统

小结

Claude Code 的本质,可以用一句话概括:

它是一个以大模型为决策核心、以工具系统为执行手脚、以终端工作流为宿主环境的工程型智能体系统。

理解了这一点,后面很多源码细节就会更容易看懂。