Claude Code 安装使用指南:AI编程Agent时代
如果说2025年AI编程领域有什么真正值得关注的变化,那Claude Code的推出绝对算一个。简单来说,它由Anthropic推出,不是一个漂亮的图形界面编辑器,而是一个直接跑在你终端(Terminal)里的智能袋里(Agent)。它能直接“看懂”你的整个代码库,执行命令,甚至动手改代码。
这背后意味着从“对话框”到“操作者”的根本转变。以前的AI编程助手更像是顾问,你需要把代码复制给它,它给出建议,你再手动改回去。测试、报错、再反馈,这一整套流程都得你来当“搬运工”。Claude Code直接打破了这种模式,它既能“说”也能“做”。它能感知你的整个项目结构,直接修改文件,自主运行测试、编译,甚至根据报错信息进行下一轮修复。对于习惯用命令行、Vim或者自动化流水线的开发者来说,它的“袋里性”更强,能独立处理更复杂的端到端任务。
核心定位与功能特性
它到底能做什么?核心能力体现在这几个方面:
- 全库感知:不是只看你当前打开的文件,它能自动扫描并理解你整个项目的结构。你可以直接问:“这个项目里的用户登录逻辑在哪儿?”
- 直接编辑代码:直接下指令“帮我修复auth.ts里的内存泄漏”,它会直接修改文件。
- 自主执行命令:跑测试(如
npm test)、编译代码(如make build),它都能干,并根据结果自动调整。 - Git集成:帮你自动写提交信息、创建分支、查看代码差异。
- 语义化搜索:这比普通的
grep高级多了。你可以搜索“找找看项目中所有处理支付回调的地方”,它基于语义理解给出结果。 - 工具调用:内置了文件读写、搜索、运行Shell命令等一系列工具。
它跟其他工具有什么区别?
有读者可能会问,那它和Cursor、GitHub Copilot有什么不同?关键在于工作模式。Cursor和Copilot是集成在IDE里的插件,侧重补全和侧边栏辅助。而Claude Code是一个CLI工具,更适合那些喜欢在终端里掌控一切的“极客”。
至于跟普通的网页版ChatGPT或Claude比,最大的区别是后者没有本地文件系统的“钥匙”,你需要手动搬运代码。Claude Code直接坐在你的代码库里,行使自主权。
它背后的工作原理
驱动它的是最新的Claude 3.7 Sonnet模型。这个模型在发布时,专门强化了“推理”和“工具使用”能力。它的工作流程可以看作一个典型的“感知-行动-验证”循环:
- 输入指令:比如“修复单元测试中所有的报错”。
- 思考与分析:Claude分析你的测试框架,定位那些失败的测试用例。
- 行动:它先运行测试命令,读取报错日志。
- 修改:读取相关源代码,进行修改。
- 验证:再次运行测试,确认修复成功,最后向你展示所有改动。
安全和权限是开发者最关心的问题。Claude Code设计了一套机制:在尝试执行敏感操作(如运行Shell命令、网络请求)时,它会请求你的授权。它也尊重.gitignore,你还可以创建.claudeignore来禁止它读取特定文件。模型推理在云端进行,但文件处理逻辑在本地,确保了数据安全。
优缺点分析
任何工具都有两面性,客观来看:
优点:效率极高。尤其在重构、写单元测试、修复简单Bug这类重复性任务上,比手动操作快得多。能帮助开发者保持“心流”,无需在IDE、浏览器、终端之间频繁切换。基于Claude 3.7,处理复杂逻辑的能力在行业内也处于顶尖水平。
缺点:按Token计费(通过API消耗),对于庞大项目频繁扫描可能产生费用。目前仍处于早期预览版,可能有不稳定或识别错误的情况。对于不熟悉命令行的开发者,有一定的上手门槛。
如何安装与使用
从安装到上手,流程非常清晰。它支持5种核心使用方式:
| 方式 | 描述 |
|---|---|
| Terminal(推荐) | 功能完整的CLI,直接在终端中使用,编辑文件、运行命令、管理整个项目。 |
| VS Code | VS Code扩展,在编辑器中提供内联差异、@-提及、计划审查和对话历史。 |
| Desktop app | 独立应用,在IDE或终端之外运行Claude Code,可直观查看差异、并行运行多个会话。 |
| Web | 在浏览器中运行,无需本地设置,可在桌面浏览器和Claude iOS应用中使用。 |
| JetBrains | 为IntelliJ IDEA、PyCharm、WebStorm等JetBrains IDE提供的插件。 |
Terminal安装(推荐)
如果你用的是Mac,最省事的办法就是直接用Homebrew安装:
brew install --cask claude-code
安装成功后,在任意项目目录里运行claude就能启动了。
基本命令一览
| 命令 | 功能 | 示例 |
|---|---|---|
claude | 启动交互模式 | claude |
claude “task” | 运行一次性任务 | claude “fix the build error” |
claude -p “query” | 运行一次性查询,然后退出 | claude -p “explain this function” |
claude -c | 在当前目录继续最近的对话 | claude -c |
claude -r | 恢复之前的对话 | claude -r |
/clear | 清除对话历史 | /clear |
/help | 显示可用命令 | /help |
exit或Ctrl+D | 退出Claude Code | exit |
会话内命令
在会话中,输入/可以查看所有可用命令。这些命令在任务中非常实用:
- 任务开始前:用
/init生成CLAUDE.md,用/memory完善它。用/mcp和/agents设置需要的服务器或子袋里,用/permissions设置批准规则。 - 任务进行中:用
/plan在重大更改前切换到“计划模式”。用/model和/effort调整推理量。当对话变长时,用/context看看上下文窗口,用/compact总结对话。想快速附加说明,用/btw。 - 并行工作:用
/agents管理子袋里,用/tasks查看后台任务。用/background将整个会话放到后台运行。对于跨代码库的大型更改,用/batch分解任务。 - 发布前:用
/diff查看改动,用/code-review或/review进行代码审查。 - 问题处理:用
/rewind回滚代码和对话。用/doctor和/debug诊断安装和运行时问题。
深入袋里循环与工具
Claude Code的核心,是这个“袋里循环”。当你给它一个任务时,它会经历三个阶段:收集上下文、采取行动、验证结果。它会不断使用工具,无论是搜索文件、编辑代码,还是运行测试来检查工作成果。
这个循环会根据任务自动调整。修复一个Bug可能会循环多次,重构任务则可能涉及更广泛的验证。Claude会根据前一步学到的内容,决定下一步怎么做。
模型
Claude Code使用Claude模型理解代码并推理任务。它提供了多种模型选择:
| 模型 | 用途 | 特点 |
|---|---|---|
| Opus | 复杂推理任务 | 最强大,适合架构决策和深度分析 |
| Sonnet | 日常编码任务 | 推荐默认,速度快、效率高 |
| Haiku | 简单任务 | 最快最高效,适合轻量级工作 |
使用/model可以在会话中切换模型,或使用claude --model 启动。
工具
工具是Claude Code能成为“袋里”的关键。没有工具,它只能输出文本。有了工具,它可以采取行动。内置工具分为五个类别:
| 类别 | Claude能做什么 |
|---|---|
| 文件操作 | 读取、编辑、创建、重命名和重新组织文件 |
| 搜索 | 按模式查找文件、使用正则表达式搜索内容、探索代码库 |
| 执行 | 运行shell命令、启动服务器、运行测试、使用git |
| 网络 | 搜索网络、获取文档、查找错误信息 |
| 代码智能 | 查看类型错误和警告、跳转到定义等(需要插件) |
比如,当你说“修复失败的测试”时,它可能就会:运行测试套件 -> 读取错误 -> 搜索源文件 -> 读取代码 -> 修改文件 -> 再次运行验证。每一步都为其下一步行动提供信息。
你还可以通过Skills扩展Claude的知识,通过MCP连接外部服务,通过Hooks自动化工作流,以及将任务委派给Subagents。
上下文窗口与访问权限
Claude Code的上下文窗口保存着你的对话历史、文件内容、命令输出等。它会自动压缩,但如果信息很多,早期的指令可能会丢失。这就是为什么最好把持久性规则放在CLAUDE.md中。你可以用/context查看当前什么在占用上下文空间。
当你在目录中运行claude时,它能访问你的项目文件、你的终端、你的Git状态、你的CLAUDE.md以及自动记忆。它能看到整个项目,这意味着它可以从整体上理解和解决问题,而不是像传统内联助手那样只关注当前文件。
扩展Claude Code:一个功能矩阵
Claude Code提供了一个丰富的扩展生态。理解它们的用途,能让你极大地提升效率。
功能与目标匹配
| 功能 | 作用 | 何时使用 | 示例 |
|---|---|---|---|
| CLAUDE.md | 每次对话加载的持久上下文 | 项目约定、“始终执行X”的规则 | “使用pnpm,而不是npm。提交前运行测试。” |
| Skill | 可重用的说明、知识和工作流 | 可重用内容、参考文档、可重复任务 | 一个包含部署清单的/deploy命令 |
| Subagent | 隔离执行的子袋里,返回摘要 | 上下文隔离、并行任务、专门工作者 | 研究任务,读取多个文件,但只返回关键发现 |
| Agent teams | 协调多个独立会话 | 并行研究、新功能开发、竞争性假设调试 | 生成审查者,同时检查安全性、性能和测试 |
| Code intelligence | 语言服务器导航和诊断 | 类型化语言、大型代码库 | 跳转到符号的定义,而不是读取整个文件 |
| MCP | 连接外部服务 | 外部数据或操作 | 查询数据库、发布到Slack、控制浏览器 |
| Hook | 由事件触发的脚本或请求 | 必须自动化的重复动作 | 每次文件编辑后运行ESLint |
你不需要一开始就配置所有东西。一个常见且合理的演进路径是:先从CLAUDE.md开始,当反复遇到相同问题时,将其提炼为Skill;当需要访问外部数据时,配置MCP;当主要任务被辅助任务干扰时,使用Subagent;当需要自动化时,编写Hook;当需要跨仓库复用时,打包为Plugin。
关键功能对比
对于几个容易混淆的概念,这里有更清晰的区分:
- Skill vs. Subagent:Skill是加载到你主上下文中的可重用知识或工作流。Subagent是拥有自己独立上下文的“隔离工作者”,只向主对话返回摘要,非常适合处理那些会淹没主对话的任务。
- CLAUDE.md vs. Skill:CLAUDE.md是每个会话都会自动加载的“全局规则”,做不了工作流。Skill是“按需”加载的知识,可以触发工作流(如
/deploy)。经验法则是:保持CLAUDE.md在200行以内,把参考内容放到Skills里。 - MCP vs. Skill:MCP是连接外部服务的“协议”,给Claude工具。Skill是教会Claude如何用好这些工具的“知识”。比如,MCP服务器连接你的数据库,Skill则告诉Claude你的数据模型和常用查询模式。
- Hook vs. Skill:Hook是必须“每次都发生”的确定性操作,由事件触发,如保存时格式化。Skill是Claude可以“自主决定”如何应用的指令,如部署清单。如果你想让规则被强制执行,请使用Hook。
参考资料
如果你想更深入地研究,最权威的资料当然是官方文档:
此外,Anthropic在发布Claude 3.7 Sonnet时的官方介绍页面,也详细阐述了Claude Code的袋里能力:






