hamzarehmandeveloper/claude-account

GitHub: hamzarehmandeveloper/claude-account

为 Linux 平台设计的 Claude Code 多账户配置切换器,通过隔离配置目录实现无需重复登录的账户管理。

Stars: 60 | Forks: 11

# claude-account [![CI](https://static.pigsec.cn/wp-content/uploads/repos/cas/ad/ad5834178f7599af9fdda11629d49cae07f2997beec49821b2920eff5bfd50e7.svg)](https://github.com/hamzarehmandeveloper/claude-account/actions/workflows/ci.yml) [![Release](https://img.shields.io/github/v/release/hamzarehmandeveloper/claude-account)](https://github.com/hamzarehmandeveloper/claude-account/releases) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE) 一个专为 Linux 设计的 Claude Code 配置切换器。它为每个账户提供一个独立的 `CLAUDE_CONFIG_DIR`,并透明地将常规命令转发 给官方的 Claude 可执行文件。 ``` claude account add work claude account add personal claude account use work claude account list claude account current claude account remove personal claude claude "fix this bug in main.py" ``` Claude Code 本身负责执行登录、登出、凭证存储以及 token 刷新。`claude-account` 从不读取或复制凭证内容。 ## 环境要求 - Linux - 正常可用的 Claude Code 安装 - Rust 1.85 或更高版本(用于从源码构建) ## 安装发布版本 从[最新发布版本][releases]下载 `claude-account-v0.1.1-x86_64-unknown-linux-gnu.tar.gz` 及其 `.sha256` 文件,然后进行验证并安装: ``` sha256sum --check claude-account-v0.1.1-x86_64-unknown-linux-gnu.tar.gz.sha256 tar -xzf claude-account-v0.1.1-x86_64-unknown-linux-gnu.tar.gz ./claude-account install ``` 安装程序会输出一行 `export PATH=...`。将该行添加到 `~/.bashrc` 并打开一个新的终端。此 shim 位于其独立的目录中;它不会 替换官方的 Claude 可执行文件。 确认安装: ``` type -a claude claude account list ``` claude-account shim 应该出现在官方 Claude 可执行文件之前。 ## 从源码构建 ``` git clone https://github.com/hamzarehmandeveloper/claude-account.git cd claude-account cargo build --locked --release ./target/release/claude-account install ``` ## 命令 ### 添加账户 ``` claude account add work claude account add personal --email you@example.com claude account add company --sso claude account add api-billing --console ``` 这会打开 Claude Code 的官方登录流程。第一个配置将成为活跃配置。 添加另一个配置不会切换当前的活跃配置。该命令还会 完成 Claude Code 的本地引导状态,因此下次启动 `claude` 时 会使用已保存的登录信息,而无需你再次进行身份验证。 ### 切换账户 ``` claude account use work ``` 切换操作仅影响新启动的 Claude 进程。现有会话将保持 其启动时所用的账户。 ### 查看配置 ``` claude account list claude account current ``` `current` 仅输出配置名称,因此可安全用于脚本中。 ### 移除账户 ``` claude account remove personal ``` 这会在该配置内运行 Claude Code 的官方 `auth logout` 命令 并将其注销。设置和会话历史记录将被保留,允许同一 配置名称在日后重复使用它们。 要删除属于该配置的所有本地数据: ``` claude account remove personal --purge --yes ``` 除非提供 `--force` 参数,否则拒绝移除当前活跃的配置。 `--purge` 会永久删除该配置的设置、会话、插件和 历史记录,以及其存储的登录信息。 ### 获取帮助 ``` claude account --help claude account add --help claude account remove --help ``` 所有非账户相关的命令和标志都将原封不动地传递给官方 Claude 可执行文件: ``` claude claude -p "explain this project" claude --model opus claude auth status --text ``` ## 存储 默认情况: ``` ~/.config/claude-account/state.json ~/.local/share/claude-account/profiles// ~/.local/share/claude-account/bin/claude ~/.local/share/claude-account/libexec/claude-account ``` 遵循标准的 `XDG_CONFIG_HOME` 和 `XDG_DATA_HOME` 变量。 `CLAUDE_ACCOUNT_HOME` 可将所有应用程序数据放置在一个绝对 目录下,这对于测试特别有用。 状态文件包含配置名称、目录路径以及真实的 Claude 可执行文件路径。它从不包含 access 或 refresh token。 ## 身份验证环境变量 为确保实际使用所选配置,包装器会从子 Claude 进程中 移除以下变量: - `ANTHROPIC_API_KEY` - `ANTHROPIC_AUTH_TOKEN` - `CLAUDE_CODE_OAUTH_TOKEN` 如果你特意希望使用这些 变量来覆盖配置的身份验证,请设置 `CLAUDE_ACCOUNT_PRESERVE_AUTH_ENV=1`。 ## 开发 ``` cargo fmt --check cargo test --locked --all-targets cargo clippy --locked --all-targets -- -D warnings ``` 请参阅 [CONTRIBUTING.md](CONTRIBUTING.md) 了解贡献工作流程, 并参阅 [SECURITY.md](SECURITY.md) 了解私密漏洞报告方式。 ## 许可证 基于 [MIT 许可证](LICENSE) 发布。
标签:AI编程辅助, Rust, 可视化界面, 开发辅助工具, 环境管理, 网络流量审计, 通知系统, 配置切换