一句话定义
Claude Code 是一个运行在本地终端中的 agentic coding system。它不是给建议的聊天机器人——它直接在你的项目目录中读代码、改文件、跑命令、调试程序,拥有完整的 shell 能力。技术定位:terminal-native agentic system
理解 Claude Code 的关键在于三个词:| 定位关键词 | 含义 |
|---|---|
| Terminal-native | 原生 CLI 应用,不是 IDE 插件、不是 Web 界面、不是 API wrapper |
| Agentic | AI 自主决策工具调用链,不是”一问一答”的聊天模式 |
| Coding system | 面向软件工程全流程,不是通用问答工具 |
| 工具 | 架构模式 | 运行位置 | 工具执行 |
|---|---|---|---|
| Claude Code | Terminal-native agentic loop | 本地进程 | 直接 shell 执行 |
| Cursor / Copilot | IDE-integrated autocomplete + chat | IDE 进程内 | LSP / IDE API |
| Aider | CLI chat → git patch | 本地进程 | 文件操作为主 |
| ChatGPT / Claude.ai | Cloud chat + artifacts | 浏览器/云端 | 沙箱容器 |
端到端示例:从输入到输出
当你在终端中输入bun run dev 有个 TypeScript 报错,帮我修一下 时,系统发生了什么?
| Turn | AI 决策 | 工具调用 | 结果 | |
|---|---|---|---|---|
| 1 | 先看报错信息 | `Bash(“bun run dev 2>&1 | head -30”)` | TypeScript 错误输出 |
| 2 | 定位到文件 | Read("src/utils/foo.ts") | 源代码内容 | |
| 3 | 搜索相关类型定义 | Grep("interface Foo", "src/") | 类型定义位置 | |
| 4 | 修复代码 | FileEdit(old, new) | 代码已修改 | |
| 5 | 验证修复 | `Bash(“bun run dev 2>&1 | head -10”)` | 编译通过 |
它不是什么
- 不是 IDE 插件:没有图形界面,不依赖 VS Code 或任何 IDE
- 不是 API wrapper:它有自己的工具系统、权限模型、上下文工程、会话管理
- 不是聊天机器人:输出不是纯文本,而是实际的文件修改、命令执行
- 不是无脑执行器:每个敏感操作都有权限检查和用户确认环节
启动入口解剖
真正的代码入口是src/entrypoints/cli.tsx,它做了三件关键的事:
src/main.tsx:
- Commander.js 解析命令行参数
- 初始化认证、遥测、策略限制
- 加载工具列表(
getTools()) - 启动 REPL(
launchRepl())或管道模式(-p)
为什么选择终端
终端不是限制,而是选择。它带来了独特的能力:- 完整的 shell 访问:可以运行任何命令行工具,无需为每个能力写插件
- 项目原生:直接在项目目录工作,理解文件系统结构、git 状态
- 可组合性:管道模式(
echo "..." | claude -p)允许嵌入 CI/CD 和自动化流程 - 低延迟:没有 Electron 开销,React/Ink 渲染的 TUI 响应极快