API 密钥账号
本页由英文机器翻译而来,欢迎指正。 在 GitHub 上编辑此页
API 密钥账号用 API 密钥而不是 Claude 订阅登录来启动 Claude Code:可以是 Anthropic 的 API,也可以是使用相同 Messages 格式的接口,例如 LiteLLM 或 OpenRouter 网关。ccam 不保存密钥。每次启动该账号时,它都会从环境变量或某个命令(例如密码管理器)中读取密钥,并只把它交给那个 Claude Code 进程。
用法
ccam add api --api --key-from env:ANTHROPIC_KEY_WORK
ccam add gw --api --base-url https://llm.example.com --auth bearer \
--model claude-sonnet-5-5 --key-from 'command:pass show llm/gateway-key'
ccam add mac --api --key-from 'command:security find-generic-password -s anthropic-api -w'
ccam gw -p "summarise the open issues"
ccam list$ ccam list
# Name Shortcut Email Shared Last used
* 1 personal - me@example.com mcp settings md ext 2h ago
2 gw - (API: llm.example.com) mcp settings md ext -API 密钥账号和其他账号一样共享设置、CLAUDE.md、扩展和 MCP 服务器,也可以配合快捷命令、ccam folder 和 ccam ext 使用。
选项
| 选项 | 作用 | 默认值 |
|---|---|---|
--api |
添加 API 密钥账号,而不是登录 | 关闭 |
--key-from env:NAME |
从环境变量 NAME 读取密钥 |
|
--key-from command:COMMAND |
运行 COMMAND(用 sh -c,在 Windows 上用 cmd /C),使用它输出的第一行 |
|
--base-url <url> |
接口地址(ANTHROPIC_BASE_URL) |
Anthropic 的 API |
--auth api-key|bearer |
把密钥作为 ANTHROPIC_API_KEY(x-api-key)发送,或作为 ANTHROPIC_AUTH_TOKEN(Authorization: Bearer,网关通常需要这种)发送 |
api-key |
--model <model> |
模型(ANTHROPIC_MODEL) |
Claude Code 的默认值 |
这些设置保存在 config.toml 中:
[[profile]]
name = 'gw'
slot = 2
[profile.api]
base_url = 'https://llm.example.com'
key_from = 'command:pass show llm/gateway-key'
auth = 'bearer'
model = 'claude-sonnet-5-5'工作原理
每次启动该账号时,在常规检查之后、Claude Code 启动之前:
- ccam 读取密钥:
env:从环境中读取,command:通过运行该命令读取,限时 30 秒。命令可以在终端上询问密码,它的错误输出也会显示在终端上。如果密钥为空,启动会停止,并显示一条说明预期在哪里找到密钥的消息。 - 它会删除所有继承来的、决定 Claude Code 如何登录或使用哪个提供商的变量:
ANTHROPIC_API_KEY、ANTHROPIC_AUTH_TOKEN、CLAUDE_CODE_OAUTH_TOKEN、ANTHROPIC_BASE_URL、ANTHROPIC_MODEL、CLAUDE_CODE_USE_BEDROCK、CLAUDE_CODE_USE_VERTEX和CLAUDE_CODE_USE_FOUNDRY。你在 shell 中为其他用途设置的密钥无法到达这个账号,订阅登录也无法压过它的密钥。 - 如果给出了
ANTHROPIC_BASE_URL和ANTHROPIC_MODEL,就设置它们,并把密钥设置为ANTHROPIC_API_KEY或ANTHROPIC_AUTH_TOKEN。
使用订阅登录的账号和以前一样,保留它们继承的环境。在交互式会话中,Claude Code 可能会询问一次是否使用它在环境中找到的密钥。
安全性与边界情况
- 密钥从不写入
config.toml、缓存或日志,ccam --dry-run gw也不会读取它:试运行不会运行command:来源。 ccam add --api会立即检查env:来源,如果该变量为空就发出警告;command:来源在启动时才第一次运行。- API 密钥账号没有登录,因此
ccam login和ccam logout会拒绝它。ccam doctor会显示它的接口地址和密钥来源,并在env:变量为空时发出警告。 ccam usage对它显示API。ccam next --auto、--fallback和ccam pick只在订阅账号中选择,因为 API 密钥没有可供比较的 5 小时或每周限制。- 带有
env块或apiKeyHelper的共享settings.json会作用于组中的每个账号,包括 API 密钥账号。请不要把提供商设置放进共享设置。