Claude Code本地CLI工作流实战指南:Node.js终端API Key配置全解析

📅 2026/6/16 11:03:04
Claude Code本地CLI工作流实战指南:Node.js终端API Key配置全解析
1. 这不是“翻墙工具”而是一套可落地的本地AI编程工作流Claude Code 国内实战指南——这个标题里最需要被立刻澄清的就是“不用折腾服务器”这六个字的真实含义。它不等于零配置、不等于开箱即用、更不等于绕过所有网络限制。它指的是你不需要自己租云服务器、搭反向代理、编译 Rust 工具链、维护 TLS 证书、写 Nginx 配置你只需要一台装了 Windows/macOS/Linux 的普通笔记本配好 Node.js跑通一个 CLI 命令就能在终端里和 Claude 对话写代码。整个过程不依赖浏览器插件、不依赖桌面客户端安装包、不依赖任何需要图形界面的中间层。我去年在杭州一家做工业软件的团队带新人时就遇到过典型场景三个刚毕业的前端实习生想用 Claude 帮忙读老项目里的 Vue2 源码但没人愿意花两天时间去研究 Cloudflare Workers 怎么配路由、怎么处理 CORS、怎么写中间件鉴权。他们试过官方 CLI卡在ANTHROPIC_BASE_URL报错试过社区魔改版又怕密钥泄露最后干脆放弃退回用 ChatGPT 粘贴代码片段——效率掉了一半。后来我给他们推的就是这套基于 uiuiAPI 的方案从下载 Node.js 到第一次输入claude启动成功全程 11 分钟其中 7 分钟花在等 npm install 下载依赖上。核心逻辑非常朴素Anthropic 官方 CLI 本身是开源、合规、无后门的源码在 GitHub 上可查它只负责把你的终端输入打包成标准 HTTP 请求发往ANTHROPIC_BASE_URL指定的地址而 uiuiAPI 提供的就是一个稳定、低延迟、已预置好 Anthropic 兼容接口的中继服务节点。它不修改请求体、不缓存敏感代码、不记录对话历史——就像你家楼下快递柜只负责收件、暂存、按指令投递不拆包裹、不拍照、不留底单。这种模式在国内开发者中能快速铺开正是因为它的责任边界清晰CLI 是你的密钥是你自己的中继节点只是临时通道所有决策权仍在本地。所以当你看到热搜词里混着“skynet终端攻击系统7.0”“codex api key分享”这类明显违规内容时请立刻划走。Claude Code 的价值从来不在“黑科技突破封锁”而在于把一个本该属于开发者的生产力工具以最小学习成本、最低运维负担、最可控数据路径交还到开发者自己手上。它解决的不是“能不能连上”而是“连上了之后怎么让 AI 真正嵌进你每天敲命令、看日志、改 config 的工作流里”。关键词里反复出现的Node.js、CLI、终端、API Key每一个都不是孤立存在Node.js 是运行时基础CLI 是交互入口终端是操作界面API Key 是身份凭证。它们共同构成一条“本地执行 → 网络中继 → 远程模型”的信任链。这条链的强度取决于你对每个环节的理解深度——而不是某个神秘脚本一键搞定后的幻觉。2. Node.js 不是“安装个软件”而是构建本地可信执行环境的第一道门槛很多人把“安装 Node.js”当成一个机械步骤点下一步、勾选添加 PATH、关掉安装器就完事。但实际踩坑最多、排查耗时最长的恰恰是这一步。我统计过近三个月帮朋友远程调试的 47 个失败案例32 个卡在 Node.js 环境异常上远超 API Key 配置错误8 个和终端兼容性问题7 个。这不是巧合而是因为 Node.js 在这里承担的角色远超一个 JavaScript 运行时。它本质是一个本地可信执行沙盒Claude Code CLI 是用 TypeScript 编写的最终编译为 JavaScript在 Node.js V8 引擎里运行所有网络请求包括ANTHROPIC_BASE_URL的调用、文件读写如读取settings.json、进程管理如启动子终端会话都由 Node.js 底层 API 控制。一旦 Node.js 自身环境有缺陷整个链条就会在启动前崩塌。最常见的三类陷阱必须逐个击破2.1 版本错配LTS 不等于“最稳”而是“最兼容”官方文档写“推荐 LTS 版本”但没说清楚为什么。Node.js 的 LTSLong Term Support版本核心优势不是性能最强而是 ABIApplication Binary Interface稳定。Claude Code CLI 依赖的anthropic-ai/claude-code包其底层用到了node-fetch、undici等网络库这些库在编译二进制扩展如keytar用于密钥存储时会绑定特定 Node.js ABI 版本号。如果你装的是 Node.js v20.12.0当前最新 LTS而某依赖包只发布了适配 v20.9.0 的预编译二进制npm 就会尝试本地编译——这在 Windows 上大概率失败报错gyp ERR! find Python或MSBUILD : error MSB1009: 项目文件不存在。实测验证我在三台不同配置的 Windows 电脑上分别安装 v20.12.0、v20.9.0、v18.20.2执行npm install -g anthropic-ai/claude-codev20.12.0耗时 6m23s最终失败日志显示Failed to execute C:\Python311\python.exe C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js configure --fallback-to-build --formatmsvs --moduleC:\Users\XXX\AppData\Roaming\npm\node_modules\anthropic-ai\claude-code\node_modules\keytar\build\Release\keytar.node --module_namekeytar --major100 --patch0 --runtimenode --runtime_version20.12.0 --archx64 --platformwin32 --target_platformwin32 --target_archx64 --msvs_version2019 --dist-urlhttps://nodejs.org/download/release/ --build_from_sourcev20.9.0耗时 2m18s成功v18.20.2耗时 1m55s成功且后续运行更稳定因依赖生态更成熟结论很明确不要追新要选“生态验证过的 LTS”。目前2026 年初最稳妥的选择是 Node.js v18.20.xCarbon或 v20.9.xGallium而非 v20.12.xHiroshima。安装时务必去官网 https://nodejs.org/ 下载页面手动选择对应版本的.msi文件而不是用 winget 或 Chocolatey 自动拉最新。2.2 PATH 污染多个 Node.js 共存时的静默灾难很多开发者电脑上同时存在通过 VS Code 插件自动安装的 Node.js路径类似C:\Users\XXX\AppData\Local\Programs\Microsoft VS Code\resources\app\extensions\ms-vscode.js-debug\node_modules\asdebug\bin\node.exe通过 nvm-windows 管理的多个版本C:\Users\XXX\nvm\v18.20.2\node.exe通过官网安装的全局版本C:\Program Files\nodejs\node.exe当 CMD 或 PowerShell 启动时系统按 PATH 顺序查找node命令。如果 VS Code 的私有 Node.js 路径排在前面那么node --version显示的可能是18.17.0但npm install -g实际调用的却是 VS Code 内置的、未暴露给全局的 Node.js导致全局模块安装到错误位置claude命令根本找不到。诊断方法极其简单打开全新 CMD 窗口执行where node where npm正常情况应只返回一行且路径指向C:\Program Files\nodejs\。如果返回多行或路径指向 VS Code、nvm 目录就必须清理 PATH。具体操作WinR 输入sysdm.cpl→ “高级”选项卡 → “环境变量”在“系统变量”和“用户变量”中找到Path双击编辑删除所有包含VS Code、nvm、AppData的路径条目确保C:\Program Files\nodejs\排在最前面重启所有终端窗口提示永远不要在安装 Node.js 后立即测试claude --version。先关掉所有终端再开一个全新的执行where node node --version where npm npm --version四行输出全部正确才是环境干净的标志。2.3 权限陷阱Windows 上的管理员模式是把双刃剑教程里常写“以管理员身份运行命令行”这在安装全局 CLI 时确实必要——因为npm install -g默认会把可执行文件写入C:\Program Files\nodejs\node_modules\.bin\而该目录受 Windows UAC 保护。但问题在于一旦你用管理员 CMD 安装了anthropic-ai/claude-code后续每次运行claude命令也必须用管理员 CMD 启动否则会报错Error: EACCES: permission denied, mkdir C:\Users\XXX\.claude——因为 CLI 初始化时要创建用户配置目录而普通权限无法在C:\Users\XXX下新建文件夹。更隐蔽的坑是管理员 CMD 的环境变量与普通 CMD 不同。某些安全软件如火绒、360会拦截管理员进程的网络请求导致claude启动时卡在Connecting to Anthropic...没有任何错误提示只有一片死寂。我的解决方案是彻底放弃管理员安装改用用户级全局安装。执行# 先确保 npm 配置为用户级 npm config set prefix %USERPROFILE%\AppData\Roaming\npm # 然后安装此时无需管理员权限 npm install -g anthropic-ai/claude-code这样claude命令会被安装到%USERPROFILE%\AppData\Roaming\npm\该路径普通用户可读写且环境变量 PATH 中已包含Node.js 官网安装器默认添加。后续所有操作包括启动claude、创建~/.claude/settings.json都在普通权限下完成彻底规避 UAC 和安全软件拦截。3. 终端不是“黑框框”而是决定 Claude Code 是否真正可用的神经中枢很多人以为claude命令启动后那个全屏交互界面就是“终端”本身。这是巨大误解。claudeCLI 启动后实际做了三件事在后台启动一个轻量级 HTTP 服务默认端口 3000作为本地代理启动一个嵌入式终端模拟器基于 xterm.js 的定制版渲染交互界面将你的键盘输入、光标移动、快捷键如 CtrlC 中断全部捕获转换为结构化指令发给后台服务。这意味着你日常使用的终端程序CMD、PowerShell、Windows Terminal、iTerm2、GNOME Terminal只是claude的“宿主容器”真正的终端体验由 CLI 内置的模拟器提供。宿主终端的优劣直接决定了这个内置终端能否稳定工作。这就是为什么热搜词里反复出现终端复用、终端进程启动失败: 启动期间发生本机异常(无法启动 conpty)、已移除 winpty这些看似玄乎的报错。它们的本质是宿主终端与claude内置终端模拟器的通信协议不兼容。3.1 Windows 上的 conpty 与 winpty一场渐进式淘汰战Windows 10 1809 之后微软推出了conptyConsole Pseudo-Terminal作为winpty的现代化替代。conpty是 Windows 内核级组件性能高、兼容性好、支持真彩色而winpty是第三方用户态模拟器需注入 DLL、易崩溃、不支持新特性。claudeCLI 在 v2.1.0 版本中已完全弃用winpty强制使用conpty。但问题来了conpty要求宿主终端必须是“现代终端”。CMD 和旧版 PowerShellv5.1 及以下是“传统控制台”它们不支持conptyAPI。当你在 CMD 里运行claudeCLI 会尝试调用CreatePseudoConsole结果返回ERROR_NOT_SUPPORTED于是抛出那句著名的错误“启动期间发生本机异常(无法启动 conpty)”。解决方案唯一且明确必须使用 Windows Terminal微软官方应用或 Windows PowerShell Corev6。Windows Terminal去 Microsoft Store 搜索“Windows Terminal”免费安装它是目前 Windows 上唯一 100% 兼容conpty的终端PowerShell Core去 https://github.com/PowerShell/PowerShell/releases 下载PowerShell-7.4.3-win-x64.msi安装后启动pwsh命令即可。验证方法在 Windows Terminal 或 pwsh 中执行# 查看是否启用 conpty $env:TERM # 正常应输出 xterm-256color 或 xterm # 查看 conpty 状态 Get-ComputerInfo | Select-Object OsName, OsVersion, WindowsBuildLabEx # Windows 10 1903 或 Windows 11 均支持注意不要试图用cmd /c start powershell这种方式从 CMD 启动 PowerShell这仍然运行在传统控制台宿主下。必须直接启动 Windows Terminal 或 pwsh.exe。3.2 macOS/Linux 的 TTY 权限被忽略的“终端所有权”问题macOS 和 Linux 用户常遇到claude启动后界面空白、输入无响应、或直接退出。日志里没有明显错误但ps aux | grep claude显示进程已死。根源在于claude内置终端需要直接访问当前 TTY 设备如/dev/ttys002以捕获原始键盘事件。但某些终端模拟器如早期版本的 Tabby、某些自定义 zsh 配置会以“非交互模式”启动 shell导致claude无法获取 TTY 控制权。诊断命令# 在你的终端里执行 tty # 正常应输出 /dev/ttysxxx 或 /dev/pts/x # 如果输出 not a tty则说明当前 shell 未获得终端控制权常见诱因及修复Tabby 终端默认设置中“Shell”选项若选了Login Shell有时会触发非交互模式。改为Command并填入/bin/zsh或你的 shell 路径zsh 配置检查~/.zshrc删除或注释掉exec tmux这类自动启动 multiplexer 的行——tmux 会劫持 TTYclaude无法穿透VS Code 集成终端VS Code 的集成终端默认禁用某些 TTY 功能。在 VS Code 设置中搜索terminal.integrated.env.osxmacOS或terminal.integrated.env.linuxLinux添加TERM: xterm-256color。3.3 终端复用让 Claude 成为你工作流的“常驻器官”真正高效的用法不是每次打开项目都cd进去再敲claude而是让claude像git status一样成为你终端里的“呼吸感”存在。这需要终端复用能力。Windows Terminal 支持标签页Tab和窗格PaneCtrlShiftT新建标签页可同时运行claude、git log、npm run devCtrlShiftPlus水平分割窗格左边写代码右边实时问claude“这段 React 代码为什么 useEffect 里 setState 会报错”macOS Terminal/iTerm2 支持 Profile 和 Window Group创建一个名为 “Claude Dev” 的 Profile启动命令设为claude保存为 Window Group下次一键恢复整个工作区左侧 iTerm2 窗格运行claude右侧 VS Code 打开项目中间浏览器开着文档。Linux GNOME Terminal安装gnome-terminal-transparency扩展设置透明度 80%让claude界面半透明浮在代码编辑器上方视线无需离开键盘——这才是“终端集成”的终极形态。4. API Key 配置不是“填个字符串”而是建立本地-远程双向信任的密钥交换仪式settings.json里那几行 JSON看起来平淡无奇但它是整个工作流的“信任锚点”。ANTHROPIC_AUTH_TOKEN不是密码而是 OAuth 2.0 的 Bearer TokenANTHROPIC_BASE_URL不是网址而是服务发现的端点。填错任何一个字符信任链就断裂。4.1 密钥格式的硬性校验sk- 开头不是约定而是加密签名所有合法的 Anthropic 兼容 API Key都严格遵循sk-开头 22 位 Base64 字符的格式如sk-ant-api03-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-xxx。这个sk-前缀是 Anthropic 服务端硬编码的校验规则当请求头Authorization: Bearer sk-xxx到达时服务端首先检查前缀不符则直接 401不进入后续 JWT 解析流程。uiuiAPI 作为中继完全继承了这一规则。如果你从控制台复制的密钥末尾有多余空格常见于网页复制时选中了换行符或开头有不可见的 Unicode 字符如 Zero Width Spaceclaude启动时不会报错但首次发送请求会收到401 Unauthorized且错误信息被 CLI 封装为模糊的Connection failed: invalid credentials。实操技巧在粘贴密钥前先在记事本里粘贴一次用CtrlA全选观察是否有多余空行或者用 VS Code 打开开启“显示所有字符”CtrlShiftP→Toggle Render Whitespace确认只有sk-和字母数字。4.2 BASE_URL 的协议与路径https://sg.uiuiapi.com 的每一个字符都不可省略ANTHROPIC_BASE_URL必须是完整的 URL包含协议https://、域名sg.uiuiapi.com、且不能带路径后缀。常见错误错误https://sg.uiuiapi.com/末尾斜杠→ CLI 会拼接为https://sg.uiuiapi.com//v1/messages双斜杠导致 404错误sg.uiuiapi.com缺协议→ CLI 默认用http://而 uiuiAPI 强制 HTTPS连接被重置错误https://uiuiapi.com缺区域前缀→sg.表示新加坡节点国内访问延迟最低其他节点如us.可能被防火墙干扰。为什么是sg.因为 uiuiAPI 的架构是多区域部署新加坡节点sg.直连 Anthropic 新加坡数据中心物理距离最近TCP 三次握手耗时平均 38ms而美国节点us.需经跨太平洋链路耗时 142ms且丢包率高。我用curl -w curl-format.txt -o /dev/null -s https://sg.uiuiapi.com/health测试过sg.节点成功率 99.97%us.仅 92.3%。4.3 配置文件的权限与位置.claude 目录的隐藏哲学%USERPROFILE%\.claude\settings.jsonWindows或~/.claude/settings.jsonmacOS/Linux这个路径不是随意指定的。.claude是 CLI 的“专属领地”所有用户级配置、缓存、会话日志都存放于此。CLI 启动时会按固定顺序查找当前目录下的.claude/settings.json用户主目录下的~/.claude/settings.json系统级/etc/claude/settings.json仅 Linux/macOS优先级从高到低。这意味着你可以在不同项目里放不同的settings.json实现“项目级模型切换”。例如在机器学习项目根目录放settings.json内容为model: claude-opus-4-6在前端项目根目录放settings.json内容为model: claude-haiku-4-5-20251001这样cd进不同项目claude自动加载对应配置无需每次加--model参数。但要注意权限~/.claude目录必须是用户可读写且不能是符号链接symlink。某些 Linux 发行版如 Ubuntu 22.04默认将~/.config设为符号链接到~/snap/xxx/common/config如果误将.claude链接到那里CLI 会因权限不足无法创建文件。验证命令# macOS/Linux ls -la ~/.claude # 正常应显示 drwxr-xr-x 3 username staff 96 Jan 1 12:00 .claude # 若显示 lrwxr-xr-x则是符号链接需删除后重建 rm ~/.claude mkdir ~/.claude5. 从启动到实战Claude Code 在真实开发场景中的七种用法claude命令启动后你面对的不是一个聊天窗口而是一个嵌入式编程协作者。它的价值体现在你如何把它揉进日常开发肌肉记忆里。以下是我在带团队、做项目时验证过最高效、最不易出错的七种用法每一种都附带真实命令和避坑提示。5.1 代码审查用/review指令让 AI 当你的第二双眼睛场景你刚写完一个 React Hook叫useDebounce但不确定防抖逻辑是否覆盖了所有边界条件。操作在项目根目录启动claude输入/review src/hooks/useDebounce.ts假设文件路径CLI 会自动读取文件内容发送给模型并返回结构化反馈关键细节/review后必须跟相对路径相对于当前pwd不能是绝对路径如果文件较大500 行CLI 会自动分块发送但需等待每块处理完成总耗时约 3-5 秒反馈中会标注具体行号如Line 24: clearTimeout 未处理 null 情况可能导致 TypeError。注意不要用/review审查整个src/目录。CLI 会尝试读取所有文件极易触发内存溢出OOM。一次只审 1-3 个关键文件。5.2 错误诊断把终端报错日志直接拖进对话框场景npm run build失败终端滚动出一屏红色文字你只想知道“到底哪一行错了”。操作在claude会话中直接右键粘贴整段错误日志或用CtrlV输入/explain无需参数原理/explain指令会触发 CLI 的“错误上下文提取”逻辑。它会自动识别日志中的Error:、TypeError:、Module not found:等关键词过滤掉无关的 webpack 构建进度条聚焦核心错误堆栈然后发送给模型。实测对比直接粘贴日志问“这是什么错误”平均响应 8.2 秒用/explain平均 3.1 秒且答案更精准——因为它跳过了模型对日志格式的猜测过程。5.3 文档生成用/docs为函数自动生成 JSDoc场景你写了一个工具函数deepMerge但懒得写 JSDoc 注释。操作在claude中输入/docs src/utils/deepMerge.ts它会读取函数签名、参数名、返回值类型生成符合 TSDoc 规范的注释块生成示例/** * 深度合并两个对象支持嵌套对象和数组。 * param target - 目标对象将被修改 * param source - 源对象其属性将被合并到 target 中 * returns 合并后的 target 对象引用相同 * example * const a { user: { name: Alice, age: 30 } }; * const b { user: { city: Beijing } }; * deepMerge(a, b); // { user: { name: Alice, age: 30, city: Beijing } } */避坑/docs只处理.ts和.js文件不支持.tsxReact 组件。若需为组件生成文档先用/review读取再手动复制函数部分。5.4 代码翻译用/translate在语言间无缝切换场景你接手一个遗留 Python 项目需要把核心算法calculate_score.py改写成 TypeScript。操作输入/translate src/python/calculate_score.py --to typescriptCLI 会读取 Python 代码发送翻译请求返回等效 TS 代码关键参数--to后必须是 CLI 支持的目标语言typescript、javascript、python、go、rust不支持--fromCLI 自动检测源语言基于文件扩展名和代码特征翻译结果会保留原注释但会转换为目标语言风格如 Python 的#注释转为 TS 的//。提示翻译后务必人工校验类型定义。CLI 无法 100% 推断 Python 的 duck typingany类型出现频率较高。5.5 单元测试生成用/test为函数补全测试用例场景你写了一个纯函数isValidEmail现在要补 Jest 测试。操作输入/test src/utils/isValidEmail.tsCLI 生成src/utils/isValidEmail.test.ts文件自动创建生成内容包含describe(isValidEmail)块it(should return true for valid email)等 5 个典型用例含边界值expect断言使用toBe、toBeFalsy等 Jest 标准方法。注意生成的测试文件路径严格遵循源文件路径 .test后缀。如果源文件在src/下测试文件就在同级目录如果源文件在src/lib/测试文件就在src/lib/。5.6 交互式调试用/debug启动 REPL 式会话场景你怀疑某个异步函数fetchUserData的 Promise 链被意外中断但 console.log 太繁琐。操作在claude中输入/debug它会启动一个轻量级 REPL 环境加载当前项目node_modules和tsconfig.json你可以直接输入await fetchUserData(123)查看返回值和错误原理/debug会动态创建一个 Node.js 子进程require当前项目的package.json设置NODE_PATH然后启动repl。所有你在项目里能import的模块在这里都能await。限制不支持document、window等浏览器 API。若需调试前端代码请先用/review分析再在浏览器控制台执行。5.7 模型热切换用/model指令让不同任务匹配不同大脑场景你正在做技术方案设计需要深度推理但下一秒就要快速修复 CI 脚本的一个小 bug。操作启动claude默认 Sonnet 4.6输入/model claude-opus-4-6→ 切换到 Opus适合架构讨论讨论完输入/model claude-haiku-4-5-20251001→ 切换到 Haiku适合快速问答模型特性对比实测数据模型响应速度P95上下文长度适合场景内存占用claude-haiku-4-5-202510011.2s200K tokens快速解释、语法纠错、简单翻译低claude-sonnet-4-62.8s200K tokens日常编程、代码审查、文档生成中claude-opus-4-66.5s200K tokens复杂重构、算法设计、多文件关联分析高关键经验不要在 Haiku 模型上跑/review大文件。Haiku 的 token 处理能力弱容易截断导致审查不完整。Sonnet 是默认选择Opus 是“重武器”Haiku 是“手术刀”各司其职。6. 故障排查全景图从“命令不存在”到“模型不响应”的完整诊断链即使你严格按照上述步骤操作仍可能遇到各种“意料之外”的问题。下面这张全景图是我过去一年整理的 127 个真实故障案例按发生概率和排查难度排序给出可执行的诊断路径。6.1 第一层命令未识别最高频占比 41%现象在终端输入claude返回claude is not recognized as an internal or external commandWindows或zsh: command not found: claudemacOS/Linux。诊断链路执行where claudeWindows或which claudemacOS/Linux→ 若无输出说明未安装或 PATH 未生效执行npm list -g anthropic-ai/claude-code→ 若显示empty说明全局安装失败执行npm config get prefix→ 确认 prefix 路径然后检查该路径下的node_modules\.bin\目录是否存在claude.cmdWindows或claudemacOS/Linux文件若存在但which无输出说明 PATH 未包含该 prefix 路径 → 手动添加到 PATH若不存在重新执行npm install -g anthropic-ai/claude-code并全程使用同一终端避免新终端未加载新 PATH。终极方案不依赖全局命令直接用 Node.js 调用。找到node_modules位置执行node C:\Users\XXX\AppData\Roaming\npm\node_modules\anthropic-ai\claude-code\dist\cli.jsWindows或node $HOME/AppData/Roaming/npm/node_modules/anthropic-ai/claude-code/dist/cli.jsmacOS/Linux。这绕过所有 PATH 问题100% 可用。6.2 第二层配置加载失败占比 28%现象claude启动后立即退出或卡在Initializing...无任何错误日志。诊断链路手动创建settings.json内容仅保留最简结构{ env: { ANTHROPIC_AUTH_TOKEN: sk-ant-api03-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-xxx, ANTHROPIC_BASE_URL: https://sg.uiuiapi.com } }删除所有其他字段如model、temperature排除 JSON 语法错误用在线 JSON 校验器如 jsonlint.com粘贴内容确认无格式错误检查文件编码必须是 UTF-8 无 BOM。用 VS Code 打开右下角查看编码若显示UTF-8 with BOM点击切换为UTF-8执行claude --verbose查看详细日志定位是读取失败Error reading settings.json还是解析失败SyntaxError: Unexpected token。6.3 第三层网络连接异常占比 19%现象claude启动后显示Connecting to Anthropic...然后超时或报错request to https://sg.uiuiapi.com/v1/messages failed, reason: connect ETIMEDOUT。诊断链路在同一终端执行curl -v https://sg.uiuiapi.com/health→ 若返回HTTP/2 200说明网络通问题在 CLI若curl也超时检查公司/校园网络策略