Claude Code
Claude Code 使用 OminiApi 时的常见问题
配置教程见 Claude Code 配置。
Claude Code 无法连接到 Anthropic 服务
装好 Claude Code 后第一次运行 claude,出现下面的报错,或者一直要求登录 Anthropic 账号:
Unable to connect to Anthropic services
Failed to connect to api.anthropic.com: ERR_BAD_REQUEST
Please check your internet connection and network settings.这是 Claude Code 的「首次安装引导」在尝试连官方服务。在用户目录的 .claude.json(注意是用户目录下的文件,不是 .claude 文件夹里)里加上 "hasCompletedOnboarding": true 跳过即可:
按 Win + R,输入 cmd 回车,运行:
powershell -Command "$f='%USERPROFILE%\.claude.json';$j=Get-Content $f|ConvertFrom-Json;$j|Add-Member -NotePropertyName 'hasCompletedOnboarding' -NotePropertyValue $true -Force;$j|ConvertTo-Json|Set-Content $f".claude.json 不存在的话,手动新建一个,内容写:
{
"hasCompletedOnboarding": true
}然后重新运行 claude。用 CC Switch 的话,也可以在它的设置里打开「跳过 Claude Code 初次安装确认」。
返回 401 invalid token
- 检查
ANTHROPIC_AUTH_TOKEN是否完整(sk-开头,47 位),前后没有空格; - 检查系统环境变量里是否还有旧的
ANTHROPIC_API_KEY/ANTHROPIC_AUTH_TOKEN,它们可能覆盖了配置文件; - 在控制台确认该密钥状态为「当前可用」,没有被撤销或轮换。
提示模型不存在或 No eligible upstream
model is not supported:模型名写错,或密钥的分组里没有这个模型。到 模型广场 核对;No eligible upstream supports the requested interface or model:这个模型不能通过 Claude Code 使用的 Messages 接口调用。GPT 系列请改用 Codex;- 检查
ANTHROPIC_DEFAULT_OPUS_MODEL/SONNET/HAIKU三项是不是都填了平台上有的模型名。没填的话,Claude Code 在起标题、压缩上下文时会请求它内置的默认模型名,可能在你的分组里不存在。
更多错误见 错误码。
明明选的是 Opus,账单里为什么出现别的模型
正常现象,不是配置错了,也不是被多扣钱。
Claude Code 会在后台做一些小事,比如给对话起标题(历史记录里显示的那一行)、把很长的聊天记录压缩一下。做这些事时它会换一个更便宜、更快的模型(Haiku 档),不会用你选的 Opus。另外,Claude Code 派生出的子任务 Agent(Subagent,例如内置的 Explore、general-purpose)可以在各自的配置里单独指定模型,账单里也会出现对应的调用记录。
Claude Desktop 新建对话时为什么会自动调用模型
同样是正常现象。Claude Desktop 在你新建对话、发出第一条消息后,会自动调用一个小模型给对话起标题。这是软件自带的功能,金额很小。在使用日志里看到一笔莫名的小额调用,大概率就是它。
如何在 VS Code Claude Code 插件中使用
见 Claude Code 配置 · VS Code 插件:先让终端里的 claude 能正常对话,再在配置目录的 config.json 里写上 "primaryApiKey": "OminiApi",重启 VS Code。
如何切换回 200K 上下文
在 settings.json 的 env 里加上(和现有的 ANTHROPIC_* 配置合并,不要覆盖 Key):
{
"env": {
"CLAUDE_CODE_DISABLE_1M_CONTEXT": "1"
}
}为什么要关闭 Git 状态收集
Claude Code 默认会在每次对话里自动收集当前仓库的 git 状态(git status、git diff 等),塞进系统提示词。
问题是 git 状态变化很频繁(新建文件、改代码、切分支都会变),而系统提示词是缓存的一部分。git 状态一变,缓存就失效,本轮对话要按全价重新计费。按量付费的话,在 env 里加上 "CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS": "1" 可以减少这类无效的缓存失效。想进一步提高缓存命中率,可以看 Claude Code 缓存优化代理。
常用命令
| 命令 | 说明 |
|---|---|
claude | 在当前目录启动交互式会话 |
claude "解释这个项目" | 启动并带上第一个问题 |
claude -p "解释这个函数" | 一次性问答,输出结果后直接退出,适合脚本 / CI |
cat logs.txt | claude -p "帮我总结错误" | 把文件或命令输出通过管道交给 Claude |
claude -c | 继续当前目录最近一次会话 |
claude -r 会话ID "继续完成" | 按会话 ID 恢复指定会话 |
claude --model claude-sonnet-5-5 | 指定本次会话使用的模型 |
claude --add-dir ../apps ../lib | 额外添加可访问的代码目录 |
claude --append-system-prompt "始终使用 TypeScript" | 在默认系统提示后追加规则 |
claude --verbose | 显示详细日志,便于调试 |
claude mcp | 管理 MCP 服务器 |
claude update | 更新 Claude Code 到最新版 |
claude --dangerously-skip-permissions | 跳过权限确认自动执行(高风险,只在完全信任的环境使用) |