上周一个朋友发给我一张终端截图,里面是 Claude Code 正在自动修改他项目里的测试文件,改完还自己跑了一遍测试,把失败用例标得明明白白。他转头问我:这个到底怎么装的?为什么我装完就一堆报错?其实这问题我已经在各种群里见过太多次了。Claude 早就不是网页里那个聊天的对话框,Claude Code 这种跑在终端里的 AI 编程助手,才是很多开发者真正离不开的东西。这篇我就从零开始,把 Claude、Claude Desktop、Claude Code 的区别理清楚,再把 Windows 和 macOS 上从安装、登录到日常使用、报错排查这套流程完整捋一遍,最后聊 VSCode 集成、会话历史保存,以及 Skill、第三方模型接入这些进阶玩法。适合刚接触 Claude 的新手,也适合装到一半卡住、报错看着一头雾水的同学。
先说清楚:这篇里的操作都以 Anthropic 官方渠道和公开文档为准,第三方脚本、第三方模型接入需要自己甄别风险,出了问题别急着甩锅给工具。
1. 先分清这三个“Claude”,别装错东西
1.1 网页版、桌面版和 Code,入口完全不同
很多人第一次接触 Clude 是在浏览器里打开 claude.ai,输入问题,等它输出。这个入口解决的问题是“对话式问答”,适合写文案、总结文档、日常脑暴,它是 Claude 最基础的产品形态。
Claude Desktop 是桌面客户端,本质上是把网页版聊天体验搬到了本地 App 里,支持 Win 和 macOS,装完之后登录同一个账号就能用。它比网页版多了一些本地文件读取能力,但核心还是对话,不能帮你直接改工程代码。
Claude Code 则是 Anthropic 官方出品的终端 AI 编程工具,以命令行方式运行。它不是一个“聊天框”,而是一个能直接读取项目目录、调用 Shell 命令、编辑文件、跑测试的 Agent。你给它一句“把这个接口报错查一下”,它会自己翻代码、定位原因、改完再跑一遍验证。这是它和网页版、桌面版最大的区别。
很多新手容易踩的坑:搜索“Claude Code 桌面版”,下载到一堆第三方 GUI 壳子,装完发现要么要额外付费,要么只是把命令行包了个窗口。官方并没有单独出过一个叫“Claude Code 桌面版”的应用,真正稳的方式就是直接用命令行版本,再用 VSCode 集成。
1.2 闭源、强绑定 Claude 系列模型,这意味着什么
Claude Code 是官方闭源产品,底层强绑定 Claude 系列模型。好处是工具链的调优、上下文管理、工具调用格式都是官方自己定的,开箱即用,不会出现“换了模型就歇菜”的兼容性问题。坏处是如果你指望把它完全改造成跑任意开源模型,基本不现实。
网上有些人说“Claude Code 接入了 DeepSeek”,这个我后面会专门讲,本质上不是改造成开源客户端,而是通过环境变量把 API 请求转发给兼容 Anthropic 接口的模型服务。能跑,但 Agent 的稳定性和工具调用表现会因模型而异,这部分能力有限,别抱太高期待。
1.3 我建议怎么选
如果你只是想处理文字、整理文档、聊天问答,装 Claude Desktop 就够了。如果你是写代码的,或者想让 AI 帮你跑命令、改文件、做自动化,那直接上 Claude Code,不要再绕弯子。后文所有内容默认围绕 Claude Code 展开。
2. 装 Claude Code 前把环境铺好,能避开一半报错
很多报错根本不是 Claude Code 的问题,而是环境不满足要求。我帮人排查时发现,至少三分之一的问题出在 Node.js 版本太老,或者 Windows 虚拟机平台没开启。这个前置准备值得认真过一遍。
2.1 Node.js:版本和安装验证
Claude Code 是通过 npm 分发的,所以系统里必须要有 Node.js 和 npm。我的建议是 Node.js 装 20 LTS 或更新版本,太老的 14、16 版本在安装原生依赖时容易出幺蛾子。
macOS 用户可以用 Homebrew 安装:
brew install nodeWindows 用户建议直接从 Node.js 官网下载 LTS 安装包,装完打开 PowerShell 验证:
node -v npm -v只要这两个命令能正常输出版本号,Node 环境就过关了。这里有个很多人忽略的点:如果你之前用 nvm-windows 或 nvm 装过多个 Node 版本,切换版本后全局包会“消失”,表现为claude命令突然找不到了。后面第 4 章会专门讲这个。
2.2 Windows 用户特别关注:虚拟机和 WSL 2
Claude Code 在处理真正需要执行代码的任务时,会在一个隔离的 workspace 里跑命令。在 Windows 原生环境下,这个机制依赖系统的“虚拟机平台”功能。如果你没启用,启动任务时会直接报 “Claude's workspace requires the virtual machine platform on Windows. Enable...” 这种提示。
官方推荐的 Windows 运行方式是 WSL 2,也就是在 Windows 上跑一个 Linux 子系统,然后在 Linux 环境里装 Claude Code。这样最稳,workspace 相关的报错也少。启用方法是用管理员身份打开 PowerShell,执行:
wsl --install如果只是需要补齐虚拟机平台组件,也可以单独执行:
Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform然后重启系统。重启后装一个 Ubuntu 发行版,进入 Ubuntu 终端,在 Linux 环境里继续安装 Node.js 和 Claude Code。这个方案虽然多了一步,但真的能避开后面一大堆坑。
2.3 终端与执行策略设置
Windows 默认的 PowerShell 执行策略可能会挡掉 npm 安装脚本,导致 Claude Code 装到一半失败。如果你在安装时看到“在此系统上禁止运行脚本”或者 native binary 相关错误,检查一下执行策略:
Get-ExecutionPolicy如果显示 Restricted,改成:
Set-ExecutionPolicy -Scope CurrentUser RemoteSigned这只是允许本地脚本运行,是 Windows 上很常规的操作。macOS 用户一般不用管这一步。
3. Claude Code 安装、登录和第一次运行
3.1 用 npm 安装与升级
环境准备好之后,安装本身非常简单:
npm install -g @anthropic-ai/claude-codemacOS 和 Linux 用户如果遇到权限问题,大概率是全局目录没有写入权限,先别急着加 sudo,优先检查是不是用了 nvm。如果没装 nvm,可以固定到 Node 自带目录,或者把全局前缀指向用户目录再装。
安装完成后验证版本:
claude --version以后升级用到两个命令:
claude update或者:
npm update -g @anthropic-ai/claude-code我习惯用claude update,它能顺带处理一些配置迁移的问题,比直接 npm 升级更省心。
3.2 登录:订阅账户 OAuth 和 API Key 两种方式
Claude Code 启动后会检查登录状态,没登录时会提示 "Claude Code not logged in. Please run /login"。订阅用户和 API 用户走的是两种登录路径。
第一种是 Claude 订阅账户(Pro 或 Max),在终端里运行claude,进入交互界面后输入/login,它会弹出一个浏览器授权页面,登录账号并确认授权,让 Claude Code 以该账号身份调用模型。这个方式适合按订阅付费、日常使用量稳定的用户。
第二种是 Anthropic API Key。如果你用 Claude Code 做自动化脚本、批量任务,或者公司内部要通过 API 走量,更合适的方式是先在 Anthropic 控制台创建 API Key,然后设置环境变量:
export ANTHROPIC_API_KEY="你的key"macOS/Linux 写到~/.zshrc或~/.bashrc,Windows PowerShell 用户用$env:ANTHROPIC_API_KEY="你的key"临时设置,或者通过系统环境变量面板长期配置。注意 API Key 是有余额消耗的,计费模式和订阅完全不同。
有时候登录会碰到 "Unfortunately, Claude is not available to new users right now" 这种提示,这通常是账号开通策略、高峰期限制导致的新用户入口关闭,不是本地环境的技术故障。处理方式就是等官方恢复新用户通道,或者检查官方通知,不要轻信“代注册”这类非官方渠道。
3.3 第一次启动:跑一个真实任务
登录完成后,在项目目录下运行claude,让它进入 Agent 模式。常用的启动方式有几种:
claude claude "分析当前目录下的项目结构" claude --continue交互界面里有一些基础命令,新手先记住这几个:/help看帮助,/login重新登录,/resume恢复历史会话,/model查看或切换模型。第一次跑任务时,建议从一个具体的小问题开始,比如 “修复这个项目里 README 中的错别字”,让它熟悉项目结构,再逐步加大任务复杂度。不要一上来就让它“把这个项目重构一遍”,那样大概率会失控,还容易把代码改乱。
4. 我从报错群里捞出来的五类高频问题
4.1 “claude 无法识别为 cmdlet、函数、脚本文件”
这个问题在 Windows 用户里非常常见。原因不是没装上,而是 npm 全局包目录不在系统的 PATH 环境变量里。
你先检查一下安装有没有真的成功:
npm ls -g @anthropic-ai/claude-code如果能看到版本号,说明包已经在磁盘上了,问题是claude命令所在目录没有被终端找到。用这个命令查看 npm 全局目录:
npm config get prefixWindows 下通常是C:\Users\<你的用户名>\AppData\Roaming\npm,把这个目录加到系统 PATH 环境变量里,重新打开终端就能识别。macOS 或 Linux 下,如果用了 nvm,全局目录一般在~/.nvm/versions/node/<版本>/bin,确认这个路径在$PATH中。
还有一个容易踩的点:本来用得好好的,某天切换了 Node 版本,claude命令突然消失。这是因为每个 Node 版本有独立的全局目录,你切到新版本后,需要重装一遍 Claude Code:
npm install -g @anthropic-ai/claude-code4.2 “Failed to start Claude's workspace”与虚拟机平台
这个报错的完整形态通常长这样:
Failed to start Claude's workspace RPC error -1: SDK version 2.1.260 not verified第一眼看过去很唬人,但本质就一个原因:Claude Code 想启动一个隔离工作空间来跑命令,但 Windows 上缺少底层支持,或者 workspace 组件与当前系统状态对不上。
按这个顺序排查:
- 以管理员身份打开 PowerShell,确认“虚拟机平台”功能已开启:
Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform。 - 确认 WSL 2 已安装,并且当前发行版版本设置正确:
wsl --set-default-version 2。 - 如果上面都没问题,重启一次系统,很多 workspace 相关报错在重启后自动消失。
- 重启后仍失败,就升级 Claude Code 和 Node.js 到最新版本。
- 如果还不行,直接把 Claude Code 装进 WSL 2 的 Linux 环境里用,这是官方推荐的 Windows 运行方式,能彻底绕开这个报错。
我见过有人在这个报错上折腾了整整一天,最后发现只是 WSL 内核太旧,升级完内核立刻好了。所以遇到 RPC error,优先怀疑系统组件版本,而不是 Claude Code 本身。
4.3 “Not logged in. Please run /login”
这个提示很直接,就是登录态丢了。常见于系统重启、环境变量调整、或者多个账号切换之后。解决办法是在 Claude Code 交互界面输入:
/login然后按照提示重新走一遍授权流程。如果你设置了 API Key,检查环境变量有没有在当前终端生效:
echo $ANTHROPIC_API_KEYWindows PowerShell 用echo $env:ANTHROPIC_API_KEY。输出为空就说明环境变量没设好,重新配置后新开终端再启动 Claude Code。反复出现登录失效时,可以检查系统时间是否准确,时间偏差太大会影响 OAuth 令牌校验,这个比较隐蔽,但真的发生过。
4.4 “claude native binary not installed”
报错大意是安装后的原生二进制文件缺失,通常和安装过程有关:
Error: claude native binary not installed. Either postinstall did not run...这种情况不要硬找文件,直接重来一遍:
npm uninstall -g @anthropic-ai/claude-code npm cache clean --force npm install -g @anthropic-ai/claude-code如果重装后还是报错,Windows 用户先检查一下 PowerShell 执行策略,按第 2.3 节说的改成 RemoteSigned。macOS 用户则要确认没有用 sudo 装到奇怪的位置,尽量保证 npm 全局目录属于当前用户。
还有一种情况:公司电脑或安全软件阻止了 npm 的 postinstall 脚本执行,导致原生依赖没有下载下来。这种情况下用npm install -g @anthropic-ai/claude-code --foreground-scripts可以输出完整安装日志,看到底卡在哪一步,再针对性解决。
4.5 其它高频提示速查
| 提示内容 | 常见原因 | 处理方式 |
|---|---|---|
| API Error: 400 invalid request parameters | 请求参数格式不对、模型名写错 | 检查 API Key 对应模型名,确认请求体字段完整 |
| 对话历史为空,找不到之前的会话 | 切换了项目目录或登录账号 | 用/resume查看,或到~/.claude/projects/下找 jsonl 文件 |
| 模型回答问题明显变笨,工具调用混乱 | 使用了第三方模型或自定义模型切换脚本 | 切回默认 Claude 模型,或降低任务复杂度 |
| 提示可用性相关限制 | 账号开通策略或运行环境受限 | 以官方公布的支持范围为准,不要使用非官方渠道处理 |
| 安装后无任何命令输出 | npm 全局目录缺失或 PATH 未配置 | 按 4.1 节步骤修复 PATH |
这些报错里,只有第一类需要查 API 细节,其它基本都是环境或账号问题,不用过度解读。
5. 在 VSCode 中使用 Claude Code,并把会话历史管起来
5.1 VSCode 扩展集成要点
VSCode 里使用 Claude Code 有两种方式:一种是在集成终端里直接运行claude,另一种是安装第三方扩展,获得侧边栏面板、快捷键等界面能力。我自己的主力方式是前者,稳定、少一层额外依赖,但也理解很多人喜欢图形界面。
如果要装扩展,直接在 VSCode 扩展市场搜索 Claude Code,选下载量高、仓库活跃的那个。安装后通常需要配置 Node.js 路径和 Claude Code CLI 路径,扩展本质上是把终端命令包装了一遍,所以底子还是命令行环境。配置项一般在扩展设置的 environment 或 path 字段里,指向你自己的环境变量即可。
无论哪种方式,我都建议先在项目根目录放一个CLAUDE.md文件,把项目规范写进去,比如技术栈、目录结构、常用命令、编码风格要求。Claude Code 启动时会自动加载这个文件,它对工具行为的约束效果比你在对话里反复强调要好得多。
5.2 会话历史保存位置与恢复方式
Claude Code 默认会自动保存所有会话历史,不需要手动开启。保存位置在用户目录下的.claude/projects/里,每次会按项目路径生成一个目录,目录内存放.jsonl格式的对话记录,包含你发送的消息、工具调用、错误输出等完整上下文。
要找回历史会话,启动时用:
claude --continue它会直接接着最近一次会话往下走。或者在交互界面用/resume,会列出历史会话列表让你选择。如果你在多个项目里并行开发,/resume按项目维度列出来反而更清晰。
我自己还有个习惯:每周把重要项目的 jsonl 文件归档压缩一次,因为里面有太多有价值的上下文。出问题时翻历史记录,比让 AI 重新理解项目要快得多。如果你想清空某个项目的历史,直接删除对应的~/.claude/projects/<项目路径>/目录就行,但删之前确认里面没有你想留的东西。
6. 进阶玩法:Skill、启动器、第三方模型与二开思路
6.1 Skill:让 Claude Code 记住团队规范和工作流
Skill 是给 Claude Code 定制“专项技能”的机制,适合把重复性工作固化下来。最常见的形式是创建.claude/skills/<技能名>/SKILL.md,内容用 Markdown 描述这个技能的能力边界、触发条件和具体步骤。
举个例子,如果团队所有 commit message 都要求遵循 Conventional Commits 规范,可以在项目里建一个技能:
--- name: commit-standard description: 生成符合团队规范的 git commit message --- 当用户请求生成 commit message 时,必须遵循以下规则: - type 只能是 feat、fix、docs、style、refactor、test、chore - 正文不超过 72 个字符 - 如果包含 breaking change,在 message 末尾单独列出之后在对话里说“用 commit-standard 技能生成 commit”,Claude Code 就会按这套逻辑执行。Skill 的价值在于把隐性的团队约定变成显式的规则文件,新同事接手项目也能直接继承这套 AI 行为标准,不用重复解释。
6.2 中文启动器和 CC Switch 这类社区工具怎么选
网上搜“Claude Code 中文启动器”,能找到一些社区脚本,原理不复杂:通过环境变量设置语言偏好、默认模型,再启动claudeCLI,有的还会做一些中文提示词包装、界面汉化。CC Switch 则更像一个配置切换器,提供快速切换不同账号、不同配置的能力。
我的态度是:可以试,但保持警惕。这类工具建议只选开源、能看得懂源码、或者至少能在 GitHub 上看到完整仓库的。启动器本质上会碰你的配置文件和环境变量,有些还需要你输入 API Key,一旦来源不可控,账号安全就有风险。我更推荐的做法是,把配置固化到~/.claude/settings.json和CLAUDE.md里,需要切换账号时手动改环境变量,不安装额外启动器。
6.3 接入 DeepSeek 等兼容模型的实际体验
先说明一点:Claude Code 官方强绑定 Claude 系列模型,所谓“接入 DeepSeek”是用环境变量把 API 请求指向一个兼容 Anthropic 接口格式的服务,不是官方支持的功能。
DeepSeek 确实提供了 Anthropic API 兼容端点,配置方法大致是:
macOS/Linux:
export ANTHROPIC_BASE_URL="https://api.deepseek.com/anthropic" export ANTHROPIC_MODEL="deepseek-chat" claudeWindows PowerShell:
$env:ANTHROPIC_BASE_URL="https://api.deepseek.com/anthropic" $env:ANTHROPIC_MODEL="deepseek-chat" claude我实际测试下来的感受是:简单任务,比如改文案、整理文件、解释代码,DeepSeek 模型可以跑;但复杂一点的 Agent 任务,比如多文件联动修改、长链路调试、需要精确工具调用时,稳定性明显不如 Claude 模型。原因是 Claude Code 的整个系统提示词、工具调用格式、上下文管理都是按 Claude 模型调的,换个模型后,生硬程度和不确定性都会上升。
如果你想用它省成本,建议只跑简单批量任务,关键项目还是切回 Claude 模型。另外,这类第三方端点接入之前,你需要确认对方服务条款允许这么用,出了问题别指望 Anthropic 官方兜底。
6.4 二次开发的正确姿势:CLAUDE.md、MCP 与 hooks
“Claude Code 二开”这个问题我在后台看到不少,但很多人一上来就想改它的源码。Claude Code 是闭源的,直接改动安装目录里的编译文件,升级一次就全没了,完全不可维护。
真正靠谱的二开思路是利用它提供的扩展点。第一个是CLAUDE.md,它相当于全局记忆,适合固化团队规范。第二个是 MCP(Model Context Protocol),通过claude mcp add可以把自定义工具接入进来,让 Claude Code 调用你内部的接口、数据库、运维脚本,把它从一个通用编程助手变成团队内部自动化入口。第三个是 hooks,它能在工具调用前后触发本地命令,比如代码写入后自动跑一遍格式化和 lint。
我做过一个小例子:在 hooks 里挂了一个本地脚本,每次 Claude Code 准备执行 Bash 命令前,脚本检查命令里是否包含生产环境的 IP 地址,有就直接拦截报警。这样既保留了 Claude Code 的自动化能力,又加了一道自己可控的安全闸门。
起步阶段,先从CLAUDE.md入手,写清楚项目边界,再慢慢加 MCP 工具,最后再考虑 hooks。这个路径最平滑,也不容易把自己锁死在维护地狱里。
实际上,我自己现在的一套流程就是:Windows 上用 WSL 2 跑 Claude Code,VSCode 集成终端作为入口,每个项目维护一份 CLAUDE.md,把高频任务固化成 Skill,再把关键项目的历史 jsonl 定期归档。这套东西跑顺之后,日常开发里的机械性工作确实省了不少精力。对一个工具来说,能让人忘掉“工具本身”,沉下心去解决实际问题,我觉得才是它真正值得用的状态。