本文想和大家聊一款最近新出的 AI 编码工具 —— Claude Code

什么是 Claude Code

Claude Code 是由 Anthropic 开发的一款智能编程工具 (agentic coding tool),能够通过自然语言指令帮助开发者高效编写代码。它可以直接在终端中运行,理解代码库的内容,简化开发过程,无需复杂的配置或额外的服务器支持。

Claude Code 提供了多项帮助开发者提高开发效率功能:

  • 编辑文件并修复代码中的错误:能够在代码库中跨文件进行编辑,并自动修复 bug。
  • 回答关于代码架构和逻辑的问题:开发者可以向 Claude Code 提出关于代码架构和逻辑的疑问,Claude Code 将帮助快速解答,提升代码理解效率。
  • 执行测试、修复代码、进行质量检查:支持自动执行测试、修复错误、进行代码检查等,帮助确保代码质量。
  • Git 历史记录搜索、解决合并冲突、创建提交和 PR:Claude Code 可以搜索 Git 历史记录,解决合并冲突,并创建提交和 pull requests,从而简化版本控制操作。

Claude Code 可以代替开发者完成通常需要手动处理的繁琐任务,大幅缩短开发周期。

Claude Code 发布了 beta 研究预览版收集开发者反馈(2025.2.25),以优化 AI 协作体验。此阶段的主要目标是确定哪些开发工作流程最适合 AI 辅助,并不断完善工具的功能。

未来,Claude Code 将在以下方面进行改进:

  • 提高工具执行的稳定性和可靠性:确保每次执行都更加稳定。
  • 支持长时间运行的命令:增加对长时间执行任务的支持。
  • 优化终端渲染效果:提升终端界面的显示效果。
  • 增强 Claude 的自我认知能力:提高 Claude 对其功能和限制的自我认知能力。

如果使用中遇到问题,可以通过 /bug 命令或在 GitHub 仓库中提交问题和反馈。

开始使用 Claude Code 前的准备工作

目前,Claude Code 的访问有些限制。如果你还没有权限,可以访问 https://console.anthropic.com/code/welcome 加入候补名单。得到访问权限后,将通过邮件收到通知。

网络要求

首先你要有一个“稳定”的互联网连接,能用于 Claude 的身份验证和 AI 处理。

系统要求

  • 操作系统:macOS 10.15+,Ubuntu 20.04+/Debian 10+,或者通过 WSL 运行的 Windows。
  • 硬件要求:至少 4GB 内存。

所需软件

  • Node.js 18+
  • git 2.23+ (可选)
  • GitHub/GitLab CLI (用于 PR 工作流,可选)
  • ripgrep (rg) (用于增强文件搜索,可选)

如何安装 Claude Code?

Claude Code 安装步骤:

  1. 打开终端,运行:npm install -g @anthropic-ai/claude-code
  2. 进入项目目录:cd your-project-directory
  3. 启动 Claude Code:执行 claude
  4. 完成身份验证:按照 OAuth 流程进行,使用你的控制台帐户,确保 http://console.anthropic.com/ 上的账单信息有效。

Claude Code 的核心功能与工作流程

理解不熟悉的代码:使用 Claude Code 快速了解新的代码库。

  • 提问:> 什么是支付处理系统的功能?
  • 提问:> 查找用户权限检查的代码位置
  • 提问:> 解释缓存层的工作原理

自动化 Git 操作:Claude Code 可以简化 Git 操作流程。

  • 提问:> 提交我的更改
  • 提问:> 创建一个 Pull Request
  • 提问:> 哪个提交在 12 月增加了 markdown 测试?
  • 提问:> 在主分支上进行 rebase 并解决合并冲突

智能编辑代码:使用自然语言命令自动编辑和修复代码库中的问题。

  • 提问:> 向注册表单添加输入验证
  • 提问:> 重构 logger 使用新的 API
  • 提问:> 修复 worker 队列中的竞态条件

测试与调试代码:Claude Code 能够自动运行和修复测试。

  • 提问:> 运行认证模块的测试并修复失败
  • 提问:> 查找并修复安全漏洞
  • 提问:> 解释为什么这个测试失败

激发深入思考:对于复杂问题,可以要求 Claude 更深入地思考:

  • 提问:> 思考如何构建新的支付服务
  • 提问:> 深入思考我们身份验证流程中的边缘情况

Claude Code 支持的命令详解

在终端中通过命令行(CLI)命令和斜杠(Slash)命令可以轻松与 Claude Code 进行交互、执行任务和配置设置。

Claude Code CLI 命令

CLI 命令直接在终端中输入,用于启动会话、执行查询、修改配置等。以下是一些常见的命令及其用途:

  • claude启动交互式 REPL(Read-Eval-Print Loop) 启动 Claude Code 会话,进入交互式环境。
  • claude "query"使用初始提示启动 REPL 启动会话时,直接输入查询或任务提示,便于快速开始。
  • claude -p "query"运行一次性查询并退出 适用于需要一次性获取结果且不希望保持会话状态的情况。
  • cat file | claude -p "query"处理管道内容 将文件内容通过管道传递给 Claude Code,进行分析或处理,支持批量操作。
  • claude config查看和修改配置 用于调整 Claude Code 的配置设置,例如界面主题、通知偏好等。
  • claude update更新到最新版本 保证始终使用 Claude Code 的最新功能和修复,确保系统稳定运行。
  • claude mcp配置 Model Context Protocol(MCP)服务器 用于连接外部工具和数据源,扩展 Claude Code 的功能,支持多源集成。

Claude Code Slash 命令

Slash 命令在 Claude Code 会话中执行各种操作,如错误报告、历史记录清除、查看成本等。常见 Slash 命令包括:

  • /bug报告错误 将当前会话内容发送给 Anthropic 团队,帮助诊断和解决问题。
  • /clear清除会话历史记录 重置会话上下文,节省 token 消耗,保持会话简洁。
  • /compact压缩会话 降低 token 使用量,当上下文变得庞大时,减少数据存储需求。
  • /config查看/修改配置 允许用户在会话中动态调整设置,例如修改主题或功能偏好。
  • /cost显示 token 使用统计 帮助用户实时监控和管理 token 消耗,避免不必要的费用。
  • /doctor检查安装健康状况 诊断 Claude Code 安装问题,确保正常运行。
  • /help获取帮助 提供快速参考,帮助用户了解 Claude Code 的命令和功能。
  • /init初始化项目 使用 CLAUDE.md 文件初始化或更新项目,确保 Claude Code 理解项目背景。
  • /login切换 Anthropic 帐户 切换使用不同的 Anthropic 帐户登录,方便管理多个账户。
  • /logout注销账户 安全退出当前账户,保护用户隐私。
  • /pr_comments查看 pull request 评论 便于用户在 Claude Code 中查看和处理代码审查意见。
  • /review请求代码审查 提交代码审查请求,获得反馈。
  • /terminal-setup设置键绑定 安装 Shift+Enter 键绑定,改善在特定终端(如 iTerm2 或 VSCode)中的多行输入体验。

常用 CLI Flags

  • --print打印响应而不进入交互模式 适用于快速查看命令结果,而无需进入交互式会话。
  • --verbose启用详细日志记录 输出更多的调试信息,有助于排查问题。
  • --dangerously-skip-permissions跳过权限提示 在无互联网环境下(如 Docker 容器)跳过权限确认,适用于离线使用。

其他实用技巧

  • 使用 /compact 命令来节省 token 消耗,尤其在长时间会话中非常有效。
  • 利用 /init 命令快速创建或更新 CLAUDE.md 文件,让 Claude Code 更好地理解项目背景。
  • 通过管道将数据传递给 Claude Code,可以高效处理批量文件或实时数据流。

Claude Code 使用教程

本节提供 Claude Code 的实际使用示例,看完可快速上手并掌握一些常见的开发任务。

介于本文篇幅实在有点过于长了,请移步这里阅读:Claude Code 实用教程:使用方法详解

权限管理与安全性

在使用 Claude Code 时,权限管理和安全性是保障系统安全运行的关键。Claude Code 采用多重安全机制,以确保代码和数据在操作过程中的安全性。

分层权限系统

Claude Code 采用分层权限系统来确保操作的安全性,避免未经授权的访问和修改。具体权限要求如下:

  • 只读工具(如文件读取、lsgrep等): 无需批准,用户可以自由使用。
  • Bash 命令: 需要显式批准,并且每个命令和项目目录的执行都需要单独授权,且授权为永久性。
  • 文件修改(如编辑、写入文件等): 需要批准,并且该批准仅在当前会话有效。

Claude Code 可用的工具

Claude Code 提供了多种工具,以帮助理解和修改代码库。每个工具的权限要求如下:

  • AgentTool: 运行一个子代理以处理复杂任务,无需权限。
  • BashTool: 执行环境中的 shell 命令,需要批准。
  • GlobTool: 根据模式匹配查找文件,无需权限。
  • GrepTool: 在文件内容中搜索模式,无需权限。
  • LSTool: 列出文件和目录,无需权限。
  • FileReadTool: 读取文件内容,无需权限。
  • FileEditTool: 编辑文件内容,需要批准。
  • FileWriteTool: 创建或覆盖文件,需要批准。
  • NotebookReadTool: 读取并显示 Jupyter notebook 内容,无需权限。
  • NotebookEditTool: 修改 Jupyter notebook 单元格,需要批准。

防范 Prompt 注入攻击

Prompt 注入攻击是指攻击者通过插入恶意指令来操纵 AI 助手的行为。Claude Code 配备了多项防护措施以降低此类风险:

  • 权限系统: 敏感操作需要明确批准,防止未经授权的操作。
  • 上下文感知分析: 分析请求的完整内容,识别潜在的恶意指令。
  • 输入清理: 过滤和处理用户输入,避免命令注入。
  • 命令黑名单: 阻止危险命令(如 curlwget)以防止外部网络内容的获取。

安全最佳实践

为确保安全使用 Claude Code,建议遵循以下最佳实践:

  • 审查命令: 在批准执行命令前,仔细检查 Claude Code 提供的建议。
  • 避免管道传输不可信内容: 不要将来源不明的内容通过管道传递给 Claude Code。
  • 验证文件更改: 对关键文件的更改请求应进行严格验证。
  • 报告可疑行为: 若遇到任何可疑行为,使用 /bug 命令报告。

网络访问配置

Claude Code 需要访问以下几个 URL:

  • api.anthropic.com
  • statsig.anthropic.com
  • sentry.io

在使用容器化环境时,确保这些 URL 被允许进行访问。

使用开发容器

Claude Code 提供了一个开发容器配置,用于确保团队在一致且安全的环境中工作。该容器包含以下安全功能:

  • 精确的访问控制: 仅允许连接到白名单中的域。
  • 默认拒绝策略: 阻止所有其他外部网络访问。
  • 启动验证: 容器初始化时验证防火墙规则。
  • 隔离环境: 提供一个独立的安全开发环境,防止对主系统的影响。

数据使用与隐私

Anthropic 承诺在数据使用方面保持完全透明:

  • Anthropic 可能会利用用户反馈改进产品,但不会将 Claude Code 收集到的反馈用于训练生成模型。
  • 用户反馈会在系统中存储不超过 30 天。

6. 优化终端设置

优化终端设置可以获得最佳的 Claude Code 使用体验!

支持的 Shell

Claude Code 目前支持以下 shell 环境:

  • Bash
  • Zsh

注意:目前不支持 Fish shell。

主题和外观

Claude Code 不能直接控制终端的主题设置。终端主题由终端应用程序管理。可以在初次设置时或者通过使用 /config 命令来使 Claude Code 的主题与终端主题保持一致。

换行设置

在使用 Claude Code 时,可以选择以下几种方法输入换行符:

  • 快速转义:键入 \,然后按 Enter 键来创建新行。
  • 键盘快捷键:按 Option+Enter (或 Meta+Enter) 进行换行(需要正确配置)。
  • iTerm2 和 VSCode 用户技巧:通过运行 /terminal-setup 命令,您可以自动将 Shift+Enter 配置为一种更加直观的替代方案。

配置 Option+Enter

如果希望在终端中使用 Option+Enter 来换行,可以按照以下步骤进行配置:

对于 Mac Terminal.app

  1. 打开终端的“设置”→“配置文件”→“键盘”。
  2. 勾选“将 Option 键用作 Meta 键”选项。

对于 iTerm2 和 VSCode 终端

  1. 打开“设置”→“配置文件”→“键盘”。
  2. 在“常规”设置下,将“左/右 Option 键”设置为“Esc+”。

通知设置

配置通知功能,可以确保不错过 Claude 完成任务的提醒。

终端响铃通知

启用任务完成时的声音通知,可以使用以下命令:

claude config set --global preferredNotifChannel terminal_bell

对于 macOS 用户,别忘了在“系统设置”→“通知”→ 选择终端应用程序,并启用通知权限。

iTerm2 系统通知

对于 iTerm2 用户,可以设置任务完成时的通知提醒。按以下步骤配置:

  1. 打开 iTerm2 的“偏好设置”。
  2. 转到“配置文件”→“终端”。
  3. 启用“静音响铃”和“空闲时发送通知”选项。
  4. 设置您喜好的通知延迟。

请注意,iTerm2 的这些通知功能仅在 iTerm2 中有效,在 macOS 默认终端中不可用。

处理大型输入

当您需要处理大量代码或长指令时,可以采取以下措施:

  • 避免直接粘贴:非常长的粘贴内容可能会导致 Claude Code 无法顺利处理。
  • 使用文件处理工作流:将内容保存为文件,然后让 Claude Code 读取该文件。
  • 注意 VS Code 限制:VS Code 的终端对长粘贴内容较为敏感,可能会出现截断现象。

成本管理

在使用 Claude Code 时,理解其成本结构,采取一些优化措施可以显著降低不必要的费用。

成本估算

每次与 Claude Code 的交互都会消耗一定量的 tokens。通常情况下,开发者的每日使用成本大约在 5-10 美元之间,但在高频繁使用的情况下,每小时费用可能超过 100 美元。

成本跟踪

这个功能非常非常的好用!为了更好地掌握使用情况并避免超支,可以通过以下方式进行成本跟踪:

  • 使用 /cost 命令查看当前会话的消耗情况。
  • 退出时,系统会显示本次会话的成本摘要。
  • 通过 Anthropic Console 查看历史使用数据。
  • 设置消费限制,确保费用不超过预设预算。

减少 Token 使用量的策略

为了有效减少不必要的支出,可以采取以下几种方法来优化 token 的使用:

  • 压缩对话内容:当上下文信息较多时,使用 /compact 压缩对话内容,减少 token 消耗。
  • 编写精准的查询:避免使用模糊或过于宽泛的请求,这样有助于减少不必要的扫描和计算。
  • 分解复杂任务:将复杂的任务拆解成几个小任务,逐步交互以降低每次操作的 token 使用量。
  • 清除对话历史记录:使用 /clear 命令清除任务间的历史记录,确保每次操作都是从简洁的上下文开始,减少不必要的存储和计算开销。

影响成本的因素

成本的变化受多种因素影响,以下是几个关键因素:

  • 代码库的大小:处理大型代码库时,token 的消耗会相应增加。
  • 查询的复杂度:复杂的查询需要更多的计算和时间,也会导致更高的费用。
  • 文件操作的数量:如果涉及多个文件的读取或修改,相应的成本会增加。
  • 对话历史的长度:较长的对话历史需要更多资源进行处理和存储。
  • 压缩对话的频率:频繁压缩对话有助于降低 token 使用,但也可能影响交互的流畅度。

与第三方 API 集成

Claude Code 提供与多个第三方 API 的集成功能。目前,Claude Code 支持与 Amazon BedrockGoogle Vertex AI 的集成。

与 Amazon Bedrock 集成

若要将 Claude Code 与 Amazon Bedrock 集成,需要配置以下环境变量:

CLAUDE_CODE_USE_BEDROCK = 1
ANTHROPIC_MODEL = 'us.anthropic.claude-3-7-sonnet-20250219-v1:0'

如果没有启用 prompt 缓存,请同时设置以下环境变量:

DISABLE_PROMPT_CACHING = 1

另外,还需要提供标准的 AWS SDK 凭证。这些凭证通常位于 ~/.aws/credentials 文件中,或者通过设置环境变量(如 AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY)来传递。为了提高性能并降低成本,建议与 Amazon Bedrock 配合使用 prompt 缓存,并了解如何优化速率限制。

与 Google Vertex AI 集成

将 Claude Code 集成到 Google Vertex AI 时,需要配置以下环境变量:

CLAUDE_CODE_USE_VERTEX = 1
CLOUD_ML_REGION = us-east5
ANTHROPIC_VERTEX_PROJECT_ID = your-project-id

需要注意的是,Claude Code 在 Vertex AI 中目前仅支持 us-east5 区域。确保项目已在该区域内设置了配额。

另外,还需要配置标准的 GCP 凭证,可以通过 google-auth-library 来完成此操作。

使用 Model Context Protocol (MCP)

Model Context Protocol (MCP) 是一种开放的协议,允许大型语言模型(LLM)访问外部工具和数据源。通过配置 MCP 服务器,可以将 Claude Code 连接到专门的外部工具和服务。

添加 MCP Stdio 服务器的基本命令格式如下:

claude mcp add <name> <command> [args...]

例如,添加一个本地服务器:

claude mcp add my-server -e API_KEY=123 -- /path/to/server arg1 arg2

可以使用以下命令管理 MCP 服务器:

  • claude mcp list: 列出所有配置的服务器。
  • claude mcp get <服务器名称>: 查看特定服务器的详细信息。
  • claude mcp remove <服务器名称>: 移除服务器。

如果希望 Claude 能够对 PostgreSQL 数据库进行只读访问,可以连接到 Postgres MCP 服务器,执行查询和模式检查。

使用第三方 MCP 服务器时,务必评估其安全性。与互联网通信的 MCP 服务器可能存在 prompt 注入的风险。

其他注意事项

  • 在进行与第三方 API 的集成时,请始终查阅相关服务的官方文档,确保了解所有配置细节和限制。
  • 确保的所有凭证和环境变量都已正确配置,避免因配置错误导致集成失败。
  • 集成第三方 API 可能会产生额外费用,请定期监控使用情况,并采取优化措施以控制成本。

FAQ

什么是 Claude Code? Claude Code 是由 Anthropic 推出的 AI 编码助手,通过自然语言帮助开发者提升编程效率,自动化常见编码任务。

Claude Code 是免费的吗? Claude Code 当前处于 Beta 版本,可能需要加入候补名单才能使用。

什么是 Agentic? Agentic 指的是 AI 系统能够像一个积极的合作者一样,自主地执行和完成任务。这种 AI 不仅仅是被动地接收指令,而是能够主动搜索、读取代码,编辑文件,运行测试,甚至提交代码到 GitHub。你可以把 Agentic 理解为 AI 拥有了“行动力”,它不再需要人类一步一步地指导,而是可以根据目标自主规划并执行。

Claude Code 的最低系统要求是什么? 支持 macOS、Ubuntu 或 Windows WSL,需要 Node.js 18+。

如何安装 Claude Code? 通过运行命令 npm install -g @anthropic-ai/claude-code 来安装。

Claude Code 如何确保代码安全? Claude Code 提供 直接 API 连接权限控制,防止恶意代码注入,确保开发过程的安全。

如何降低 Claude Code 的使用成本? 使用 /compact 命令压缩对话,提出 具体查询,并将 **大型任务拆解为小任务**。

如何让 Claude Code 更好地理解我的项目? 使用 /init 命令创建 CLAUDE.md 文件,记录项目的关键信息。

Claude Code 可以处理图片吗? 是的,Claude Code 支持 图像分析,可以处理屏幕截图和设计稿等图像内容。

结语

Claude Code 是一款功能强大的编码助手,它不仅能提升开发效率,还能自动化重复性工作,改善代码质量。无论是帮助您理解新的代码库,还是修复错误、重构代码、处理测试、创建 Pull Request 和生成文档,Claude Code 都能为开发流程带来极大的简化。

AI


也可以看看