命令字典
Slash 命令、CLI 子命令、Hook 事件、启动参数的字典与演进史。
Slash 命令、CLI 子命令、Hook 事件、启动参数的字典与演进史。
从 Anthropic 账户登出
claude auth logoutclaude auth logoutclaude auth logout 是 Claude Code CLI 提供的身份验证子命令,在 shell 中直接执行(不需要进入 REPL 交互会话),用于清除当前设备上保存的所有 Anthropic 账户认证凭据。
执行后,Claude Code 会从操作系统安全存储(macOS Keychain)或凭据文件(Linux / Windows)中删除 OAuth token,使当前会话立即失效。官方文档将其描述为操作 .credentials.json 凭据文件,即清除认证状态。
| 属性 | 说明 |
|---|---|
| 命令类型 | CLI shell 子命令(在 terminal 中运行,非 REPL 内部) |
| 最低版本 | 无单独版本要求,随 Claude Code 安装附带 |
| 支持平台 | macOS、Linux、Windows(WSL2 也适用) |
| 订阅要求 | 无;登出本身不需要有效订阅 |
在任意 terminal 中运行:
claude auth logout
执行后立即清除本地凭据,终端会输出确认信息并返回提示符。无需先打开 Claude Code 交互会话。
如果你已经在 Claude Code 的交互提示符中,可以用等效的 slash 命令:
/logout
官方文档将 /logout 记录为交互会话内的退出命令(在 Claude Code 提示符中输入 /logout)。
登出后重新以订阅账户登录:
claude auth login
或直接运行 claude(首次或登出后启动时会自动触发认证流程):
claude
浏览器将自动打开 OAuth 授权页。若浏览器未自动打开(WSL2 / SSH 环境),按 c 复制登录 URL 后手动粘贴到浏览器。
claude auth logout # 清除旧账户凭据
claude auth login # 用新账户重新认证
claude auth status # 验证当前认证状态
claude auth logout && claude auth login
这是社区最常用的"清除并重连"套路,可解决大多数认证相关错误。
claude auth logout 实际操作的是以下位置:
| 平台 | 存储位置 | 备注 |
|---|---|---|
| macOS | 系统 Keychain(加密) | 由 macOS 安全子系统管理 |
| Linux | ~/.claude/.credentials.json(权限 0600) | 仅当前用户可读写 |
| Windows | %USERPROFILE%\.claude\.credentials.json | 继承用户目录访问控制 |
| 自定义路径 | $CLAUDE_CONFIG_DIR/.credentials.json | 设置 CLAUDE_CONFIG_DIR 后生效(Linux/Windows) |
官方建议:不要手动编辑 .credentials.json。登录/登出统一通过 claude auth login / claude auth logout 或 /login / /logout 管理。如需将请求路由到自定义 API 端点,应设置 ANTHROPIC_BASE_URL 环境变量,而非修改凭据文件。
| 变量 | 作用 |
|---|---|
CLAUDE_CONFIG_DIR | 覆盖凭据文件目录(Linux/Windows) |
ANTHROPIC_API_KEY | 直接提供 API Key,优先级高于 OAuth 凭据 |
ANTHROPIC_AUTH_TOKEN | Bearer token 形式传递,用于 LLM 网关/代理场景 |
CLAUDE_CODE_OAUTH_TOKEN | 长期 OAuth token,由 claude setup-token 生成,适合 CI/CD |
CLAUDE_CODE_API_KEY_HELPER_TTL_MS | 自定义 apiKeyHelper 脚本的 token 刷新间隔(毫秒) |
apiKeyHelper 自定义凭据脚本在 settings.json 中配置 apiKeyHelper,可让 Claude Code 调用外部脚本动态获取 API key(如从 Vault 取短期 token)。这类场景下 claude auth logout 只清除 OAuth 凭据,不影响 apiKeyHelper 的行为。
{
"apiKeyHelper": "/path/to/your/get-key.sh"
}
在无法交互式浏览器登录的环境(容器、CI 流水线),不使用 claude auth login/logout,而用长期 token:
claude setup-token # 交互式生成一年期 OAuth token
export CLAUDE_CODE_OAUTH_TOKEN=your-token
此 token 可在 CI 中通过 secret 注入,无需浏览器。
| 约束 | 说明 |
|---|---|
| 清除本地凭据 | 删除当前设备上存储的 OAuth token(官方文档未说明是否同步吊销服务端 session) |
未提供 --all 跨实例登出 | 当前文档未记录一键登出所有设备/实例的 flag;GitHub issue #13076(现已关闭)曾请求 claude logout --all 跨实例登出 |
| 仅作用于 OAuth 凭据 | 环境变量 ANTHROPIC_API_KEY、ANTHROPIC_AUTH_TOKEN 和 apiKeyHelper 不受影响,需单独 unset |
| Bare 模式不读取 OAuth token | 使用 --bare 标志的脚本必须用 ANTHROPIC_API_KEY 或 apiKeyHelper 认证 |
| Cloud provider 凭据不受影响 | Bedrock / Vertex / Foundry 通过环境变量配置,登出不清除这些变量 |
| Web 版不适用 | Claude Code on the Web 始终使用订阅凭据,无需也无法 CLI 登出 |
| 命令 | 执行方式 | 作用 |
|---|---|---|
claude auth logout | Shell CLI | 清除本地 OAuth 凭据 |
/logout | REPL 内部 slash 命令 | 在交互会话内退出登录,需先进入交互会话 |
claude auth login | Shell CLI | 触发浏览器 OAuth 认证或账户切换 |
claude auth status | Shell CLI | 显示当前认证方式、账号、订阅计划 |
claude setup-token | Shell CLI | 生成一年期 CLAUDE_CODE_OAUTH_TOKEN,供 CI/CD 使用 |
unset ANTHROPIC_API_KEY | Shell 内置 | 移除环境变量形式的 API key,不影响 OAuth 凭据 |
关键区别:claude auth logout 只清除 OAuth session 凭据;如果同时设置了 ANTHROPIC_API_KEY 环境变量,登出后 API key 仍然有效,Claude Code 会优先使用它。
claude auth logout 再 claude auth login,避免权限混用和计费归属错误。claude auth logout 清除 token,再去 Anthropic 账户页面吊销所有活跃 session。claude auth logout && claude auth login 是首选的重置手段。ANTHROPIC_API_KEY 直接调用 API,现在升级到 Pro/Max 订阅时,需先 unset ANTHROPIC_API_KEY,再 claude auth logout(若有残留 OAuth),最后 claude auth login 重新走订阅认证。claude auth logout 确保下一位同事不会沿用你的凭据,防止意外账单归属错误。登出后仍用旧凭据请求:如果环境变量 ANTHROPIC_API_KEY 或 ANTHROPIC_AUTH_TOKEN 仍然存在,claude auth logout 清除 OAuth token 后 Claude Code 会回退到这些变量。需要同步执行 unset ANTHROPIC_API_KEY 才能完全切换。用 claude auth status 确认当前生效的认证方式。
误以为能跨设备登出:当前版本操作的是本地凭据文件/Keychain,官方文档未记录登出会通知 Anthropic 服务端吊销其他设备的 session。若需要撤销所有设备的访问,稳妥做法是登录 Anthropic 账户页面手动操作。
WSL2 / SSH 环境下 /logout 与 claude auth logout 混淆:在无图形界面的远程环境中,/logout(REPL 内)和 claude auth logout(shell)功能相同,但 claude auth logout 更适合在脚本和 CI 中使用,因为它不需要启动交互会话。
CLAUDE_CONFIG_DIR 未一致:如果设置了自定义 CLAUDE_CONFIG_DIR 但某个 shell 环境没有设置,claude auth logout 会操作默认路径的凭据,而非自定义路径——等于没有清除正在使用的凭据。所有 shell/脚本中需保证 CLAUDE_CONFIG_DIR 的一致性。
Cloud provider 认证不受 logout 影响:通过 CLAUDE_CODE_USE_BEDROCK=1 等环境变量启用的 Bedrock / Vertex / Foundry 认证完全不走 OAuth 凭据体系,claude auth logout 对其无效。这类场景需要 unset 对应的环境变量或修改 IAM 权限。
新增 CLI 子命令用于登出认证