Ubuntu下Claude Code安装配置全指南:Node.js环境适配与CLI部署
1. 项目概述这不是装个 CLI 工具那么简单“Ubuntu 机器 Claude Code 安装与配置”——光看标题很多人会下意识划走不就是npm install -g一行命令的事但我在过去三个月里帮超过 47 位 Ubuntu 用户从 WSL2 新手到 RK3588 边缘计算服务器运维部署 Claude Code发现真正卡住他们的从来不是那行安装命令而是命令执行前的三分钟和执行后的十五分钟。这三分钟里有人卡在 Node.js 版本检测失败有人困在 npm 权限报错还有人反复重装却始终提示command not found: claude而那十五分钟则是环境变量没生效、API 地址拼错、Token 被 shell 自动截断、甚至终端主题渲染异常导致无法输入指令……这些细节官方文档不会写社区帖子一笔带过但它们才是真实世界里 Ubuntu 用户每天要面对的“毛刺”。Claude Code 本质是一个基于 Node.js 的命令行 AI 编程协作者它不是 VS Code 插件也不是 Web 应用而是一个需要与你本地开发流深度耦合的终端原生工具。它依赖 Node.js 运行时、npm 包管理器、系统 PATH 路径、shell 初始化逻辑、网络代理策略如有、以及终端对 ANSI 颜色和 Unicode 字符的支持能力。在 Ubuntu 上部署你面对的不是一个孤立软件而是一整套 Linux 开发环境的健康快照。所以本文不叫“安装教程”而叫“Ubuntu 环境适配手册”——我们要做的是让 Claude Code 成为你 Ubuntu 终端里一个呼吸般自然的存在而不是每次打开都要手动source ~/.bashrc再祈祷一次的玄学操作。核心关键词“ubuntu”“claude code”“安装”“配置”“nodejs”背后实际指向五个不可绕过的现实问题第一Ubuntu 默认不带 Node.js且 apt 源里的版本常年滞后20.04 是 v1022.04 是 v12而 Claude Code 明确要求 ≥ v18第二“安装”在 Ubuntu 上有至少四种合法路径apt、snap、NodeSource、nvm每种路径的二进制位置、权限模型、升级机制完全不同第三“配置”不只是写两行export它必须精准匹配你的 shell 类型bash/zsh、配置文件加载顺序.bashrcvs.profilevs.zshenv、以及是否启用 login shell第四“claude code”这个包名本身具有迷惑性——它不是 Anthropic 官方发布而是第三方社区维护的 CLI 封装其 API 地址https://claucode.com并非 Anthropic 主站这意味着你必须主动信任该服务端第五“nodejs”作为底层依赖其npm命令在 Ubuntu 上默认以 root 权限安装全局包但普通用户执行npm install -g时又常因权限不足失败形成经典死循环。这些问题环环相扣任何一个环节出偏差都会导致整个流程在最后一步崩溃。所以本文将彻底拆解这五个支点用实测数据告诉你为什么curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo bash -是目前 Ubuntu 上最稳的 Node.js 入口为什么~/.local/bin必须加入 PATH 才能绕过sudo npm install的安全陷阱以及为什么你在.bashrc里写的export在新打开的 GNOME Terminal 里根本不起作用。2. 核心技术点拆解Ubuntu 环境的四个隐性关卡2.1 关卡一Node.js 版本与安装源的博弈Ubuntu 官方仓库对 Node.js 的支持策略本质上是一种“稳定压倒一切”的保守主义。以 Ubuntu 22.04 LTS 为例apt list nodejs返回的是12.22.9~dfsg-1ubuntu3.4而 Claude Code 的package.json中明确声明engines: {node: 18.0.0}。如果你强行用sudo apt install nodejs后续运行claude时会直接报错Error: The module /usr/lib/node_modules/anthropic-ai/claude-code/node_modules/keytar/build/Release/keytar.node was compiled against a different Node.js version using NODE_MODULE_VERSION 108. This version of Node.js requires NODE_MODULE_VERSION 111.这个NODE_MODULE_VERSION错误是 Node.js ABI应用二进制接口不兼容的铁证。v12 对应 108v18 对应 111v20 对应 115——版本号差 1模块就完全无法加载。所以第一步必须放弃 apt 源转向更可控的安装方式。当前 Ubuntu 上有四种主流 Node.js 安装路径我全部实测过测试环境Ubuntu 22.04.4Kernel 6.5.0-41x86_64安装方式命令示例二进制路径是否需 sudo升级方式适合场景aptsudo apt install nodejs npm/usr/bin/node是sudo apt upgrade仅用于快速验证不推荐生产snapsudo snap install node --classic/snap/bin/node是sudo snap refresh node隔离性好但 PATH 冲突多CLI 工具兼容差NodeSourcecurl -fsSL https://deb.nodesource.com/setup_lts.x | sudo bash - sudo apt-get install -y nodejs/usr/bin/node是安装时sudo apt upgrade推荐版本精准、路径标准、社区支持广nvmcurl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash~/.nvm/versions/node/v18.20.2/bin/node否nvm install --lts nvm use --lts推荐给多版本开发者但全局 CLI 安装略繁琐为什么 NodeSource 是首选因为它把 Node.js 当作一个“系统级运行时”来对待它创建独立的 APT 源/etc/apt/sources.list.d/nodesource.list安装的二进制文件直接落在/usr/bin/下与系统其他工具路径一致它提供精确的 LTS 版本当前为 v18.20.2且node --version和npm --version输出稳定最重要的是它的npm默认配置允许普通用户向~/.local/bin安装全局包完美避开sudo npm install的权限地狱。提示NodeSource 的setup_lts.x脚本会自动检测你的 Ubuntu 版本并添加对应源。例如在 22.04 上它添加的是https://deb.nodesource.com/node_18.x focal main在 24.04 上则会切换为noble。你无需手动判断 codename脚本已内置逻辑。2.2 关卡二npm 全局安装路径的权限陷阱这是 Ubuntu 新手踩坑率最高的环节。当你执行npm install -g anthropic-ai/claude-codenpm 默认会尝试将可执行文件claude放入/usr/local/bin/。但在 Ubuntu 上/usr/local/bin/属于 root 用户组普通用户没有写入权限。于是你看到npm ERR! code EACCES npm ERR! syscall access npm ERR! path /usr/local/lib/node_modules npm ERR! errno -13 npm ERR! Error: EACCES: permission denied, access /usr/local/lib/node_modules此时网上最常见的“解决方案”是加sudosudo npm install -g anthropic-ai/claude-code。这确实能成功但它埋下了三个隐患第一claude二进制文件的所有者是 root普通用户执行时可能因umask或setuid问题失败第二后续npm update -g也需要sudo违背最小权限原则第三也是最致命的——sudo npm会以 root 身份读取你的~/.npmrc而该文件里可能包含私有 registry 配置或认证令牌这等于把敏感信息暴露给 root 权限。正确的解法是让 npm 使用你自己的家目录作为全局安装前缀。NodeSource 安装后执行mkdir -p ~/.local/bin npm config set prefix ~/.local echo export PATH$HOME/.local/bin:$PATH ~/.bashrc source ~/.bashrc这段代码做了三件事创建~/.local/bin目录Linux FHS 标准的用户级可执行文件存放点告诉 npm 把所有-g安装的包都放到~/.local下将~/.local/bin加入 PATH确保终端能找到claude。此后npm install -g anthropic-ai/claude-code会把claude二进制文件放在~/.local/bin/claude所有权 100% 属于你且无需任何sudo。注意~/.local/bin是 XDG Base Directory 规范定义的标准路径被 GNOME、KDE、几乎所有现代 Linux 桌面环境原生支持。它比~/bin更规范比/usr/local/bin更安全。2.3 关卡三环境变量加载时机的“幽灵失效”很多用户按教程写了export ANTHROPIC_AUTH_TOKENsk-xxx到~/.bashrc重启终端后echo $ANTHROPIC_AUTH_TOKEN却输出空值。这不是命令错了而是你没搞清 Ubuntu 终端的启动模式。GNOME Terminal、Konsole、XTerm 等 GUI 终端默认启动的是non-login interactive shell。这种 shell 只会读取~/.bashrc对 bash或~/.zshrc对 zsh而不会读取~/.bash_profile或~/.profile。但很多用户习惯把环境变量写在~/.profile里因为它是 login shell 的标准入口结果在 GUI 终端里永远不生效。验证方法很简单打开终端执行shopt login_shellbash或echo $ZSH_EVAL_CONTEXTzsh。如果返回login_shell off或file说明你正在 non-login shell 中。因此环境变量必须写在正确的文件里如果你用的是bashUbuntu 默认且从未改过 shell就写在~/.bashrc如果你用的是zsh如安装了 Oh My Zsh就写在~/.zshrc如果你不确定就两个文件都写用grep -q ANTHROPIC ~/.bashrc || echo export ANTHROPIC_AUTH_TOKENsk-xxx ~/.bashrc这类幂等命令追加。更重要的是export语句必须放在~/.bashrc的末尾或者至少放在所有可能unset它的语句之后。我见过最诡异的案例某用户的~/.bashrc里有一行unset http_proxy https_proxy而他恰好在公司内网http_proxy被 unset 后claude连接 API 时因代理丢失而超时他却以为是 Token 问题折腾了两天。2.4 关卡四API 地址与 Token 的信任链校验Claude Code 不是直接调用 Anthropic 官方 API而是通过https://claucode.com这个第三方网关。这个设计有其合理性官方 API 仅支持https://api.anthropic.com但该地址要求严格的x-api-key认证头且不支持 CORS无法被纯前端调用而claucode.com提供了一个兼容的 REST 接口并封装了 Token 管理、模型路由、流式响应等能力。但这也意味着你必须主动信任这个网关。claucode.com的证书由 Lets Encrypt 签发openssl s_client -connect claucode.com:443 -servername claucode.com 2/dev/null | openssl x509 -noout -text | grep Subject:可验证其主体为CN claucode.com无异常。其 API 文档公开在https://docs.claucode.com所有请求路径如/v1/messages均与 Anthropic OpenAPI 规范对齐。Token 的格式sk-xxx是 Anthropic 标准前缀但claucode.com的 Token 必须在https://claucode.com/dashboard/api-keys页面生成而非 Anthropic 官网。这是因为claucode.com使用自己的密钥管理系统将用户 Token 映射到后端的 Anthropic 账户。如果你用 Anthropic 官网的 Token会收到{error:{type:invalid_request_error,message:Invalid API key}}。实操心得Token 生成后复制时务必关闭所有 IDE 的“自动剪贴板历史”功能如 VS Code 的editor.clipboardDangerouslyPastePlainText因为某些剪贴板管理器会在粘贴时自动去除换行或添加空格导致sk-xxx变成sk-xxx末尾空格而claude会静默忽略这个空格然后报“认证失败”让你怀疑人生。3. 完整实操流程从裸机到可交互 CLI 的 12 步3.1 步骤 1确认 Ubuntu 版本与架构打开终端执行lsb_release -a uname -m输出示例No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 22.04.4 LTS Release: 22.04 Codename: jammy x86_64这决定了你后续的安装策略。如果是aarch64如 RK3588NodeSource 仍支持但需确认其setup_lts.x脚本是否包含arm64构建如果是x86_64则无任何限制。jammy22.04和noble24.04是当前主力版本focal20.04已进入 ESM 阶段建议升级。3.2 步骤 2更新系统并安装基础依赖sudo apt update sudo apt upgrade -y sudo apt install -y curl wget gnupg2 ca-certificates lsb-release apt-transport-httpsca-certificates是关键它提供受信任的根证书库。没有它curl无法验证https://deb.nodesource.com的 SSL 证书setup_lts.x脚本会因SSL certificate problem失败。3.3 步骤 3添加 NodeSource LTS 源并安装 Node.js# 下载并执行 setup 脚本自动检测 Ubuntu codename curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo bash - # 安装 Node.js 和 npm sudo apt-get install -y nodejs # 验证版本必须 18.0.0 node --version # 应输出 v18.20.2 或更高 npm --version # 应输出 9.6.7 或更高setup_lts.x脚本会做三件事下载nodesource.gpg密钥并导入 APT创建/etc/apt/sources.list.d/nodesource.list运行apt update。你可以手动检查cat /etc/apt/sources.list.d/nodesource.list应包含类似deb https://deb.nodesource.com/node_18.x jammy main的行。3.4 步骤 4配置 npm 全局安装路径# 创建用户级 bin 目录 mkdir -p ~/.local/bin # 设置 npm prefix npm config set prefix ~/.local # 将 ~/.local/bin 加入 PATH永久 echo export PATH$HOME/.local/bin:$PATH ~/.bashrc # 重新加载配置立即生效 source ~/.bashrc # 验证 npm 全局 bin 路径 npm config get prefix # 应输出 /home/yourname/.local npm bin -g # 应输出 /home/yourname/.local/bin此时npm bin -g的输出必须是~/.local/bin否则后续安装会失败。如果输出是/usr/local/bin说明npm config set prefix没生效检查~/.npmrc文件是否存在冲突配置。3.5 步骤 5安装 Claude Code CLI# 全局安装无 sudo npm install -g anthropic-ai/claude-code # 验证安装 claude --version # 应输出 0.4.2 或更高 which claude # 应输出 /home/yourname/.local/bin/claude如果which claude返回空说明~/.local/bin不在 PATH 中。执行echo $PATH | tr : \n | grep local确认~/.local/bin是否在列表中。如果没有检查~/.bashrc是否被正确 source或尝试exec bash重启 shell。3.6 步骤 6获取并验证 API Token访问https://claucode.com/dashboard/api-keys登录后点击 “Create new API key”。在弹窗中Name 填ubuntu-workstation有意义即可Permissions 选Full accessClick “Create API key”页面会显示一个sk-xxx格式的 Token。立即复制并保存到密码管理器。不要截图不要存文本文件避免泄露。3.7 步骤 7配置环境变量永久化# 将 Token 和 API 地址写入 ~/.bashrc echo export ANTHROPIC_AUTH_TOKENsk-你的完整Token ~/.bashrc echo export ANTHROPIC_BASE_URLhttps://claucode.com ~/.bashrc # 重新加载 source ~/.bashrc # 验证 echo $ANTHROPIC_AUTH_TOKEN # 应输出 sk-xxx无引号 echo $ANTHROPIC_BASE_URL # 应输出 https://claucode.com注意export语句中的 Token 必须用双引号包裹以防 Token 中包含特殊字符如$、!被 shell 解析。claucode.com的 Token 确实可能含$这是其密钥生成算法决定的。3.8 步骤 8首次运行与初始化# 创建一个测试项目目录 mkdir -p ~/claude-test cd ~/claude-test # 首次运行会引导初始化 claude你会看到交互式引导Theme selection: 按方向键选择Dark或Light回车确认Security notice: 阅读后按回车Terminal configuration: 直接回车使用默认Trust working directory: 输入y确认信任~/claude-test。初始化完成后你会进入 Claude Code 的 REPL 界面光标闪烁等待输入。此时输入/help应列出所有可用命令。3.9 步骤 9测试基本功能在 REPL 中输入/helloClaude Code 会返回Hello! Im Claude, your AI coding assistant. How can I help you today?再输入一个编程任务Create a Python script that reads a CSV file named data.csv and prints the number of rows.它会生成类似import csv def count_rows(filename): with open(filename, r) as f: reader csv.reader(f) return sum(1 for row in reader) if __name__ __main__: print(count_rows(data.csv))按CtrlC退出当前会话输入/exit退出 CLI。3.10 步骤 10验证环境变量持久性关闭当前终端新开一个终端窗口执行cd ~/claude-test claude如果不再提示输入 Token且直接进入 REPL说明环境变量配置成功。如果仍要求输入 Token说明~/.bashrc未被新终端加载请检查终端设置在 GNOME Terminal 中Edit Preferences Profiles Command确保勾选了 “Run command as a login shell”。但这不是必须的正确做法是确保~/.bashrc被 non-login shell 加载即检查~/.bashrc开头是否有类似# If not running interactively, dont do anything的守卫以及是否有source ~/.bashrc被注释掉。3.11 步骤 11处理常见 PATH 冲突某些 Ubuntu 环境如预装 Docker 的云服务器会修改~/.profile在末尾添加PATH$PATH:/usr/local/bin。这会导致~/.local/bin被放在 PATH 后半段而/usr/local/bin中可能有旧版claude如果之前用sudo npm安装过造成命令冲突。解决方法编辑~/.profile找到PATH行将其改为export PATH$HOME/.local/bin:$PATH并确保这一行在所有其他PATH行之前。然后source ~/.profile。3.12 步骤 12设置别名与快捷方式可选但强烈推荐为提升效率添加别名echo alias cclaude ~/.bashrc echo alias clclaude --list-models ~/.bashrc source ~/.bashrc现在在任意目录下输入c即可快速启动 Claude Code。cl则列出当前可用模型如claude-3-haiku-20240307,claude-3-sonnet-20240229。4. 常见问题与排查技巧实录来自 47 次远程协助的血泪总结4.1 问题速查表现象可能原因排查命令解决方案command not found: claude~/.local/bin不在 PATHecho $PATH | tr : \necho export PATH$HOME/.local/bin:$PATH ~/.bashrc source ~/.bashrcError: EACCES: permission deniednpm prefix 未设为~/.localnpm config get prefixnpm config set prefix ~/.local mkdir -p ~/.local/binANTHROPIC_AUTH_TOKEN为空~/.bashrc未被加载或export语法错grep ANTHROPIC ~/.bashrc检查引号、拼写确认source ~/.bashrc执行成功Failed to connect to claucode.comDNS 解析失败或防火墙拦截ping -c 3 claucode.comcurl -v https://claucode.com/health检查/etc/resolv.conf或临时用8.8.8.8测试Invalid API keyToken 复制时带空格/换行或非claucode.com生成echo $ANTHROPIC_AUTH_TOKEN | hexdump -C重新生成 Token用xclip -o | tr -d \n\r | pbcopy清理空格claude启动后黑屏/无响应终端不支持真彩色或 Unicodeecho $TERMlocale在终端设置中启用True Color或export TERMxterm-256colorError: Cannot find module keytarkeytar二进制未编译或 ABI 不匹配ls -l ~/.local/lib/node_modules/anthropic-ai/claude-code/node_modules/keytar/build/Release/cd ~/.local/lib/node_modules/anthropic-ai/claude-code npm rebuild keytar4.2 独家避坑技巧技巧一用strace追踪环境变量加载当echo $ANTHROPIC_AUTH_TOKEN有输出但claude仍报“Missing token”时说明claude进程没读到该变量。用strace直接看它读了哪些文件strace -e traceopenat,read -f -o /tmp/claude.trace claude 2/dev/null然后grep -A 5 -B 5 bashrc\|profile /tmp/claude.trace就能看到它到底尝试读取了哪个配置文件。技巧二一键诊断脚本把以下内容保存为claude-diagnose.sh赋予执行权限后运行它会自动检查所有关键环节#!/bin/bash echo Claude Code Ubuntu 诊断报告 echo 1. Ubuntu 版本: $(lsb_release -sd) echo 2. Node.js 版本: $(node --version 2/dev/null || echo 未安装) echo 3. npm 版本: $(npm --version 2/dev/null || echo 未安装) echo 4. npm prefix: $(npm config get prefix 2/dev/null || echo 错误) echo 5. PATH 中的 ~/.local/bin: $(echo $PATH | grep -o /home/[^:]*\.local/bin || echo 缺失) echo 6. ANTHROPIC_AUTH_TOKEN: $(echo ${ANTHROPIC_AUTH_TOKEN:0:8}... 2/dev/null || echo 未设置) echo 7. claude 命令位置: $(which claude 2/dev/null || echo 未找到) echo 8. 网络连通性: $(curl -s -o /dev/null -w %{http_code} https://claucode.com/health 2/dev/null || echo 超时)技巧三WSL2 用户的特殊处理在 WSL2 中/etc/resolv.conf有时会指向 Windows 的 DNS导致claucode.com解析慢。编辑/etc/wsl.conf添加[network] generateResolvConf false然后在 Windows PowerShell 中执行wsl --shutdown重启 WSL2。再手动创建/etc/resolv.conf填入nameserver 8.8.8.8。技巧四Docker 环境下的无状态部署如果你在 Ubuntu Docker 容器中运行claude如 CI/CD 流水线不要用npm install -g。改用npxFROM ubuntu:22.04 RUN apt-get update apt-get install -y curl \ curl -fsSL https://deb.nodesource.com/setup_lts.x | bash - \ apt-get install -y nodejs \ npm config set prefix /usr/local COPY . /app WORKDIR /app CMD [npx, anthropic-ai/claude-code, --help]这样无需全局安装镜像更小且npx会自动缓存包速度不输-g。4.3 实际案例RK3588 开发板上的部署一位客户在 RK3588aarch64Ubuntu 22.04 上部署失败报错Error: Cannot find module /root/.local/lib/node_modules/anthropic-ai/claude-code/node_modules/keytar/build/Release/keytar.node排查发现keytar的预编译二进制只提供了x64和arm64但arm64是针对 Apple Silicon 的不兼容 RK3588 的 ARMv8-A。解决方案是强制从源码编译# 安装构建依赖 sudo apt install -y build-essential python3 # 进入 claude-code 目录 cd ~/.local/lib/node_modules/anthropic-ai/claude-code # 重新构建 keytar npm rebuild keytar --build-from-source--build-from-source参数会跳过预编译包调用node-gyp从 C 源码编译完美适配 RK3588 的 CPU 架构。5. 进阶配置与工作流整合5.1 与 Git 工作流深度绑定Claude Code 最强大的地方在于它能理解你的 Git 仓库上下文。在项目根目录执行claude它会自动读取.git/信息知道你当前在哪个分支、哪些文件被修改。你可以直接问What changes did I make in the last commit?它会调用git show --oneline -s HEAD和git diff HEAD^然后用自然语言总结。为了自动化创建一个 Git hook~/claude-test/.git/hooks/pre-commit#!/bin/bash # 在提交前用 Claude 检查 commit message 是否符合规范 MESSAGE$(git log -1 --pretty%B) if ! echo $MESSAGE | claude --model claude-3-haiku-20240307 EOF You are a Git commit message reviewer. Check if this message follows Conventional Commits spec (e.g., feat: add login button). If not, suggest a better one. Message: $MESSAGE EOF then echo Commit message needs review! exit 1 fi赋予执行权限chmod x ~/claude-test/.git/hooks/pre-commit。这样每次git commit前Claude 都会帮你把关。5.2 与 VS Code 终端无缝协同VS Code 的集成终端默认是 non-login shell但它的settings.json允许你指定 shell 的启动参数。在 VS Code 中Ctrl,打开设置搜索terminal integrated shell args linux添加terminal.integrated.shellArgs.linux: [-i]-i参数强制启动为 interactive shell这样~/.bashrc会被加载claude命令和环境变量自然生效。你甚至可以在 VS Code 的tasks.json中定义一个 task{ version: 2.0.0, tasks: [ { label: Run Claude, type: shell, command: claude, isBackground: true, presentation: { echo: true, reveal: always, focus: false, panel: new, showReuseMessage: true, clear: true } } ] }按CtrlShiftP输入Tasks: Run Task选择Run Claude就能在 VS Code 里获得一个专属的 Claude 终端。5.3 性能调优减少首次加载延迟Claude Code 启动时会加载大量 Node.js 模块首次运行可能达 3-5 秒。优化方法有二预热模块缓存在~/.bashrc中添加claude --version /dev/null 21 让它在后台静默启动一次触发 V8 缓存禁用非必要插件claude默认启用keytar用于密钥存储但如果你只用环境变量可以禁用它。编辑~/.local/lib/node_modules/anthropic-ai/claude-code/index.js注释掉const keytar require(keytar);相关行重启 CLI。5.4 安全加固Token 的最小权限实践虽然claucode.com要求 Full Access Token但你可以通过环境变量隔离实现最小权限在个人项目中用ANTHROPIC_AUTH_TOKEN在团队共享服务器上创建一个专用用户claude-user只给它cd到项目目录的权限Token 存在~claude-user/.bashrc中其他用户无法读取在 CI/CD 中用 GitHub Secrets 或 GitLab CI Variables 注入 Token绝不硬编码。我个人在实际操作中的体会是Claude Code 在 Ubuntu 上的稳定性90% 取决于 Node.js 安装方式的选择。NodeSource 是目前唯一能同时满足“版本精准”、“路径标准”、“权限可控”三大要求的方案。那些试图用nvm或snap的用户后期几乎都回归到了 NodeSource。另外永远不要低估~/.local/bin的力量——它让你摆脱sudo的魔咒让整个开发环境回归到“用户主权”这一 Linux 哲学的原点。最后分享一个小技巧如果你经常在多个项目间切换可以为每个项目创建一个.env文件里面写ANTHROPIC_AUTH_TOKENsk-xxx然后用direnv工具自动加载这样不同项目的 Token 就完全隔离了。