1. 从零搭建 Claude Code 本地环境:Node.js 与 Git 到底该怎么装
很多人第一次听到 Claude Code,会以为它是个带界面的编辑器插件,其实它更像一个跑在终端里的“结对程序员”:你在项目目录里敲claude,它就能读你的代码、改文件、跑命令。它适合谁?适合已经习惯命令行、想让 AI 直接参与真实仓库改动的开发者。核心检索词就三个:Claude Code、Node.js、npm——前者是工具本体,后两者是它的运行地基。
我先把整条链路拆开讲清楚,避免你装到一半卡住。Claude Code 本身是一个 npm 全局包,所以你的机器上必须先有 Node.js 和 npm;它要读写你的项目,所以你得有一个 Git 仓库来管理改动;它要调用大模型,所以你得配一个能稳定访问的 API 通道。这三件事缺一不可,顺序也别乱:先环境,再仓库,最后接通道。
先说 Node.js。它是 JavaScript 的运行时,npm 是随它一起装上的包管理器。你可以把 Node.js 理解成“发动机”,npm 理解成“零件商店”,Claude Code 就是从商店里买回来的一个零件。下载去官网 nodejs.org,选 LTS 长期支持版,Windows 下就是一路下一步。装完之后别急着往下走,先验证。
Windows 用户打开 PowerShell 或 CMD,macOS 用户打开终端,输入:
node -v npm -v两行都能打印出版本号,比如v20.11.1和10.2.4,才算装好。如果只出node的版本、npm报“不是内部或外部命令”,多半是安装时没勾选加入 PATH,重装一遍并勾上即可。
国内网络下 npm 官方源有时会慢,可以临时切镜像加速,装完再切回来:
npm config set registry https://registry.npmmirror.com npm install -g @anthropic-ai/claude-code npm config set registry https://registry.npmjs.org注意最后一行是恢复官方源,不是必须,但建议保留,免得以后装别的包版本对不上。装完输入claude --version,能出版本号就说明 CLI 已经就位。
接着是 Git。Claude Code 会频繁改文件,没有版本控制你根本不知道它动了哪里。去 git-scm.cn 下载对应系统安装包,全程下一步。装完验证:
git --version然后进你的项目目录,初始化仓库:
cd your-project git init git add . git commit -m "init before claude code"这一步很关键,它给了你一个“后悔药”:万一 AI 改乱了,git checkout .就能回滚。我试过没提交就让它改,结果一次重构把三个文件搅在一起,只能手动比对,非常痛苦。所以先提交,再让 AI 动手。
到这里,环境层就齐了:Node.js 提供运行时,npm 装好了 Claude Code,Git 守住了底线。下一节我们解决“它连哪个模型”的问题,也就是 API 通道。
2. TaoToken 前置准备:给 Claude Code 配一条稳定的 API 通道
Claude Code 装好只是有了壳,它默认要连 Anthropic 的官方服务,国内直连经常超时或握手失败。所以我们需要一个兼容 Anthropic 接口的 API 通道,把请求转发到可用的模型上。TaoToken 就是干这个的:它提供 Anthropic 兼容的 Base URL 和 Key,你把它填进 Claude Code 的配置里,工具就能正常对话和改代码。
先拿 Key。打开官网 https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ,注册后进控制台,在 API Keys 页面创建一个新 Key。这个 Key 只显示一次,复制下来存好,别截图发群里。控制台地址是 https://taotoken.net/console ,Key 管理在 https://taotoken.net/api-keys 。
拿到 Key 之后,你要理解 Claude Code 读的是哪几个环境变量。它主要认三个:
| 变量名 | 作用 | 示例值 |
|---|---|---|
| ANTHROPIC_BASE_URL | 请求发往哪个地址 | https://taotoken.net/api |
| ANTHROPIC_AUTH_TOKEN | 身份凭证 | 你刚创建的 Key |
| ANTHROPIC_MODEL | 默认使用的模型 ID | 按控制台可用列表填 |
这里有个坑要提前说:Base URL 填的是https://taotoken.net/api,不要自己在后面加/v1或/messages,Claude Code 会自己拼路径,你多加一段就会 404。这一点和很多 OpenAI 风格的客户端不一样,别凭经验想当然。
配置方式有两种。第一种是临时环境变量,适合先验证:
export ANTHROPIC_BASE_URL="https://taotoken.net/api" export ANTHROPIC_AUTH_TOKEN="sk-你的Key" export ANTHROPIC_MODEL="你的模型ID"Windows PowerShell 用$env:ANTHROPIC_BASE_URL="..."这种写法。缺点是关掉终端就没了,每次都要重设。
第二种是写进配置文件,长期生效。Claude Code 支持在用户目录下放 settings 文件,路径是~/.claude/settings.json(Windows 是C:\Users\你的用户名\.claude\settings.json)。内容长这样:
{ "env": { "ANTHROPIC_BASE_URL": "https://taotoken.net/api", "ANTHROPIC_AUTH_TOKEN": "sk-你的Key", "ANTHROPIC_MODEL": "你的模型ID" } }如果你同时用 CC Switch 这类多供应商切换工具,它的配置结构也类似,本质就是往环境变量里塞这三个值。CC Switch 里点右上角加号新建供应商,Base URL 填https://taotoken.net/api,Key 填你的,模型 ID 按需选,保存后点启用即可。三件套永远是:Base URL、Key、Model ID,缺一个都连不上。
模型 ID 从哪来?去模型对话页 https://taotoken.net/models 看当前可用的列表,或者直接问控制台。别自己编一个名字填进去,那样请求会返回模型不存在的错误。填完之后,下一节我们做一次真实请求验证。
3. 可复制配置:settings.json 与项目级初始化
上一节讲了配置原理,这一节给你能直接抄的完整片段,并说清楚每个字段为什么这么写。Claude Code 的配置分两层:用户级和项目级。用户级放~/.claude/settings.json,对所有项目生效;项目级放项目根目录的.claude/settings.json,只对当前仓库生效。日常开发建议用户级放通道信息,项目级放权限和忽略规则。
先看用户级完整配置:
{ "env": { "ANTHROPIC_BASE_URL": "https://taotoken.net/api", "ANTHROPIC_AUTH_TOKEN": "sk-替换成你的Key", "ANTHROPIC_MODEL": "替换成控制台的模型ID" }, "permissions": { "allow": [ "Read", "Edit", "Bash(git status)", "Bash(git diff)" ] } }permissions.allow是白名单,列出的操作 Claude Code 不用每次问你。我建议初期只放读和 git 查看类命令,改文件和跑构建先手动确认,等你摸清它的脾气再放宽。别一上来就Bash(*)全放开,那等于把终端交给它。
再看项目级配置,放在仓库根目录.claude/settings.json:
{ "permissions": { "deny": [ "Read(./.env)", "Read(./secrets/**)" ] } }deny优先级高于allow,用来挡住敏感文件。.env里常有数据库密码和第三方 Key,绝对不能让 AI 读进去再写进日志。这个规则我每个项目都会加,属于肌肉记忆。
如果你用 CC Switch 管理多个通道,它的配置文件通常在~/.cc-switch/config.json,结构是供应商数组,每个供应商带baseUrl、apiKey、model三个字段。切到 TaoToken 时确保baseUrl是https://taotoken.net/api,别带多余路径。切换后重启终端里的claude进程,环境变量才会重新加载。
配置写完,验证 JSON 语法别出错。一个多余的逗号就会让 Claude Code 静默忽略整个文件,然后你以为是通道坏了,其实是格式问题。可以用node -e "JSON.parse(require('fs').readFileSync('settings.json'))"快速校验,没报错就是合法 JSON。
还有一点:Key 不要提交进 Git。把.claude/settings.json里含 Key 的部分放用户级,项目级只放权限规则,这样团队协作时不会互相覆盖,也不会泄露凭证。如果你非要把 Key 放项目里,至少加进.gitignore。
配置齐了,下一节我们跑一次真实请求,看它到底能不能改代码。
4. 验证请求:一次真实的代码补全与结果确认
配置对不对,跑一次就知道。我们做一个最小验证:建一个空项目,让 Claude Code 写一个函数,再让它改一个 bug。整个过程你能看到请求是否成功、模型是否响应、文件是否被正确修改。
先建目录并初始化:
mkdir claude-demo && cd claude-demo git init npm init -y然后启动 Claude Code:
claude第一次运行会提示你授权,按提示确认即可。进入交互界面后,输入第一句:
创建一个 utils.js,导出一个函数 add(a, b),返回两数之和,并写一个简单的测试。如果通道正常,你会看到它开始输出思考过程,然后创建文件。等它停下,检查目录:
ls cat utils.js应该能看到add函数和测试代码。这一步成功,说明 Base URL、Key、Model ID 三件套全部生效。
接着验证“改代码”能力。故意在utils.js里埋个 bug,把return a + b改成return a - b,然后回到 Claude Code 输入:
utils.js 里的 add 函数结果不对,帮我定位并修复。它会读文件、指出减法写成了加法、然后改回来。你再用git diff看改动:
git diff utils.js能看到它精确地只改了那一行。这就是 Claude Code 和普通聊天机器人的区别:它直接操作你的工作区,而不是给你一段代码让你自己复制。
如果请求失败,终端会打印错误。常见的有401 Unauthorized,说明 Key 错了或没生效;model not found,说明模型 ID 填错;ECONNREFUSED或超时,说明 Base URL 不通。对照下一节的排查表处理。
验证通过后,你可以让它做更真实的任务,比如“给这个项目加一个 ESLint 配置并修复所有报错”。它会自己装依赖、改文件、跑命令。这时候permissions.allow里如果没放Bash(npm install),它会先问你,你确认后再执行。这个交互节奏建议保留,别全自动。
跑通一次之后,你就有了一个可复用的工作流:进项目、敲claude、描述任务、确认改动、git diff复查。下一节我们把常见报错一次性讲透。
5. 本篇常见错排查:401、local proxy failed 与 reading choices
配置阶段最容易卡在几个固定报错上,我把它们和真实原因对应起来,你照着查就行。
401 Unauthorized / invalid api key这是最高频的。原因通常是 Key 复制时带了空格、换行,或者用了别的平台的 Key。检查ANTHROPIC_AUTH_TOKEN的值,前后不能有引号外的空白。另外确认你填的是 TaoToken 控制台创建的 Key,不是其他服务的。如果刚创建就报 401,去控制台看 Key 是否被禁用或额度耗尽。
local proxy failed / connection refused这个报错说明 Claude Code 连不上你配的 Base URL。先确认ANTHROPIC_BASE_URL是https://taotoken.net/api,没有多余路径,也没有写成http。然后在终端直接测连通性:
curl -I https://taotoken.net/api能返回 HTTP 状态码就说明网络可达。如果 curl 也超时,检查本机网络或防火墙,别在 Claude Code 里反复重试。
reading choices / unexpected response format这个通常出现在通道返回了非 Anthropic 格式的响应时。原因可能是 Base URL 指向了 OpenAI 风格的端点,或者模型 ID 填了一个不兼容的模型。确认你用的是 Anthropic 兼容通道,模型 ID 从控制台可用列表里选。如果刚切换过供应商,重启claude进程让环境变量重新加载。
OAuth / login required 循环Claude Code 有时会尝试走官方登录流程。如果你已经配了ANTHROPIC_AUTH_TOKEN,它就不该再要 OAuth。出现循环一般是配置文件没被读到。检查~/.claude/settings.json路径是否正确,JSON 是否合法,以及是否有另一个环境变量覆盖了它。用echo $ANTHROPIC_BASE_URL确认当前生效的值。
模型不响应或一直转圈先看是不是模型 ID 写错。其次看请求是否被限流,控制台一般有调用记录。如果只是偶尔慢,可能是网络抖动,重试一次即可。持续不响应就换一个可用模型 ID 测试,排除是单个模型的问题。
改了配置不生效Claude Code 在启动时读环境变量,改完配置要退出重进。如果你用 CC Switch 切换,切换后也要重启终端会话。别在运行中的会话里改配置然后期待立刻生效。
排查的核心思路就一条:先确认三件套(Base URL、Key、Model ID)的值,再确认配置文件被正确加载,最后确认网络可达。90% 的问题出在前两步。把这几条对照完,基本都能自己解决。
6. 把 Claude Code 接进日常:从验证到长期使用
跑通验证只是起点,真正有价值的是把它变成日常习惯。我的做法是:每个项目根目录放一个.claude/settings.json管权限,用户级配置管通道,然后固定几个高频任务交给它。
第一个高频任务是“读代码回答问题”。新接手一个仓库,直接问“这个项目的入口在哪、数据流怎么走”,它读完文件给你梳理,比你自己翻快得多。第二个是“小步重构”,比如把回调改成 async/await,让它一次改一个文件,你git diff复查后再提交。第三个是“写测试”,给它一个函数,让它补单元测试,跑一遍看是否通过。
如果你长期做编码和 Agent 类任务,可以考虑 Coding Plan,地址是 https://taotoken.net/coding-plan ,适合需要稳定调用额度的场景。只是偶尔验证模型效果,用模型对话页 https://taotoken.net/models 就够了。接入文档在 https://taotoken.net/doc ,遇到配置细节可以对照。
最后提醒一句:无论 AI 多能干,提交权始终在你手里。每次让它改完,先git diff看一遍再git commit。这个习惯能帮你挡住 99% 的意外改动。环境搭好、通道配通、验证跑过,剩下的就是把它用进你真实的开发节奏里,让它处理重复劳动,你专注在真正需要判断的地方。