Mac 上安装 Claude Code 完整指南:环境配置与避坑实践
1. 为什么要在 Mac 上折腾 Claude CodeMac 用户对终端工具的挑剔程度用过一圈之后基本都会收敛到同一个判断标准装起来别太折腾、跑起来别太吃资源、用起来别太割裂。Claude Code 这个命令行 AI 编程助手恰好踩在这三条线上。它不是那种装完就躺在那里吃灰的玩具而是能直接嵌进你现有工作流的工具——你在终端里敲一行指令它就能读你当前项目的文件结构、理解上下文、给出修改建议甚至直接帮你改代码。我最初接触它的时候心里是有点抗拒的。毕竟 VS Code 里已经有一堆 AI 插件了再装一个命令行工具听起来像是给自己找麻烦。但实际用下来发现Claude Code 的定位跟那些插件完全不一样。插件是你打开编辑器它才在而 Claude Code 是你在终端里干活它就在。这个区别在调试脚本、批量处理文件、快速原型验证这些场景下特别明显——你不需要切窗口不需要等编辑器加载直接在终端里把问题丢给它就行。这篇内容面向的是 Mac 用户尤其是那些已经装了 Homebrew、日常在终端里跑命令、对 Node.js 生态不算陌生的人。如果你从来没碰过终端也不用慌我会把每一步拆到你能照着敲的程度。但如果你连 Homebrew 是什么都不知道建议先去补一下 Mac 开发环境的基础配置不然中间某些步骤可能会卡住。提示Claude Code 目前主要通过 npm 分发所以 Node.js 环境是硬性前提。Mac 上装 Node.js 有好几种方式后面会详细对比。2. 装之前先把 Mac 环境理清楚2.1 检查你的 macOS 版本和芯片架构Claude Code 对系统版本没有特别苛刻的要求但 macOS 12 及以上会稳妥很多。打开终端敲sw_vers你会看到类似这样的输出ProductName: macOS ProductVersion: 14.5 BuildVersion: 23F79ProductVersion 就是你的系统版本。如果低于 12建议先升级系统不然后面某些依赖可能会报错。接下来确认芯片架构uname -m输出arm64你是 Apple SiliconM1/M2/M3/M4机器输出x86_64你是 Intel 机器这个信息很重要因为后面装 Homebrew 和 Node.js 的时候路径会不一样。Apple Silicon 的 Homebrew 默认装在/opt/homebrewIntel 的装在/usr/local。很多教程不区分这一点导致新手照着敲命令发现command not found其实就是路径没对上。2.2 Homebrew 装没装一条命令见分晓brew --version如果输出了版本号说明已经装好了直接跳到下一节。如果提示command not found那就得先装 Homebrew。装 Homebrew 的命令官方一直在更新最稳妥的方式是去 brew.sh 复制最新的安装命令。但这里有个坑国内网络环境下官方脚本下载速度可能很慢甚至中途断掉。我的经验是如果第一次跑失败了别急着重试先检查一下网络或者换个时间段再试。安装过程中会提示你输入密码这是正常的因为 Homebrew 需要写入/opt/homebrew或/usr/local目录。装完之后按照终端提示执行那两行echo命令把 Homebrew 加到你的 shell 环境变量里。注意如果你用的是 zshMac 默认 shell配置文件是~/.zshrc如果是 bash则是~/.bash_profile。改错文件的话新开终端窗口会发现 brew 又找不到了。2.3 Node.js 的三种装法我为什么推荐 nvmMac 上装 Node.js 常见三条路方式优点缺点适合谁官网 pkg 安装包双击即装最简单版本切换麻烦权限问题多只装一次就不管的人Homebrew跟系统包管理统一升级 Node 会牵连其他依赖已经重度依赖 brew 的人nvm版本随意切互不干扰多一层管理初次配置稍繁琐需要多版本共存的人我强烈推荐 nvm。原因很简单Claude Code 对 Node 版本有要求后面会说而你其他项目可能还在用旧版本 Node。用 nvm 可以随时nvm use 18或nvm use 20不会互相打架。装 nvm 的命令curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash装完之后同样需要把 nvm 加到 shell 配置里。安装脚本通常会帮你自动加但有时候不会。检查一下~/.zshrc里有没有这几行export NVM_DIR$HOME/.nvm [ -s $NVM_DIR/nvm.sh ] \. $NVM_DIR/nvm.sh [ -s $NVM_DIR/bash_completion ] \. $NVM_DIR/bash_completion没有的话手动加上然后source ~/.zshrc验证 nvm 是否可用nvm --version2.4 装一个合适的 Node 版本Claude Code 要求 Node.js 18 或更高版本。我实测下来Node 20 LTS 最稳Node 22 也没问题但如果你其他项目有兼容性顾虑就选 20。nvm install 20 nvm use 20 nvm alias default 20第三行是把 Node 20 设为默认版本这样新开终端不用每次都手动nvm use。验证node -v npm -v应该分别输出v20.x.x和10.x.x之类的版本号。如果 node 有输出但 npm 没有说明 npm 没跟着装好可以试试nvm reinstall-packages或者直接重装 Node。3. Claude Code 的安装方式与选择逻辑3.1 npm 全局安装最直接的路环境准备好之后安装 Claude Code 本身只需要一行npm install -g anthropic-ai/claude-code这里的-g是全局安装意味着你可以在任何目录下直接敲claude命令。如果你不想要全局安装也可以去掉-g但那样就得在每个项目里单独装用起来很别扭不推荐。安装过程中如果卡在idealTree或者下载很慢大概率是 npm 源的问题。可以临时切到国内镜像npm config set registry https://registry.npmmirror.com装完之后想切回官方源npm config set registry https://registry.npmjs.org提示镜像源只影响下载速度不影响包的内容。但有些公司内网会屏蔽外部源这种情况下你可能需要配置代理或者找 IT 要内部镜像地址。3.2 验证安装是否成功claude --version如果输出了版本号恭喜你装好了。如果提示command not found八成是 npm 全局 bin 目录不在 PATH 里。查一下npm config get prefix假设输出是/Users/你的用户名/.nvm/versions/node/v20.x.x那么 bin 目录就是它下面的bin。确认这个路径在 PATH 里echo $PATH如果没有在~/.zshrc里加一行export PATH$PATH:/Users/你的用户名/.nvm/versions/node/v20.x.x/bin然后source ~/.zshrc再试。3.3 首次运行会经历什么第一次敲claude的时候它会引导你完成认证。通常是在浏览器里打开一个页面让你登录并授权。授权完成后终端里会显示登录成功。这里有个细节Claude Code 的认证信息会存在本地某个配置目录里具体路径跟版本有关。如果你后面遇到登录状态丢失的问题大概率是这个目录被清理了重新登录一次就行。认证完成后你会进入一个交互式界面。可以试着问它一个简单问题比如帮我看看当前目录下有哪些文件看看它能不能正常读取上下文。4. 把 Claude Code 接进你的日常工具链4.1 VS Code 里的 Claude Code终端集成最省心很多人以为要在 VS Code 里用 Claude Code 得装什么特殊插件其实不用。最直接的方式就是在 VS Code 里打开集成终端快捷键Ctrl或菜单里选然后直接敲claude。因为 VS Code 的终端继承了你系统的 shell 环境所以只要系统终端里能用VS Code 里就能用。这种方式的优势是你一边看代码一边在终端里跟 Claude Code 对话它读的文件就是你当前打开的项目。不需要额外配置也不会有插件兼容性问题。如果你想要更紧密的集成比如让 Claude Code 直接读取你当前打开的文件路径可以在 VS Code 的设置里配置一下终端的环境变量把当前文件路径传进去。但这个属于进阶玩法初期没必要折腾。4.2 在 iTerm2 或 Warp 里跑体验更顺滑Mac 自带的 Terminal.app 能用但如果你经常跑命令行工具建议换 iTerm2 或者 Warp。iTerm2 的优势是分屏和搜索做得好Warp 则是自带 AI 补全和块状输出跟 Claude Code 的交互式界面搭配起来很舒服。配置上没什么特别的装好之后把默认 shell 设成 zsh确保~/.zshrc里的环境变量都加载了就行。唯一要注意的是有些终端模拟器对 ANSI 转义序列的支持不一样如果 Claude Code 的界面显示乱码换个终端试试。4.3 跟 Git 工作流的配合Claude Code 本身不直接操作 Git但它能帮你生成 commit message、解释 diff、甚至帮你写.gitignore。我的习惯是改完代码后在终端里敲claude然后说帮我看看这次改动生成一个 commit message。它会读取git diff的输出给你一个像模像样的提交信息。这个流程的前提是你的项目已经初始化了 Git并且当前目录在仓库里。如果不在仓库里Claude Code 读不到 diff自然也给不出有用的建议。注意Claude Code 读取的是你本地的文件内容所以敏感信息比如密钥、密码不要放在它会读到的目录里。虽然官方说不会滥用数据但养成好习惯总没错。5. 装完之后最容易踩的几个坑5.1 权限报错EACCES 怎么破用 npm 全局安装时最常见的报错就是EACCES: permission denied。这是因为 npm 试图往系统目录写文件但当前用户没权限。网上有些教程会让你用sudo npm install -g我强烈不建议这么做。sudo 装出来的包后续升级和卸载都会遇到权限问题而且有安全风险。正确的做法是要么用 nvmnvm 装的 Node 天然没有权限问题要么手动改 npm 的全局目录mkdir ~/.npm-global npm config set prefix ~/.npm-global export PATH~/.npm-global/bin:$PATH把最后一行加到~/.zshrc里然后重新npm install -g anthropic-ai/claude-code。5.2 网络超时npm 装到一半卡住前面提过换镜像源但有时候换了源还是卡。这时候可以试试npm install -g anthropic-ai/claude-code --verbose--verbose会打印详细日志你能看到到底卡在哪一步。如果是某个特定包下载失败可以单独装那个包或者清一下 npm 缓存npm cache clean --force然后再重试。5.3 版本冲突Node 版本不对导致的各种怪问题Claude Code 在 Node 16 上可能会报一些莫名其妙的错比如SyntaxError: Unexpected token或者模块加载失败。如果你确认装的是最新版 Claude Code 但还是报错先检查 Node 版本node -v低于 18 的话用 nvm 切到 20nvm install 20 nvm use 20然后重新装 Claude Code。这个问题我遇到过好几次每次都是 Node 版本太旧导致的。5.4 卸载与重装干净利落的做法如果你想把 Claude Code 卸干净重装npm uninstall -g anthropic-ai/claude-code然后检查一下配置目录有没有残留。不同版本路径可能不一样常见的位置在~/.claude或者~/Library/Application Support/claude-code。删掉这些目录再重新安装就能得到一个全新的环境。重装之前记得备份你自定义的配置如果有的话不然重新配一遍挺烦的。6. 让 Claude Code 真正好用的几个配置习惯6.1 项目级配置 vs 全局配置Claude Code 支持在项目根目录放一个配置文件用来定义这个项目的特定行为。比如你可以告诉它这个项目用 Python不要给我生成 JavaScript 代码或者忽略node_modules目录。全局配置则放在用户目录下对所有项目生效。我的建议是通用偏好放全局项目特定规则放项目里。这样换项目的时候不用重新调。具体配置文件的格式和字段不同版本可能有差异建议直接看官方文档或者claude --help的输出。不要照搬网上过时的教程版本对不上会白折腾。6.2 把常用指令做成 alias如果你经常用某几个 Claude Code 指令可以在~/.zshrc里加 aliasalias ccclaude alias ccrclaude --resume这样敲起来快很多。但注意别跟系统已有命令冲突比如cc在某些系统上是 C 编译器的别名加之前先which cc确认一下。6.3 跟其他 AI 工具共存你机器上可能已经装了其他 AI 编程工具比如 GitHub Copilot、Codeium 之类的。它们跟 Claude Code 不冲突因为工作层面不一样。Copilot 主要在编辑器里做行级补全Claude Code 在终端里做任务级交互。但如果你发现终端响应变慢可能是多个工具同时扫描文件导致的。这时候可以检查一下有没有后台进程在跑必要时关掉不用的工具。7. 关于版本更新和长期维护Claude Code 更新挺频繁的新功能和小修复不断。保持更新的命令npm update -g anthropic-ai/claude-code但我不建议无脑追新。如果你当前版本用着没问题可以先不升等一两个版本再升避开可能的新 bug。升级之前看一眼 release notes确认没有破坏性变更。另外Node 版本也要定期关注。Node 20 是 LTS支持到 2026 年暂时不用担心。但如果你用的是奇数版本比如 21、23那些不是 LTS生命周期短建议尽早切到 LTS 版本。我在实际使用中的体会是Claude Code 这类工具的价值不在于它一次能帮你写多少代码而在于它缩短了想到和做到之间的距离。你在终端里有个想法敲一行字它就能帮你验证。这个反馈循环一旦建立起来就很难回去了。装的时候多花十分钟把环境理清楚后面省下的时间远不止十分钟。

相关新闻

Cadence 17.2 Allegro 改一段走线线宽总选错?让 Codex 走 TaoToken 对照 Cline segs 与 Clines

Cadence 17.2 Allegro 改一段走线线宽总选错?让 Codex 走 TaoToken 对照 Cline segs 与 Clines

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/31 8:19:42 阅读更多 →
树莓派系统文件深度解析:config.txt、cmdline.txt与设备树实战

树莓派系统文件深度解析:config.txt、cmdline.txt与设备树实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 11:15:45 阅读更多 →
OpenRouter 用量榜:TaoToken 上跑 Kimi K2.7 Code 选哪条通道

OpenRouter 用量榜:TaoToken 上跑 Kimi K2.7 Code 选哪条通道

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/28 4:40:23 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/10/31 0:19:11 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/10/30 9:20:34 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/10/30 10:19:21 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/10/31 0:59:28 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/10/30 10:19:39 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/10/30 9:21:37 阅读更多 →

日新闻

周新闻

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/30 17:32:24 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/30 10:28:40 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/31 0:09:01 阅读更多 →