Claude Code 概述
了解 Claude Code,一个由 Anthropic 开发的智能编程工具。目前作为研究预览版处于测试阶段。
安装 NodeJS 18+,然后运行:
请勿使用 sudo npm install -g
,因为这可能导致权限问题和安全风险。如果遇到权限错误,请参阅配置 Claude
Code获取推荐的解决方案。
Claude Code 是一个智能编程工具,它存在于您的终端中,理解您的代码库,并通过自然语言命令帮助您更快地编码。通过直接集成到您的开发环境中,Claude Code 简化了您的工作流程,无需额外的服务器或复杂的设置。
Claude Code 的主要功能包括:
- 编辑文件并修复代码库中的错误
- 回答关于代码架构和逻辑的问题
- 执行和修复测试、代码检查和其他命令
- 搜索 git 历史记录,解决合并冲突,创建提交和 PR
研究预览版
Code 目前处于测试阶段,作为研究预览版提供。我们正在收集开发者关于 AI 协作偏好、哪些工作流程最能从 AI 辅助中受益,以及如何改进智能体体验的反馈。
这个早期版本将根据用户反馈不断发展。我们计划在未来几周内增强工具执行可靠性、对长时间运行命令的支持、终端渲染,以及 Claude 对自身能力的自我认知。
通过 /bug
命令或通过我们的 GitHub 仓库直接报告错误。
开始之前
检查系统要求
- 操作系统:macOS 10.15+、Ubuntu 20.04+/Debian 10+ 或通过 WSL 使用的 Windows
- 硬件:最低 4GB RAM
- 软件:
- 网络:需要互联网连接进行身份验证和 AI 处理
- 地区:仅在支持的国家可用
WSL 安装故障排除
目前,Claude Code 不能直接在 Windows 上运行,而是需要 WSL。如果您在 WSL 中遇到问题:
-
操作系统/平台检测问题:如果您在安装过程中收到错误,WSL 可能正在使用 Windows 的
npm
。尝试:- 在安装前运行
npm config set os linux
- 使用
npm install -g @anthropic-ai/claude-code --force --no-os-check
安装(不要使用sudo
)
- 在安装前运行
-
找不到 Node 错误:如果在运行
claude
时看到exec: node: not found
,您的 WSL 环境可能正在使用 Windows 安装的 Node.js。您可以通过which npm
和which node
确认这一点,它们应该指向以/usr/
开头的 Linux 路径,而不是/mnt/c/
。要解决此问题,请尝试通过 Linux 发行版的包管理器或通过nvm
安装 Node。
安装和认证
安装 Claude Code
在终端中运行:npm install -g @anthropic-ai/claude-code
请勿使用 sudo npm install -g
,因为这可能导致权限问题和安全风险。如果遇到权限错误,请参阅配置 Claude
Code获取推荐的解决方案。
导航到您的项目
cd your-project-directory
启动 Claude Code
claude
启动完成身份验证
Claude Code 提供两种身份验证选项:
-
Anthropic Console:默认选项。通过 Anthropic Console 连接并完成 OAuth 流程。需要在 console.anthropic.com 上有活跃的计费。
-
Max 计划:订阅 Claude 的 Max 计划,获得包含 Claude Code 和网页界面的单一订阅。以相同的价格获得更多价值,同时在一个地方管理您的账户。使用您的 Claude.ai 账户登录。在启动期间,选择与您的订阅类型匹配的选项。
核心功能和工作流程
Claude Code 直接在您的终端中运行,理解您的项目上下文并采取实际行动。无需手动将文件添加到上下文中 - Claude 会根据需要探索您的代码库。
安全和隐私设计
您代码的安全至关重要。Claude Code 的架构确保:
- 直接 API 连接:您的查询直接发送到 Anthropic 的 API,无需中间服务器
- 在您工作的地方工作:直接在您的终端中运行
- 理解上下文:保持对整个项目结构的感知
- 采取行动:执行实际操作,如编辑文件和创建提交
从问题到解决方案,只需几秒钟
初始化您的项目
对于首次使用的用户,我们建议:
- 使用
claude
启动 Claude Code - 尝试一个简单的命令,如
summarize this project
- 使用
/init
生成 CLAUDE.md 项目指南 - 要求 Claude 将生成的 CLAUDE.md 文件提交到您的仓库
使用 Claude Code 完成常见任务
Claude Code 直接在您的终端中运行,理解您的项目上下文并采取实际行动。无需手动将文件添加到上下文中 - Claude 会根据需要探索您的代码库。
理解陌生代码
自动化 Git 操作
智能编辑代码
测试和调试您的代码
鼓励更深入的思考
对于复杂问题,明确要求 Claude 更深入地思考:
Claude Code 会显示 Claude 何时使用扩展思考(在 Claude Sonnet 3.7、Claude Opus 4 上可用)。您可以主动提示 Claude “思考”或”深入思考”以处理更需要规划的任务。我们建议您首先告诉 Claude 您的任务,让它从您的项目中收集上下文。然后,要求它”思考”以创建计划。
Claude 会根据您使用的词语进行更多思考。例如,“深入思考”会比仅仅说”思考”触发更多的扩展思考。
更多提示,请参阅扩展思考提示。
自动化 CI 和基础设施工作流程
Claude Code 提供了非交互模式,用于无头执行。这在非交互上下文(如脚本、管道和 Github Actions)中运行 Claude Code 时特别有用。
使用 --print
(-p
) 在非交互模式下运行 Claude。在此模式下,您可以设置 ANTHROPIC_API_KEY
环境变量来提供自定义 API 密钥。
当您预先配置 Claude 允许使用的命令集时,非交互模式特别有用:
使用命令控制 Claude Code
CLI 命令
命令 | 描述 | 示例 |
---|---|---|
claude | 启动交互式 REPL | claude |
claude "query" | 使用初始提示启动 REPL | claude "解释这个项目" |
claude -p "query" | 运行一次性查询,然后退出 | claude -p "解释这个函数" |
cat file | claude -p "query" | 处理管道内容 | cat logs.txt | claude -p "解释" |
claude config | 配置设置 | claude config set --global theme dark |
claude update | 更新到最新版本 | claude update |
claude mcp | 配置模型上下文协议服务器 | 参见教程中的 MCP 部分 |
CLI 标志:
--print
(-p
):在非交互模式下打印响应--json
:在--print
模式下返回 JSON 输出,对脚本编写和自动化有用--verbose
:启用详细日志记录,显示完整的逐轮输出(在打印和交互模式下对调试有帮助)--dangerously-skip-permissions
:跳过权限提示
斜杠命令
在会话中控制 Claude 的行为:
命令 | 用途 |
---|---|
/bug | 报告错误(将对话发送给 Anthropic) |
/clear | 清除对话历史 |
/compact [instructions] | 压缩对话,可选择添加焦点指令 |
/config | 查看/修改配置 |
/cost | 显示令牌使用统计 |
/doctor | 检查 Claude Code 安装的健康状况 |
/help | 获取使用帮助 |
/init | 使用 CLAUDE.md 指南初始化项目 |
/login | 切换 Anthropic 账户 |
/logout | 从 Anthropic 账户登出 |
/memory | 编辑 CLAUDE.md 记忆文件 |
/pr_comments | 查看拉取请求评论 |
/review | 请求代码审查 |
/terminal-setup | 安装 Shift+Enter 键绑定用于换行(仅限 iTerm2 和 VSCode) |
/vim | 进入 vim 模式,用于交替使用插入和命令模式 |
管理 Claude 的记忆
Claude Code 可以在会话之间记住您的偏好,如样式指南和工作流程中的常用命令。
确定记忆类型
Claude Code 提供三个记忆位置,每个位置服务于不同的目的:
记忆类型 | 位置 | 目的 | 使用案例示例 |
---|---|---|---|
项目记忆 | ./CLAUDE.md | 团队共享的约定和知识 | 项目架构、编码标准、常见工作流程 |
项目记忆(本地) | ./CLAUDE.local.md | 个人项目特定偏好 | 您的沙盒 URL、首选测试数据 |
用户记忆 | ~/.claude/CLAUDE.md | 全局个人偏好 | 代码样式偏好、个人工具快捷方式 |
所有记忆文件在启动时都会自动加载到 Claude Code 的上下文中。
Claude 如何查找记忆
Claude Code 递归读取记忆:从当前工作目录开始,Claude Code 递归向上到 / 并读取它找到的任何 CLAUDE.md 或 CLAUDE.local.md 文件。这在处理大型仓库时特别方便,当您在 foo/bar/ 中运行 Claude Code,并且在 foo/CLAUDE.md 和 foo/bar/CLAUDE.md 中都有记忆时。
使用 #
快捷方式快速添加记忆
添加记忆的最快方法是以 #
字符开始您的输入:
系统将提示您选择要将此记忆存储在哪个记忆文件中。
使用 /memory
直接编辑记忆
在会话期间使用 /memory
斜杠命令打开系统编辑器中的任何记忆文件,以进行更广泛的添加或组织。
记忆最佳实践
- 具体明确:“使用 2 空格缩进”比”正确格式化代码”更好。
- 使用结构组织:将每个单独的记忆格式化为项目符号,并在描述性的 markdown 标题下对相关记忆进行分组。
- 定期审查:随着项目的发展更新记忆,确保 Claude 始终使用最新的信息和上下文。
管理权限和安全
Claude Code 使用分层权限系统来平衡功能和安全性:
工具类型 | 示例 | 需要批准 | ”是的,不要再问”行为 |
---|---|---|---|
只读 | 文件读取、LS、Grep | 否 | 不适用 |
Bash 命令 | Shell 执行 | 是 | 对每个项目目录和命令永久有效 |
文件修改 | 编辑/写入文件 | 是 | 直到会话结束 |
Claude 可用的工具
Claude Code 可以访问一组强大的工具,帮助它理解和修改您的代码库:
工具 | 描述 | 需要权限 |
---|---|---|
Agent | 运行子代理处理复杂的多步骤任务 | 否 |
Bash | 在您的环境中执行 shell 命令 | 是 |
Glob | 基于模式匹配查找文件 | 否 |
Grep | 在文件内容中搜索模式 | 否 |
LS | 列出文件和目录 | 否 |
Read | 读取文件内容 | 否 |
Edit | 对特定文件进行有针对性的编辑 | 是 |
Write | 创建或覆盖文件 | 是 |
NotebookEdit | 修改 Jupyter 笔记本单元格 | 是 |
NotebookRead | 读取并显示 Jupyter 笔记本内容 | 否 |
WebFetch | 从指定 URL 获取内容 | 是 |
权限规则可以使用 /allowed-tools
或在权限设置中配置。
防止提示注入
提示注入是攻击者试图通过插入恶意文本来覆盖或操纵 AI 助手指令的技术。Claude Code 包含几项防范这些攻击的保障措施:
- 权限系统:敏感操作需要明确批准
- 上下文感知分析:通过分析完整请求检测潜在有害指令
- 输入净化:通过处理用户输入防止命令注入
- 命令黑名单:阻止从网络获取任意内容的风险命令,如
curl
和wget
处理不受信任内容的最佳实践:
- 在批准前审查建议的命令
- 避免将不受信任的内容直接通过管道传送给 Claude
- 验证对关键文件的建议更改
- 使用
/bug
报告可疑行为
虽然这些保护措施显著降低了风险,但没有系统能完全免疫所有攻击。在使用任何 AI 工具时,始终保持良好的安全实践。
配置网络访问
Claude Code 需要访问:
- api.anthropic.com
- statsig.anthropic.com
- sentry.io
在容器化环境中使用 Claude Code 时,请将这些 URL 列入白名单。
环境变量
Claude Code 支持以下环境变量来控制其行为:
变量 | 用途 |
---|---|
DISABLE_AUTOUPDATER | 设置为 1 禁用自动更新程序 |
DISABLE_BUG_COMMAND | 设置为 1 禁用 /bug 命令 |
DISABLE_COST_WARNINGS | 设置为 1 禁用成本警告消息 |
DISABLE_ERROR_REPORTING | 设置为 1 选择退出 Sentry 错误报告 |
DISABLE_TELEMETRY | 设置为 1 选择退出 Statsig 遥测(请注意,Statsig 事件不包括用户数据,如代码、文件路径或 bash 命令) |
HTTP_PROXY | 指定网络连接的 HTTP 代理服务器 |
HTTPS_PROXY | 指定网络连接的 HTTPS 代理服务器 |
MCP_TIMEOUT | MCP 服务器启动超时(毫秒) |
MCP_TOOL_TIMEOUT | MCP 工具执行超时(毫秒) |
配置 Claude Code
通过在终端中运行 claude config
或在交互式 REPL 中使用 /config
命令来配置 Claude Code。
配置选项
Claude Code 支持全局和项目级配置。
要管理您的配置,请使用以下命令:
- 列出设置:
claude config list
- 查看设置:
claude config get <key>
- 更改设置:
claude config set <key> <value>
- 向设置添加(对于列表):
claude config add <key> <value>
- 从设置中移除(对于列表):
claude config remove <key> <value>
默认情况下,config
更改您的项目配置。要管理全局配置,请使用 --global
(或 -g
)标志。
全局配置
要设置全局配置,请使用 claude config set -g <key> <value>
:
键 | 值 | 描述 |
---|---|---|
autoUpdaterStatus | disabled 或 enabled | 启用或禁用自动更新程序(默认:enabled ) |
env | JSON(例如 '{"FOO": "bar"}' ) | 将应用于每个会话的环境变量 |
preferredNotifChannel | iterm2 、iterm2_with_bell 、terminal_bell 或 notifications_disabled | 您希望接收通知的位置(默认:iterm2 ) |
theme | dark 、light 、light-daltonized 或 dark-daltonized | 颜色主题 |
verbose | true 或 false | 是否显示完整的 bash 和命令输出(默认:false ) |
自动更新程序权限选项
当 Claude Code 检测到它没有足够的权限写入全局 npm 前缀目录(自动更新所需)时,您会看到一个警告,指向本文档页面。有关自动更新程序问题的详细解决方案,请参阅故障排除指南。
推荐:创建新的用户可写 npm 前缀
为什么我们推荐这个选项:
- 避免修改系统目录权限
- 为全局 npm 包创建一个干净、专用的位置
- 遵循安全最佳实践
由于 Claude Code 正在积极开发中,我们建议使用上述推荐选项设置自动更新。
禁用自动更新程序
如果您更喜欢禁用自动更新程序而不是修复权限,可以使用:
项目配置
使用 claude config set <key> <value>
(不带 -g
标志)管理项目配置:
键 | 值 | 描述 |
---|---|---|
allowedTools | 工具数组 | 哪些工具可以在没有手动批准的情况下运行 |
ignorePatterns | glob 字符串数组 | 使用工具时忽略哪些文件/目录 |
例如:
有关 allowedTools
规则格式,请参阅权限。
优化您的终端设置
当您的终端正确配置时,Claude Code 效果最佳。请遵循以下指南优化您的体验。
支持的 shell:
- Bash
- Zsh
- Fish
主题和外观
Claude 无法控制您终端的主题。这由您的终端应用程序处理。您可以在入门过程中或随时通过 /config
命令将 Claude Code 的主题与您的终端匹配
换行符
您有几种选项可以在 Claude Code 中输入换行符:
- 快速转义:输入
\
后跟 Enter 创建换行 - 键盘快捷键:在正确配置的情况下按 Option+Enter(Meta+Enter)
要在终端中设置 Option+Enter:
对于 Mac Terminal.app:
- 打开设置 → 配置文件 → 键盘
- 勾选”将 Option 键用作 Meta 键”
对于 iTerm2 和 VSCode 终端:
- 打开设置 → 配置文件 → 按键
- 在常规下,将左/右 Option 键设置为”Esc+”
iTerm2 和 VSCode 用户提示:在 Claude Code 中运行 /terminal-setup
自动配置 Shift+Enter 作为更直观的替代方案。
通知设置
通过正确的通知配置,永远不会错过 Claude 完成任务的时刻:
终端铃声通知
启用任务完成时的声音提醒:
对于 macOS 用户:不要忘记在系统设置 → 通知 → [您的终端应用程序] 中启用通知权限。
iTerm 2 系统通知
对于 iTerm 2 任务完成提醒:
- 打开 iTerm 2 首选项
- 导航到配置文件 → 终端
- 启用”静音铃声”和”空闲时发送通知”
- 设置您首选的通知延迟
请注意,这些通知特定于 iTerm 2,在默认的 macOS 终端中不可用。
处理大量输入
处理大量代码或长指令时:
- 避免直接粘贴:Claude Code 可能难以处理非常长的粘贴内容
- 使用基于文件的工作流程:将内容写入文件并要求 Claude 读取
- 注意 VS Code 限制:VS Code 终端特别容易截断长粘贴
Vim 模式
Claude Code 支持 Vim 键绑定的子集,可以通过 /vim
启用或通过 /config
配置。
支持的子集包括:
- 模式切换:
Esc
(到 NORMAL),i
/I
,a
/A
,o
/O
(到 INSERT) - 导航:
h
/j
/k
/l
,w
/e
/b
,0
/$
/^
,gg
/G
- 编辑:
x
,dw
/de
/db
/dd
/D
,cw
/ce
/cb
/cc
/C
,.
(重复)
有效管理成本
Claude Code 为每次交互消耗令牌。平均成本为每位开发者每天 $6,90% 的用户每日成本保持在 $12 以下。
跟踪您的成本
- 使用
/cost
查看当前会话使用情况 - Anthropic Console 用户:
- Max 计划用户:使用包含在您的 Max 计划订阅中
减少令牌使用
-
压缩对话:
-
Claude 在上下文超过 95% 容量时默认使用自动压缩
-
切换自动压缩:运行
/config
并导航到”启用自动压缩” -
当上下文变大时手动使用
/compact
-
添加自定义指令:
/compact 专注于代码示例和 API 使用
-
通过添加到 CLAUDE.md 自定义压缩:
-
-
编写具体查询: 避免触发不必要扫描的模糊请求
-
分解复杂任务: 将大型任务分解为重点交互
-
在任务之间清除历史记录: 使用
/clear
重置上下文
成本可能因以下因素而显著变化:
- 被分析的代码库大小
- 查询复杂性
- 被搜索或修改的文件数量
- 对话历史长度
- 压缩对话的频率
对于团队部署,我们建议从小型试点组开始,在更广泛推广前建立使用模式。
模型配置
默认情况下,Claude Code 使用 claude-opus-4-20250514
。您可以使用以下环境变量覆盖此设置:
您也可以使用全局配置设置这些变量:
查看我们的模型名称参考了解所有不同提供商可用的模型。
与第三方 API 一起使用
无论您使用哪个 API 提供商,Claude Code 都需要访问 Claude Sonnet 3.7 和 Claude Haiku 3.5 模型。
连接到 Amazon Bedrock
如果您想通过代理访问 Claude Code,可以使用 ANTHROPIC_BEDROCK_BASE_URL
环境变量:
如果您没有启用提示缓存,还需设置:
需要标准 AWS SDK 凭证(例如,~/.aws/credentials
或相关环境变量,如 AWS_ACCESS_KEY_ID
、AWS_SECRET_ACCESS_KEY
)。要设置 AWS 凭证,请运行:
联系 Amazon Bedrock 获取提示缓存,以降低成本并提高速率限制。
用户需要在其 AWS 账户中同时访问 Claude Sonnet 3.7 和 Claude Haiku 3.5 模型。如果您有模型访问角色,如果这些模型尚未可用,您可能需要请求访问它们。需要在每个区域访问 Bedrock,因为推理配置文件需要跨区域能力。
连接到 Google Vertex AI
如果您想通过代理访问 Claude Code,可以使用 ANTHROPIC_VERTEX_BASE_URL
环境变量:
如果您没有启用提示缓存,还需设置:
Vertex AI 上的 Claude Code 目前仅支持 us-east5
区域。确保您的项目在这个特定区域有配额分配。
用户需要在其 Vertex AI 项目中同时访问 Claude Sonnet 3.7 和 Claude Haiku 3.5 模型。
需要通过 google-auth-library 配置的标准 GCP 凭证。要设置 GCP 凭证,请运行:
为获得最佳体验,请联系 Google 获取更高的速率限制。
通过代理连接
当使用 LLM 代理(如 LiteLLM)与 Claude Code 一起使用时,您可以使用以下环境变量和配置控制身份验证行为。请注意,您可以将这些与 Bedrock 和 Vertex 特定设置混合使用。
环境变量
ANTHROPIC_AUTH_TOKEN
:Authorization
和Proxy-Authorization
头的自定义值(您在此处设置的值将以Bearer
为前缀)ANTHROPIC_CUSTOM_HEADERS
:您想添加到请求的自定义头(采用Name: Value
格式)HTTP_PROXY
:设置 HTTP 代理 URLHTTPS_PROXY
:设置 HTTPS 代理 URL
如果您更喜欢通过文件而不是环境变量进行配置,可以将这些变量添加到全局 Claude 配置中的 env
对象(在 ~/.claude.json 中)。
全局配置选项
apiKeyHelper
:获取 API 密钥的自定义 shell 脚本(在启动时调用一次,并在每个会话期间缓存)
开发容器参考实现
Claude Code 为需要一致、安全环境的团队提供开发容器配置。这个预配置的 devcontainer 设置与 VS Code 的 Remote - Containers 扩展和类似工具无缝协作。
容器的增强安全措施(隔离和防火墙规则)允许您运行 claude --dangerously-skip-permissions
以绕过权限提示,实现无人值守操作。我们提供了一个参考实现,您可以根据需要进行自定义。
虽然 devcontainer 提供了实质性的保护,但没有系统能完全免疫所有攻击。始终保持良好的安全实践并监控 Claude 的活动。
主要特点
- 生产就绪的 Node.js:基于 Node.js 20,带有基本开发依赖
- 安全设计:自定义防火墙仅限制网络访问必要服务
- 开发者友好工具:包括 git、带生产力增强的 ZSH、fzf 等
- 无缝 VS Code 集成:预配置扩展和优化设置
- 会话持久性:在容器重启之间保留命令历史和配置
- 随处可用:兼容 macOS、Windows 和 Linux 开发环境
4 步入门
- 安装 VS Code 和 Remote - Containers 扩展
- 克隆 Claude Code 参考实现仓库
- 在 VS Code 中打开仓库
- 当提示时,点击”在容器中重新打开”(或使用命令面板:Cmd+Shift+P → “Remote-Containers: Reopen in Container”)
配置细分
devcontainer 设置由三个主要组件组成:
- devcontainer.json:控制容器设置、扩展和卷挂载
- Dockerfile:定义容器镜像和安装的工具
- init-firewall.sh:建立网络安全规则
安全特性
容器通过其防火墙配置实现多层安全方法:
- 精确访问控制:仅限制出站连接到白名单域(npm 注册表、GitHub、Anthropic API 等)
- 默认拒绝策略:阻止所有其他外部网络访问
- 启动验证:在容器初始化时验证防火墙规则
- 隔离:创建与主系统分离的安全开发环境
自定义选项
devcontainer 配置设计为适应您的需求:
- 根据您的工作流程添加或删除 VS Code 扩展
- 为不同硬件环境修改资源分配
- 调整网络访问权限
- 自定义 shell 配置和开发工具
后续步骤
许可和数据使用
Claude Code 作为 Beta 研究预览版根据 Anthropic 的商业服务条款提供。
我们如何使用您的数据
我们旨在完全透明地说明我们如何使用您的数据。我们可能会使用反馈来改进我们的产品和服务,但我们不会使用您从 Claude Code 提供的反馈来训练生成模型。鉴于其潜在的敏感性,我们仅存储用户反馈记录 30 天。
反馈记录
如果您选择向我们发送关于 Claude Code 的反馈,例如您使用情况的记录,Anthropic 可能会使用该反馈来调试相关问题并改进 Claude Code 的功能(例如,减少类似错误在未来发生的风险)。我们不会使用此反馈来训练生成模型。
隐私保障
我们已实施多项保障措施来保护您的数据,包括敏感信息的有限保留期、对用户会话数据的访问限制,以及明确禁止使用反馈进行模型训练的政策。
许可
© Anthropic PBC. 保留所有权利。使用受 Anthropic 的商业服务条款约束。