1. 为什么 Windows 上跑 Claude Code 值得单独写一篇落地指南
Claude Code 是 Anthropic 推出的终端 AI 编程助手,它直接跑在命令行里,能读写项目文件、执行 shell 命令、跑测试、做重构,本质上是一个"住在你终端里的结对程序员"。它在 macOS 和 Linux 上的体验相对顺滑,但到了 Windows,情况就复杂了——路径分隔符、权限模型、终端环境、Node 版本管理、代理配置,每一环都可能让你卡在"装完了但用不了"的状态。
我在三台不同配置的 Windows 机器上反复折腾过这套东西:一台是公司配的 Win11 笔记本(有域控、有安全软件),一台是家里的 Win10 台式(纯净系统),还有一台是 WSL2 里跑的 Ubuntu 子系统。踩过的坑从"命令找不到"到"权限被拒"再到"响应慢得像蜗牛",基本把能遇到的都遇了一遍。这篇就把整个落地过程拆开讲清楚,从环境准备、安装方式选择、配置调优,到最常见的几类报错怎么排查,尽量让你少走弯路。
这篇文章适合三类人:一是刚听说 Claude Code、想在 Windows 上试试的开发者;二是已经装了但总出问题、想搞明白底层逻辑的人;三是团队里要给别人做环境标准化、需要一份可复现配置清单的人。不管你是前端、后端还是全栈,只要你的日常是在终端里敲命令,这套东西都能用得上。
需要先说明一点:Claude Code 本身是一个需要联网调用云端模型的工具,所以你的网络环境必须能正常访问它的服务端点。这一点在后面的"网络与代理"章节会专门讲,这里先埋个伏笔。
2. 装之前先想清楚:Windows 上跑 Claude Code 的三条技术路线
很多人一上来就问"怎么装",但更该先问的是"装在哪"。Windows 上跑 Claude Code 不是只有一条路,选错了路线,后面所有配置都会别扭。我把三条主流路线列出来,你可以对照自己的情况选。
2.1 路线一:原生 Windows + PowerShell/CMD
这是最直接的方式,直接在 Windows 的 PowerShell 或 Windows Terminal 里装 Node.js,然后用 npm 全局安装 Claude Code。优点是简单、不涉及虚拟化、文件系统是原生的,IDE 集成也最顺。缺点是 Windows 的 shell 环境和 Unix 差异大,某些依赖 Unix 工具链的功能会受限,路径处理偶尔出幺蛾子。
适合人群:日常就在 PowerShell 里工作、项目本身是 Windows 原生开发(比如 .NET、Unity、部分游戏开发)的人。
2.2 路线二:WSL2 + Linux 环境
WSL2 是 Windows 的 Linux 子系统,跑的是真正的 Linux 内核。在 WSL2 里装 Claude Code,体验和原生 Linux 几乎一致,Unix 工具链齐全,路径问题基本消失。缺点是文件系统跨边界访问(Windows 盘符挂载到 /mnt/c)时性能会下降,IDE 集成需要额外配置。
适合人群:做 Web 开发、Python、Node 后端,或者本来就习惯 Linux 命令行的开发者。这也是我个人最推荐的路线。
2.3 路线三:远程开发容器 / SSH 到 Linux 主机
如果你有一台常开的 Linux 服务器或者用 Dev Container,可以把 Claude Code 装在远端,本地只做终端连接。这种方式环境最干净、最可复现,团队协作时尤其香。缺点是需要额外的服务器资源和网络配置。
三条路线的对比如下:
| 维度 | 原生 Windows | WSL2 | 远程 Linux |
|---|---|---|---|
| 安装难度 | 低 | 中 | 中高 |
| Unix 工具兼容性 | 差 | 好 | 最好 |
| 文件系统性能 | 好 | 跨盘时差 | 取决于网络 |
| IDE 集成 | 好 | 需配置 | 需配置 |
| 团队可复现性 | 差 | 中 | 好 |
| 推荐指数 | 三星 | 五星 | 四星 |
我的建议很明确:如果你没有特殊理由必须用原生 Windows,直接上 WSL2。后面章节的安装步骤我会以 WSL2 为主线,同时把原生 Windows 的差异点标出来,这样两条路线的读者都能用。
注意:不管你选哪条路线,都别把 Claude Code 装在需要管理员权限才能写入的系统目录里,否则后面升级、改配置会一直弹权限窗口,非常烦。
3. 环境准备:Node、包管理器与终端这三样必须先理顺
Claude Code 是基于 Node.js 的工具,所以 Node 环境是地基。地基没打好,后面全是玄学问题。这一章把准备工作拆成三块:Node 版本管理、包管理器选择、终端环境。
3.1 Node 版本:别用系统自带的老版本
Claude Code 对 Node 版本有要求,太老的版本会直接报错或者行为异常。我实测下来,Node 18 LTS 是底线,Node 20 LTS 最稳。很多人 Windows 上装 Node 是直接去官网下个 msi 一路下一步,装完是啥版本全看运气,而且想换版本就得卸载重装,非常痛苦。
正确做法是用版本管理器。Windows 原生环境下推荐nvm-windows,WSL2 里推荐nvm(注意这俩不是一个东西,命令也不完全一样)。用版本管理器的好处是:一条命令切换 Node 版本,项目之间互不干扰,出问题可以随时回退。
WSL2 里安装 nvm 的步骤:
# 下载安装脚本 curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash # 让配置生效(或者重开终端) source ~/.bashrc # 验证安装 command -v nvm # 装 Node 20 LTS nvm install 20 nvm use 20 nvm alias default 20 # 确认版本 node -v npm -vWindows 原生环境用 nvm-windows,去它的 release 页面下载安装包,装完后在 PowerShell 里:
nvm install 20 nvm use 20 node -v提示:nvm-windows 安装时如果提示已存在 Node,先手动卸载干净再装,否则会出现"nvm 说切换了但 node -v 还是老版本"的经典问题。这个坑我踩过,排查了半小时才发现是残留的 Node 目录还在 PATH 里。
3.2 包管理器:npm 够用,但 pnpm 更省心
Claude Code 官方推荐用 npm 全局安装。npm 是 Node 自带的,不用额外装,最省事。但如果你机器上全局包很多,npm 的扁平化 node_modules 偶尔会有版本冲突。pnpm 用硬链接,磁盘占用小、安装快,全局包管理也更干净。
不过对于 Claude Code 这个场景,我建议就用 npm,别折腾。因为 Claude Code 的安装脚本和升级逻辑默认就是围绕 npm 设计的,用 pnpm 全局装虽然能跑,但升级时偶尔会找不到包。除非你本来就是 pnpm 重度用户,否则没必要给自己加变量。
3.3 终端:Windows Terminal 是标配
原生 Windows 上,别用老掉牙的 cmd.exe,也别用默认的 PowerShell 窗口(那个字体和配色能看瞎眼)。装Windows Terminal,它是微软官方的现代终端,支持多标签、分屏、自定义配色、GPU 渲染,体验接近 iTerm2。
装完之后做两件事:一是把默认 profile 设成 PowerShell 7(不是 Windows PowerShell 5.1,那个太老),二是装个 Nerd Font 字体(比如 JetBrainsMono Nerd Font),因为 Claude Code 的输出里会有一些特殊符号,普通字体显示会乱码。
WSL2 用户直接在 Windows Terminal 里加一个 WSL profile 就行,字体同样建议用 Nerd Font。
3.4 一个容易被忽略的前置:Git
Claude Code 很多功能依赖 Git,比如它要读你的仓库状态、看 diff、做提交。所以 Git 必须装好,而且要配置好用户名和邮箱,否则它执行 git 操作时会报错。
git config --global user.name "你的名字" git config --global user.email "你的邮箱"Windows 上装 Git 时,有个选项叫"Adjusting your PATH environment",建议选"Git from the command line and also from 3rd-party software",这样 PowerShell 和 WSL 里都能直接调 git。
4. 安装 Claude Code:npm 全局安装与在线升级的正确姿势
环境理顺了,安装本身其实就一条命令。但"装完"和"装对"是两回事,这一章把安装、验证、升级三件事讲透。
4.1 安装命令与背后的逻辑
WSL2 或原生 Windows 的终端里执行:
npm install -g @anthropic-ai/claude-code这条命令做的是:从 npm registry 拉取 Claude Code 的包,装到全局 node_modules 目录,并在 PATH 里注册一个claude可执行文件。-g是全局安装的意思,不加的话只装在当前项目里,命令行调不到。
装完之后验证:
claude --version能打印出版本号就说明装成功了。如果提示command not found或者不是内部或外部命令,八成是全局 bin 目录没在 PATH 里。WSL2 里全局 bin 一般在~/.nvm/versions/node/v20.x.x/bin,nvm 会自动加进 PATH;Windows 原生环境在%APPDATA%\npm,这个目录有时不会自动加,需要手动加进系统环境变量。
4.2 首次启动与登录
第一次运行claude,它会引导你做认证。这个过程需要联网访问 Anthropic 的服务。认证方式通常是浏览器授权或者 API Key,按提示走就行。
这里有个 Windows 特有的坑:如果你的默认浏览器和终端不在同一个用户会话里(比如你在 WSL2 里跑 claude,它想调 Windows 的浏览器),授权回调可能会失败。解决办法是手动复制终端里打印的 URL 到浏览器打开,完成授权后再把 code 粘回终端。
4.3 在线升级:别用 npm update,用官方命令
Claude Code 迭代很快,隔三差五就有新版本。升级方式有两种:
第一种是重新跑一遍安装命令:
npm install -g @anthropic-ai/claude-code@latest第二种是 Claude Code 内置的升级命令,在交互界面里输入/update或者用claude update。官方更推荐后者,因为它会处理一些版本兼容和配置迁移的事情。
注意:升级前最好确认一下当前有没有正在跑的任务,升级过程中如果 Claude Code 正在执行命令,可能会中断。我一般习惯在升级前先退出所有会话。
4.4 版本回退:出问题了怎么退回去
新版本偶尔会引入 bug,如果你升级后发现某个功能不好用了,可以装回指定版本:
npm install -g @anthropic-ai/claude-code@1.0.xx把1.0.xx换成你要的版本号。查历史版本用npm view @anthropic-ai/claude-code versions。
5. 配置调优:让 Claude Code 在 Windows 上跑得又快又稳
装好只是开始,配置才是决定体验的关键。这一章讲三块:权限配置、性能相关配置、以及和 IDE 的集成。
5.1 权限配置:别一上来就全放开
Claude Code 执行命令、读写文件都需要权限。默认情况下它会每次询问你,这在探索阶段是好事,但用久了会烦。你可以通过配置文件设置白名单,让某些安全操作免询问。
配置文件一般在用户目录下的.claude文件夹里。你可以配置允许自动执行的命令前缀,比如git status、ls、cat这类只读命令。但千万不要把rm、del、format这类破坏性命令加进白名单,这是底线。
我的做法是分阶段:头一周全部手动确认,观察它到底会执行哪些命令;一周后把高频的只读命令加白名单;写操作和网络操作永远保持手动确认。
5.2 性能优化:Windows 上慢的根因在哪
很多人反馈 Claude Code 在 Windows 上"反应慢",其实慢的往往不是模型本身,而是本地文件扫描和命令执行。几个优化点:
第一,项目别放在跨文件系统的路径下。如果你用 WSL2,项目放在/mnt/c/...下,每次文件读写都要跨 Windows 和 Linux 的文件系统边界,性能能差好几倍。正确做法是把项目放在 WSL2 的原生文件系统里,比如~/projects/。
第二,排除大目录。如果你的项目里有node_modules、.git、dist这种大目录,Claude Code 扫描时会很慢。可以在配置里加忽略规则,把这些目录排除掉。
第三,关掉不必要的文件监听。有些编辑器插件会监听整个项目目录,和 Claude Code 的文件扫描叠加,CPU 直接拉满。用的时候把其他重型工具先关掉。
5.3 IDE 集成:VS Code 里怎么用
Claude Code 是终端工具,但可以在 VS Code 的集成终端里跑,体验很顺。装好 VS Code 后,打开集成终端(Ctrl+),直接敲claude` 就行。
如果你想让 Claude Code 感知到当前打开的文件和光标位置,需要装对应的扩展或者用它的 IDE 集成功能。具体做法是在 VS Code 里装 Claude Code 的官方扩展,装完后它会自动和终端里的 Claude Code 建立连接。
提示:VS Code 的集成终端默认可能是 PowerShell 5.1,记得在设置里改成 PowerShell 7 或者 WSL,否则会有编码和字体问题。
6. 网络与代理:国内环境下的连通性处理
这一块是很多人卡住的地方。Claude Code 需要访问云端服务,如果你的网络环境不能直连,就得配置代理。这里只讲通用的代理配置方法,不涉及任何具体工具推荐。
6.1 终端代理的环境变量
大多数命令行工具认HTTP_PROXY和HTTPS_PROXY这两个环境变量。在 WSL2 的~/.bashrc或~/.zshrc里加:
export HTTP_PROXY=http://127.0.0.1:端口 export HTTPS_PROXY=http://127.0.0.1:端口 export NO_PROXY=localhost,127.0.0.1Windows 原生 PowerShell 里:
$env:HTTP_PROXY="http://127.0.0.1:端口" $env:HTTPS_PROXY="http://127.0.0.1:端口"端口换成你本地代理服务监听的端口。NO_PROXY是排除列表,本地地址不走代理,避免自己绕自己。
6.2 WSL2 访问 Windows 宿主代理的特殊处理
WSL2 是独立虚拟机,它的127.0.0.1指向的是 WSL2 自己,不是 Windows 宿主。所以如果你在 Windows 上跑代理服务,WSL2 里不能直接用127.0.0.1。
解决办法有两个:一是让代理服务监听0.0.0.0(所有网卡),然后在 WSL2 里用 Windows 宿主 IP 访问;二是用 WSL2 的镜像网络模式(较新版本支持),这样127.0.0.1就能直接通到宿主。
查 Windows 宿主 IP 的命令:
cat /etc/resolv.conf | grep nameserver拿到的 IP 就是宿主地址,把代理地址换成http://那个IP:端口。
6.3 验证连通性
配完代理后,别急着跑 Claude Code,先用 curl 测一下:
curl -I https://api.anthropic.com能返回 HTTP 状态码(哪怕是 401)就说明网络通了。如果卡住不动或者报连接超时,说明代理没配好,回去检查环境变量和端口。
7. 避坑实录:Windows 上最常见的六类报错与排查链路
这一章是全文最值钱的部分。下面这些报错我都真实遇到过,每个都给出完整的排查思路,你可以照着复现。
7.1 "command not found" 或 "不是内部或外部命令"
现象:装完了,敲claude提示找不到命令。
排查链路:
- 先确认装没装上:
npm list -g --depth=0,看列表里有没有@anthropic-ai/claude-code。 - 有的话,查全局 bin 目录:
npm config get prefix,这个目录下的bin(WSL)或根目录(Windows)应该在 PATH 里。 - Windows 原生环境重点查
%APPDATA%\npm在不在 PATH。 - 改完 PATH 一定要重开终端,环境变量不会热更新。
7.2 权限被拒:EACCES 或 EPERM
现象:安装或升级时报权限错误。
根因:全局 node_modules 目录权限不对,或者你用了系统级 Node 而不是版本管理器装的 Node。
解决:别用sudo npm install -g(WSL 下),这会把文件属主改成 root,后面普通用户改不了。正确做法是用 nvm 装的 Node,全局目录在用户空间,不需要 sudo。Windows 原生环境如果报 EPERM,通常是杀毒软件锁了文件,临时关掉或者加白名单。
7.3 终端中文乱码
现象:Claude Code 输出里中文变成方块或问号。
根因:终端字体不支持中文,或者编码不是 UTF-8。
解决:Windows Terminal 里换一个支持中文的字体(比如等距更纱黑体),编码设成 UTF-8。WSL2 里确认locale输出是zh_CN.UTF-8或en_US.UTF-8,不是的话在~/.bashrc里设export LANG=en_US.UTF-8。
7.4 启动卡住或响应极慢
现象:敲了claude之后半天没反应,或者对话响应要等很久。
排查链路:
- 先测网络:
curl -I https://api.anthropic.com,看是不是网络问题。 - 网络没问题的话,看是不是项目目录太大,扫描卡住了。换个空目录试试。
- 还慢的话,看 CPU 和内存占用,是不是被其他工具拖累了。
- WSL2 用户重点检查项目是不是在
/mnt/c下,挪到原生文件系统再试。
7.5 升级后功能异常
现象:升级到新版本后,某个之前好用的功能报错或者行为变了。
解决:先看官方 changelog 有没有 breaking change。没有的话,回退到上一个稳定版本,等下一个版本再升。回退命令前面讲过。
7.6 配置文件不生效
现象:改了配置,但 Claude Code 行为没变。
排查:确认配置文件路径对不对。Claude Code 会读多个位置的配置,优先级不同。用户级配置在~/.claude/,项目级配置在项目根目录的.claude/。项目级优先级更高。改完配置要重启 Claude Code 会话才生效。
8. 我踩过的那些坑和几条压箱底的经验
最后分享几条文档里不会写、但实际用起来很关键的经验。
第一条,别在系统盘根目录或者桌面跑 Claude Code。这些位置文件多、权限杂,扫描慢还容易触发权限问题。专门建一个~/projects/目录放项目,干净利落。
第二条,养成用 Git 的习惯。Claude Code 会改你的文件,改之前先 commit,改完不满意直接git checkout回滚。这是最省心的"后悔药"。我现在的习惯是每次让 Claude Code 做较大改动前,先手动 commit 一次。
第三条,权限白名单要克制。我见过有人图省事把*加进白名单,结果 Claude Code 执行了一条删除命令,项目文件没了。白名单只加只读命令,写操作永远手动确认,这条没有例外。
第四条,WSL2 的内存要限制。WSL2 默认会吃掉大量内存,跑久了 Windows 会卡。在用户目录建一个.wslconfig文件,限制内存和 CPU:
[wsl2] memory=8GB processors=4数字按你机器配置调,一般给一半物理内存就行。
第五条,定期清理 npm 缓存。全局包装多了,npm 缓存会膨胀到几个 G。偶尔跑一下npm cache clean --force,能省不少磁盘。
这套东西我从零折腾到顺手,前后大概花了两周。现在它已经是我日常开发离不开的工具了,尤其是做重构和写测试的时候,效率提升非常明显。Windows 上的体验虽然比 macOS 多几个坎,但只要环境理顺了,用起来一样顺。