VibeCoding · 文章
翻译+ 有更新Claude Code官方教程
这篇文章在发布后更新过正文内容。
什么是ClaudeCode?
如果你之前使用过 Claude.ai,你可能会想知道 Claude Code 有什么不同之处。与 Claude.ai 不同,Claude Code 可以直接访问你的文件、终端以及整个代码库。它不需要来回复制粘贴代码,而是直接进入并完成工作本身。
关键的区别在于Claude code是作为一个 AI智能体 运行的。
什么是智能体(Agent)?
agent是一种能够与其环境交互并执行操作以完成既定目标的软件。从本质上讲,这是通过让大语言模型实时在一个循环中运行来实现的。 AI智能体可以访问工具、外部服务、甚至是其他的AI智能体,以帮助实现其目标。
Claude code实际能做什么?
以下是它在实践中的表现:
阅读并理解你的代码库。可以要求ClaudeCode解释某个功能或者追踪代码中的某个错误。
跨项目编辑文件。Claude code可以重构一个函数,并更新所有引用该函数的文件。
运行终端命令。 它可以执行你的构建脚本、运行你的测试、安装软件包,并利用输出结果来决定下一步该做什么。
网络搜索。如果它需要文档或最新的API参考资料,它可以使用网络搜索为你查找这些信息。
有效的使用ClaudeCode
有效的使用ClaudeCode,请记住一下三个概念:
上下文窗口: 将其视为Claude的工作记忆。他可以容纳很多内容,但是不能一次容纳所有内容。这正是目前agent特性的体现之处,Claude会寻找策略性的方法,在不将整个代码库加载到上下文中的情况下,在你的代码库中定位答案。
许可请求:默认情况下,ClaudeCode会在运行命令或进行更改之间询问你。无论你偏好亲自动手还是放手让它处理,控制权始终掌握在你的手里。
它可能会犯错:就像任何工具一样,ClaudeCode并不完美 它可能会误解你的意图、引入错误,或者过度设计解决方案。保持参与其中有助于你及早的发现这些问题。
ClaudeCode的工作原理
Agent循环
ClaudeCode最好通过智能体循环来解释:
你向ClaudeCode输入一个提示。
Claude通过与模型交互来手机所需的上下文,模型会返回文本或ClaudeCode可以执行的工具调用。
Claude开始采取行动,比如,编辑文件或者运行命令。
验证结果,并判断这些结果时候实现了你的提示所设定的目标。
如果实现了,Claude就会完成并等待下一个提示。如果没有实现,它就会循环回去再次尝试,直到结果完整且可验证。
在整个循环过程中,你可以添加上下文、中断或者引导模型,以帮助它朝着你的目标前进。

上下文
Claude拥有一个上下文窗口,它决定了Claude能够存储和引用多少对话内容、文件内容、命令输出等。一旦上下文达到限制,ClaudeCode会压缩你的对话(自动判断可以删除或者总结哪些内容),以将上下文窗口恢复到可用的大小。
工具
工具是智能体工作方式的支柱。大多数的AI助手只是简单的接受文本书画录并返回文本输出。工具让ClaudeCode能够判断合适执行代码以推进近任务的完成。这可以是文件读取工具、网络搜索工具、或者任何其他数量的功能。ClaudeCode使用语义理解来判断何时调用工具以及如何使用输出结果。
权限
ClaudeCode有几种权限模式:
手动(默认): Claude在编辑文件或运行shell命令之前会请求明确的许可。
自动接受: 文件会在未经询问的情况下被编辑,但是命令的执行仍然需要批准。
计划模式: 使用只读工具在开始任何工作之前编制行动计划。

所有这些都可以在你的设置文件中进行配置。跳过权限检查时请务必谨慎, 让ClaudeCode自由运行命令意味着在错误发生之前可能更难以察觉。
安装ClaudeCode
终端安装
在 macOS、Linux 或 WSL 上,使用 curl 命令即可一次性完成安装。如果你更喜欢 Homebrew,也可以使用 brew install,但请注意这种方法不支持自动更新。
在 Windows 上,有几种选择。在 PowerShell 中,使用 Invoke-RestMethod 命令。在 CMD 中,使用 curl 命令。还有一个可用的 winget 命令,不过和 Homebrew 一样,它也不会自动更新。

安装完成后,你应该能够运行 claude 命令。如果不能,请重启终端。导航到你的项目目录并运行:
claude你将经历一些初始设置步骤,比如选择颜色主题,以及使用你的 Claude 账户(Pro、Max 或 Enterprise)登录,或使用 API 密钥。如果你的组织拥有 Claude Enterprise 账户,请务必选择该选项。

无论你在哪个目录中运行 claude,它都将能够访问该目录及其所有子文件夹。
Visual Studio Code
打开你的扩展面板并搜索"Claude Code"。查找带有蓝色验证标记的 Anthropic 扩展。点击安装。
安装完成后,你可能需要重启 VS Code。运行后,使用 Ctrl/Cmd + Shift + P 打开命令面板并搜索"Claude Code Open in New Tab"。如果侧边栏中可见 Claude 图标,你也可以直接点击它。

VS Code 扩展提供了与终端非常相似的体验。你也可以在设置中选择退出 UI,直接使用终端体验。
JetBrains
从 JetBrains Marketplace 安装 Claude Code 插件。安装完成后,重启你的 IDE。重新打开后,你会看到 Claude 图标。点击它会打开一个面板,提供与你的编辑器并行工作的终端体验。

桌面端
安装并登录 Claude Desktop 后,你会在顶部看到一个标记为"Code"的切换开关。其外观和体验与聊天部分类似,但它允许你在特定文件夹中工作、更改权限,甚至在云环境中工作。

网页端
在网页上,通过访问 claude.ai/code,或点击聊天应用侧边栏中的"Code"标签来使用 Claude Code。这与桌面应用的工作方式类似,但你只能使用 GitHub 仓库。

如何选择?
如果你想保持在最前沿,终端是你的最佳选择——新功能会首先在这里发布。如果你希望 Claude Code 与代码编辑器更紧密地结合,IDE 集成提供了几乎相同的体验。
桌面端非常适合让 Claude 在后台运行,而同时处理其他任务。
如果你想通过 GitHub 仓库远程处理项目,网页版 Claude Code 是一个不错的选择。
至于你想如何使用 Claude Code,完全由你决定。
你的第一个提示
自动接受 vs. 手动
你可以选择Claude是自动接受它建议的每一次文件更改,还是每次都征求你的明确许可。按 Shift + Tab 可在模式之间切换。
手动模式: 每当 Claude 想要编辑文件或运行命令时,都会请求许可。
自动接受模式: 文件编辑会自动获得批准,但命令仍需要您的许可。
这没有对错之分——完全取决于您感觉舒适的方式。

计划模式
在 Shift + Tab 菜单中有计划模式(Plan Mode)。计划模式会接收您的提示,并使用只读工具来分析您的代码库,研究您建议的实现方案。它会在过程中提出澄清性问题,然后返回一份可执行的详细计划。
计划模式非常适合规划复杂的更改或进行安全的代码审查。很多时候,您会要求 Claude 处理面向某个功能的多步骤实现,而这正是计划模式大放异彩的场景。

示例:添加深色模式切换开关
让我们通过一个示例来演示。假设您有一个应用需要一个深色模式切换开关。打开项目的根目录并运行 claude。按几次 Shift + Tab 进入计划模式,然后编写如下提示:
我的应用需要在整个应用中实现深色模式。您能在页头创建一个切换开关,让用户可以在浅色模式和深色模式之间切换吗?我需要您根据我现有的浅色主题找到一个对比度良好的颜色。

让 Claude 制定计划。在审查计划后,如果看起来不错,就接受它,并让 Claude 在每一步都征求您的批准。最后,您可以准确地看到 Claude 做了什么,以及它是如何得出结论的。
日常工作流程
探索与计划
处理前两个步骤最快的方式使用 计划模式 ,在这个模式下,Claude无法编辑文件,它只是读取文件以收集有关如何实施的信息。
要进入计划模式,按 Shift + Tab 直到您在文本输入框下方看到"Plan Mode"。然后写一个类似这样的提示:

我需要在我们的图片上传流水线中添加 WebP 转换功能。找出它应该在流水线的哪个环节发生,我们是否需要新的依赖项,以及应该如何实现。
Claude 会读取相关文件,运行一些网络搜索,并给您一个行动计划。审查它并决定是否符合您的标准。如果不符合,要求它修改特定部分。

这是纠偏的最佳时机,因为此时还没有编写任何代码。如果您只想获得代码库的总体概述而不打算之后进行更改,也可以在不进入计划模式的情况下运行探索子代理。
编码
一旦计划看起来不错,选择"approve"以接受它,让 Claude 逐项处理列表内容。您可以选择让 Claude 自动接受文件编辑,或者每次都询问您。
Claude 会尽力在认为计划"完成"之前进行故障排查,但有时您需要介入。这就是使用计划模式的好处——执行之后,您还拥有了解您是如何得到这些结果的上下文,这有助于指导 Claude 的下一步决策。
以下是一些让编码阶段更顺畅的小技巧:
定义成功标准: 为了让Claude对其结果有信心,它需要明确什么是“正确的”。在编写计划时明确这一点。
添加工具: 能帮助Claude实现目标的工具可以减少大量的来回沟通 例如,如果你正在构建一个WebUI,请安装Claude inChrome扩张程序,这样ClaudeCode就可以控制浏览器标签页并直接测试UI。

包含测试套件: 给Claude一个它可以持续验证的测试套件。Claude甚至可以为你编写测试在将其交给Claude之前,请确保测试是可靠的真实的来源,避免误报。
如果你发现Claude一直遇到相同的问题,请要求它将解决方案保存到其CLAUDE.md文件中。 这样可以在下次遇到该类问题的时候快速复用解决方案。而不必重新探索。
提交
一旦您自己测试了更改并对结果感到满意,就该推送您的代码了。在提交之前,运行一个子代理代码审查员来检查您的工作。子代理会以全新的视角审视代码库——它不会带有主代理在会话中可能产生的偏见。

然后让 Claude 以您的风格生成一条提交信息。重复这个过程。
上下文管理
什么是上下文窗口?
将上下文窗口想象成Claude的记忆空间容量 每次你输入提示、Claude读取文件、运行工具调用或者接收调用结果时,都会增加上下文窗口的占用。由于空间有限,优化你的使用方式就变得很重要。

上下文窗口填满时会发生什么?
当你的上下文窗口接近限制的时候,上下文窗口会进行压缩(compacted)。压缩会总结重要细节并移除不必要的工具调用结果以释放空间 请注意,此过程可能会丢失一些细节。


手动压缩
你可以使用/compact命令来手动运行上下文压缩。这会压缩到该时间点之前的所有内容。当你想要释放上下文空间同时保留之前工作内容的记忆时,这很方便。

如果您想完全从头开始,不保留之前会话的任何记忆,请运行/clear。这会移除所有内容。

要检查您的上下文状态,请运行/context命令。您将获得上下文大小的高层概览、占用最多空间的类别,以及显示细分情况的可视化图形。

压缩和清理何时使用
一般的经验法则是:
使用/compact: 当您正在处理特定功能并接近上下文限制但需要继续时。保持上下文与您当前的功能相关很重要。
使用
/clear,当您想要开始一个新功能时。您不希望之前的对话对新事物产生偏见。对于您希望Claude在各个会话之间记住的内容,请将它们放入您的CLAUDE.md文件中,这样它就不必从头重新发现这些内容。

节省上下文空间的技巧
具体明确的提示: 模糊的提示可能看起来更简短,但是从长远来看实际上会消耗更多的上下文 没有明确的指示,Claude被迫进行更多的代码块的探索并进行自己的推理,这比详细的提示占用的上下文空间要多得多。
管理你的MCP服务器: MCP服务器默认会将其所有可用的工具加载到上下文中,即使你没有使用它们。如果你配置了与当前项目无关的服务器,请考虑关闭它们。你也可以尝试使用Skills,它们的工作方式与MCP类似,但是不会预先将所有内容加载到上下文中。
使用子代理: 子代理与你的主代理并行运行,当拥有完全独立的上下文窗口。对于你只需要答案的任务,比如“身份验证的API位置在哪?”,这样可以用子代理,它会完成这个工作并将摘要返回给你的主代理,从而保持你的主代理的上下文干净。
代码审查
使用子代理进行审查
在推送PR之前,请让Claude子代理来审查你的更改。子代理在自己独立的上下文窗口中运行,以全新的视角审视代码,它不会带有主代理更改在本次会话中编写代码时的偏见。
创建代码审查子代理时,将其限制为只读工具。审查者应该标记问题,而不是编辑文件。将子代理配置纳入你的仓库版本控制中,以便于整个团队使用相同的审查者。
/commit-push-pr技能
/commit-push-pr技能可以进一步完成提交、推送和创建PR。无序手动逐个操作,只需要运行该技能,Claude就会为你处理好一切。
如果你在CLAUDE.md中配置了带有频道列表的Slack MCP 服务器,它将会自动将PR连接发布到你的团队频道中。
使用 --from-pr 进行会话关联
当Claude使用gh pr create创建PR时,该会话会自动与该PR关联 如果你之后需要回到该会话,比如处理审查意见或者修复构建失败的问题的时候,可以运行:
claude --from-pr <PR_NUMBER>这样就能从你上次停下来的地方继续。
自定义ClaudeCode
CLAUDE.md文件
它解决的问题
当您在没有 CLAUDE.md 文件的情况下打开 Claude Code 时,它每次都会从零开始。它必须重新探索您的代码库,弄清楚需要哪些依赖项,并理解哪些功能已经实现。有时它会做出假设,这使得引导 Claude 朝正确方向前进变得更加困难。
CLAUDE.md 解决了这个问题。它是一个您添加到项目根目录的 Markdown 文件,Claude Code 每次启动会话时都会自动读取它。可以把它想象成您代码库的入职脚本。CLAUDE.md 文件的内容会被附加到您的提示中。
一个示例
一下是一个典型的CLAUDE.md文件的例子:
# Project
This is a Next.js 15 app using the App Router, Tailwind, and Drizzle ORM.
# Commands
- Dev server: `pnpm dev`
- Run tests: `pnpm test`
- Lint: `pnpm lint`
# Code Style
- Use 2-space indentation
- Prefer named exports
- All API routes go in app/api/
- Use server actions instead of API routes where possible内容简单明了。现在,如果你要去ClaudeCode创建一个React组件,它已经知道要使用Twilwind进行样式设计,并遵循你的代码规范。

CLAUDE.md是为你的团队服务的
你可以(也应该)将你的CLAUDE.md文件提交到版本控制系统,以便于你的团队也能从中受益。实际上,根据服务对象不同,记忆文件存在一个层级结构:
项目级的CLAUDE.md: 位于你的项目根目录中。与团队共享。
用户级CLAUDE.md: 位于你的配置文件夹中。这个文件仅你个人使用,并适用于你所有项目。因此,请将你的个人偏好放在这里。
将修正内容保存到记忆中。 如果您发现自己反复纠正 Claude——比如告诉它始终使用服务器操作(server actions)而不是 API 路由——请明确要求 Claude 将该规则保存到记忆中。下次您打开项目时,它就会知道了。

引用项目文档。 如果您的项目中有希望 Claude 参考的文档,请使用 @ 符号加上文件路径:
## README.md
Please read if you need more info: @README.md从空白开始。 我们建议在没有 CLAUDE.md 文件的情况下开始一个项目,这样您就能看到自己需要不断纠正模型的地方。这能让您的 CLAUDE.md 保持精简,并只聚焦于必要的信息。当您准备好后,运行 /init 让 Claude 为您生成一个。
令人沮丧的 Claude Code 会话与高效的会话之间的区别,往往取决于上下文——而 CLAUDE.md 文件正是您提供这种上下文的方式。从您的技术栈、偏好和命令开始,然后随着使用逐步完善。
子代理
# 工作原理
在ClaudeCode中管理上下文非常重要 上下文窗口中大量的空间会被诸如探索代码库工具的调用或为研究运行网络搜索之类的操作占用。Claude在探索过程中会生成一个子代理来处理类似“帮我探索这个代码库”的任务。该子代理在其自己的上下文窗口中并行运行,完成所有探索工作,完成后会总结其发现,并将该摘要返回给Claude。
结果是,你得到你想要的答案的同时,还不会让这歌探索过程污染占用你的主代理上下文。
创建你自己的子代理
子代理是在带有YAML前置元数据的markdown文件中定义的。最简单的入门方式是让Claude为你生成一个。运行:
/agents然后选择“创建子代理”。你将逐步完成一系列的步骤,包括选择代理的作用范围、定义其用途、选择它可以访问的工具,甚至为它选择一种颜色。
Claude将为该子代理生成名称、描述和提示。这也会告诉Claude应根据你给出的提示在何时调用这个子代理。
如果你想进一步自定义子代理,以下是一些不错的建议:
持久化记忆: 持久记忆让你的子代理能在多次对话之间保留记忆。如果你在同一个项目中持续使用它,这会非常有用。
通过添加skills键并按名称列出技能,可以预加载技能到子代理中,需要注意的是,折合主代理对话中的技能不同,这里会将整个技能加载到上下文中。
技能
MCP
你的大量的上下文存在于代码库之外、生产力应用程序或者公共的仓库中。MCP弥补你这一差距。
你可以用它做什么?
首先,理解智能体 AI 中"工具"的概念很重要。工具赋予像 Claude Code 这样的智能体执行操作的能力,帮助它们更有效地完成任务。这与典型的 AI 不同,在典型 AI 中,您只能得到一个文本响应。
例如,如果您的团队使用 Linear 进行项目管理,您可以添加一个 Linear MCP 服务器来引入您特定问题的详细信息。如果您需要某个依赖项的最新文档,像 Context7 这样的文档 MCP 服务器可以为 Claude Code 提供这些信息。


添加MCP服务器
您可以使用 claude mcp add 命令添加 MCP 服务器。主要有两种类型:

HTTP 服务器用于远程服务。这些由服务提供商托管,并通过网络连接。
Stdio 服务器用于在您的机器上运行的本地进程。

您可以在 Claude Code 会话中使用 /mcp 管理您的服务器,查看已连接的内容、检查状态,并禁用您不需要的服务器。

服务器的作用域
MCP服务器可以通过三种方式进行作用域设置:
本地(Local)——仅在当前项目中可用,仅供您使用。
用户(User)——在您的所有项目中可用。
项目(Project)——使用一个您纳入版本控制的
.mcp.json文件,这样代码库上的任何人都会自动获得完全相同的服务器。
上下文成本
MCP 服务器会向您的上下文窗口添加工具定义——即使您没有主动使用它们。如果您配置了很多服务器,这会占用您可用的上下文。运行 /mcp 查看已连接的内容,并禁用任何您没有主动使用的内容。

如果某个工具有 CLI 等效项(如用于 GitHub 的 gh 或用于 AWS 的 aws),CLI 在上下文方面更高效,因为它不会添加持久的工具定义。
您也可能从使用技能(Skill)中受益。技能有一个加载到上下文中的名称和描述,Claude 只有在确定需要使用它时才会加载完整的技能内容。
如果您的 MCP 工具超过上下文窗口的 10%,Claude Code 会自动切换到工具搜索模式,该模式按需发现合适的工具——不过这可能不如直接加载那样可靠。
Hooks(钩子)
为什么要使用钩子?
您可以在 CLAUDE.md 中告诉 Claude 在每次文件编辑后运行 Prettier。大多数时候它会这样做。但有时它不会。钩子能确保这件事每次都发生,没有例外。
常见的使用场景包括:
文件编辑后自动格式化
记录所有已执行的命令以满足合规要求
阻止危险操作,例如修改生产环境文件
当 Claude 完成任务时向您发送通知
它们是如何工作的
钩子在您的 settings.json 中配置。您选择一个事件,可以选择性地设置一个匹配器来指定它适用于哪些工具,并提供要运行的命令。一些最常见的事件包括:
PreToolUse —— 在工具调用之前运行
PostToolUse —— 在工具调用完成后运行
UserPromptSubmit —— 在您提交提示后、Claude 处理之前运行
Stop —— 在 Claude 完成响应时运行
Notification —— 在 Claude 发送通知时运行
这些只是您可以挂接的事件中的一部分——Claude Code 支持更多事件。请参阅钩子参考文档获取完整列表。
您可以通过 Claude Code 内部的 /hooks 命令来配置它们,或者直接编辑 settings.json。

一个实际的例子
最常见的钩子:编辑后自动格式化。设置一个匹配器为 "Edit|MultiEdit|Write" 的 PostToolUse 钩子,这样每当 Claude 修改文件时它就会触发。该命令会检查文件扩展名并运行相应的格式化工具——TypeScript 用 Prettier,Go 用 gofmt,具体取决于您的项目使用什么工具。
使用 PreToolUse 进行阻止
PreToolUse 钩子可以在工具调用执行之前阻止它们。您的钩子会通过 stdin 以 JSON 格式接收工具名称和输入。退出代码决定了具体行为:
退出代码 0 —— 正常继续。
退出代码 2 —— 阻止该操作。stderr 消息会作为反馈传回给 Claude,让它知道为什么被阻止,并可以据此进行调整。
其他任何退出代码 —— 一个非阻塞性错误,会显示给您,但不会阻止任何操作。
这就是您强制执行硬性规则的方式。阻止对生产配置目录的写入。阻止包含 rm -rf 的 bash 命令。阻止对 main 分支的提交。任何您团队需要确保而非仅仅建议的事情,都可以这样处理。

与团队共享钩子
在 .claude/settings.json 中配置的钩子是项目级别的,可以纳入您的代码仓库版本控制。这意味着您的整个团队会自动获得相同的钩子。在命令中使用 CLAUDE_PROJECT_DIR 环境变量来引用存储在项目中的脚本,这样无论 Claude 当前的工作目录是什么,它们都能正常工作。
ClaudeCode官方教程转译就告一段落,后续有时间回持续更新其他的优质教程,希望可以帮助到更多人。有条件的也可以直接去Claude官网阅读。版权归Claude所有,转载请注明出处以及相关版权声明,谢谢!
版权声明
本文内容版权归作者或相关权利人所有。转载、引用或其他使用请遵循相应授权条款,并保留本文链接。